Как стать автором
Обновить

Отчёт подумывающим об установке Linux

Уровень сложностиСредний
Легко установим EndeavourOS, версию Mercury Neo
Легко установим EndeavourOS, версию Mercury Neo

Тем, кто подумывает о переходе на Линукс, может быть интересно посмотреть запись того, как это выглядело в конкретном случае. Оцените объём работ и то, насколько хорошо Вы понимаете процесс. Это как ролик в стиле о «прогулка по» на Замедленном — без купюр, с минимумом комментариев, и так, как реально получилось.

Искателям копи с целью пасты и вкатунам с нуля — текст не рекомендуется.

С какой стати

Есть на Линукс десктопное окружение 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 клавиатуры.

Но с этим можно жить, минимально рабочая конфигурация Линукс достигнута.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.