
Тем, кто подумывает о переходе на Линукс, может быть интересно посмотреть запись того, как это выглядело в конкретном случае. Оцените объём работ и то, насколько хорошо Вы понимаете процесс. Это как ролик в стиле о «прогулка по» на Замедленном — без купюр, с минимумом комментариев, и так, как реально получилось.
Искателям копи с целью пасты и вкатунам с нуля — текст не рекомендуется.
С какой стати
Есть на Линукс десктопное окружение i3w, иногда именуемое полнее, как i3-wm. В нём а) окна естественным образом располагаются вплотную одно к другому, но могут переводиться в обычный плавающий режим, б) управление окнами заточено под клавиатуру, то есть под горячие клавиши, даже запуск приложения идёт через вызов списка горячей клавишей и немедленную его фильтрацию с клавиатуры, и в) практически отсутствуют "родные" графические конфигурационные утилиты, редактирование конфигурационных файлов по классике вместо них.
Чтобы посмотреть действительно ли так быстрее, удобнее и вызывает меньшую когнитивную нагрузку, Линукс был переустановлен. Оказалось, что в общем да, но не на много. Больше всего, по сравнению с KDE, заметно снижение номинального потребления памяти, однако, KDE хоть и создаёт своп, но не особо им пользуется и работает практически столь же плавно.
Тайловый режим на уровне DE показался перебором. Располагать окна рядом KDE умеет, в основных приложениях, Konsole, Tmux и NeoVim, и тайловый режим свой, и горячие клавиши свои. Получается - пятьдесят на пятьдесят, от силы 53 на 47 в пользу i3w. А когда обнаружмлось, что x0vncserver падает когда Firefox открывает окошко при нажатии на иконку расшмрения, было решено вернуться на KDE.
Записывать все шаги я решил вспомнив, что когда-то давно, на Windows, это былополезно. Потом, глядя на статьи о смысле if в языках программирования, решил выложить запись в песочницу и посмотреть что из этого выйдет.
Начало
Установим RDE Plasma в EndeavourOS, это Arch с человеческим лицом разумными как установками по умолчанию так и выбором пакетов, в сетевом режиме, чтобы система сразу была актуальна и не требовала обновления, и с входом сразу в графику, без ппроля.
Подробности опускаю, поскольку если с этим сложности - нужно скачать Puppy Linux, это не страшно поскольку устанавливать на диск его не нужно, и немного поиграть с иаковым. Единственное, что нужно на этом этапе - запомнить кем назвался (andy), пароль и какой менеджер выбрал (sddm).
Осматриваемся
$ lsmod
$ env
$ ps -A | grep sh
$ ps -A | grep dm
$ ps -A | grep way
$ ps -p $$
$ yay -S bat nnn neovim
$ yay -Qi bat
$ yay -Qi nnn
$ yay -S sshfs
$ yay -Qi neovim
$ yay -S wl-clipboard
$ bat /etc/sddm.conf
$ yay -Rns wl-clipboard
$ yay -S xsel
$ yay -S obsidian
Отлично, работает проприетарный драйвер nvidia, шеллом идёт bash и сессией wayland. Нужно было не забывать после установки пакета (-S) посмотреть его якобы не обязательные зависимости (-Qi) без которых ничего толком не работает. Дистрибутивы Линукс так строят специально, веселья для.
Логическая петля с установкой wl-clipboard и её немедленным сносом (-Rns) вызвана тем, что команды wl-copy и wl-paste работали, но Neovim их в упор не видел, хотя по докам должен был, и к системным clipboard, а их сейчас две - в wayland своя и в слое совместимости с X11 - своя, обратиться не мог. Поэтому вместо wl-clipboard будет xsel.
Готовим bash
В дальнейшем точно придётся менять переменные окружения. Самое время подготовиться к этому - создать ~/.bash_my.
$ bat -p ~/.bash_profile
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
$
$ bat -p ~/.bashrc
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '
$
$ neovim ~/.bashrc
$ neovim ~/.bash_my
$
$ bat -p ~/.bashrc
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
alias ls='ls --color=auto'
alias grep='grep --color=auto'
PS1='[\u@\h \W]\$ '
[[ -f ~/.bash_my ]] && . ~/.bash_my
$
$ bat -p ~/.bash_my
PS1='\$ '
export VNC_USERNAME=andy
export VNC_PASSWORD=cantor
$
Переменные окружения для VNC должны будут позволить vncviewer заходить на другие компьютеры без ввода пароля.
Swap
$ lsblk -f
$ sudo nvim /etc/fstab
$ bat /etc/fstab | grep swap
UUID=7674848d-8fff-4cff-976e-3fd318a151dd none swap defaults 0 0
Да, в установщике EndeavourOS конфигурация свопа если и есть, то точно не бросается в глаза.
Plasma
добавить виртуальные десктопы со второго по четвёртый, i3w убедил что 2 - мало
ограничить Search свеже созданной папкой ~/Notes, иначе индексация будет мешать
установить размер и положение panel по желанию, тут желания меняются и меняются...
выбрать цветовую схему
выбрать активацию в один клик
убрать экран блокировки, коты не столь злонамерены как кажется авторам Линукс
убрать переход в сон, можно проснуться в чёрный экран, а при использовании headless - не проснуться вообще
Иными словами и по моему мнению - Plasma из коробки, считай, идеальна.
VNC
Есть много способов организовать удалённый доступ, но если это нужно сделать с большого числа устройств, то проще - старый добрый TigerVnc.
yay -S tigervnc
$ vncpasswd
$ neovim ~/.config/tigervnc/config
$
$ ls -l ~/.config/tigervnc/
total 12
-rw-r--r-- 1 andy andy 50 Apr 10 17:14 config
-rw-r--r-- 1 andy andy 65 Apr 12 13:56 default.tigervnc
-rw------- 1 andy andy 8 Apr 9 19:52 passwd
$
$ bat -p ~/.config/tigervnc/config
session=plasmax11
geometry=1280x720
alwaysshared
$
Файл config понадобится если захочется перенастроить машину как headless server. Теперь можно попробовать зайти на другую машину
$ vncviewer
Оказывается, пароль в переменных окружения то работает то нет, но в целом всё хорошо. Можно пробовать подключиться к этой машине. Попробуем зайти с другой машины
$ x0vncserver -rfbauth ~/.config/tigervnc/passwd -localhost no
и берём в руки iPad. Видим чёрный экран, причём и курсор и клавиатура позволяет управлять машиной с iPad, просто смотреть надо на монитор. Вывод - совместимость wayland с X11 так и не доделали, любопытство удовлетворено, надежды сдохли, возвращаемся в иксы.
$ sudo neovim /etc/sddm.conf
bat -p /etc/sddm.conf
[Autologin]
User=andy
#Session=plasma
Session=plasma11
$
$ reboot
Загрузим библиотеку libvnc.so из пакета tigervnc согласно докам и с целью оптимизации.
$ cd /etc/X11/xorg.conf.d/
$ sudo nvim 10-vnc.conf
$ bat -p 10-vnc.conf
Section "Module"
Load "vnc"
EndSection
Section "Screen"
Identifier "Screen0"
Option "UserPasswdVerifier" "VncAuth"
Option "PasswordFile" "/home/andy/.config/tigervnc/passwd"
EndSection
$
$ firewall-cmd --permanent --zone=public --add-service vnc-server
$ firewall-cmd --zone=public --add-service vnc-server
$ reboot
Результат удивляет - VNC клиент подключается, но показывает не все окна. Сносим модную библиотеку. И запускаем старый добрый x0vncviewer.
$ sudo rm /etc/X11/xorg.conf.d/10-vnc.conf
$ nvim ~/.xprofile
$ bat -p ~/.xprofile
x0vncserver -rfbauth ~/.config/tigervnc/passwd -localhost no &
$
$ reboot
Так - работает.
SSH
$ yay -S openssh
$ ssh-keygen
$ ls ~/.ssh
authorized_keys id_ed25519 known_hosts config id_ed25519.pub known_hosts.old
$
$ sudo nvim /etc/ssh/sshd_config
$
$ bat -p /etc/ssh/sshd_config | grep -v "^#" | grep -v "^$"
Include /etc/ssh/sshd_config.d/*.conf
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
KbdInteractiveAuthentication no
Subsystem sftp /usr/lib/ssh/sftp-server
$
$ systemctl start sshd
$ systemctl enable sshd
Теперь запускаем утилиту Firewall и разрешаем доступ к себе, а на каждой машине, к которой хотим подключаться, дописываем наш ~/.ssh/id_ed25519.pub к ~/.ssh/authorized_keys и удаляем старый ключ из ~/.ssh/authorized_keys и из ~/.ssh/known_hosts. Последнее важно, иначе при подключении удалённая машина заподозрит неладное.
Вообще то, ssh - старый протокол, из времени предшествующего безумию заботы о "рядовом пользователе", поэтому настраивается просто и работает хорошо.
Samba
Как клиент, работает в dolphin из коробки. Но не вполне.
В сети есть роутер доступный по SMB к которому подключен HDD, но роутер работает только с первой, ныне устаревшей, версией протокола. Dolphin к нему не подключается, поэтому
sudo neovim /etc/fstab
$ bat -p /etc/fstab | grep R
//192.168.1.1/Router /mnt/Router cifs vers=1.0,username=assa,password=assa,noperm,nofail,noauto,users 0 2
$ mount /mnt/Router
Теперь дадим Dolphin возможность шарить папки через user shares.
$ yay -Qi dolphin
$ yay -S kdenetwork-filesharing
Что даёт сервер samba как зависимость.
$ sudo mkdir /var/lib/samba/usershares
$ sudo groupadd -r sambashare
$ sudo chown root:sambashare /var/lib/samba/usershares/
$ sudo chmod 1770 /var/lib/samba/usershares/
$ bat -p /etc/samba/smb.conf
[global]
workgroup = MYGROUP
client min protocol = NT1
force user = andy
server string = Samba Server
server role = standalone server
log file = /home/andy/.cache/samba/log.%m
max log size = 10000
passdb backend = tdbsam
dns proxy = no
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
[media]
path = /run/media/andy
valid users = andy
public = no
writable = yes
create mask = 0765
$
$ sudo gpasswd sambashare -a andy
Adding user andy to group sambashare
$ sudo pdbedit -L -v
$ sudo smbpasswd -a andy
New SMB password:
Retype new SMB password:
Added user andy.
$ sudo pdbedit -L -v
---------------
Unix username: andy
NT username:
Account Flags: [U ]
User SID: S-1-5-21-1782492179-2422990894-669341090-1000
Primary Group SID: S-1-5-21-1782492179-2422990894-669341090-513
Full Name: Andrey
Home Directory: \\ANDREY-GAMING\andy
HomeDir Drive:
Logon Script:
Profile Path: \\ANDREY-GAMING\andy\profile
Domain: ANDREY-GAMING
Account desc:
Workstations:
Munged dial:
Logon time: 0
Logoff time: Wed, 06 Feb 2036 18:06:39 MSK
Kickoff time: Wed, 06 Feb 2036 18:06:39 MSK
Password last set: Fri, 11 Apr 2025 13:23:59 MSK
Password can change: Fri, 11 Apr 2025 13:23:59 MSK
Password must change: never
Last bad password : 0
Bad password count : 0
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
$
$ systemctl start smb
$ systemctl enable smb
Created symlink '/etc/systemd/system/multi-user.target.wants/smb.service' → '/usr/lib/systemd/system/smb.service'.
$
$ reboot
Теперь папку можно шарить из Dolphin. Заметьте, что файл /etc/samba/smb.conf появился из ниоткуда. Дело в том, что этот критически важный файл конфигурации отсутствует в пакете samba, так понятней что samba — творение Микрософт, то есть зла. Можно скачать его как «пример» из документации, а можно взять с другой машины, что и было сделано.
Заметьте и то, что пользователь должен быть добавлен в базу pdbedit, о чём большинство доков по теме умалчивает.
Экран ввода пароля при загрузке
Его не должно быть, а он есть, после входа в графику и перед splash screen собственно Plasma. Гугол и доки безмолвствуют. Deep Seek тоже ничего не знает, но подаёт здравую мысль - это не sddm, это что-то ещё. А всё, что я делал - совершал экскурсию в Wayland. Следовательно, возвращаемся туда
$ sudo neovim /etc/sddm.conf
bat -p /etc/sddm.conf
[Autologin]
User=andy
Session=plasma
#Session=plasma11
$
$ reboot
Теперь загружаем приложение System Settings и по крайне логичному пути Colors and Themes -> Login Screen -> Behavior меняем Plasma на Plasma (X11). После чего конфигурация sddm меняется чудесным образом.
$ bat /etc/sddm.conf
──────┬────────────────────────────────────────────
│ File: /etc/sddm.conf <EMPTY>
──────┴────────────────────────────────────────────
$ ls /etc/sddm.conf
sddm.conf sddm.conf.d/
$ ls /etc/sddm.conf.d/
10-endeavouros.conf kde_settings.conf
$ bat /etc/sddm.conf.d/10-endeavouros.conf
──────┬────────────────────────────────────────────
│ File: /etc/sddm.conf.d/10-endeavouros.conf
──────┼────────────────────────────────────────────
1 │ [Theme]
2 │ Current=eos-breeze
──────┴────────────────────────────────────────────
$ bat /etc/sddm.conf.d/kde_settings.conf
──────┬────────────────────────────────────────────
│ File: /etc/sddm.conf.d/kde_settings.conf
──────┼────────────────────────────────────────────
1 │ [Autologin]
2 │ Relogin=false
3 │ Session=plasmax11
4 │ User=andy
5 │
6 │ [General]
7 │ HaltCommand=/usr/bin/systemctl poweroff
8 │ RebootCommand=/usr/bin/systemctl reboot
9 │
10 │ [Theme]
11 │ Current=eos-breeze
12 │
13 │ [Users]
14 │ MaximumUid=60513
15 │ MinimumUid=1000
──────┴──────────────────────────────────────────────
$
И экрана ввода пароля больше нет. Настройка sddm не изменилась, просто переехала из одного файла в другой. Что ещё при этом опустело или было удалено - неизвестно.
Последняя, скорее крайняя, странность
При заходе на машину по VNC с iPad, русские заглавные буквы не набираются если на экранной клавиатуре они большие, но набираются если отдельно ввести Shift. И набираются с подключённой к iPad клавиатуры.
Но с этим можно жить, минимально рабочая конфигурация Линукс достигнута.