Files
2026-08-12 01:54:25 +04:00

167 lines
7.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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>