Мои приватные (нет) дотсы NixOS
Find a file
2024-08-16 04:46:59 +03:00
archive Исправил vulkan 2024-08-16 00:14:14 +03:00
modules Вернул превью видео 2024-08-16 04:46:59 +03:00
nixos Вернул превью видео 2024-08-16 04:46:59 +03:00
shit Исправил часть биндов 2024-08-14 16:34:44 +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 Исправил vulkan 2024-08-16 00:14:14 +03:00

Навигация

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

Проблемы

  • Некоторые симлинки, созданные через home-manager, могут быть перезаписаны другим софтом, удалив мои настройки
  • Thunar удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы
  • Mimetypes удаляют симлинк. Поэтому я сделал отдельный файл в каталоге shit и буду копировать готовый файл целиком в нужный каталог
  • Файловые менеджеры Thunar и ranger показывают превью видео через ffmpegthumbnailer, который не берёт изображение из метаданных видео, а берёт первый кадр видео. Это залупа, потому что у меня видео созданы через метаданные. Хз даже как исправить. Потом сделаю скрипт, для добавления картинки из метаданных в первый кадр видео
  • Не работает TUN мод во всех xray/singbox клиентах. Например nekoray пишет, что не удалось setcap при вводе пароля. Испробовал все доступные методы подключения, даже голый singbox через сервис никса. У меня просто пропадает инет в системе после конекта. Сейчас единственный рабочий метод, это скачать appimage nekoray с гитхаба, обязательно именно версии 3.26, иначе не заработает, и запустить через sudo. И в настройках tun надо обязательно выключить strick route. Обычно я с ним сидел, но тут с ним проблемы и не работает ничего.

TODO

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

Надо сделать Nekoray нормально. Пока что только путь пидараса есть. Запускаешь sudo ~/Downloads/VPN/nekoray-3.26-2023-12-09-linux-x64.AppImage. В некобоксе офаешь у тян мода стрик роут. Систем тан. В меню жмёшь перезапустить прогу, она отлипла от терминала, перетащил на 10 воркспейс и сижу хуй сосу, ибо меня сайты в пермак кидают за такую хуйню

Описание

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

  • 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, viewnior, 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
Code Editor VSCode, JetBrains, nixvim, helix
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 для гитхаб репы, пишем в терминал эту команду:

nix-prefetch-git link

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

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

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

ip a

Настройки для игр

Я установил 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:

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

  • Одинаковые вещи могут делаться разными способами. Это норма. По началу меня это бесило, когда читал чужие дотсы
  • Плейлист с английскими видео. Мне больше всего понравились видео под номерами 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 Да
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