Files
dotfiles-sway/README.md
T

167 lines
7.0 KiB
Markdown
Raw Normal View History

# 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)|
## Зависимости
```bash
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 \
2026-08-12 01:54:25 +04:00
wtype \
python-systemd \
python-i3ipc \
rmpc \
neovim \
mpv \
mpc \
mpd \
mpd-mpris \
playerctl \
xdg-utils \
xdg-desktop-portal-gtk \
xdg-desktop-portal-wlr \
xorg-xwayland \
xorg-xrandr \
polkit \
ly \
jq \
git \
qt6ct \
fzf \
foot \
dunst \
uwsm \
mc \
2026-08-12 01:54:25 +04:00
imv \
waybar
```
```bash
yay -S \
swaddle \
2026-08-12 01:54:25 +04:00
clipvault-bin \
pinentry-rofi
```
## Деплой
```bash
2026-08-12 01:54:25 +04:00
git clone https://gitea.oyacoi.ru/pyrschtjag/dotfiles-sway ~/Documents/.dotfiles-sway
```
```bash
ln -s ~/Documents/.dotfiles-sway/.zsh ~/.config/.zsh
ln -s ~/Documents/.dotfiles-sway/.zshrc ~/.zshrc
ln -s ~/Documents/.dotfiles-sway/dunst ~/.config/dunst
ln -s ~/Documents/.dotfiles-sway/foot ~/.config/foot
ln -s ~/Documents/.dotfiles-sway/uwsm ~/.config/uwsm
ln -s ~/Documents/.dotfiles-sway/systemd/user/* ~/.config/systemd/user/
ln -s ~/Documents/.dotfiles-sway/sway ~/.config/sway
ln -s ~/Documents/.dotfiles-sway/swaylock ~/.config/swaylock
ln -s ~/Documents/.dotfiles-sway/swaddle ~/.config/swaddle
ln -s ~/Documents/.dotfiles-sway/rofi ~/.config/rofi
ln -s ~/Documents/.dotfiles-sway/rmpc ~/.config/rmpc
ln -s ~/Documents/.dotfiles-sway/nvim ~/.config/nvim
ln -s ~/Documents/.dotfiles-sway/mpv ~/.config/mpv
ln -s ~/Documents/.dotfiles-sway/mpd ~/.config/mpd
```
```bash
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
```
```bash
chsh -s /usr/bin/zsh
```
```bash
sudo cp ./other/sway-uwsm.desktop /usr/share/wayland-sessions/
sudo cp ./other/ly.ini /etc/ly/config.ini
```
```bash
mkdir -p ~/.local/bin/
ln -s ./other/pinentry-rofi-wrapper ~/.local/bin/pinentry-rofi-wrapper
```
```bash
rbw config set email $email
rbw config set base_url $url
2026-08-12 01:54:25 +04:00
rbw config set pinentry ~/.local/bin/pinentry-rofi-wrapper
```
```bash
systemctl --user enable --now clipvault
systemctl --user enable --now gtk-settings
systemctl --user enable --now per-window-layout
systemctl --user enable --now swaddle
systemctl --user enable --now swayidle
```
## Скриншоты
<p align="center">
<img src="./assets/photo_2026-08-11_08-01-47.jpg" alt="waybar/rofi/dunst" width="800">
<br>
<sub>waybar / rofi / dunst</sub>
</p>
<p align="center">
<img src="./assets/photo_2026-08-11_08-01-57.jpg" alt="rmpc" width="800">
<br>
<sub>rmpc</sub>
</p>
<p align="center">
<img src="./assets/photo_2026-08-11_08-02-00.jpg" alt="nvim" width="800">
<br>
<sub>nvim</sub>
</p>
<p align="center">
<img src="./assets/photo_2026-08-11_08-02-03.jpg" alt="zsh/fzf" width="800">
<br>
<sub>zsh / fzf</sub>
2026-08-12 01:54:25 +04:00
</p>