Linux-десктоп своими руками: базовый набор программ
У каждого конечно свои приоритеты в плане ПО, но для меня очень важна комфортная работа в консоли. Начиная от использования простых утилит и заканчивая Vim и MidnightCommander.
Знаю, что многие так и не освоили Vim (страшно-непонятно-неудобно-ааа!), а MC вообще путают с NC и DOS — не стану никого переубеждать. Это для меня компьютер, не для них, ведь так?
Терминал
Ну так вот, для всего этого нужен эмулятор терминала. Классический xterm не устроил, во-первых, тем, что не поддерживает ttf-шрифты (по крайней мере у меня отказался), и тормозит, медленно прорисовывает обычный текст. Это не сразу заметно, но если много работать с терминалами это видно.
Пришлось выбирать.
Понравился rxterm — (скорость, настройка — все ок) -, но у него какой-то странный глюк в работе с Vim, некорректно отрабатывают некоторые команды, причем смена TERM не помогает.
Понравился alacritty -, но выявился неприятный глюк: если понаоткрывать достаточно много окон под Иксами — в какой-то момент окна заканчиваются. Как так-то? «Черпак — норма!»?
Неплохие lxterminal и xfce4-terminal, gnome-terminal -, но тянут за собой половину своих DE, что нежелательно.
Из всего оставшегося многообразия — либо проблемы с настройками шрифтов, либо кривое отображение шрифтов, увеличенные межстрочные интервалы (особенно заметно на MC), либо внешний вид a-la HyperTerminal-95.
В результате остановился на sakura: быстрый, легкий, пока не глючил, хорошо настраивается, работает одинаково и в Wayland, и в Иксах.
Из интересных фишек — возможность смены заголовка окна и несколько быстросменяемых профилей с разными цветами фона — удобно для удаленной работы с разными системами.
Поскольку у нас нет единого DE с общими настройками, и нет заточенного под этот DE набора программ — все они настраиваются по-разному:
Например, sakura настраивается через свой собственный конфигурационный файл .config/sakura/sakura.conf
[sakura]
bold_is_bright=false
scroll_lines=10000
font=LXGW WenKai Mono TC Light 16
show_tab_bar=multiple
scrollbar=true
closebutton=true
tabs_on_bottom=false
less_questions=false
copy_on_select=true
urgent_bell=No
audible_bell=No
blinking_cursor=Yes
cursor_type=VTE_CURSOR_SHAPE_BLOCK
disable_numbered_tabswitch=false
use_fading=false
scrollable_tabs=true
word_chars=-,./?%&#_~:
palette=1
add_tab_key=T
del_tab_key=W
prev_tab_key=Left
next_tab_key=Right
copy_key=C
paste_key=V
scrollbar_key=S
set_tab_name_key=N
search_key=F
increase_font_size_key=plus
decrease_font_size_key=minus
fullscreen_key=F11
set_colorset_accelerator=5
icon_file=terminal-tango.svg
paste_button=3
menu_button=2
window_columns=100
window_rows=28
colorset1_fore=rgb(192,255,192)
colorset1_back=#1e2e2e
colorset1_curs=#80c080
colorset1_scheme=1
colorset1_key=F1
colorset2_fore=#101010
colorset2_back=#dedeae
colorset2_curs=#101010
colorset2_scheme=2
colorset2_key=F2
.....
last_colorset=1
add_tab_accelerator=5
del_tab_accelerator=5
switch_tab_accelerator=8
move_tab_accelerator=9
copy_accelerator=5
scrollbar_accelerator=5
open_url_accelerator=5
font_size_accelerator=4
set_tab_name_accelerator=5
search_accelerator=5
Основные настройки понятны по тексту, выбор палитры цветов — номер из внутреннего списка, захардкоженного в программе, colorset — возможность быстро сменить основные цвета окна, всего таких может быть 6 вариантов.
Акселераторы — побитное сложение 0×1, 0×2, 0×4, 0×8 — Alt, Shift, Ctrl, Win, кажется в таком порядке.

Второй тип — настройки через .Xdefaults или .Xresources
Программа читает эти переменные из свойств X-server и меняет свой внешний вид.
Пример — rxvt, она использует примерно такие параметры:
URxvt.font: xft:LXGW WenKai Mono TC:size=15
URxvt.background: #004848
URxvt.foreground: #cbdbd2
! цвет курсора
URxvt.cursorColor: #930101
! можно переопределить палитру цветов
! 0-7 - обычные, 8-15 - "яркие"
! Черный
URxvt.color0: #282828
URxvt.color8: #928374
! Красный
URxvt.color1: #cc241d
URxvt.color9: #fb4934
! Зеленый
URxvt.color2: #98971a
URxvt.color10: #b8bb26
! Желтый
URxvt.color3: #d79921
URxvt.color11: #fabd2f
! Синий
URxvt.color4: #458588
URxvt.color12: #83a598
! Пурпурный
URxvt.color5: #b16286
URxvt.color13: #d3869b
! Голубой
URxvt.color6: #689d6a
URxvt.color14: #8ec07c
! Белый
URxvt.color7: #a89984
URxvt.color15: #ebdbb2
В данном случае настройки конкретно для URxvt, но хранятся они в общем конфигурационном файле .Xdefaults
Gimp
Ну, с этим в общем-то всё просто:
apt install gimp
Особенности настройки:
Во-первых, в новых версиях по умолчанию используется однооконный режим — когда вспомогательные окна инструментов находятся внутри общего окна.
Удобно это или нет — дело привычки, но почему-то в однооконном режиме отрисовка самого интерфейса работает медленнее, ощущение что программа тормозит.
Исправить это очень просто: Windows — Single-Window Mode — off.
Тип и размер шрифта интерфейса Gimp берет из настроек gtk-2, а именно — из файла ~/.gtkrc-2.0:
gtk-font-name = "LXGW WenKai TC Light, 14"
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
Это как минимум, как максимум — различные настройки темы для GTK, цвет фона и вид кнопок и т.д. Плюс его собственные настройки в Edit — Preferences — Interface.

