Delete shit
This commit is contained in:
parent
be4210059a
commit
9e305437d7
3 changed files with 3 additions and 448 deletions
440
README.md
440
README.md
|
|
@ -1,179 +1,6 @@
|
|||
|
||||
Эта ветка для моего пк сделана. Просто дотсы надо смотреть в ветке main
|
||||
|
||||
## Навигация
|
||||
|
||||
- [Бинды](#бинды)
|
||||
- [Другие 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 + N` | Note taking app (obsidian) | Да |
|
||||
| `Super + E` | Explorer. Thunar file manager | Да |
|
||||
| `Super + I` | IDE, text editor | Да |
|
||||
| `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: i5 10400f
|
||||
- GPU: AMD RX6600
|
||||
|
|
@ -181,273 +8,6 @@
|
|||
- Motherboard: MSI Z590-A PRO
|
||||
- Два монитора 1920x1080 на 165 и 100 герц
|
||||
|
||||
Основной набор софта
|
||||
|
||||
Изначально я написал конфиги для `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 | qView |
|
||||
| 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 | SDDM |
|
||||
| Compositor | Нет. Мб будет стоковый picom |
|
||||
| Screenshare | OBS, Screenkey, ksnip |
|
||||
| Code Editor | NeoVim, VSCode |
|
||||
| Video Editor | Blender, Davinci Resolve |
|
||||
| Fetch | fastfetch |
|
||||
| Torrent | qBittorrent |
|
||||
| Email client | Thunderbird |
|
||||
| Color picker | xcolor, gcolor3 |
|
||||
| Docs/eBook | Evince, LibreOffice, Calibre |
|
||||
| Design | Affinity |
|
||||
| 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 1920x1080 --rate 165
|
||||
# Изменить настройки для второго (правого) монитора
|
||||
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-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.buliway.ru:Buliway/nixos-private-dots`.
|
||||
|
||||
Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`.
|
||||
|
||||
### Второй способ
|
||||
|
||||
Клонировать репозиторий и ребилдить систему с указанием пути:
|
||||
```sh
|
||||
git clone https://git.buliway.ru/buliway/nixos-private-dots
|
||||
sudo nixos-rebuild boot --impure --flake ~/nixos-private-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).
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@
|
|||
r = "ranger --choosedir=/tmp/choosedir && cd \"$(cat /tmp/choosedir)\"";
|
||||
g = "gitui";
|
||||
f = "fastfetch";
|
||||
b = "bat --color=always -p --pager='-r'"; # Веди себя как cat, но с цветами
|
||||
yt = "yt-dlp --cookies /home/buliway/backups/Media/yt-dlp/cookies.firefox-private.txt";
|
||||
yt-dir = "cd /mnt/backups/Media/yt-dlp";
|
||||
yt-music = "yt-dlp --config-locations music.conf | sed '/has already been recorded in the archive/d'";
|
||||
|
|
|
|||
|
|
@ -1,14 +1,10 @@
|
|||
{ pkgs, ... }: { # Блютуз, интернет, wifi
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
# settings = {
|
||||
# General = {
|
||||
# Enable = "Source,Sink,Media,Socket";
|
||||
# Experimental = true;
|
||||
# };
|
||||
# };
|
||||
};
|
||||
|
||||
services.blueman.enable = true; # Tray for bluetooth
|
||||
|
||||
networking = {
|
||||
# enableIPv6 = false;
|
||||
networkmanager.enable = true;
|
||||
|
|
@ -28,8 +24,6 @@
|
|||
# };
|
||||
};
|
||||
|
||||
services.blueman.enable = true; # Tray for bluetooth
|
||||
|
||||
# services.sing-box = { # Тоже блочит инет, как и nekoray
|
||||
# enable = true;
|
||||
# settings = builtins.fromJSON (builtins.readFile "/home/buliway/nixos-private-dots/modules/nixos/singbox.json");
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue