Initial commit: sway + uwsm desktop dotfiles
Nord-themed Wayland setup on sway (via uwsm), including: - sway/swayidle/swaylock/swaddle — WM, idle/lock/inhibit - waybar, rofi — bar and launcher - dunst — notifications - foot — terminal - zsh (+fzf, syntax highlighting, autosuggestions) — shell - mpd/rmpc/mpc, mpv — music and video - nvim — editor (lazy.nvim) - ly — login manager - rbw + pinentry-rofi wrapper — Bitwarden/Vaultwarden CLI - per-window-layout, clipvault — helper systemd services
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
# 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 \
|
||||
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
|
||||
```
|
||||
|
||||
```bash
|
||||
yay -S \
|
||||
swaddle \
|
||||
clipvault \
|
||||
pinentry-rofi
|
||||
```
|
||||
|
||||
## Деплой
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
```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 $pinentry_rofi_wrapper
|
||||
```
|
||||
|
||||
## Скриншоты
|
||||
|
||||
<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>
|
||||
Reference in New Issue
Block a user