167 lines
7.0 KiB
Markdown
167 lines
7.0 KiB
Markdown
# 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 \
|
||
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 \
|
||
imv \
|
||
waybar
|
||
```
|
||
|
||
```bash
|
||
yay -S \
|
||
swaddle \
|
||
clipvault-bin \
|
||
pinentry-rofi
|
||
```
|
||
|
||
## Деплой
|
||
|
||
```bash
|
||
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
|
||
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>
|
||
</p>
|