Retrilz's Dotfiles
# Навигация
- [Установка](#установка)
- [Детальный обзор](#детальный-обзор)
- [Зависимости](#зависимости) - пакеты, необходимые для работы.
- [Hyprland](#hyprland) - оконный менеджер.
- [Бинды](#бинды) - все сочетания клавиш.
- [Иконки](#иконки) - пак иконок.
- [Курсор](#курсор) - тема курсора.
- [Шрифты](#шрифты) - установка шрифтов.
- [Hypridle](#hypridle) - поведение при бездействии.
- [Hyprlock](#hyprlock) - экран блокировки.
- [Waybar](#waybar) - wayland бар.
- [Rofi](#rofi) - запуск приложений, интерфейс для буфера обмена.
- [Wlogout](#wlogout) - меню выхода.
- [Nwg-look](#nwg-look) - настройка GTK.
- [Qt](#qt) - настройка Qt.
- [Терминал](#терминал) - настройка терминала.
- [Swaync](#swaync) - уведомления.
- [Waypaper](#waypaper) - GUI для простого управление обоями.
- [Обои](#обои) - коллекция обоев/фонов.
- [Emote](#emote) - меню выбора эмодзи.
- [Flameshot](#flameshot) - мощная утилита для скриншотов.
- [Fastfetch](#fastfetch) - похвастаться линуксом.
> [!WARNING]
> Мои конфиги не рассчитаны на универсальное применение и не автоматизированы на 100%, поэтому они могут потребовать ручной донастройки. Я не гарантирую корректную работу конфигов или программного обеспечения на вашей системе.
# Установка
> [!NOTE]
> Перед установкой у вас должен быть работающий Hyprland.
> [!IMPORTANT]
> Скрипт установки был протестирован только на **Arch Linux**.
0. Обновление системы:
```
sudo pacman -Syu
```
1. Запуск [скрипта установки](./Scripts/install.sh):
```
curl https://raw.githubusercontent.com/retrilzzy/dotfiles/refs/heads/main/Scripts/install.sh | bash
```
- Установит [необходимые пакеты](#зависимости).
- Клонирует этот репозиторий в `~/dotfiles`.
- Создаст резервную копию конфигов в `~/.config-backups/$date_time`.
- Применит новые конфиги из этого репозитория.
## После установки
Действия которые вы вероятно хотите сделать.
**Общее:**
- Добавить свои обои в `~/Pictures/Wallpapers`.
- Запустить `p10k configure` для настройки темы терминала.
- Убрать лишние для вас плагины Zsh в `~/.zshrc`:
```zsh
plugins=(...)
```
**ПК юзерам:**
- Отключить модуль `custom/backlight` Waybar в `~/.config/waybar/config.jsonc`.
## Восстановление резервной копии конфигов
```
~/dotfiles/Scripts/restore.sh
```
# Детальный обзор
## Зависимости
Здесь перечислены все пакеты, устанавливаемые скриптом [`install.sh`](./Scripts/install.sh).
Система и интерфейс
| Пакет | Описание |
| :--------- | :-------------------------------- |
| `hyprlock` | Экран блокировки |
| `hypridle` | Демон для управления бездействием |
| `hyprshot` | Утилита для создания скриншотов |
| `kitty` | Эмулятор терминала |
| `nwg-look` | Утилита для настройки GTK тем |
| `rofi` | Лаунчер приложений и меню |
| `swaync` | Центр уведомлений |
| `waybar` | Wayland бар |
| `waypaper` | Управление обоями |
| `wlogout` | Меню выхода из системы |
| `swww` | Демон обоев |
| `zsh` | Командная оболочка |
Утилиты и инструменты
| Пакет | Описание |
| :----------------------- | :------------------------------------ |
| `base-devel` | Инструменты разработки для сборок AUR |
| `brightnessctl` | Управление яркостью экрана |
| `cliphist` | Менеджер истории буфера обмена |
| `emote` | Выбор эмодзи |
| `fastfetch` | Просмотр информации о системе |
| `flameshot` | Утилита для создания скриншотов |
| `git` | Система контроля версий |
| `gpu-screen-recorder` | Запись экрана с ускорением GPU |
| `grim` | Утилита для скриншотов Wayland |
| `lsd` | Альтернатива `ls` с иконками |
| `nautilus` | Файловый менеджер |
| `network-manager-applet` | Апплет для управления сетью |
| `playerctl` | Управление медиаплеерами |
| `trash-cli` | Утилита корзины командной строки |
| `uwsm` | Менеджер сессий Wayland |
| `wl-clip-persist` | Сохранение содержимого буфера обмена |
| `wl-clipboard` | Утилиты буфера обмена Wayland |
| `yay` | AUR-хелпер |
Сеть, аудио и порталы
| Пакет | Описание |
| :---------------------------- | :------------------------------- |
| `bluez` | Стек Bluetooth |
| `blueman` | Менеджер Bluetooth |
| `networkmanager` | Менеджер сетевых подключений |
| `pipewire` | Аудио- и видеосервер |
| `pipewire-alsa` | Уровень совместимости ALSA |
| `pipewire-pulse` | Уровень совместимости PulseAudio |
| `polkit-gnome` | Агент аутентификации PolicyKit |
| `xdg-desktop-portal` | Служба портала рабочего стола |
| `xdg-desktop-portal-gnome` | Бэкенд портала GNOME |
| `xdg-desktop-portal-gtk` | Бэкенд портала GTK |
| `xdg-desktop-portal-hyprland` | Бэкенд портала Hyprland |
| `xdg-desktop-portal-wlr` | Бэкенд портала wlroots |
| `xdg-utils` | Утилиты интеграции XDG |
Внешний вид и темы
| Пакет | Описание |
| :---------------------------------- | :--------------------------------------------- |
| `adw-gtk-theme` | Тема Adwaita для GTK |
| `darkly-bin` | Темная тема Qt5/Qt6 |
| `frameworkintegration` | Фреймворк интеграции рабочего пространства KDE |
| `inter-font` | Семейство шрифтов Inter |
| `matugen-bin` | Генерация тем из обоев |
| `noto-fonts` | Семейство шрифтов Noto |
| `noto-fonts-cjk` | Шрифты Noto для языков CJK |
| `noto-fonts-emoji` | Шрифты Noto с эмодзи |
| `noto-fonts-extra` | Дополнительные шрифты Noto |
| `papirus-icon-theme` | Тема иконок Papirus |
| `qt5ct-kde` | Настройка тем Qt5 |
| `qt6ct-kde` | Настройка тем Qt6 |
| `rose-pine-cursor` | Тема курсора Rosé Pine |
| `rose-pine-hyprcursor` | Тема курсора Rosé Pine для Hyprland |
| `ttf-jetbrains-mono-nerd` | JetBrains Mono с Nerd-глифами |
| `ttf-meslo-nerd-font-powerlevel10k` | Шрифт Meslo Nerd для Powerlevel10k |
## Hyprland
Оконный менеджер (WM).
- [[Переемные окружения](./Configs/.config/hypr/hyprland/env.conf)]
- [[Автостарт](./Configs/.config/hypr/hyprland/exec.conf)]
- [[Конфигурация ввода](./Configs/.config/hypr/hyprland/input.conf)]
- [[Сочетания клавиш](./Configs/.config/hypr/hyprland/keybindings.conf)]
- [[Настройки внешнего вида](./Configs/.config/hypr/hyprland/looknfeel.conf)]
- [[Конфигурация мониторов](./Configs/.config/hypr/hyprland/monitors.conf)]
- [[Правила окон и рабочих столов](./Configs/.config/hypr/hyprland/rules.conf)]
## Бинды
Запуск приложений
| Клавиши | Действие |
| :------------------------------------------------- | :--------------------------------------- |
| Super + W | Терминал (Kitty) |
| Super + Shift + W | Терминал в плавающем режиме (float) |
| Super + R | Меню приложений (Rofi) |
| Super + O | Меню приложений с запуском через Oniux\* |
| Super + E | Файловый менеджер (Nautilus) |
| Super + C | Редактор кода (VSCodium\*) |
| Super + B | Браузер (Brave\*) |
| Super + K | Менеджер паролей (KeePassXC\*) |
| Super + V | Буфер обмена (Rofi + Cliphist) |
| Super + N | Центр уведомлений (SwayNC) |
| Super + Shift + E | Меню эмодзи (Emote) |
| Super + Shift + P | Выбор обоев (Rofi + Скрипт) |
\*Oniux - https://blog.torproject.org/introducing-oniux-tor-isolation-using-linux-namespaces/.
\*Oniux, VSCodium, Brave, KeePassXC - НЕ устанавливаются автоматически [скриптом установки](./Scripts/install.sh).
Взаимодействие с окнами
| Клавиши | Действие |
| :--------------------------------------------------------- | :------------------------------------------------ |
| Super + Q | Закрыть активное окно |
| F11 | Полный экран (fullscreen) |
| Super + A | Максимизировать активное окно |
| Super + F | Переключение окна в режим "плавающее" (float) |
| Super + Shift + A | Переключение на псевдоплиточный режим (pseudo) |
| Super + S | Закрепление окна поверх всех рабочих столов (pin) |
| Super + D | Переключение режима разделения окна |
| Alt + Tab | Переключение на следующее окно |
| Super + Стрелки | Перемещение фокуса между окнами |
| Super + Control + Стрелки | Изменение размера активного окна |
| Super + Shift + Стрелки | Перемещение окон |
| Super + ЛКМ | Перемещение окон мышью |
| Super + ПКМ | Изменение размера окон мышью |
Рабочие пространства (столы)
| Клавиши | Действие |
| :----------------------------------------------------- | :--------------------------------------------------- |
| Super + [0-9] | Переключение между рабочими пространствами с 1 по 10 |
| Super + Shift + [0-9] | Перемещение окна в рабочее пространство с 1 по 10 |
| Super + Tab | Переключение на специальное рабочее пространство |
| Super + Shift + Tab | Перемещение окна в специальное рабочее пространство |
Управление экраном/питанием
| Клавиши | Действие |
| :----------------------------------------------- | :--------------------------------------------- |
| Super + L | Заблокировать экран |
| Super + Alt + D | Включить/выключить дисплей |
| Super + Alt + S | Заблокировать экран и перевести в спящий режим |
Скриншоты
| Клавиши | Действие |
| :------------------------------------------------- | :--------------------------------------------------------------- |
| Print | Скриншот всего экрана |
| Shift + Print | Скриншот выделенной области |
| Super + Shift + F | Flameshot GUI (утилита для скриншотов) |
| Super + Print | Скриншот и авто загрузка на [Zipline](https://zipline.diced.sh/) |
Остальное
| Клавиши | Действие |
| :------------------------------------------------- | :------------------------------------------------------------ |
| Super + Escape | Скрыть/показать Waybar |
| Super +Alt + P | Случайный фон + Генерация темы (matugen) |
| Super + Shift + R | Начать/остановить запись области экрана (gpu-screen-recorder) |
| Super + M | Включение/выключение микрофона |
| Super + Z | Увеличить масштаб курсора |
| Super + Колесико мыши | Увеличить/уменьшить масштаб курсора |
| Super + Shift + Z | Сбросить масштаб курсора |
## Иконки
https://github.com/PapirusDevelopmentTeam/papirus-icon-theme
```
sudo pacman -S papirus-icon-theme
```
## Курсор
https://github.com/rose-pine/cursor
https://github.com/ndom91/rose-pine-hyprcursor
```
yay -S rose-pine-cursor rose-pine-hyprcursor
```
## Шрифты
- [Noto](https://www.google.com/get/noto/) - поддержка всех языков + эмодзи + специальные символы:
```
sudo pacman -S noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
```
- [JetBrains Mono Nerd](https://www.jetbrains.com/lp/mono/) для VSCode и [Waybar](#waybar):
```
sudo pacman -S ttf-jetbrains-mono-nerd
```
- [Meslo Nerd](https://github.com/romkatv/powerlevel10k?tab=readme-ov-file#fonts) рекомендуемый шрифт для powerlevel10k ([Zsh тема](#терминал)):
```
yay -S ttf-meslo-nerd-font-powerlevel10k
```
- [Inter](https://rsms.me/inter/) необходимый шрифт для [Hyprlock](#hyprlock):
```
sudo pacman -S inter-font
```
## Hypridle
Поведение при бездействии. [[конфиг](./Configs/.config/hypr/hypridle.conf)]
https://wiki.hypr.land/Hypr-Ecosystem/hypridle |
https://github.com/hyprwm/hypridle
```
sudo pacman -S hypridle
```
| Действие | Таймаут |
| ----------------- | ------- |
| Снижение яркости | 10 мин. |
| Уведомление | 13 мин. |
| Блокировка сессии | 15 мин. |
| Выключение экрана | 16 мин. |
| Спящий режим | 18 мин. |
## Hyprlock
Экран блокировки. [[конфиг](./Configs/.config/hypr/hyprlock.conf)]
https://github.com/hyprwm/hyprlock
```
sudo pacman -S hyprlock
```
Скриншот

## Waybar
Wayland бар. [[конфиг](./Configs/.config/waybar/)]
https://github.com/Alexays/Waybar
```
sudo pacman -S waybar
```
Скриншот

## Rofi
Запуск приложений, интерфейс для буфера обмена. [[конфиг](./Configs/.config/rofi/)]
https://github.com/davatorium/rofi
https://github.com/lbonn/rofi
```
sudo pacman -S rofi wl-clipboard cliphist
```
Скриншот (Лаунчер приложений)

Скриншот (Буфер обмена)

## Wlogout
Меню выхода. [[конфиг](./Configs/.config/wlogout/)]
https://github.com/ArtsyMacaw/wlogout
```
yay -S wlogout
```
Скриншот

## Терминал
Эмулятор терминала - [Kitty](https://sw.kovidgoyal.net/kitty) [[конфиг](./Configs/.config/kitty/)]
Оболочка - [Zsh](https://www.zsh.org/) [[конфиг](./Configs/.zshrc)]
Расширение для Zsh - [Oh My Zsh](https://github.com/ohmyzsh/ohmyzsh)
Тема - [powerlevel10k](https://github.com/romkatv/powerlevel10k) [[конфиг](./Configs/.p10k.zsh)]
Бинды Kitty
Управление окнами и вкладками
| Клавиши | Действие |
| :---------------------------------------------- | :---------------------------------------- |
| Ctrl + A > X | Закрыть активное окно |
| Ctrl + Q | Закрыть окно kitty |
| Ctrl + A > ] | Следующее окно |
| Ctrl + A > [ | Предыдущее окно |
| Ctrl + A > . | Переместить окно вперед |
| Ctrl + A > , | Переместить окно назад |
| Ctrl + A > C | Создать новую вкладку в той же директории |
| Ctrl + A > 1-9 | Перейти на вкладку 1-9 |
| Ctrl + A > 0 | Перейти на вкладку 10 |
| Ctrl + A > , | Установить заголовок вкладки |
| F11 | Полноэкранный режим |
Разделение окон
| Клавиши | Действие |
| :---------------------------------------------------------------- | :---------------------------------------------- |
| Ctrl + Shift + T | Создать новое окно с горизонтальным разделением |
| Ctrl + A > - | Горизонтальное разделение в текущей директории |
| Ctrl + A > Shift + - | Горизонтальное разделение |
| Ctrl + A > \| | Вертикальное разделение в текущей директории |
| Ctrl + A > Shift + \| | Вертикальное разделение |
| F4 | Разделить окно |
| F7 | Повернуть расположение окон |
Перемещение и фокус
| Клавиши | Действие |
| :---------------------------------------------------------------------------- | :---------------------- |
| Shift + ↑ | Переместить окно вверх |
| Shift + ↓ | Переместить окно вниз |
| Shift + ← | Переместить окно влево |
| Shift + → | Переместить окно вправо |
| Alt + ↑ / Ctrl + A > K | Фокус на окно сверху |
| Alt + ↓ / Ctrl + A > J | Фокус на окно снизу |
| Alt + ← / Ctrl + A > H | Фокус на окно слева |
| Alt + → / Ctrl + A > L | Фокус на окно справа |
| Ctrl + A > Q | Фокус на видимое окно |
Изменение размера окон
| Клавиши | Действие |
| :-------------------------------------------- | :------------------------------ |
| Alt + N | Сделать окно уже |
| Alt + W | Сделать окно шире |
| Alt + U | Сделать окно выше |
| Alt + D | Сделать окно ниже |
| Ctrl + Home | Сбросить размер окна |
| Ctrl + A > Z | Приблизить/отдалить окно (zoom) |
Шрифт
| Клавиши | Действие |
| :-------------------------------------------------------------- | :---------------------- |
| Ctrl + = / Ctrl + + | Увеличить размер шрифта |
| Ctrl + - | Уменьшить размер шрифта |
| Ctrl + 0 | Сбросить размер шрифта |
Разное
| Клавиши | Действие |
| :--------------------------------------------------------------- | :--------------------------------------- |
| Ctrl + A > Shift + E | Редактировать kitty.conf в новой вкладке |
| Ctrl + A > Shift + R | Перезагрузить конфигурацию kitty |
| Ctrl + A > Shift + D | Отладка конфигурации |
| Ctrl + A > Space | Режим подсказок (hints) |
| F3 | Режим подсказок для всего |
| Ctrl + A > Ctrl + A | Отправить ^A (как в tmux) |
| Ctrl + A > T | Выбрать тему оформления |
| Ctrl + A > S | Сохранить сессию |
Скриншот

Установка Kitty и Zsh:
```
sudo pacman -S kitty zsh
```
Смена оболочки:
```
chsh -s $(which zsh)
```
Установка Oh My Zsh:
```
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
```
Установка темы powerlevel10k:
```
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
```
Установка плагинов для zsh через Oh My Zsh:
- [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting):
```
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
```
- [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions):
```
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
```
Установка [lsd](https://github.com/lsd-rs/lsd) (замена ls):
```
sudo pacman -S lsd
```
## Nwg-look
Настройка GTK. [[конфиг](./Configs/.config/nwg-look/)]
https://github.com/nwg-piotr/nwg-look
https://github.com/lassekongo83/adw-gtk3
```
sudo pacman -S nwg-look adw-gtk-theme
```
```
gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark' && gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
```
## Qt
Настройка Qt6. [[конфиг](./Configs/.config/qt6ct/)]
Настройка Qt5. [[конфиг](./Configs/.config/qt5ct/)]
https://aur.archlinux.org/packages/qt6ct-kde
https://aur.archlinux.org/packages/qt5ct-kde
https://github.com/Bali10050/Darkly
```
yay -S qt6cd-kde qt5ct-kde darkly-qt5-git darkly-qt6-git
```
## SwayNC
Уведомления. [[конфиг](./Configs/.config/swaync/)]
https://github.com/ErikReider/SwayNotificationCenter
```
sudo pacman -S swaync
```
Скриншоты


## Waypaper
GUI для простого управление обоями.
https://github.com/anufrievroman/waypaper
```
yay -S waypaper
```
Для статичных изображений и gif (необходим):
```
sudo pacman -S swww
```
Для видео (опционально):
```
yay -S mpvpaper
```
### Обои
- [Монохром](https://share.rzx.ovh/folder/cm8q1lxwp000mln01qsqbpb7f)
- Возможно будут еще...
## Emote
Выбор эмодзи.
https://github.com/tom-james-watson/Emote
```
yay -S emote
```
## Flameshot
Мощная утилита для скриншотов. [[конфиг](./Configs/.config/flameshot/)]
https://flameshot.org
```
sudo pacman -S flameshot
```
Скриншот

## Fastfetch
Похвастаться линуксом [[конфиг](./Configs/.config/fastfetch/)]
https://github.com/fastfetch-cli/fastfetch
```
sudo pacman -S fastfetch
```
Скриншот
