Минимальная конфигурация Arch Linux + BSPWM
Здесь я буду ставить оконный менеджер BSPWM и создавать минимальную среду рабочего стола по своим предпочтениям. Такой подход позволит получить более минималистичную, удобную и быструю среду, в которой будет невероятно комфортно работать в режиме тайлинга. Если вы до этого не работали с BSPWM, то советую почитать вот эту статью, в которой я постарался максимально подробно обо всем рассказать. Он простой и удобный. То, что надо.
Наши задачи:
- Установить Arch Linux (с шифрованием для безопасности)
- Установить базовое консольное ПО для комфортного взаимодействия с системой
- Установить BSPWM
- Настроить BSPWM и SXHKD для комфортной работы с окнами и быстрого запуска приложений
- Настроить переключение раскладок клавиатуры
- Настроить терминал (Kitty) и командную оболочку (Zsh) для комфортного использования
- Создать и включить swap-файл
- Установить и настроить менеджер входа (tuigreet)
- Установить и настроить менеджер блокировки экрана
- Установить базовый набор программ для работы (веб-браузер, файловый менеджер, медиаплеер и т.п.)
- Установить темы для Qt и GTK
- Установить и настроить USBGuard
- Установить и настроить лаунчер приложений (rofi)
- Установить и настроить агент аутентификации (lxqt-policykit-agent)
- Установить и настроить демон уведомлений (dunst)
- Установить и настроить статус-бар (polybar)
Сразу отмечу, что это далеко не весь список необходимых действий. Дополнительно было бы неплохо настроить фаерволл, службу tor, прокси, ClamAV, настроить профили Apparmor и Firejail и сделать еще кучу всего, чтобы повысить безопасность системы, но статья получилось бы невероятно длинной. Здесь я собрал информацию лишь о первоначальной конфигурации системы для базового использования. Основной акцент сделан на настройку оконного менеджера и прочих компонентов среды рабочего стола.
1. Установка Arch Linux с шифрованием и LVM:
Здесь я не буду подробно расписывать шаги по установке Arch Linux, т.к. это уже делал в другой статье. Советую лишь обратить внимание на очистку диска, шифрование, LVM, конфигурацию initramfs и установку загрузчика. Остальное по дефолту.
Выставляем время и проверяем:timedatectl set-ntp true && timedate set-timezone Europe/Moscow && timedatectl
Смотрим список дисков:fdisk -l
После того, как нашли нужный диск, стираем с него все данные с помощью blkdiscard:blkdiscard -s /dev/nvme0n1
Если диск не поддерживает режим --secure, то можно использовать --zeroout, чтобы заполнить его нулями:blkdiscard -z /dev/nvme0n1
Если на диске уже есть базовая разметка, то может понадобиться использовать -f (программа сама сообщит об этом):blkdiscard -z -f /dev/nvme0n1
Думаю, стоит отметить, что этот процесс не быстрый и придется долго ждать завершения операции. Использовать blkdiscard необходимо для того, чтобы избежать утечки данных. Далее делаем разметку и шифруем основной раздел:cfdisk /dev/nvme0n1 (здесь создаем загрузочный раздел с типом EFI System и основной с типом Linux Filesystem)
cryptsetup luksFormat /dev/nvme0n1p2cryptsetup open /dev/nvme0n1p2 luksls /dev/mapper (должна быть директория luks)pvcreate /dev/mapper/luksvgcreate main /dev/mapper/lukslvcreate -l 100%FREE main -n root
Форматируем:mkfs.ext4 /dev/mapper/main-rootmkfs.fat -F32 /dev/nvme0n1p1
Монтируем:mount /dev/mapper/main-root /mntmkdir /mnt/bootmount /dev/nvme0n1p1 /mnt/boot
Устанавливаем систему:pacstrap -i /mnt base linux linux-firmware base-devel lvm2 nano sudo networkmanager
Генерируем fstab:genfstab -U /mnt >> /mnt/etc/fstab
Генерируем конфиг initramfs:arch-chroot /mntnano /etc/mkinicpio.conf
в HOOKS после filesystems добавляем encrypt и lvm2, чтобы было вот так:
Ставим загрузчик:bootctl install --path=/boot
Настриваем:nano /boot/loader/loader.conf
В файле указываем timeout 0, чтобы не ждать 3 секунды и сразу загружалась система, а также указываем файл arch (который мы далее создадим):
timeout 0 default arch
nano /boot/loader/entries/arch.conf
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options rw cryptdevice=UUID=UUID-раздела:main root=/dev/mapper/main-root
(вместо "UUID-раздела" ставим свое значение. UUID раздела можно узнать с помощью cryptsetup luksUUID /dev/nvme0n1p2)
Настраиваем время:ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtimehwclock --systohc
Генерируем локали:nano /etc/locale.gen - здесь раскомментируем en_US и ru_RU с кодировкой UTF-8.locale-gen
Прописываем hostname:nano /etc/hostname
127.0.0.1 localhost ::1 localhost
Настраиваем пользовательские данные:passwduseradd -m userpasswd userusermod -aG wheel,audio,video,storage,optical,scanner,floppy userEDITOR=nano visudo - убираем комментарий с %wheel ALL=(ALL:ALL) ALL
Включаем NetworkManager:systemctl enable NetworkManager
Выходим и перезагружаем:exitumount /mnt -lreboot
2. Установка базового консольного ПО:
sudo pacman -Syusudo pacman -S locate net-tools neofetch htop openssh xdg-user-dirs ntfs-3g exfatprogs bash-completion vim pacman-contrib git wget bleueman aspell aspell-en aspell-ru noto-fonts-cjk noto-fonts-emoji nvidia-utils nvidia-settings nvidia-open gvfs-mtp
Остальное поставим потом, а сейчас нам нужно перезапустить систему, установить и настройть BSPWM, а также другие необходимые элементы для создания полноценной среды рабочего стола.
3. Установка BSPWM:
sudo pacman -S xorg-server xorg-xinit xorg-xkill bspwm sxhkd
Для тех, кто не в курсе, sxhkd - это демон горячих клавиш и он нам нужен для включения и настройки хоткеев. Вообще, если вы до этого не работали с BSPWM, то ничего страшного, ибо тут я максимально подробно все рассказал и показал.
Далее редактируем .xinitrc и добавляем в него строки для запуска sxhkd и bspwm:cp /etc/X11/xinit/xinitrc ~/.xinitrc
sxhkd & exec bspwm
Теперь копируем конфиги:mkdir ~/.config/bspwmmkdir ~/.config/sxhkdcp /usr/share/doc/bspwm/examples/bspwmrc ~/.config/bspwm/cp /usr/share/doc/bspwm/examples/sxhkd/sxhkdrc ~/.config/sxhkd/
Конфиг bspwm обязательно должен быть исполняемым:chmod +x ~/.config/bspwm/bspwmrc
Сразу установим терминал и пропишем его открытие по Win+ENTER в конфиге sxhkd:sudo pacman -S kittynano ~/.config/sxhkd/sxhkdrc
# terminal emulator super + Return kitty
В итоге нас должен встретить пустой черный экран. Запустим терминал по Win+ENTER и если все удачно, то можно приступать к настройке BSPWM и SXHKD.
4. Настройка BSPWM и SXHKD:
Иногда я подключаю ноутбук к монитору, поэтому следовало бы написать bash-скрипт, который будет проверять, подключен ли монитор или нет. Если монитор подключен, то скрипт и конфиг будут настраивать его.
#!/bin/bash
my_second_monitor=$(xrandr --query | grep 'HDMI-1-0')
if [[ $my_second_monitor = *connected* ]]; then
xrandr --output eDP-1 --primary --mode 1920x1080 --rotate normal --output HDMI-1-0 --mode 1920x1080 --rotate normal --right-of eDP-1
fi
В конфиге прописываем его запуск при старте:~/.config/bspwm/scripts/dual_monitor.sh
bspc monitor eDP-1 -d I II III IV bspc monitor HDMI-1-0 -d V VI VII VIII IX X
Единственное, что осталось изменить - дефолтный рабочий стол, на котором будет фокусировка при запуске BSPWM. Дело в том, что при данной настройке мониторов, у меня фокусировка по умолчанию на 7 рабочем столе, а я хочу, чтобы фокусировка была на 1 рабочем столе. Для этого пропишем в конфиге BSPWM следующее:bspc desktop -f ^1
Дальше настроим хоткеи для запуска программ в sxhkdrc. Т.к. у меня ничего кроме терминала не установлено - хоткеи пока что бесполезны, но после того как все установлю они будут работать.
# firefox super + f firefox # obsidian super + o obsidian # vs-code super + v code # telegram super + t telegram-desktop # flameshot gui super + Print flameshot gui
Тут важно заметить, что на открытие firefox я назначил сочетание Win + R, в то время, как данное сочетание клавиш используется для режима fullscreen:
Чуть позже мы это изменим так, чтобы fullscreen открывался по сочетанию Win + Shift + F. Может показаться неудобным, но на самом деле довольно большое кол-во приложений поддерживает fullscreen по нажатию F11, да и включать этот режим приходится редко.
Еще поменяю сочетание клавиш для перезапуска sxhkd:
super + ctrl + r pkill -USR1 -x sxhkd
И сделаем более удобное управление окнами (в том числе, чтобы можно было переключаться между ними по стрелочкам):
Наконец, хоткеи для переключения режимов управления окном:
Теперь для тайлинга - Win + Shift + T, для псевдотайлинга - Win + Shift + P, для плавающего режима - Win + Shift + S и для полноэкранного режима Win + Shift + F соответственно.
Осталось заняться настройкой рамки для окон и курсора:bspc config window_gap 5 - уменьшаем расстояние между окнами;xsetroot -cursor_name left_ptr - делаем так, чтобы курсор на рабочем столе отображался нормально, а не в виде крестика.
Больше я ничего настраивать не хочу. Этого достаточно для комфортной работы с окнами, рабочими столами и мониторами. Стилизацию окон через picom делать тоже не вижу смысла, т.к. в системе, которая будет использоваться в качестве инструмента для аудита кибербезопасности это просто ни к чему. Единственное, что я буду стилизовать - bar, лаунчер rofi, Qt, GTK и скорее всего несколько апплетов, но это все не для красоты, а для комфортной работы, поэтому кастомизация будет минимальная.
5. Настройка раскладок клавиатуры:
Прописываем в .xinitrc:setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle' &
Желательно тоже самое прописать в конфиге SXHKD, т.к. иногда настройка раскладок может сбиваться (например, при обновление пакетов):
super + shift + k setxkbmap -layout 'us,ru' -option 'grp:alt_shift_toggle'
6. Настройка Kitty и Zsh:
Для начала настроим внешний вид эмулятора терминала. Для этого откроем конфиг Kitty (ctrl+shft+F2):
Листаем вниз и нажимаем стрелочку вправо, чтобы перейти к редактированию конфига:
Во-первых, сразу меняем размер текста, т.к. по дефолту для ноутбука он слишком мелкий:font_size 15.0
Во-вторых, становим cursor_trail на 3, чтобы была анимация перемещения курсора:cursor_trail 3
Это полезно, когда курсор перемещается по терминалу, т.к. позовляет более удобно определять его расположение.
В-третьих, меняем стиль подчеркивания URL:url_style straight
Обязательно добавляем возможность копирования и вставки, убрав комментарий со строчки:
Еще убираем комментарий со строчки, которая отвечает за удаление пробелов в конце скопированного текста:
Ну и напоследок отключаем звук в терминале, т.к. он меня бесит:
Для обновления конфига ctrl+shift+F5. Настраивать внешний вид не вижу смысла, поэтому переходим к настройке оболочки Zsh. Ставим zsh и oh my zsh:sudo pacman -S zsh zshchsh -s /bin/zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"`
Плагины:
Arch Linux - добавляет алиасы для работы с pacman, aur и др.:
web-search - отправка поисковых запросов из терминала.
Dirhistory - перемещение по директориям с помощью хоткеев:
History - удобная работа с историей команд:
Zsh-autosuggestions - автодополнение на основе ранее введенных команд. Предложение по автодополнению будет подсвечиваться после курсора:
zsh-syntax-highlighting - подсветка комманд:
И powerlevel10k, который позволяет создать более комфортное визуальное оформление, например вот такое:
7. SWAP-файл:
Многие не создают swap-файл, предпочитая обходиться исключительно возможностями оперативки, но я на всякий случай создам его. Не то чтобы он часто пригождается, но все-таки иногда может быть полезен. Размер ему выделю на 8 Гб:sudo fallocate -l 8G /swapfile
Обязательно устанавливаем права:sudo chmod 600 /swapfile
Форматируем:sudo mkswap /swapfile
И активируем:sudo swapon /swapfile
Все хорошо, но для того, чтобы файл подкачки использовался после каждой перезагрузки, нужно сделать дополнительные действия:nano /etc/fstab - добавляем следующую строку:
/swapfile none swap defaults 0 0
8. Менеджер входа:
Тут я решил поставить tuigreet. Это консольный менеджер входа, с множеством настроек. Зачем? Ну, потому что я не вижу смысла ставить графический, когда в консольном и так есть весь необходимый функционал.
Установка:pacin greetd greetd-tuigreet - в этой команде и далее я использую pacin, что является алиасом для команды sudo pacman -S.
nano /etc/greetd/config.toml
В файле нужно прописать запуск иксов:
command = "tuigreet --cmd startx"
Запускаем службу и проверяем:systemctl enable greetd.service now
Если все ровно, то идем дальше. В tuigreet можно настроить внешний вид, но меня это не интересует. Я хочу лишь добавить отображение времени:
command = "tuigreet --time --cmd startx"
9. Менеджер блокировки экрана:
Будем ставить xsecurelock, т.к. он минималистичный и удобный в настройке:pacin xsecurelock
Создаем скрипт для конфигурации xsecurelock:mkdir ~/.local/scriptsnano ~/.local/scripts/xsecurelock_conf.sh
И добавляем туда "конфигурацию". Вот пример, в котором мы скрываем ввод пароля, имя пользователя и хоста, а также отображаем дату и время:
#!/bin/zsh export XSECURELOCK_PASSWORD_PROMPT=hidden export XSECURELOCK_SHOW_DATETIME=1 export XSECURELOCK_SHOW_USERNAME=0 export XSECURELOCK_SHOW_HOSTNAME=0 xsecurelock
Более подробно про переменные для конфигурации xsecurelock можно посмотреть в документации на официальной странице репозитория GitHub или выполнив xsecurelock --help. Например, можно изменить цвет фона или других элементов экрана блокировки:XSECURELOCK_BACKGROUND_COLOR="#333"
Меняем права на файл:chmod -w ~/.local/scripts/xsecurelock_conf.sh
Хоткеи для ручной блокировки экрана:
# xsecurelock super + l ~/.local/scripts/xsecurelock_conf.sh
Автоматическая блокировка:pacin xautolock
Добавляем это в .xinitrc:xautolock -time 10 -notify 5 -notifier '/usr/lib/xsecurelock/until_nonidle /usr/lib/xsecurelock/dimmer' -locker "~/.local/scripts/xsecurelock_conf.sh" &
И, т.к. у нас ноутбук, нужно еще добавить действие при закрытии крышки с помощью события ACPI. Тут я вижу 2 адекватных варианта:
- При закрытии крышки просто отправлять систему в сон;
- При закрытии крышки полностью выключать ноутбук.
И мне больше по душе 2 вариант, потому что я не помню ни одного случая, когда мне приходилось пользоваться режимом сна. Всегда, когда я закрываю крышку ноутбука - это означает, что я закончил работать и в ближайшее время ноутбук мне не понадобится.
Редактируем файл:sudo nano /etc/systemd/logind.conf
И меняем значение HandleLidSwitch на poweroff. При необходимости можно поменять и остальные значения.
10. Устанавливаем базовый набор программ:
Вот список базовых програм, которые я обязательно ставлю:
- Веб-браузер (Firefox)
- Файловый менеджер (Nemo или XFE)
- PDF-reader (PDFArranger)
- Архиватор (Ark)
- Просмотрщик изображений (gwenview)
- Медиаплеер (VLC)
- Текстовый редактор (Mousepad)
- Календарь (Calcurse)
- Obsidian (
pacin obsidian) - GParted (
pacin gparted) - Tor Browser (
pacin torbrowser-launcher) - VS Code (
pacin code) - VeraCrypt (
pacin veracrypt)
11. Темы для QT и GTK:
Начнем с QT. Чтобы редактировать темы, можно воспользоваться графическими инструментами:pacin qt5ct qt6ct
Для того, чтобы темы применялись, нужно прописать в /etc/environment следующую строку:QT_QPA_PLATFORMTHEME=qt5ct:qt6ct
Теперь запускаем qt5ct и qt6ct, а далее настраиваем темы по своему вкусу. Я просто сделал темную тему, чтобы было комфортнее:
На предупреждение о том, что программа якобы неправильно настроена не обращаем внимание, т.к. по дефолту она требует, чтобы переменную мы задавали в файле .profile, ну а я же задал ее в /etc/environment. На функционал и примененные темы это никак не повлияет и разницы никакой.
Чтобы принудительно использовать стиль для Qt 5, можно установить переменную среды QT_STYLE_OVERRIDE, но я этого делать не стал, т.к. пока что не было необходимости. Если замечу, что какое-то приложение будет неправильно отображать тему, то может быть и сделаю.
Теперь GTK. Для GTK2 и GTK3 есть пакет lxappearance, который поставляется с графическим интерфейсом для редактирования тем.
Для GTK2 по дефолту темой является Raleigh, но в Arch Linux есть отдельный конфигурационный файл /usr/share/gtk-2.0/gtkrc и чтобы изменить тему для GTK2, нужно использовать GTK2_RC_FILES. Например, чтобы запустить GIMP с темой Raleigh:GTK2_RC_FILES=/usr/share/themes/Raleigh/gtk-2.0/gtkrc gimp
Дополнительные темы можно установить из официальных репозиториев или AUR. извлеченные вручную должны быть в ~/.themes/ или /usr/share/themes/.
GUI для смены темы GTK2:pacin gtk-chtheme
Я установил тему adapta-gtk-theme с помощью pacman:pacin adapta-gtk-theme
Для GTK3 и GTK4 по умолчанию темой является Adwaita, но также включены темы HighContrast и HighContrastInverse. Чтобы использовать определенную тему, ее нужно установить в org.gnome.desktop.interface через gsettings. Например:gsettings set org.gnome.desktop.interface gtk-theme HighContrastInverse.
Очень удобно юзать dconf-editor, который можно установить через pacman. Это GUI-программа для редактирования базы данных dconf. Через него я также поставил тему из пакета adapta-gtk-theme.
Иногда темы GTK3 содержат вариант тёмной темы, но программы используют их только тогда, когда они явно запрашиваются. Чтобы принудительно использовать тёмную тему для всех программ GTK3, пишем в /usr/share/gtk-2.0/gtkrc:gtk-application-prefer-dark-theme = true
Для GTK4:gsettings set org.gnome.desktop.interface color-scheme prefer-dark (ну или через dconf-editor)
Чтобы юзать сочетания клавиш в GTK, наведя на соответствующий пункт в меню:gtk-can-change-accels = 1
Удобно, если привыкли пользоваться клавой (особенно, на тайловом WM).
Сразу скажу, что единый стиль для QT и GTK мне необязателен, поэтому я и использую разные темы для них. Главное, чтобы была темная тема, а остальное не важно.
Еще, необходимо создать следующие файлы и установить вместо Theme и Font свои значения:
~/.config/gtk-3.0/settings.ini:
[Settings] gtk-icon-theme-name = Theme gtk-theme-name = Theme gtk-font-name = Font
~/.config/gtk-4.0/settings.ini:
[Settings] gtk-icon-theme-name = Theme gtk-theme-name = Theme gtk-font-name = Font
12. USBGuard для защиты от вредоносных USB-устройств:
С помощью USBGuard можно создать белый список USB-устройств. Установка:pacin usbguard
Создаём исходный набор правил (от имени root):sudo suusbguard generate-policy > /etc/usbguard/rules.conf
Для того чтобы отредактировать исходный набор правил:nano /etc/usbguard/rules.conf
Запуск службы:systemctl start usbguard.service
Добавляем в автозагрузку:systemctl enable usbguard.service
Чтобы вывести список всех USB-устройств, распознаваемых USBGuard:usbguard list-devices
Чтобы авторизовать устройство для взаимодействия с системой:usbguard allow-device <ID устройства (можно узнать с помощью предыдущей команды)>
Для деавторизации и удаления устройства из системы:reject-device <ID устройства>
Для деавторизации без удаления устройства из системы:usbguard block-device <ID устройства>
13. Лаунчер приложений (rofi):
pacin rofi
Сочетание клавиш для запуска:
# program launcher
super + d
rofi -show drunСоздаем файл конфигурации:mkdir -p ~/.config/rofirofi -dump-config > ~/.config/rofi/config.rasi
А также нам нужен файл с темой. С дизайном я не очень дружу, да и заморачиваться сейчас не хочу над этим, поэтому взял готовое решение отсюда. В итоге получилось так:
Некоторые скрипты, которые я использую:
Monitor Layout - изменение настроек мониторов
Finder - поиск по файлам
Power - управление питанием
14. Агент аутентификации:
Установка:pacin lxqt-policykit
Автозапуск через .xinitrc:lxqt-policykit-agent &
15. Демон уведомлений:
Мой выбор пал на Dunst. Устанваливаем и копируем файл конфигурации:pacin dunst
mkdir ~/.config/dunstcp /etc/dunst/dunstrc
Кидаем в автозагрузку через .xinitrc:dunst &
Теперь редактируем конфиг. Т.к. у меня ноутбук, но иногда я его подключаю к внешнему монитору - было бы неплохо отображать уведомления на сфокусированном мониторе:follow = keyboard
Немного изменим размеры отображаемых уведомлений, чтобы они были более заметными:width = (300, 500)height = (100, 300)
И сделаем, чтобы воспроизводился звук при отображении уведомления:
bash-скрипт:
#!/bin/zsh paplay /path/to/alert_sound.wav
[play_sound]
summary = "*"
script = /path/to/alert.sh16. Polybar:
Копирование файла конфигурации:mkdir -p ~/.conifg/polybarcp /usr/share/doc/polybar/examples/config.ini ~/.config/polybar/config.ini
По умолчанию polybar выглядит вот так:
Напишем скрипт для отображения на двух мониторах:
killall -q polybar
while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done
if type "xrandr"; then
for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do
MONITOR=$m polybar --reload mybar &
done
else
polybar --reload mybar &
fimonitor=${env:MONITOR:}- Настроить отображение цифр для переключения рабочих столов
- Избавиться от отображения заголовка сфокусированного окна
- Избавиться от отображения информации о дисковом пространстве, а также загруженности RAM и CPU
- Настроить управление звуком
- Настроить управление сетевыми подключениями
- Настроить отображение даты и времени
- Настроить внешний вид
Будем делать все по порядку. Для начала вместо римских цифр я хочу сделать современные. Да, это можно было сделать еще во время базовой настройки конфига bspwm, но тогда я об этом не подумал. Итак, меняем значения:
Обновляем bspwm (в моем случае Super + Alt + R) и проверяем:
Теперь избавимся от отображения вот этих заголовков окон:
Я это хочу сделать, потому что для меня они не несут никакой пользы. Я и так знаю, на каком окне сфокусирован, потому что на сфокусированном окне появляется рамка. Достаточно просто закомментировать или удалить вот эти строки:
Тоже самое делаем с модулями filesystem, memory и cpu, чтобы они тоже перестали отображать ненужную информацию.
Итак, у нас остались модули для отображения рабочих столов, управления звуком, раскладкой клавиатуры, сетевыми подключениями и отображения времени. Теперь настроим все эти модули для комфортного взаимодействия с ними. Начнем со звука. Для начала нужно установить pulseaudio и pipewire, а также настроить совместимость pipewire с pulseaudio. Я ставлю и то, и другое, потому что у pulseaudio есть ограничения в поддержке некоторых технологий, но при этом он легко настраивается, а в pipewire гораздо больше возможностей, но при этом, с ним взаимодействовать тяжелее.
Убираем раздражающий текст "VOL ":
Теперь настраиваем так, чтобы при нажатии ПКМ открывался pavucontrol (его еще установить нужно с помощью команды pacin pavucontrol):click-right = pavucontrol
Чтобы pavucontrol открывался в плавающем режиме, с определенными размерами и рядом с модулем, нужно прописать правила в конфиге bspwm. Например:bspc rule -a pavucontrol state=floating rectangle=750x450+1000+50
Теперь поработаем с сетевыми подключениями. Нужно, чтобы при нажатии ПКМ, открывался менеджер подключений Wi-Fi Для этого подойдет iwgtk:yain iwgtksystemctl enable iwd.servicesystemctl start iwd.service
Еще я убрал отображение локального IP-адреса.
Для Bluetooth:systemctl enable bluetooth.servicesystemctl start bluetooth.serviceblueman-manager
[colors] background = #0f0f0f background-alt = #1b1d1f foreground = #C5C8C6 primary = #f2ae55 secondary = #8ABEB7 alert = #A54242 disabled = #707880
В итоге у нас получился вот такой статус-бар:
Результат:
Что мы получили в итоге? Минималистичную ОС, которая просто идеально подойдет для ноутбука и повысит эффективность работы благодаря тайлингу и удобным хоткеям. Вот пара скриншотов:
Да, здесь нет красивого визуального оформления, обоев с аниме-девочками, анимаций и прочего. Для исключительно профессиональных нужд всего этого и не требуется. Достаточно оконного менеджера, некоторых других составляющих DE и установленного набора нужных программ. Таким образом, нас ничего не отвлекает от работы и система не нагружена лишними процессами. Идеально же!