107572104640e2a27ef66c8ae2d2fc7a793a950c
dotfiles-sway
Конфиги для Sway.
Стек
| Компонент | Технология | Описание |
|---|---|---|
| Тайлинговый менеджер | sway | i3-совместимый Wayland-компоузер. Раскладка окон, workspaces, бинды, запуск через uwsm |
| swayidle | Демон бездействия: блокирует экран, гасит мониторы (dpms off) и уходит в suspend по таймаутам; блокирует перед сном и включает мониторы после пробуждения | |
| swaylock | Экран блокировки для Wayland/sway, с Nord-темой и индикатором ввода пароля | |
| swaddle | MPRIS-инхибитор автоблокировки/сна — не даёт экрану гаснуть во время прослушивания музыки или просмотра видео | |
| waybar | Панель статуса: workspaces, clock, tray, idle-inhibitor, CPU/RAM/temp/disk, аудио-виджеты (wireplumber), кастомный лаунчер rofi | |
| rofi | Лаунчер приложений/меню: drun, кастомные моды по категориям (internet/dev/games/system/media), буфер обмена, история уведомлений, Bitwarden (rofi-rbw) | |
| Музыка | mpd | Music Player Daemon — бэкенд воспроизведения музыки (вывод через pipewire, replaygain по альбому) |
| mpc | Консольный клиент-обёртка для MPD (control через CLI/скрипты — быстрые команды типа play/pause/next без запуска TUI) | |
| rmpc | TUI-клиент для MPD: очередь, браузер библиотеки, поиск, кастомный статус-бар (артист/альбом/трек/битрейт), Nord-тема | |
| Видео | mpv | Плеер с рендером через Vulkan (gpu-context=waylandvk, gpu-api=vulkan) и аппаратным декодированием на nvidia (hwdec=nvdec) |
| Редактор | nvim | Neovim на lazy.nvim: цветовая схема nord, colorizer, render-markdown, nvim-tree, treesitter, gitsigns, bufferline |
| Терминал | foot | Лёгкий Wayland-нативный терминал; шрифт Noto Mono, тёмная тема |
| Уведомления | dunst | Демон уведомлений: позиция top-right, прогресс-бары, история (sticky), Nord-цвета по уровню важности |
| Шелл | zsh | Интерактивный shell: vi-режим (bindkey -v), общая история между сессиями (SHARE_HISTORY), автодополнение через compinit, fzf (включая fzf-tab и fzf-tab-completion), подсветка синтаксиса (zsh-syntax-highlighting) и автоподсказки (zsh-autosuggestions) — всё в Nord-палитре. Кастомный promt с vi-режимом (❯/❮ в зависимости от normal/insert), git-статус в промпте (staged/modified/untracked/deleted/conflicts с иконками) и код выхода последней команды. Обёртки nvim/vi/vim и алиас rmpc меняют заголовок окна терминала (\033]0;...\007) на время работы программы |
| Сессия | uwsm | Universal Wayland Session Manager — запускает sway как systemd-managed сессию, пробрасывает переменные окружения (WAYLAND_DISPLAY, SWAYSOCK, Qt-тема, ssh-agent через rbw) |
| Логин-менеджер | ly | TUI display manager: анимация matrix, большие часы (bigclock=en), пустой пароль запрещён (allow_empty_password=false). Хоткеи: F1 shutdown, F2 restart, F3 suspend (systemctl suspend), F7 показать пароль; brightness/hibernate скрыты (*_key = null) |
Зависимости
sudo pacman -S \
zsh \
zsh-syntax-highlighting \
zsh-autosuggestions \
pipewire \
wireplumber \
wl-clipboard \
noto-fonts \
noto-fonts-cjk \
noto-fonts-emoji \
ttf-nerd-fonts-symbols-mono \
sway \
swaylock \
swayidle \
swaybg \
slurp \
grim \
rbw \
rofi \
rofi-rbw \
python-systemd \
python-i3ipc \
rmpc \
neovim \
mpv \
mpc \
mpd \
mpd-mpris \
playerctl \
xorg-xwayland \
xdg-utils \
xdg-desktop-portal-gtk \
xdg-desktop-portal-wlr \
xorg-xwayland \
xorg-xrandr \
polkit \
ly \
jq \
git \
qt6ct \
fzf \
foot \
dunst \
uwsm \
mc \
imv
yay -S \
swaddle \
clipvault \
pinentry-rofi
Деплой
ln -s ./.zsh ~/.config/.zsh
ln -s ./.zshrc ~/.zshrc
ln -s ./dunst ~/.config/dunst
ln -s ./foot ~/.config/foot
ln -s ./uwsm ~/.config/uwsm
ln -s ./systemd/user/* ~/.config/systemd/user/
ln -s ./sway ~/.config/sway
ln -s ./swaylock ~/.config/swaylock
ln -s ./swaddle ~/.config/swaddle
ln -s ./rofi ~/.config/rofi
ln -s ./rmpc ~/.config/rmpc
ln -s ./nvim ~/.config/nvim
ln -s ./mpv ~/.config/mpv
ln -s ./mpd ~/.config/mpd
mkdir -p ~/.zsh/plugins
git clone https://github.com/Aloxaf/fzf-tab ~/.zsh/plugins/fzf-tab
git clone https://github.com/lincheney/fzf-tab-completion ~/.zsh/plugins/fzf-tab-completion
chsh -s /usr/bin/zsh
sudo cp ./other/sway-uwsm.desktop /usr/share/wayland-sessions/
sudo cp ./other/ly.ini /etc/ly/config.ini
mkdir -p ~/.local/bin/
ln -s ./other/pinentry-rofi-wrapper ~/.local/bin/pinentry-rofi-wrapper
rbw config set email $email
rbw config set base_url $url
rbw config set pinentry $pinentry_rofi_wrapper
Скриншоты
Languages
Python
48.1%
Shell
19%
Lua
18.9%
CSS
14%



