572 lines
51 KiB
Markdown
572 lines
51 KiB
Markdown
## Навигация
|
||
|
||
- [Бинды](#бинды)
|
||
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
||
- [Проблемы](#проблемы)
|
||
- [TODO](#todo)
|
||
- [Описание](#описание)
|
||
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
|
||
- [Настройки для игр](#настройки-для-игр)
|
||
- [MangeHud](#mangohud)
|
||
- [gamemode](#gamemode)
|
||
- [gamescope](#gamescope)
|
||
- [Параметры запуска Steam](#параметры-запуска-steam)
|
||
- [Настройки мониторов](#настройка-мониторов)
|
||
- [Системная тема на всех вебсайтах](#системная-тема-на-всех-вебсайтах)
|
||
- [Мини гайд по NixOS](#мини-гайд-по-nixos)
|
||
- [Процесс установки](#процесс-установки)
|
||
- [Первый способ](#первый-способ)
|
||
- [Второй способ](#второй-способ)
|
||
- [После установки надо](#после-установки-надо)
|
||
- [Изменения для виртуалок](#изменения-для-виртуалок)
|
||
- [Иконки](#иконки)
|
||
- [Темы](#темы)
|
||
|
||
|
||
## Бинды
|
||
|
||
Клавиша `Super` это клавиша `Win`
|
||
|
||
| Bspwm | Описание | Работает? |
|
||
| --------------------------------- | ------------------------------------------------------------------------------------------- | --------- |
|
||
| `Super + L` | Lock screen | Да |
|
||
| `Super + Q` | Quit. Выключить приложение | Да |
|
||
| `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его | Да |
|
||
| `Super + F` | Floating toggle | Да |
|
||
| `Super + Shift + F` | Tiled toggle | Да |
|
||
| `Super + Enter` | Fullscreen toggle | Да |
|
||
| `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора | Да |
|
||
| `Super + ЛКМ` | Переместить окно | Да |
|
||
| `Super + ПКМ` | Ресайзить окно | Да |
|
||
| `Super + Arrows` | Менять фокус приложения в указанном направлении | Да |
|
||
| `Super + 0-9` | Переключить воркспейс на 1-10. Если они общие на все моники, то добавить F1-F12 для 11-22 | Да |
|
||
| `Super + Shift + 0-9` | Перекинуть активное окно на воркспейс. Желательно silent, чтоб меня не перекидывало к проге | Да |
|
||
| `Super + Ctrl + Down` | Переключает на первый пустой воркспейс | Да |
|
||
| `Super + Ctrl + Left/Right` | Переключает на предыдущий/следующий воркспейс. Тоесть делает -1 или +1 от текущего | Да |
|
||
| `Super + Ctrl + Alt + Down` | Свапает активное окно с самым большим на экране |хз|
|
||
| `Super + Ctrl + Alt + Left/Right` | Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним | Да |
|
||
| `Super + Alt + Arrows` | Move floating window | Да |
|
||
| `Super + Shift + Arrows` | Resize window на 30 пикселей в указанном направлении наружу | Да |
|
||
| `Super + Shift + Alt + Arrows` | Resize window на 30 пикселей в указанном направлении внутрь | Да |
|
||
| `Super + Shift + Ctrl + Arrows` | Перемещает активное окно в указанном направлении | Криво |
|
||
| `Super + S` | Split toggle. Меняет позиционирование с горизонтального на вертикальный и обратно. | Не понял |
|
||
| `Super + Ctrl + Shift + R` | Make sxhkd reload its config files | Да |
|
||
| `Super + Alt + Ctrn + Shift + R` | Restart bspwm | Да |
|
||
| `Super + Alt + Ctrn + Shift + Q` | Quit bspwm | Да |
|
||
|
||
| Rofi | Описание | Работает? |
|
||
| ------------------- | ---------------------------------------------------------------------------------------------- | --------- |
|
||
| `Super + A` | Applications. Запускатор софта | Да |
|
||
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да |
|
||
| `Super + P` | Passwords. Пароли из утилиты pass | Да |
|
||
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. | Да |
|
||
| `Super + Backspace` | PowerMenu. Выключение пк | Да |
|
||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет | Да |
|
||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |нет|
|
||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |нет|
|
||
|
||
| Applications | Описание | Работает? |
|
||
| -------------------------- | ----------------------------------------- | --------- |
|
||
| `Super + B` | Browser LibreWolf. Основа | Да |
|
||
| `Super + Shift + B` | Browser Firefox. Паблик активность | Да |
|
||
| `Super + Shift + Ctrl + B` | Browser Chromium. Пусть будет | Да |
|
||
| `Super + E` | Explorer. Thunar file manager | Да |
|
||
| `Super + I` | IDE, text editor, NeoVim | Да |
|
||
| `Super + M` | Monitor of resources (btop) | Да |
|
||
| `Super + G` | Goals. Todo manager. Task tracker | Да |
|
||
| `Super + Shift + C` | Color picker. Получить hex в буфер обмена | Да |
|
||
| `Super + Ctrl + C` | Color picker. Получить rgb в буфер обмена | Да |
|
||
|
||
| Terminal | Описание | Работает? |
|
||
| -------------------------- | ---------------------------------------------------------------------------- | --------- |
|
||
| `Super + T` | Terminal основной | Да |
|
||
| `Super + Shift + T` | Floating Terminal основной в центре экрана с размерами треть на треть экрана | Да |
|
||
| `Super + Ctrl + T` | Terminal запасной | Да |
|
||
| `Super + Shift + Ctrl + T` | Floating Terminal запасной в центре экрана с размерами треть на треть экрана | Да |
|
||
|
||
| Колдунские кнопки | Описание | Работает? |
|
||
| ----------------------- | ---------------------- | --------- |
|
||
| `XF86AudioMute` | Toggle audio mute |хз|
|
||
| `XF86AudioMicMute` | Toggle microphone mute |хз|
|
||
| `XF86AudioLowerVolume` | Decrease volume | Да |
|
||
| `XF86AudioRaiseVolume` | Increase volume | Да |
|
||
| `XF86AudioPlay` | Play/pause |хз|
|
||
| `XF86AudioPause` | Play/pause |хз|
|
||
| `XF86AudioNext` | Next track |хз|
|
||
| `XF86AudioPrev` | Previous track |хз|
|
||
| `XF86MonBrightnessUp` | Increase brightness |хз|
|
||
| `XF86MonBrightnessDown` | Decrease brightness |хз|
|
||
|
||
| Not sxhkd | Описание | Работает? |
|
||
| --------------- | ---------------------- | --------- |
|
||
| `Print` | Выделить область | Да |
|
||
| `Print + Alt` | Все мониторы целиком | Да |
|
||
| `Print + Ctrl` | Активный монитор | Да |
|
||
| `Print + Shift` | Активное окно | Да |
|
||
| `CapsLock` | Switch keyboard layout | Да |
|
||
|
||
Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.
|
||
|
||
## Другие README файлы в этих дотсах
|
||
|
||
- [Копия man page для bspwm с доп инфой](./modules/home-manager/wm/bspwm/bspwm.md)
|
||
- [Описание плагинов для mpv](./modules/home-manager/mpv/README.md)
|
||
- [NeoVim config](./nvim/README.md)
|
||
|
||
## Проблемы
|
||
|
||
- Некоторые симлинки, созданные через home-manager, могут быть перезаписаны другим софтом, удалив мои настройки
|
||
- `Mimetypes` удаляют симлинк. Поэтому я сделал отдельный файл в каталоге `shit` и буду копировать готовый файл целиком в нужный каталог
|
||
- Не работает TUN мод во всех xray/singbox клиентах. Например nekoray пишет, что не удалось `setcap` при вводе пароля. Испробовал все доступные методы подключения, даже голый `singbox` через сервис никса. У меня просто пропадает инет в системе после конекта. Сейчас единственный рабочий метод, это скачать appimage nekoray с гитхаба, обязательно именно версии `3.26`, иначе не заработает, и запустить через sudo. И в настройках tun надо обязательно выключить `strick route`. Обычно я с ним сидел, но тут с ним проблемы и не работает ничего.
|
||
- `Gitui` выёбывается. Не может запушить, ошибка ssh появляется
|
||
- `Thunar` удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы
|
||
- `Thunar` крашится при работе с более чем одним окном. Не всегда, но в самый не нужный момент. А `dolphin` тянет 10 терабайт гей порно в зависимости и выводит blowjob по среди экрана, так что я рот ебал. Хз даже что делать. Все файловый менеджеры гавно ебаное
|
||
- `Thunar` криво показывает превью видео. Это ебло дырявое генерит рандом кадр из видео в качестве превью. Ебантропы не могут взять данные из метаданных, куда все закидывают реальное превью. Они считают, что лучше генерить превью каждый ёбаный раз, чем взять уже готовое
|
||
- `polybar` и `bspwm` создали пидарасы ебаные бездарные. Одни ломают floating окна и не умеют нормально отображать все символы без ручного указания двух сотен шрифтов, другие не имеют документации и не могут нормально реализовать слои в wm. Ебланы блять. Все floating окна находятся под tiling окнами при запуске ебаного гей бара. Ебантропы не могут даже элементарную работу слоёв реализовать нормально. И эти два куска дерьма называют лучшими wm и status bar? Та нахуй они кому нужны с такими далбаёбами на разрабах. Иногда даже фулскрин находится под флоатингом, а флоатинг под тилингом. Ёбаный олигофрен создал этот bspwm
|
||
|
||
Мелочи
|
||
- Пароли через rofi выдают меню ввода пароля от qt, но оно имеет светлую тему. Ебал рот делать темы для qt, вечно всё через пизду работает
|
||
- В терминале ssh-agent палит мою почту. Но мб это только при первом запуске терминала
|
||
- В btop не работает статистика gpu. Установка зависимостей не помогла
|
||
- Не работает `git push` в `gitui`. Мб надо переподключить репу. Дело не в `ssh-agent`, его я исправил
|
||
- Не работает нечёткий поиск по истории комманд в терминале, если написать что-то и жать стрелку вверх
|
||
|
||
### Ребилд крашит систему
|
||
|
||
Эта проблема была раньше. Сейчас исправлена. Но заметку оставлю, вдруг пригодится в будущем
|
||
|
||
Ребилд системы через `switch` или `test` кладёт нахуй систему. Чёрный экран без возможности переключить tty через `ctrl + alt + F1-F7`. Можно юзать `boot`, чтоб после ребута пк применялось. Тогда не крашит и после ребута всё работает.
|
||
|
||
#### Потенциальный способ исправить проблему
|
||
|
||
Есть следующие два параметра:
|
||
- `systemd.services.<name>.restartIfChanged`
|
||
- `systemd.user.services.<name>.restartIfChanged`
|
||
|
||
Они указывают надо ли ребутать указанный сервис при ребилде системы. Мб надо туда что-то указать и сделать false
|
||
|
||
Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде.
|
||
|
||
#### Реальный способ исправить проблему
|
||
|
||
Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально
|
||
|
||
## TODO
|
||
|
||
Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT.
|
||
|
||
Надо сделать Nekoray нормально. Пока что только путь пидараса есть. Запускаешь `sudo ~/Downloads/VPN/nekoray-3.26-2023-12-09-linux-x64.AppImage`. В некобоксе офаешь у тян мода стрик роут. Систем тан. В меню жмёшь перезапустить прогу, она отлипла от терминала, перетащил на 10 воркспейс и сижу хуй сосу, ибо меня сайты в пермак кидают за такую хуйню
|
||
|
||
Надо добавить в polybar отображение:
|
||
- Заряд аккума. Сейчас проверить негде. Мб взять готовый вариант [тут](https://github.com/Zproger/bspwm-dotfiles/blob/main/config/polybar/modules.ini#L148)
|
||
- Яркость экрана. Тоже ноуты. Хз надо ли
|
||
- Температура и нагрузка на гп
|
||
- Температура цп
|
||
- Блютуз. Не знаю отображается ли он сейчас. Не могу проверить, негде
|
||
|
||
Установить и настроить:
|
||
- i3 с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
||
- Sway. Мб сделать через ags
|
||
|
||
## Описание
|
||
|
||
Железо, на котором это работает:
|
||
- CPU: i7 9700
|
||
- GPU: AMD RX6700XT
|
||
- RAM: 32gb (2x16) ddr4 3200
|
||
- Два монитора 2560x1440 на 144 герц
|
||
|
||
Основной набор софта
|
||
|
||
Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я перееду на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то wm надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix`
|
||
|
||
| Software | Name |
|
||
| ------------ | -------------------------------- |
|
||
| WM | bspwm/i3 |
|
||
| Hotkeys | sxhkd/i3 |
|
||
| Terminal | Alacritty, Kitty |
|
||
| Multiplexer | Zellij |
|
||
| Shell | oh-my-zsh with many plugins |
|
||
| Shell Prompt | Starship |
|
||
| Apps/Menus | Rofi |
|
||
| Bar | Polybar/i3bar |
|
||
| ScreenLock | betterlockscreen/i3lock |
|
||
| Notification | Dunst |
|
||
| Files | Thunar, Ranger |
|
||
| Images | imv, qView, feh |
|
||
| Video | mpv with plugins |
|
||
| Music | Strawberry, Picard, Mousai, spek |
|
||
| Browsers | Librewolf, Firefox, Chromium |
|
||
| Social | Discord, Telegram, Steam |
|
||
| Audio | PipeWire, pavucontrol |
|
||
| Color Theme | Gruvbox Dark Medium |
|
||
| Icons | Gruvbox Plus Dark |
|
||
| DM | LightDM |
|
||
| Compositor | Нет. Мб будет стоковый picom |
|
||
| Screenshare | OBS, Screenkey, ksnip |
|
||
| Video Editor | Blender |
|
||
| Fetch | fastfetch |
|
||
| Torrent | qBittorrent |
|
||
| Email client | Thunderbird |
|
||
| Color picker | xcolor, gcolor3 |
|
||
| Docs/eBook | Evince, LibreOffice, Calibre |
|
||
| Design | Gimp, Krita |
|
||
| Productivity | Obsidian, Planify |
|
||
|
||
Чтоб узнать sha256 для гитхаб репы, пишем в терминал эту команду:
|
||
```sh
|
||
nix-prefetch-git link
|
||
```
|
||
|
||
Если хочется поменять цвета или шрифты в конфиге какой-то программы, но при ребилде получается конфликт, то дело в Stylix, который управляет системной темой и сам везде ставит шрифты и цвета. Если хочется заменить, не трогая stylix, то надо добавить `lib.mkForce` перед значением. Например так:
|
||
```nix
|
||
font = lib.mkForce "JetBrainsMono Nerd Font 11";
|
||
```
|
||
|
||
Узнать localhost виртуалки, чтоб конектиться по ssh:
|
||
```sh
|
||
ip a
|
||
```
|
||
|
||
В бутменю биоса надо ставить не ссд диск, а `nixos boot`. У меня иначе не работало
|
||
|
||
## Нюансы с JetBrains Toolbox
|
||
|
||
В стоке тулбокс может всегда разлогинивать. Я не проверял, сразу сделал как просили на вики, чтоб это исправить.
|
||
|
||
Надо скачать тулбокс (уже стоит), запустить его один раз, а потом:
|
||
- Изменить `~/.local/share/JetBrains/Toolbox/.storage.json` и добавить строку `"preferredKeychain": "linux-fallback"` (у меня было в стоке)
|
||
- Залогиниться как обычно, но остановиться после того, как JetBrains вебсайт откроется
|
||
- Перезапустить JetBrains Toolbox, открыть настройки и нажать `"Troubleshoot..."`
|
||
- Следуй инструкциям по ручному входу в систему, как указано в руководстве
|
||
|
||
После выполнения этих действий JetBrains Toolbox сохранит учетные данные пользователя в зашифрованном файле (со статическим ключом) по адресу `~/.local/share/JetBrains/Toolbox/.securestorage`. Если этого не сделать, JetBrains Toolbox не сможет получить учетные данные через `libsecret` (из-за bwrap sandboxing?) и постоянно уведомляет пользователя о необходимости повторной авторизации.
|
||
|
||
Если что-то не работает, то мб помогут эти ссылки:
|
||
- https://nixos.wiki/wiki/Jetbrains_Tools
|
||
- https://github.com/NixOS/nixpkgs/issues/240444
|
||
|
||
## Настройки для игр
|
||
|
||
Я установил `MangoHud`, `gamemode` и `gamescope`. Ещё есть `proton-ge` в steam. Всё это можно по разному комбинировать между собой.
|
||
|
||
### MangoHud
|
||
|
||
Мониторинг ресурсов для vulkan и opengl приложений. Показывает fps и нагрузку на пк, включая температуры цп и гп. Можно использовать как полноценные бенчмарки, логируя всю его инфу и визуализируя данные другой утилитой. Чтоб использовать, надо написать `mangehud приложение`, если запускать через терминал, или `mangohud %command%`, если использовать через steam. Если используется вместе с `gamescope`, то надо писать `gamescope --mangoapp`.
|
||
|
||
### gamemode
|
||
|
||
Оптимизатор линукса для игр
|
||
|
||
### gamescope
|
||
|
||
SteamOS session compositing window manager. Можно назвать мини wm внутри wm (хотя можно и в tty запустить, без стороннего wm). Не совсем понимаю когда его надо использовать. Иногда, если у игры есть проблемы с обычным linux, то она может нормально запускаться через `gamescope`
|
||
|
||
### Параметры запуска Steam
|
||
|
||
Если в параметры запуска захочется добавить что-то помимо того, что я напишу, то надо учитывать порядок написания. Как я понял, если надо используется переменная, то её надо писать в начале. Например, если в игре не работает печать на русском языке, то надо в начало добавить `LC_ALL="ru_RU.UTF-8"`. Если же речь про стандартные параметры запуска стима, по типу `-dev` или `-novid`, то их надо писать после `%command%`. Слово `%command%` скорее всего является игрой, тоесть команда для запуска игры. Тоесть синтаксис как в обычном терминале. Сначала переменные окружения, потом команда, потом параметры запуска через `-параметр`.
|
||
|
||
Параметры запуска для игр, чтоб использовать все доступные бафы, что я сделал:
|
||
Параметр запуска без использования gamescope - `mangohud gamemoderun %command%`.
|
||
Параметр запуска с использованием gamescop `gamescope --mangoapp gamemoderun %command%`.
|
||
|
||
Вот пример параметров запуска для Apex Legends: `mangohud gamemoderun %command% +exec autoexec.cfg -dev`
|
||
|
||
FSR в `proton-ge` включается только в фулскрине через `WINE_FULLSCREEN_FSR=1`. Регулировать резкость можно через переменную окружения `WINE_FULLSCREEN_FSR_STRENGTH=N`, где N - это уровень резкости изображения от 0 до 5. Чем выше значение, тем меньше резкость. По умолчанию установлено значение "2", рекомендуют использовать значение "3".
|
||
|
||
## Настройка мониторов
|
||
|
||
На иксах второй монитор может не работать или все мониторы могут сидеть на 60 герц. Изменить это один раз недостаточно, после ребута сбросится. Не знаю нормального способа, кроме как добавить настройки в автозапуск. Ниже пример того, как произвести начальную настройкy:
|
||
|
||
```sh
|
||
# Увидеть список мониторов
|
||
xrandr
|
||
# Изменить настройки для основного монитора. Мб вместе с --primary для основного монитора
|
||
xrandr --output DisplayPort-2 --mode 2560x1440 --rate 144 --primary
|
||
# Изменить настройки для второго (правого) монитора
|
||
xrandr --output DisplayPort-0 --mode 2560x1440 --rate 144 --left-of DisplayPort-2
|
||
```
|
||
|
||
Есть ещё такая штука - https://github.com/phillipberndt/autorandr . Но мне лень с ней разбираться
|
||
|
||
|
||
## Системная тема на всех вебсайтах
|
||
|
||
Если используется популярная системная тема, то, скорее всего, её можно выбрать в браузерном расширении DarkReader, чтоб все сайты в интернете выглядели как системная тема. Может быть я потом займусь синхронизацией темы stylix с настройками DarkReader
|
||
|
||
## Мини гайд по NixOS
|
||
|
||
- Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
|
||
- Нюансы работы NixOS в [этом](https://www.youtube.com/watch?v=7f19R8BWUnU&t=960s) видео. Мне понравилось
|
||
- [Плейлист](https://www.youtube.com/playlist?list=PLko9chwSoP-15ZtZxu64k_CuTzXrFpxPE) с английскими видео. Мне больше всего понравились видео под номерами [16](https://youtu.be/a67Sv4Mbxmc), [18](https://youtu.be/b641h63lqy0), [21](https://youtu.be/rEovNpg7J0M), [27](https://youtu.be/ljHkWgBaQWU) и [28](https://youtu.be/JCeYq72Sko0).
|
||
- Пакеты искать [тут](https://search.nixos.org/packages). Параметры для сток NixOS [тут](https://search.nixos.org/options). Параметры для home-manager [тут](https://home-manager-options.extranix.com/?query=&release=master). Для моих конфигов надо обязательно искать в unstable ветке, ибо параметры могут отличаться.
|
||
- Для системной темы тут используется stylix. Все его параметры можно найти [тут](https://stylix.danth.me/options/nixos.html).
|
||
|
||
## Процесс установки
|
||
|
||
Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик. При установке выбираем минимальный вариант, без DE.
|
||
|
||
Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишем следующее:
|
||
|
||
```sh
|
||
sudo nano /etc/nixos/configuration.nix
|
||
```
|
||
|
||
Я добавил туда `nix.settings.experimental-features = [ "nix-command" "flakes" ];` сразу после настроек `boot`. Ниже, почти в самом конце, в `environment.systemPackages = with pkgs;` я добавил пакеты `wget, git, curl`. В итоге получился такой конфиг (написал лишь его часть):
|
||
|
||
```nix
|
||
{
|
||
# Bootloader.
|
||
boot.loader.systemd-boot.enable = true;
|
||
boot.loader.efi.canTouchEfiVariables = true;
|
||
|
||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||
|
||
# List packages installed in system profile. To search, run:
|
||
# $ nix search wget
|
||
environment.systemPackages = with pkgs; [
|
||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||
wget
|
||
git
|
||
curl
|
||
fastfetch
|
||
];
|
||
}
|
||
```
|
||
|
||
После этого сохраняем и пишем в терминале это:
|
||
|
||
```sh
|
||
sudo nixos-rebuild switch
|
||
```
|
||
|
||
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой (либо можно сделать гит клон и через nano внести изменения для первых трёх пунктов, остальное менять на готовой системе):
|
||
|
||
- Переменную `username` в `nixos/configuration.nix`.
|
||
- `username` и `homeDirectory` в `nixos/home.nix`.
|
||
- `userName` и `userEmail` в `modules/home-manager/terminal/git.nix`.
|
||
|
||
А это можно донастроить уже в готовой системе
|
||
- Путь до `home` в `shit/qt5ct/qt5ct.conf` и `shit/qt6ct/qt6ct.conf`.
|
||
- Параметры мониторов закомментированы в файле `modules/home-manager/wm/bspwm/bspwm.nix`. Можно указать по желанию. Команда xrandr покажет доступные значения и имена мониторов.
|
||
- Если видеокарта от amd, то, чтоб не было тиринга, надо раскомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`.
|
||
- Если надо задать симлинки, то для этого есть файл `modules/home-manager/symlinks.nix`. Там сейчас мои симлинки, их лучше удалить. Чтоб файл заработал, надо раскомментировать `./symlinks.nix` в файле `modules/home-manager/bundle.nix`.
|
||
- Если надо монтировать другие диски, то для этого есть файл `modules/nixos/filesystems.nix`. Там сейчас мой второй ссд. Чтоб файл заработал, надо раскомментировать `./filesystems.nix` в файле `modules/nixos/bundle.nix`.
|
||
- Если нужна гибернация, то её можно настроить в `modules/nixos/hibernate.nix`. Там надо указать uuid и офсет для swap файла. Чтоб файл заработал, надо раскомментировать `./hibernate.nix` в файле `modules/nixos/bundle.nix`.
|
||
|
||
С гитом есть нюанс. Если захочешь потом создать свои конфиги или добавить новые файлы, на которые надо ссылаться из nix, то надо указывать либо полный путь до файла, либо добавлять файл в гит. Если указывать относительный путь, как сделано в моих `bundle.nix`, то все эти файлы должны находиться в гите, либо каталог дотсов должен быть без гита вовсе. Если в каталоге дотсов инициализирован репозиторий гита, то в относительных путях он не видит файлы из `gitignore` или просто не отслеживаемые гитом файлы.
|
||
|
||
### Первый способ
|
||
|
||
Установить систему одной командой (я написал пример для github, но сейчас мои дотсы есть лишь на forgejo, не знаю как с него использовать такой синтаксис):
|
||
```sh
|
||
sudo nixos-rebuild boot --flake github:Buliway/nixos-private-dots --impure
|
||
```
|
||
|
||
Чтоб использовать с репой forgejo, можно попробовать такой синтаксис `git@git.urec56.ru:urec/nixos_dots`.
|
||
|
||
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
|
||
|
||
### Второй способ
|
||
|
||
Клонировать репозиторий и ребилдить систему с указанием пути:
|
||
```sh
|
||
git clone https://git.urec56.ru/urec/nixos_dots
|
||
sudo nixos-rebuild boot --impure --flake ~/nixos_dots
|
||
```
|
||
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
|
||
|
||
## После установки надо
|
||
|
||
Это заметка для меня. Каждый ставит то, что ему надо
|
||
|
||
- Включить подкачку на 64 гига в `/etc/nixos/hardware-configuration.nix` через такой синтаксис:
|
||
```nix
|
||
swapDevices = [ {
|
||
device = "/swapfile";
|
||
size = 64*1024; # В мегабайтах
|
||
} ];
|
||
```
|
||
- Настроить гибренацию в `modules/nixos/hibernate.nix`
|
||
- Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
|
||
- Настроить приложения `Qt5 Settings`, `Qt6 Settings` и `Kvantum`. Там надо выбрать свою системную тему. Вроде всё интуитивно понятно будет. Можно попробовать обновить систему, в надежде, что системная тема `stylix` начнёт работать с приложениями `qt`. Для этого надо будет закомментить настройки `qt` в конфиге `stylix`.
|
||
- Руками настроить `thunar`, бинды для `ksnip`, `discord`, `telegram`, `steam` и `strawberry`
|
||
- Добавить gpg ключи
|
||
```sh
|
||
gpg --import /path/to/your-key.gpg
|
||
```
|
||
Если не работает, то смотришь список ключей. Копируешь ID нужного и используешь во второй команде.
|
||
```sh
|
||
gpg --list-keys
|
||
gpg --edit-key ID-ключа
|
||
```
|
||
В этом режиме надо написать trust и выбрать степень доверия. Например 5 для своих ключей можно задать, это прям самое максимально доверие. Потом Ctrl + D чтоб выйти.
|
||
|
||
## Изменения для виртуалок
|
||
|
||
Это надо, чтоб включить коннект по ssh к виртуалке и сделать с ней общий буфер обмена. Ну и ещё параметры экрана меняю на один 1080p монитор на 60 герц.
|
||
|
||
В файле `modules/nixos/virtualisation.nix` раскомментировать эти строки:
|
||
```diff
|
||
+ services = {
|
||
+ openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
|
||
+ spice-vdagentd.enable = true; # Clipboard sharing
|
||
+ qemuGuest = {
|
||
+ enable = true; # Fix resolution
|
||
+ package = pkgs.qemu_full;
|
||
+ };
|
||
+ };
|
||
```
|
||
В файле `modules/home-manager/wm/bspwm/bspwm.nix` изменить эти строки:
|
||
```diff
|
||
extraConfigEarly = ''
|
||
- xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165
|
||
- xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2
|
||
+ xrandr --output Virtual-1 --mode 1920x1080 --rate 60
|
||
'';
|
||
|
||
startupPrograms = [
|
||
- # "spice-vdagent" # Для виртуалки
|
||
+ "spice-vdagent" # Для виртуалки
|
||
];
|
||
```
|
||
|
||
## Запуск Waydroid на X11
|
||
|
||
Один раз написать в терминале `waydroid init`
|
||
|
||
- Запустить `weston`
|
||
- В его терминале написать `waydroid session start &`
|
||
- Потом `waydroid show-full-ui`
|
||
|
||
На weston всё работает сразу как надо. Но стоит изменить размеры окна, как waydroid ui пропадает. Приходится стопать и по новой запускать отображение
|
||
|
||
|
||
## Иконки
|
||
|
||
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
|
||
|
||
Соберу сюда список nerd иконок, которые могут пригодиться. Для их отображения нужен специальный шрифт
|
||
|
||
CPU (мб не юзать, а писать текстом и cpu и gpu) -
|
||
|
||
RAM -
|
||
|
||
CapsLock -
|
||
|
||
Клавиатура - или
|
||
|
||
Громкость -
|
||
|
||
Яркость -
|
||
|
||
Календарь -
|
||
|
||
Выключение пк - ⏻
|
||
|
||
Приложения -
|
||
|
||
Блютуз -
|
||
|
||
Network -
|
||
|
||
Clipboard -
|
||
|
||
Оповещения (bell) -
|
||
|
||
Reload -
|
||
|
||
|
||
Wifi
|
||
|
||
|
||
|
||
Батарейки
|
||
|
||
|
||
|
||
|
||
|
||
Батарейки зарядка
|
||
|
||
|
||
|
||
|
||
Батарейки блютуз
|
||
|
||
|
||
|
||
Температура
|
||
- Температура по цельсию
|
||
|
||
|
||
|
||
|
||
## Темы
|
||
|
||
У меня в vscode отображаются цвета. Так что я для себя сохраню разные варианты gruvbox
|
||
|
||
Цвет это имя цвета в stylix. Потом идёт название gruvbox-вариант
|
||
|
||
Я использую gruvbox-dark-medium
|
||
|
||
|Цвет |dark-hard|dark-medium|dark-pale|dark-soft|material-dark-hard|material-dark-medium|material-dark-soft|
|
||
|------|---------|-----------|---------|---------|------------------|--------------------|------------------|
|
||
|base00| #1d2021 | #282828 | #262626 | #32302f | #202020 | #292828 | #32302f |
|
||
|base01| #3c3836 | #3c3836 | #3a3a3a | #3c3836 | #2a2827 | #32302f | #3c3836 |
|
||
|base02| #504945 | #504945 | #4e4e4e | #504945 | #504945 | #504945 | #5a524c |
|
||
|base03| #665c54 | #665c54 | #8a8a8a | #665c54 | #5a524c | #665c54 | #7c6f64 |
|
||
|base04| #bdae93 | #bdae93 | #949494 | #bdae93 | #bdae93 | #bdae93 | #bdae93 |
|
||
|base05| #d5c4a1 | #d5c4a1 | #dab997 | #d5c4a1 | #ddc7a1 | #ddc7a1 | #ddc7a1 |
|
||
|base06| #ebdbb2 | #ebdbb2 | #d5c4a1 | #ebdbb2 | #ebdbb2 | #ebdbb2 | #ebdbb2 |
|
||
|base07| #fbf1c7 | #fbf1c7 | #ebdbb2 | #fbf1c7 | #fbf1c7 | #fbf1c7 | #fbf1c7 |
|
||
|base08| #fb4934 | #fb4934 | #d75f5f | #fb4934 | #ea6962 | #ea6962 | #ea6962 |
|
||
|base09| #fe8019 | #fe8019 | #ff8700 | #fe8019 | #e78a4e | #e78a4e | #e78a4e |
|
||
|base0A| #fabd2f | #fabd2f | #ffaf00 | #fabd2f | #d8a657 | #d8a657 | #d8a657 |
|
||
|base0B| #b8bb26 | #b8bb26 | #afaf00 | #b8bb26 | #a9b665 | #a9b665 | #a9b665 |
|
||
|base0C| #8ec07c | #8ec07c | #85ad85 | #8ec07c | #89b482 | #89b482 | #89b482 |
|
||
|base0D| #83a598 | #83a598 | #83adad | #83a598 | #7daea3 | #7daea3 | #7daea3 |
|
||
|base0E| #d3869b | #d3869b | #d485ad | #d3869b | #d3869b | #d3869b | #d3869b |
|
||
|base0F| #d65d0e | #d65d0e | #d65d0e | #d65d0e | #bd6f3e | #bd6f3e | #bd6f3e |
|
||
|
||
Сравнение цветов моей темы gruvbox с другими темами
|
||
|
||
|Цвет |gruvbox-d-m| onedark | nord |catppuccin-mocha|catppuccin-latte|rose-pine|rose-pine-moon|tokyo-night-moon|everforest| dracula |
|
||
|------|-----------|---------|---------|----------------|----------------|---------|--------------|----------------|----------|---------|
|
||
|base00| #282828 | #282c34 | #2E3440 | #1e1e2e | #eff1f5 | #191724 | #232136 | #222436 | #2d353b | #282a36 |
|
||
|base01| #3c3836 | #353b45 | #3B4252 | #181825 | #e6e9ef | #1f1d2e | #2a273f | #1e2030 | #343f44 | #363447 |
|
||
|base02| #504945 | #3e4451 | #434C5E | #313244 | #ccd0da | #26233a | #393552 | #2d3f76 | #475258 | #44475a |
|
||
|base03| #665c54 | #545862 | #4C566A | #45475a | #bcc0cc | #6e6a86 | #6e6a86 | #636da6 | #859289 | #6272a4 |
|
||
|base04| #bdae93 | #565c64 | #D8DEE9 | #585b70 | #acb0be | #908caa | #908caa | #828bb8 | #9da9a0 | #9ea8c7 |
|
||
|base05| #d5c4a1 | #abb2bf | #E5E9F0 | #cdd6f4 | #4c4f69 | #e0def4 | #e0def4 | #3b4261 | #d3c6aa | #f8f8f2 |
|
||
|base06| #ebdbb2 | #b6bdca | #ECEFF4 | #f5e0dc | #dc8a78 | #e0def4 | #e0def4 | #828bb8 | #e6e2cc | #f0f1f4 |
|
||
|base07| #fbf1c7 | #c8ccd4 | #8FBCBB | #b4befe | #7287fd | #524f67 | #56526e | #c8d3f5 | #fdf6e3 | #ffffff |
|
||
|base08| #fb4934 | #e06c75 | #BF616A | #f38ba8 | #d20f39 | #eb6f92 | #eb6f92 | #ff757f | #e67e80 | #ff5555 |
|
||
|base09| #fe8019 | #d19a66 | #D08770 | #fab387 | #fe640b | #f6c177 | #f6c177 | #ffc777 | #e69875 | #ffb86c |
|
||
|base0A| #fabd2f | #e5c07b | #EBCB8B | #f9e2af | #df8e1d | #ebbcba | #ea9a97 | #ffc777 | #dbbc7f | #f1fa8c |
|
||
|base0B| #b8bb26 | #98c379 | #A3BE8C | #a6e3a1 | #40a02b | #31748f | #3e8fb0 | #c3e88d | #a7c080 | #50fa7b |
|
||
|base0C| #8ec07c | #56b6c2 | #88C0D0 | #94e2d5 | #179299 | #9ccfd8 | #9ccfd8 | #86e1fc | #83c092 | #8be9fd |
|
||
|base0D| #83a598 | #61afef | #81A1C1 | #89b4fa | #1e66f5 | #c4a7e7 | #c4a7e7 | #82aaff | #7fbbb3 | #80bfff |
|
||
|base0E| #d3869b | #c678dd | #B48EAD | #cba6f7 | #8839ef | #f6c177 | #f6c177 | #fca7ea | #d699b6 | #ff79c6 |
|
||
|base0F| #d65d0e | #be5046 | #5E81AC | #f2cdcd | #dd7878 | #524f67 | #56526e | #c53b53 | #9da9a0 | #bd93f9 |
|
||
|
||
Цветовая схема **Base16** используется для унификации цветовых тем в разных приложениях. Она определяет 16 базовых цветов, каждый из которых играет определённую роль. Вот основные цвета и их назначения:
|
||
|
||
- **Base00** – **Background**: Основной фоновый цвет.
|
||
- **Base01** – **Lighter Background**: Более светлый цвет для фона, часто используется для элементов вроде выделенных областей.
|
||
- **Base02** – **Selection Background**: Цвет фона выделений, обычно для текста или других активных областей.
|
||
- **Base03** – **Comments/Inactive Text**: Цвет для комментариев или неактивного текста, обычно более тусклый или нейтральный.
|
||
- **Base04** – **Dark Foreground**: Тёмный текст на светлом фоне или для элементов UI.
|
||
- **Base05** – **Default Foreground**: Основной цвет текста.
|
||
- **Base06** – **Light Foreground**: Более светлый текст, используется на более тёмных элементах.
|
||
- **Base07** – **Light Background/Foreground Accent**: Самый светлый цвет, часто используется для акцентированных областей или фона текста.
|
||
- **Base08** – **Variables/Errors**: Акцентный цвет для переменных или ошибок. Часто красный.
|
||
- **Base09** – **Integers/Warnings**: Используется для целых чисел или предупреждений. Оранжевый.
|
||
- **Base0A** – **Booleans/Keys**: Акцентный цвет для логических значений или ключей. Жёлтый.
|
||
- **Base0B** – **Strings/Success**: Цвет для строк или успешных операций. Зелёный.
|
||
- **Base0C** – **Support/Functions**: Цвет для поддерживающих элементов, функций или специальных значений. Бирюзовый.
|
||
- **Base0D** – **Keywords/Declarations**: Используется для ключевых слов или деклараций. Синий.
|
||
- **Base0E** – **Class Names/Constructors**: Акцентный цвет для имён классов или конструкторов. Фиолетовый.
|
||
- **Base0F** – **Deprecated Elements/Exceptions**: Обычно используется для устаревших элементов или исключений. Коричневый.
|
||
|
||
Эти цвета обеспечивают чёткую структуру для создания тем, где легко отличить синтаксические элементы или UI-компоненты.
|