Мои приватные (нет) дотсы NixOS
Find a file
2024-08-12 22:21:56 +03:00
archive Удалил гавно и добавил qt/icon темы 2024-08-12 01:00:12 +03:00
modules ебаный qt теперь работает 2024-08-12 22:21:56 +03:00
nixos ебаный qt теперь работает 2024-08-12 22:21:56 +03:00
shit ебаный qt теперь работает 2024-08-12 22:21:56 +03:00
flake.lock ебаный qt теперь работает 2024-08-12 22:21:56 +03:00
flake.nix ебаный qt теперь работает 2024-08-12 22:21:56 +03:00
README.md ебаный qt теперь работает 2024-08-12 22:21:56 +03:00

Я ебал рот бездарных блядей, которые не могут сделать нормальную систему. Просто блять не существует нормальной OS на планете. Какого блядского хуя ебаные дауны блять делают симлинк для конфигов home-manager и при этом дают рандомному софту удалить симлинк? Хули тебе блядь такая мешает записывать в симлинк? Какого хуя я должен бороться с блядскими крашами и невозможностью ребилдить систему? Хули толку от твоего блядского даун менеджера, если он нихуя не может сделать блять и один хуй надо руками всё линковать блять? Ебаное блядство делает конфиги и потом не может ребилдить систему, потому что даёт блядскому софту заменить себя рандомной директорией блять

  • Ебучий thunar не работает блять, заменяет симлинк на свой конфиг
  • Ебучий mime types нихуя не работает блять и тоже заменяется какой-то блядью

TODO

Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге shit. Их я могу скопировать в ~/.config, нужная переменная окружения в home.nix стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь /home/buliway. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT.

Дотсы

Железо, на котором это работает:

  • CPU: i5 10400f
  • GPU: AMD RX6600
  • RAM: 32gb (2x16) ddr4 3200
  • Motherboard: MSI Z590-A PRO
  • Два монитора 1920x1080 на 165 и 100 герц
Software Name
WM bspwm
Hotkeys sxhkd
Terminal Alacritty, Kitty
Multiplexer Zellij
Shell oh-my-zsh with many plugins
Shell Prompt Starship
Apps/Menus Rofi
Notification Dunst
Files Thunar, Ranger
Images qView, imv
Media mpv
Browsers Librewolf, Firefox, Chromium
Social Discord, Telegram, Steam
Audio PipeWire
Fonts JetBrains Mono Nerd Font
Color Theme Gruvbox Dark Medium
Icons Gruvbox Plus Dark
DM LightDM
Compositor Нет. Мб будет сток picom
Screenshare OBS, Screenkey, ksnip
Code Editor VSCode, nixvim later

Чтоб узнать sha256 для гитхаб репы, пишем в терминал эту команду:

nix-prefetch-git link

Если хочется поменять цвета или шрифты в конфиге какой-то программы, но при ребилде получается конфликт, то дело в Stylix, который управляет системной темой и сам везде ставит шрифты и цвета. Если хочется заменить, не трогая stylix, то надо добавить lib.mkForce перед значением. Например так:

font = lib.mkForce "JetBrainsMono Nerd Font 11";

Узнать localhost виртуалки, чтоб конектиться по ssh:

ip a

Настройка мониторов

На иксах второй монитор может не работать или все мониторы могут сидеть на 60 герц. Изменить это один раз недостаточно, после ребута сбросится. Не знаю нормального способа, кроме как добавить настройки в автозапуск. Ниже пример того, как произвести начальную настройкy:

# Увидеть список мониторов
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

Другие README файлы в этих дотсах

Мини гайд по NixOS

  • Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
  • Плейлист с английскими видео. Мне больше всего понравились видео под номерами 16, 18, 21, 27 и 28.
  • Пакеты искать тут. Параметры для сток NixOS тут. Параметры для home-manager тут. Для моих конфигов надо обязательно искать в unstable ветке, ибо параметры могут отличаться.
  • Для системной темы тут используется stylix. Все его параметры можно найти тут.

Процесс установки

Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик.

Дальше есть два способа. Оба нужны, чтоб заменить имя юзера на своё перед установкой моих дотсов. Для этого надо открыть файл ./nixos/configuration.nix и заменить переменную username на ник своего юзера.

Первый способ

Сделать форк этого репозитория. Внести нужные изменения. После установки NixOS временно включить гит и установить систему:

nix shell -p git
sudo nixos-rebuild boot --flake github:Buliway/nixos-dots --impure