Arduino
Вообще говоря, есть официальная стандартная версия ArduinoIDE arm64, но работать с ней — ужасно, как и вообще с ArduinoIDE.
К счастью, есть arduino-cli — отличная штука, работает без глюков, хотя конечно настроить скрипты для компиляции проектов под каждую железку — задача не самая простая.
Но можно сделать это один раз -, а потом привязать, например, к контекстном меню в MidnightCommander и потом делать всё как мы любим: выбрать в меню пункт — нажать Enter — получить готовый результат.
Да, тот самый древний, презираемый ценителями современности, Миднайт очень удобен как раз для таких вещей.

Офис
Тут выбор не особо широкий: LibreOffice.
apt install libreoffice
Проблема в том, что по умолчанию размер шрифтов в интерфейсе очень небольшой, всё очень мелкое и пользоваться этим довольно сложно.
В интернетах предлагали решение — установить поддержку gtk3 — с размером проблему это решает, но Офис начинает просто дико тормозить, и судя по статьям это известная проблема.
Но есть другое решение: поддержка qt, точнее даже KDE Frameworks
А для настройки вида qt — программа qt5ct
apt install libreoffice-kf5 qt5ct
Кроме того, необходимо в скриптах запуска startw и .xinitrc установить переменную:
export QT_QPA_PLATFORMTHEME=qt5ct
Вот теперь, настроив с помощью qt5ct желаемый вид — получим вполне работоспособный интерфейс Офиса, и без торможения.

Печать
Тут тоже все достаточно стандартно: установить CUPS, и либо настроить его для печати через принт-сервер, либо как писал раньше — прикрутить драйвера от x86 Linux.
В моем случае принтсервер уже есть, так что печать через него:
apt install cups
Добавить юзера в группу lpadmin, перезайти в систему.
lppadmin -p MyPrinter -E -v ipp://192.168.1.2/printers/MyPrinter -m everywhere
lpotions -d MyPrinter
lpstat -p -d
Браузер
Два основных варианта: Chromium и Firefox.
Из особенностей: у обоих лучше отключить «аппаратное ускорение»: в Chromium оно вызывает ухудшение качества картинок, в Firefox может в некоторых случаях приводить в крашу Wayfire.
При этом реального ускорения как-то не видно.
Оба используют настройки GTK-3, в файлах (не очень ясно когда из какого):
.config/gtk-3.0/gtk.css
* {
font-size:18px; /* font size for all application with GTK3 (ffox) */
font-family:LXGW WenKai TC Light;
}
.config/gtk-3.0/settings.ini
[Settings]
gtk-font-name = LXGW WenKai TC 14
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb
В Firefox также пришлось отключить «масштабирование скроллом».
Без этого попытка прокрутки страницы тачпадом на клавиатуре приводила к изменениям масштаба.
about: config
mousewheel.with_alt.action=1
mousewheel.with_control.action=1
Fritzing
Мне для всяких поделок нужен софт для изготовления плат — и он есть, Fritzing.
При всех его недостатках — он позволяет взять буквально любой готовый модуль из известного интернет-магазина, просто сфотографировать его, и с помощью векторного редактора быстренько набросать модель для разводки под него печатной платы, не дожидаясь пока кто-то там обновит библиотеку деталей.
Но это отдельная тема, и мало кому интересная — просто вот есть такое, и оно прекрасно работает тут.

Видеоплееры
Так исторически сложилось, что родной и привычный mplayer позволяет воспроизводить почти что угодно.К нему в добавок более современный вариант — mpv.
И конечно, ffmpeg с его ffplay.
Всё это есть в штатном репозитарии, и всё прекрасно работает.
До этого казалось, что одноплатник на базе ARM — это примерно как Arduino, только чуть больше — ну какой там ffmpeg? Не потянет!
Оказывается, всё прекрасно работает.
Bluetooth
Как уже говорил — в данной модели не было встроенного bluetooth -, но его прекрасно заменяет USB-донгл.
Удалось сделать удобное подключение внешних колонок и наушников (ИМХО, удобнее и лучше чем штатно в Убунте) -, но это отдельная история.

Игры?
Играть давно нет времени, но так, чисто чтоб было:
Quake2 из портов — работает на ура.
Собранный из исходников nblood — Blood работает отлично.
Собранный из исходников dhewm3 — Doom3 работает, ну скажем так, неплохо, в 1024×768, больше — подтормаживает (приемлемо, учитывая железо. Ведь это всё — маленькая коробочка, питающаяся от USB-разьема)
Что там есть более современного, да еще под Linux aarch64 — понятия не имею.
Если вы дошлю досюда, и думаете «зачем я это читал?» — не знаю, зачем вы это читали)
Это просто записка для себя: пройдет время, надо будет менять железо, а я уже не помню что и как ставил.
А текст, почти пошаговое описание — остался.
Вывод: работать на этом вполне можно, хотя поначалу и странно. К сожалению, большой монитор-телевизор рушит концепцию «минимального потребления», но найти еще и большой энергоэффективный монитор с колонками не за конский прайс пока не удалось.