Параметр boot делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй switch вместо boot.

Второй способ

После установки NixOS временно включить гит, клонировать репозиторий, изменить нужный файл, ребилдить систему:

nix shell -p git
git clone https://github.com/Buliway/nixos-dots
nano ~/nixos-dots/nixos/configuration.nix
# Заменить переменную `username` на ник своего юзера
sudo nixos-rebuild boot --impure --flake ~/nixos-dots

Параметр boot делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй switch вместо boot.

После установки надо

Это заметка для меня. Каждый ставит то, что ему надо

  • Включить подкачку на 64 гига в /etc/nixos/hardware-configuration.nix через такой синтаксис:
  swapDevices = [ {
    device = "/swapfile";
    size = 64*1024; # В мегабайтах
  } ];
  • Включить автомаунд бекап ссд и сделать симлинк на него в ~/backups в файле ./modules/nixos/filesystems.nix и раскомментировать импорт в ./modules/nixos/bundle.nix.
  • Сделать симлинки на все нужные вещи в ./modules/home-manager/symlinks.nix. Например браузеры я так бекаплю
  • Активировать скрипт в shit каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают
  • Раскомментировать нужные мне настройки звука в ./modules/nixos/sound.nix
  • Добавить gpg ключи
gpg --import /path/to/your-key.gpg

Если не работает, то смотришь список ключей. Копируешь ID нужного и используешь во второй команде.

gpg --list-keys
gpg --edit-key ID-ключа

В этом режиме надо написать trust и выбрать степень доверия. Например 5 для своих ключей можно задать, это прям самое максимально доверие. Потом Ctrl + D чтоб выйти.

Бинды

Клавиша Super это клавиша Win

Bspwm Описание Работает?
Super + L Lock screen Да
Super + Q Quit. Выключить приложение Да
Super + Shift + Q Kill. Если приложение не отвечает, то убить его Да
Super + F Floating 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 хз
Super + button{1-3} Move, resize_side, resize_corner хз
Rofi Описание Работает?
Super + A Applications. Запускатор софта Да
Super + C Calculator имбовый. Можно даже написать 5600 USD to BTC или 500 + 25%. нет
Super + P Passwords. Пароли из утилиты pass нет
Super + V История буфера обмена. Как ctrl+v, но через win. нет
Super + Tab Как alt+tab, переключение окон. На нужный воркспейс само перекинет хз
Super + Alt + T Timer. Думаю сделать через утилиту timer хз
Super + Shift + N Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще хз
Super + Backspace PowerMenu. Выключение пк нет
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, 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 Да

Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.

Иконки

Искать иконки для nerd шрифта можно тут.

Соберу сюда список nerd иконок, которые могут пригодиться

CPU (мб не юзать, а писать текстом и cpu и gpu) - 

RAM - 

CapsLock - 󰪛

Клавиатура -  или 󰌌

Громкость -   

Яркость - 󰃟 󰃞 󰃝

Календарь -   󰸗

Выключение пк - ⏻ 󰐥 

Приложения -  󰀻  󰵆

Блютуз -  󰂯 󰂲 󰥰 󰦋 󰏳 󰦢 󰗾 󰗿

Network - 󰈀  󰒍

Clipboard -   󱉧 

Оповещения (bell) - 󰀦  󰀧 󰀨 󰅉 󰨱 󰵙  󰂚    

Reload - 󰑓 󱄋

Wifi  󰖩 󱚵 󱚽 󱚼 󰖪 󱛄 󰤭 󰤨 󰤥 󰤢 󰤟 󰤯 󰤫 󰤮

Батарейки      󰁹 󰂂 󰂁 󰂀 󰁿 󰁾 󰁽 󰁼 󰁻 󰁺 󰂎 󱊣 󱊢 󱊡 󰂎 󰂃 󱉝 󰂑

Батарейки зарядка 󰂅 󰂋 󰂊 󰢞 󰂉 󰢝 󰂈 󰂇 󰂆 󰢜 󰢟 󱊦 󱊥 󱊤 󰢟 󰂄

Батарейки блютуз 󰥈 󰥆 󰥅 󰥄 󰥃 󰥂 󰥁 󰥀 󰤿 󰤾 󰥇 󰥊 󰥉

Температура 󰔄 - Температура по цельсию       

Темы

У меня в vscode цвета отображаются. Так что я для себя сохраню цвета разных вариантов gruvbox

Цвет это название цвета. Потом идёт название 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