diff --git a/README.md b/README.md index 57b309f..6da2a1e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + +Эта ветка для моего пк сделана. Просто дотсы надо смотреть в ветке main + ## Навигация - [Бинды](#бинды) @@ -18,6 +21,7 @@ - [Первый способ](#первый-способ) - [Второй способ](#второй-способ) - [После установки надо](#после-установки-надо) +- [Изменения для виртуалок](#изменения-для-виртуалок) - [Иконки](#иконки) - [Темы](#темы) @@ -131,28 +135,10 @@ ### Ребилд крашит систему +Эта проблема была раньше. Сейчас исправлена. Но заметку оставлю, вдруг пригодится в будущем + Ребилд системы через `switch` или `test` кладёт нахуй систему. Чёрный экран без возможности переключить tty через `ctrl + alt + F1-F7`. Можно юзать `boot`, чтоб после ребута пк применялось. Тогда не крашит и после ребута всё работает. -Примерный список того, что я сделал, после чего ребилд пошёл по пизде -- Сделал `polybar` и `sxhkd` не сервисом, а пакетом через `home.packages` и конфиги через `.text` -- Установил `cage` как сервис для запуска wayland приложений на иксах -- Установил `weston` как пакет для запуска wayland приложений на иксах -- Включил виртуализацию `waydroid` -- Включил `i3` -- Добавил симлинк на пакет `ff2mpv` в home. Чтоб браузер туда обращался -- Добавил параметр для gnupg в виде `pinentryPackage`. Указал qt -- Сделал стили для `rofi` -- Установил `python3` -- Установил `rocm-smi` для отображения gpu в btop (не работает) - -Потом я обновил репы в надежде исправить всю хуйню. И один раз оно и правда обновило всё без проблем. Некст ребилды снова стали идти по пизде - -Хуйни, на которых всё зависает и падает блять -`starting the following units: accounts-daemon.service` -`restarting the following units: home-manager-buliway.service` - -Первый ребилд был нормальный вроде. Потом я ребутнул пк, чтоб проверить работу полибара, а всё пошло по пизде при некст ребутах - #### Потенциальный способ исправить проблему Есть следующие два параметра: @@ -163,6 +149,10 @@ Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде. +#### Реальный способ исправить проблему + +Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально + ## TODO Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT. @@ -183,15 +173,14 @@ ## Описание Железо, на котором это работает: -- CPU: i5 10400f -- GPU: AMD RX6600 +- CPU: i7 9700 +- GPU: AMD RX6700XT - RAM: 32gb (2x16) ddr4 3200 -- Motherboard: MSI Z590-A PRO -- Два монитора 1920x1080 на 165 и 100 герц +- Два монитора 2560x1440 на 144 герц -Основное набор софта +Основной набор софта -Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я переехал на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. +Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я перееду на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то wm надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix` | Software | Name | | ------------ | -------------------------------- | @@ -206,7 +195,7 @@ | ScreenLock | betterlockscreen/i3lock | | Notification | Dunst | | Files | Thunar, Ranger | -| Images | qView, imv, viewnior, feh | +| Images | qView, imv, feh | | Video | mpv with plugins | | Music | Strawberry, Picard, Mousai, spek | | Browsers | Librewolf, Firefox, Chromium | @@ -242,6 +231,8 @@ font = lib.mkForce "JetBrainsMono Nerd Font 11"; ip a ``` +В бутменю биоса надо ставить не ссд диск, а `nixos boot`. У меня иначе не работало + ## Нюансы с JetBrains Toolbox В стоке тулбокс может всегда разлогинивать. Я не проверял, сразу сделал как просили на вики, чтоб это исправить. @@ -294,9 +285,9 @@ FSR в `proton-ge` включается только в фулскрине че # Увидеть список мониторов xrandr # Изменить настройки для основного монитора. Мб вместе с --primary для основного монитора -xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165 +xrandr --output DisplayPort-2 --mode 2560x1440 --rate 144 --primary # Изменить настройки для второго (правого) монитора -xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 +xrandr --output DisplayPort-0 --mode 2560x1440 --rate 144 --left-of DisplayPort-2 ``` Есть ещё такая штука - https://github.com/phillipberndt/autorandr . Но мне лень с ней разбираться @@ -318,7 +309,7 @@ xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 Сначала качаем nixos kde или nixos gnome вариант и устанавливаем систему через визуальный установщик. При установке выбираем минимальный вариант, без DE. -Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишет следующее: +Кто-то говорит, что потом достаточно просто забилдить одной командой чужой конфиг, но это не так. Будет ошибка, что нет гита. Если использовать nix-shell для гита, то скажет, что нет экспериментальной функции. Либо писать огромную команду, либо, как советую сделать я, изменить стоковый конфиг никса. Для этого пишем следующее: ```sh sudo nano /etc/nixos/configuration.nix @@ -374,14 +365,17 @@ sudo nixos-rebuild switch ```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.buliway.ru/buliway/nixos-private-dots -sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots +git clone https://git.urec56.ru/urec/nixos_dots +sudo nixos-rebuild boot --impure --flake ~/nixos_dots ``` Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`. @@ -399,6 +393,7 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots - Настроить гибренацию в `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 @@ -410,6 +405,45 @@ 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 пропадает. Приходится стопать и по новой запускать отображение + ## Иконки diff --git a/flake.lock b/flake.lock index 8f365ee..9057408 100644 --- a/flake.lock +++ b/flake.lock @@ -313,4 +313,3 @@ "root": "root", "version": 7 } - diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index b187f13..0efe439 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -13,19 +13,38 @@ ./terminal/alacritty.nix ./terminal/git.nix ./terminal/kitty.nix + ./terminal/lynx.nix ./terminal/starship.nix ./terminal/zellij.nix ./terminal/zsh.nix - ./wm/bspwm/bspwm.nix - ./wm/rofi/rofi.nix - ./wm/dunst.nix - ./wm/i3.nix - ./wm/lockscreen.nix - ./wm/polybar.nix - ./wm/sxhkd.nix - ./mangohud.nix ./symlinks.nix + + ############## + ## WM (X11) ## + ############## + + # Софт для работы WM на X11 + ./wm/rofi/rofi.nix + ./wm/dunst.nix + ./wm/lockscreen.nix + + # Для выключения i3 комментируй все строки ниже + ./wm/i3.nix + + # Для выключения bspwm комментируй все строки ниже + ./wm/bspwm/bspwm.nix + ./wm/bspwm/polybar.nix + ./wm/bspwm/sxhkd.nix + + ################## + ## WM (Wayland) ## + ################## + + # Wayland гавно лаганое, но мб на NixOS дела будут лучше + # Мб я сделаю конфиги для sway и hyprland на ags + # Каталог wm мб переименовать в X11 и создать отдельный Wayland + ]; } diff --git a/modules/home-manager/gui/vscode.nix b/modules/home-manager/gui/vscode.nix index 0ee4ac6..1f1fb51 100644 --- a/modules/home-manager/gui/vscode.nix +++ b/modules/home-manager/gui/vscode.nix @@ -21,6 +21,10 @@ tamasfe.even-better-toml # Fully-featured TOML support ms-python.python # Python language support golang.go # Rich Go language support + # mechatroner.rainbow-csv # Rainbow syntax higlighting for CSV and TSV files + # redhat.vscode-xml # XML Language Support by Red Hat + # dotjoshjohnson.xml # XML Tools + # bradlc.vscode-tailwindcss # Tailwind CSS tooling ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ # Руками с гита ставить { # https://marketplace.visualstudio.com/items?itemName=budparr.language-hugo-vscode name = "language-hugo-vscode"; @@ -28,24 +32,43 @@ version = "1.3.1"; sha256 = "f5da7cfe02c06fc3899e6b0b55b380280619e7085abcf5b6024f9684ba846c99"; } - { # https://marketplace.visualstudio.com/items?itemName=Codeium.codeium - name = "codeium"; - publisher = "Codeium"; - version = "1.11.9"; - sha256 = "0e07e78e487418d0c5289eeb2c530dd7dd18f82612e46c8b177f2a1f95acb730"; - } + # { # https://marketplace.visualstudio.com/items?itemName=dlasagno.rasi + # name = "rasi"; + # publisher = "dlasagno"; + # version = "1.0.0"; + # sha256 = "b3ad1a95e8f770d01b489c6c4652111364216baa00b2670e05b5a8aa9fb0e9f9"; + # } + # { # https://marketplace.visualstudio.com/items?itemName=a-h.templ + # name = "templ"; + # publisher = "a-h"; + # version = "0.0.29"; + # sha256 = "459fbec312f63aa061de188b030288c3940b8d4fe29ac2bb8ab4141db27fb6a3"; + # } + # { # https://marketplace.visualstudio.com/items?itemName=CraigRBroughton.htmx-attributes + # name = "htmx-attributes"; + # publisher = "CraigRBroughton"; + # version = "0.8.0"; + # sha256 = "4ec7a63d992ad99d77fef6a145a3fbcf6d3a0496826754d1e8e56fe9a783bf29"; + # } + # { # https://marketplace.visualstudio.com/items?itemName=Codeium.codeium + # name = "codeium"; + # publisher = "Codeium"; + # version = "1.29.2"; + # sha256 = "86e075c4fd0d60f7fa7b32e497260a86a94ec812d95e3d9f058ce45e77648f89"; + # } ]; - userSettings = { - "telemetry.telemetryLevel" = "off"; - "update.showReleaseNotes" = false; - "workbench.colorTheme" = "Gruvbox Dark Medium"; - "editor.fontFamily" = "JetBrainsMono Nerd Font"; - }; + # userSettings = { + # "telemetry.telemetryLevel" = "off"; + # "update.showReleaseNotes" = false; + # "workbench.colorTheme" = "Gruvbox Dark Medium"; + # "editor.fontFamily" = "JetBrainsMono Nerd Font"; + # "editor.lineNumbers" = "relative"; + # }; - globalSnippets = {}; + # globalSnippets = {}; - languageSnippets = {}; + # languageSnippets = {}; # keybindings = [ # { diff --git a/modules/home-manager/mpv/input.conf b/modules/home-manager/mpv/input.conf index 09abd44..aa58128 100644 --- a/modules/home-manager/mpv/input.conf +++ b/modules/home-manager/mpv/input.conf @@ -3,17 +3,14 @@ F script-binding quality_menu/video_formats_toggle #! Stream Quality > Video Alt+f script-binding quality_menu/audio_formats_toggle #! Stream Quality > Audio -# a script-binding uosc_multi_audio/change_audio_track #! Audio tracks - -MBTN_LEFT cycle pause # don't do anything -MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen -MBTN_RIGHT ignore # toggle pause/playback mode -#MBTN_LEFT_DBL ignore +#MBTN_LEFT ignore # don't do anything +#MBTN_LEFT_DBL cycle fullscreen # toggle fullscreen +#MBTN_RIGHT cycle pause # toggle pause/playback mode +MBTN_LEFT_DBL ignore # Разные виды нормализации громкости -#F1 af toggle "drc=1:0.25" # Такого не существует #F1 af toggle "compand=attacks=0:decays=0:points=-80/-80|-30/-10|0/-10|20/-10:soft-knee=6" # Оглох нахуй -#F2 af toggle "dynaudnorm=f=75:g=25:p=0.58" # Нихуя не нормализует -#F3 af toggle "loudnorm=I=-16:TP=-1.5:LRA=11" # Нихуя не нормализует -F6 af toggle "lavfi=[speechnorm=e=20:r=0.5]" # Нормализует голоса пиздато, но они все становятся громкими +#F2 af toggle "dynaudnorm=f=75:g=25:p=0.58" # Не нормализует +#F3 af toggle "loudnorm=I=-16:TP=-1.5:LRA=11" # Не нормализует +F6 af toggle "lavfi=[speechnorm=e=20:r=0.5]" # Нормализует голоса, но они все становятся громкими diff --git a/modules/home-manager/mpv/mpv.conf b/modules/home-manager/mpv/mpv.conf index c36701b..28b8a4c 100644 --- a/modules/home-manager/mpv/mpv.conf +++ b/modules/home-manager/mpv/mpv.conf @@ -19,10 +19,6 @@ volume-max=200 # Максимально допустимая громкость # YouTube # ########### -# Установить yt-dlp: -# sudo curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp -# sudo chmod a+rx /usr/local/bin/yt-dlp - script-opts=ytdl_hook-ytdl_path=yt-dlp # Юзать ytdlp ytdl-format="bestvideo[ext=mp4][vcodec^=avc][height<=?1080]+bestaudio/best" # Ограничить качество на 1080р и, вроде бы, юзать норм кодек ytdl-raw-options="cookies-from-browser=firefox,force-ipv4=" # Доп параметры для ytdlp. В моём случае куки из браузера и ipv4 only для обхода ограничений @@ -57,4 +53,3 @@ screenshot-webp-quality=75 # Качество изображения webp keep-open=yes # Не выключать плеер после окончания видео force-window=yes # Показывать окно, даже если это аудиофайл save-position-on-quit=yes # Сохранить позицию, на которой остановился в прошлый раз - diff --git a/modules/home-manager/mpv/scripts/uosc-multi-audio.lua b/modules/home-manager/mpv/scripts/uosc-multi-audio.lua deleted file mode 100644 index 59f8f9c..0000000 --- a/modules/home-manager/mpv/scripts/uosc-multi-audio.lua +++ /dev/null @@ -1,79 +0,0 @@ --- Потом напишу этот плагин. Сейчас рот ебал, этот кал не работает, документация гавно, инфы ноль - ---[[ -local utils = require('mp.utils') - --- Функция для обработки выбора аудио дорожки (пока что просто вывод сообщения) -local function handle_audio_track_select(track_id) - -- mp.commandv("set", "aid", track_id) -- Устанавливаем активную дорожку - mp.osd_message("Выбрана дорожка: " .. tostring(track_id), 5) -end - --- Функция для создания строки описания аудио дорожки -local function format_audio_track_description(track) - local parts = {} - - table.insert(parts, track.codec) - if track["audio-channels"] then - table.insert(parts, - string.format("%d %s", track["audio-channels"], track["audio-channels"] == 1 and "channel" or "channels")) - end - if track["demux-samplerate"] then - table.insert(parts, string.format("%gkHz", track["demux-samplerate"] / 1000)) - end - if track.default then - table.insert(parts, "default") - end - - return table.concat(parts, ", ") -end - --- Функция для создания меню аудио дорожек -local function create_audio_track_menu() - local track_list = mp.get_property_native("track-list", {}) - local active_track_id = mp.get_property_number("aid") - local menu_items = {} - - -- Добавляем доступные аудио дорожки - for _, track in ipairs(track_list) do - if track.type == "audio" then - local title = string.format("Track %d", track.id) - if track.lang then - title = title .. " (" .. track.lang .. ")" - end - menu_items[#menu_items + 1] = { - title = title, - hint = format_audio_track_description(track), - value = track.id, - active = track.id == active_track_id, - } - end - end - - -- Создаем меню с помощью uosc - local menu_data = { - type = "audio-tracks", - title = "Пидор", - items = menu_items, - } - local menu_json = utils.format_json(menu_data) - mp.commandv("script-message-to", "uosc", "open-menu", menu_json) -end - --- Функция для обработки выбора пункта меню -mp.register_script_message("uosc-audio-tracks-select", function(value) - handle_audio_track_select(value) -end) - - --- Функция, вызываемая при активации команды "audio" -local function change_audio_track() - create_audio_track_menu() -end - --- Перехватываем команду "audio" из uosc -mp.commandv("script-message-to", "uosc", "overwrite-binding", "audio", "script-binding " .. mp.get_script_name() .. "/change_audio_track") - --- Добавляем команды для активации/деактивации -mp.add_key_binding(nil, "change_audio_track", change_audio_track) ---]] diff --git a/modules/home-manager/symlinks.nix b/modules/home-manager/symlinks.nix index 091c79b..1e9f4d8 100644 --- a/modules/home-manager/symlinks.nix +++ b/modules/home-manager/symlinks.nix @@ -1,7 +1,7 @@ # Надо удалить оригинальный файл, прежде чем делать симлинк # Некоторые проги клали хуй на симлинки и заменяют их своими файлами # Таких прог я ебал рот и проклинал хуесосов разработчиков -# Если выдаёт ошибку про home-manager сервир при ребилде, +# Если выдаёт ошибку про home-manager сервис при ребилде, # Значит такой файл уже существует и симлинк туда кинуть нельзя # Для таких файлов я сделал каталог shit diff --git a/modules/home-manager/terminal/git.nix b/modules/home-manager/terminal/git.nix index 26b41dc..afd3a17 100644 --- a/modules/home-manager/terminal/git.nix +++ b/modules/home-manager/terminal/git.nix @@ -21,5 +21,4 @@ programs.gitui = { # Terminal UI enable = true; }; -} - +} \ No newline at end of file diff --git a/modules/home-manager/browsers/lynx.nix b/modules/home-manager/terminal/lynx.nix similarity index 100% rename from modules/home-manager/browsers/lynx.nix rename to modules/home-manager/terminal/lynx.nix diff --git a/modules/home-manager/terminal/zsh.nix b/modules/home-manager/terminal/zsh.nix index 0f77f22..ebc0968 100644 --- a/modules/home-manager/terminal/zsh.nix +++ b/modules/home-manager/terminal/zsh.nix @@ -63,13 +63,11 @@ # "alias-finder" # Напомнит, если у написанной команды есть алиас (нет, так что заменил пакетом) "aliases" # "als" в терминале покажет все алиасы (нет). Можно добавить слово для фильтрации # "autoenv" # If a directory contains an .env file, it will automatically be executed when you cd into it (нет) - #"bgnotify" # Оповещения для долгих комманд. Make sure you have "notify-send" or "kdialog" installed + "bgnotify" # Оповещения для долгих комманд. Make sure you have "notify-send" or "kdialog" installed "colored-man-pages" # Adds colors to man pages #"command-not-found" # Скажет какой пакет скачать, если команда не найдена "copypath" # В терминале "copypath" скопирует нынешний абсолютный путь. Можно "copypath файл или дироктория" "dirhistory" # Лютая имба https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/dirhistory - #"docker-compose" # Completion and aliases for frequent docker-compose commands - #"docker" # Completion and aliases for docker "extract" # В терминале "extract filename" чтоб разархивировать файл. Одна команда на все архивы "fzf" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/fzf #"git" # Git aliases https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git @@ -91,7 +89,7 @@ "ssh-agent" # Автостарт ssh-agent. Хз надо ли настраивать и если да, то как # "starship" # А надо ли оно? Я для starship написал отдельно вкл интеграции в его файле настроек # "systemadmin" # Adds a series of aliases and functions which make a System Administrator's life easier - #"systemd" # Many useful aliases for systemd + # "systemd" # Many useful aliases for systemd "timer" # Показывает время выполнения команды "universalarchive" # Run "ua "" to compress into an archive file using # "vi-mode" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/vi-mode @@ -111,4 +109,4 @@ zsh-you-should-use # Напомнит, если у написанной команды есть алиас zsh-nix-shell # zsh plugin that lets you use zsh in nix-shell shell ]; -} +} \ No newline at end of file diff --git a/modules/home-manager/wm/bspwm/bspwm.md b/modules/home-manager/wm/bspwm/bspwm.md index db0fd80..9363ffe 100644 --- a/modules/home-manager/wm/bspwm/bspwm.md +++ b/modules/home-manager/wm/bspwm/bspwm.md @@ -1228,4 +1228,4 @@ bspc rule -a 'browser' border=off bspc rule -a 'editor' rectangle=1024x768+100+50 ``` -Этот формат описания и примеры помогут вам более четко понять, как использовать различные параметры `bspc rule` для настройки окон в `bspwm`. +Этот формат описания и примеры помогут вам более четко понять, как использовать различные параметры `bspc rule` для настройки окон в `bspwm`. \ No newline at end of file diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index 285697e..ee4241a 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -46,7 +46,6 @@ rules = let # Это переменные floating1600x900 = { state = "floating"; - # layer = "above"; center = true; focus = true; rectangle = "1600x900+0+0"; @@ -67,25 +66,24 @@ state = "floating"; }; in { # А тут правила окон - # "Polybar" = { layer = "below"; }; "Screenkey" = { manage = false; }; "gcolor3" = floating; "obs" = floating; "steam" = floating; "steam:steamwebhelper:Steam" = { state = "tiled"; }; - "krita" = { state = "tiled"; }; - "krita:krita:Krita - Edit Text" = floating; # мб надо "Krita - Edit Text — Krita" + "krita:krita:Krita - Edit Text" = floating; + "krita:krita:Create new document" = floating; "librewolf:librewolf:Save Image" = floating; "SshAskpass" = floating; "Nm-connection-editor" = floating; + "nekoray" = floating; + "Kvantum Manager" = floating; + "qt5ct" = floating; + "qt6ct" = floating; "ksnip" = floating1600x900; # "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало "file-roller" = floating1200x800; - "nekoray" = floating1200x800; "floating-terminal" = floating1200x800; - "Kvantum Manager" = floating1200x800; - "qt5ct" = floating1200x800; - "qt6ct" = floating1200x800; "pavucontrol" = floating900x600; # blueman-манагер надо флоатинг "discord" = { monitor = "^2"; desktop = "3"; }; diff --git a/modules/home-manager/wm/polybar.nix b/modules/home-manager/wm/bspwm/polybar.nix similarity index 100% rename from modules/home-manager/wm/polybar.nix rename to modules/home-manager/wm/bspwm/polybar.nix diff --git a/modules/home-manager/wm/sxhkd.nix b/modules/home-manager/wm/bspwm/sxhkd.nix similarity index 100% rename from modules/home-manager/wm/sxhkd.nix rename to modules/home-manager/wm/bspwm/sxhkd.nix diff --git a/modules/nixos/bundle.nix b/modules/nixos/bundle.nix index 4c05d65..f419665 100644 --- a/modules/nixos/bundle.nix +++ b/modules/nixos/bundle.nix @@ -3,7 +3,7 @@ # ./env.nix # Мб не надо, ибо редачу через home.nix? ./filesystems.nix ./hardware.nix -# ./hibernate.nix + ./hibernate.nix ./locale.nix ./network.nix ./sound.nix diff --git a/modules/nixos/env.nix b/modules/nixos/env.nix index 8bc20ae..bef770d 100644 --- a/modules/nixos/env.nix +++ b/modules/nixos/env.nix @@ -1,14 +1,5 @@ { environment.variables = { - EDITOR = "nvim"; - - #PYENV_ROOT="$HOME/.pyenv"; - # pyenv flags to be able to install Python - #CPPFLAGS="-I${pkgs.zlib.dev}/include -I${pkgs.libffi.dev}/include -I${pkgs.readline.dev}/include -I${pkgs.bzip2.dev}/include -I${pkgs.openssl.dev}/include"; - #CXXFLAGS="-I${pkgs.zlib.dev}/include -I${pkgs.libffi.dev}/include -I${pkgs.readline.dev}/include -I${pkgs.bzip2.dev}/include -I${pkgs.openssl.dev}/include"; - #CFLAGS="-I${pkgs.openssl.dev}/include"; - #LDFLAGS="-L${pkgs.zlib.out}/lib -L${pkgs.libffi.out}/lib -L${pkgs.readline.out}/lib -L${pkgs.bzip2.out}/lib -L${pkgs.openssl.out}/lib"; - #CONFIGURE_OPTS="-with-openssl=${pkgs.openssl.dev}"; - #PYENV_VIRTUALENV_DISABLE_PROMPT="1"; + EDITOR = "nvim"; }; -} +} \ No newline at end of file diff --git a/modules/nixos/filesystems.nix b/modules/nixos/filesystems.nix index cb96a56..1afeeb0 100644 --- a/modules/nixos/filesystems.nix +++ b/modules/nixos/filesystems.nix @@ -11,11 +11,11 @@ fileSystems."/mnt/urec/trash" = { device = "/dev/disk/by-uuid/862e2017-1d2f-4b4c-919f-8f7ffebfb4b9"; - fsType = "ext4"; + fsType = "ext4"; }; swapDevices = [ { device = "/swapfile"; size = 64*1024; # В мегабайтах } ]; -} +} \ No newline at end of file diff --git a/modules/nixos/hardware.nix b/modules/nixos/hardware.nix index aced5bf..703a0ab 100644 --- a/modules/nixos/hardware.nix +++ b/modules/nixos/hardware.nix @@ -3,15 +3,14 @@ { pkgs, ... }: { hardware = { # Параметры для 24.05 и unstable могут сильно отличаться - amdgpu = { opencl.enable = true; # # Enable OpenCL support using ROCM runtime library. - amdvlk = { # Гавно лаганое, лучше radv юзать (radeon vulkan) - enable = true; # Enable AMDVLK Vulkan driver. - support32Bit.enable = true; # Enable 32-bit driver support. - supportExperimental.enable = true; # Enable Experimental features support. - settings = {}; # Runtime settings for AMDVLK to be configured /etc/amd/amdVulkanSettings.cfg. - }; + # amdvlk = { # Гавно лаганое, лучше radv юзать (radeon vulkan) + # enable = true; # Enable AMDVLK Vulkan driver. + # support32Bit.enable = true; # Enable 32-bit driver support. + # supportExperimental.enable = true; # Enable Experimental features support. + # # settings = {}; # Runtime settings for AMDVLK to be configured /etc/amd/amdVulkanSettings.cfg. + # }; }; graphics = { # hardware.opengl переименован в hardware.graphics в unstable ветке @@ -51,7 +50,7 @@ # "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" # ]; - boot.initrd.kernelModules = [ "amdgpu" ]; # Мб не обязательно + boot.initrd.kernelModules = [ "amdgpu" ]; # Мб не обязательно # Для AMD существует два драйвера Vulkan # Один официальный от AMD - amdvlk diff --git a/modules/nixos/hibernate.nix b/modules/nixos/hibernate.nix index 3930d91..4a6fe8c 100644 --- a/modules/nixos/hibernate.nix +++ b/modules/nixos/hibernate.nix @@ -8,11 +8,14 @@ # lsblk `df /swapfile | awk '/^\/dev/ {print $1}'` -no UUID # Узнать offset файла подкачки: -# sudo filefrag -v /swapfile | awk 'NR == 4 {print $5}' | cut -d ':' -f 1 +# sudo filefrag -v /swapfile | awk '$1=="0:" {print substr($4, 1, length($4)-2)}' { boot = { resumeDevice = "/dev/disk/by-uuid/0951089a-fd89-4647-9ddb-0e3ff63d7b49"; - kernelParams = [ "resume_offset=6807551" ]; + kernelParams = [ "resume_offset=6799360" ]; }; + + # Не знаю надо ли это. На виртуалке я не могу забутиться в любом случае + # boot.initrd.systemd.enable = true; } diff --git a/modules/nixos/nix-glow-gruvbox.jpg b/modules/nixos/nix-glow-gruvbox.jpg new file mode 100644 index 0000000..4225af2 Binary files /dev/null and b/modules/nixos/nix-glow-gruvbox.jpg differ diff --git a/modules/nixos/sound.nix b/modules/nixos/sound.nix index 3e18b57..c7ceb6b 100644 --- a/modules/nixos/sound.nix +++ b/modules/nixos/sound.nix @@ -11,7 +11,6 @@ wireplumber = { enable = true; # Запретить конкретному софту редактировать громкость микрофона - # Я рот ебал блядей, что делают мой микро тихим без моего разрешения # В терминал `wpctl status`, найти нужное приложение в списке клиентов # Потом `wpctl inspect номер-клиента | grep application.process.binary` # `systemctl --user restart wireplumber pipewire pipewire-pulse` @@ -51,11 +50,9 @@ # Число определяет приоритет настройки, а название описывает цель конфига extraConfig.pipewire = { "10-clock-rate" = { - context.properties = { - default.clock.rate = 48000; - # Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь закомментить, если не знаешь что ставить - # Гавноёбы ебаные не могут запихать список без запятых и без кавычек. Из-за этого не работает - # default.clock.allowed-rates = "[ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]"; + "context.properties" = { + "default.clock.rate" = 48000; + # "default.clock.allowed-rates" = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]; }; }; # Ниже настройки для минимальной задержки в играх (например osu!stable через wine) diff --git a/modules/nixos/stylix.nix b/modules/nixos/stylix.nix index 931d3c0..fe29548 100644 --- a/modules/nixos/stylix.nix +++ b/modules/nixos/stylix.nix @@ -11,7 +11,7 @@ polarity = "dark"; # "light" or "either". Если "either", то он сам определяет что будет красивее base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml"; # Если хочешь генерить тему из обоев, то удали эту строку # image = config.lib.stylix.pixel "base00"; # Вместо обоев будет заливка фона одним цветом из темы - image = ./wall.jpg; # Если хочешь норм обои, то просто укажи путь до изображения + image = ./nix-glow-gruvbox.jpg; # Если хочешь норм обои, то просто укажи путь до изображения cursor = { package = pkgs.bibata-cursors; diff --git a/modules/nixos/virtualisation.nix b/modules/nixos/virtualisation.nix index 44a5271..0edee91 100644 --- a/modules/nixos/virtualisation.nix +++ b/modules/nixos/virtualisation.nix @@ -6,22 +6,12 @@ docker = { enable = true; - enableOnBoot = true; - # daemon.settings = { - # fixed-cidr-v6 = "fd00::/80"; - # ipv6 = true; - # }; rootless = { enable = true; - setSocketVariable = true; - # daemon.settings = { - # fixed-cidr-v6 = "fd00::/80"; - # ipv6 = true; - # }; }; }; - # spiceUSBRedirection.enable = true; # Connect USB devices to libvirt VMs, both local and remote. + spiceUSBRedirection.enable = true; # Connect USB devices to libvirt VMs, both local and remote. libvirtd = { # https://nixos.wiki/wiki/Libvirt enable = true; qemu.package = pkgs.qemu_full; @@ -46,14 +36,14 @@ # # services = { - # openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал. + # openssh.enable = true; # Это ставится на виртуалку, чтоб к ней конект по ssh работал. # spice-vdagentd.enable = true; # Clipboard sharing - # # Ниже я не включаю - # spice-webdavd.enable = true; # VirtFS alternative for directory sharing # qemuGuest = { - # enable = true; # Time syncing and scripting - # package = pkgs.qemu_full; # Time syncing and scripting + # enable = true; # Fix resolution + # package = pkgs.qemu_full; # }; + # # Ниже я не включаю + # # spice-webdavd.enable = true; # VirtFS alternative for directory sharing # }; } diff --git a/modules/nixos/wall.jpg b/modules/nixos/wall.jpg deleted file mode 100644 index ea7e8f2..0000000 Binary files a/modules/nixos/wall.jpg and /dev/null differ diff --git a/modules/nixos/xserver.nix b/modules/nixos/xserver.nix index 875f15c..1cf73db 100644 --- a/modules/nixos/xserver.nix +++ b/modules/nixos/xserver.nix @@ -7,6 +7,14 @@ services.displayManager = { defaultSession = "none+bspwm"; # only effective for GDM, LightDM and SDDM + sddm = { + # Чтоб задать аватарку юзеру, надо отправить png файл такой командой: + # sudo cp image.png /var/lib/AccountsService/icons/username + # Тоесть именно username, без .png в конце + enable = true; + # package = pkgs.kdePackages.sddm; # qt6 sddm + theme = "chili"; + }; }; services.libinput = { @@ -28,17 +36,6 @@ i3.enable = true; # i3-gaps доступен в стоке в новых версиях }; - displayManager = { - lightdm = { # Минималистичный display manager - enable = true; - # background = "./bg.png"; - # greeters = { - # tiny.enable = true; # Фул минималистичная тема без ничего - # # gtk.enable = true; # GTK тема с кучей настроек - # }; - }; - }; - xkb = { layout = "us,ru"; variant = ""; @@ -50,6 +47,6 @@ # videoDrivers = [ "nvidia" ]; # https://nixos.wiki/wiki/Nvidia videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU -# deviceSection = ''Option "TearFree" "True"''; + deviceSection = ''Option "TearFree" "True"''; }; } diff --git a/nixos/configuration.nix b/nixos/configuration.nix index f6d6c0f..901924b 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -55,7 +55,6 @@ in { useGlobalPkgs = true; extraSpecialArgs = { inherit inputs; }; users.${username} = import ./home.nix; - backupFileExtension = ".bak"; }; security.polkit = { # Всплывающее меню для ввода пароля diff --git a/nixos/home.nix b/nixos/home.nix index a65b7d8..b938865 100644 --- a/nixos/home.nix +++ b/nixos/home.nix @@ -51,18 +51,15 @@ targets = { vscode.enable = false; # Руками ставлю. Не нравится stylix вариант firefox.enable = false; # Руками ставлю и бекаплю каталог браузера - # lightdm.enable = false; # Не хочу обои в lightdm (в сурсе есть настройка, но не билдит, мать ебал) }; }; ############################################## ## Ниже включаю проги для Stylix ## - ## Ебаные дауны могут редачить grub, ## - ## но не могут редачить ебаный обычный софт ## + ## Потому что не все из них вкл в стоке ## ############################################## # programs = { # btop.enable = true; # }; } - diff --git a/nixos/packages.nix b/nixos/packages.nix index f928f4a..a947790 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -97,8 +97,8 @@ libraries = with pkgs; [ gcc libGL - glib - libGLU.out + glib + libGLU.out ]; }; }; @@ -111,21 +111,57 @@ # Это рекомендуют ставить не на всю систему, # а только на nix shell внутри проекта, где нужны эти пакеты + # Но я хочу на всю систему - go # Go programming language - rustup # Управление версиями языка Rust - nil # Nix language server - hugo # Для моего блога + # Python python3 # Питухон ласт версии + # pylyzer # Fast static code analyzer & language server for Python + # ruff # Extremely fast Python linter - #libstdcxx5 - #cmake - gcc - #gnumake - #glibc - #stdenv.cc.cc.lib + # C + gcc # Компилятор C + rocmPackages.llvm.clang # Компилятор C + gnumake # Компилятор? + ccls # C lsp + # Rust + rustup # Управление версиями языка Rust + rust-analyzer # Rust lsp + # Golang + go # Go programming language + gopls # Golang lsp + templ # HTML SSR + + # Frontend + # vscode-langservers-extracted # HTML/CSS/JSON/ESLint lsp + # typescript-language-server # JS/TS lsp + # htmx-lsp # HTMX lsp + # tailwindcss-language-server # Tailwind CSS lsp + # Мб emmet добавить потом. Но все lsp для него нонейм + + # Nix + nixd # Nix lsp + # alejandra # Nix formatter. Usage: alejandra file.nix + + # Shell + shellcheck # Проверка shell скриптов на ошибки + bash-language-server # Bash lsp + + # Database + # sqls # SQL lsp + # postgres-lsp # Postgres lsp + + # Other + hugo # Для моего блога + # lua-language-server # Lua lsp + # marksman # Markdown lsp + # taplo # TOML lsp + # vim-language-server # VimScript lsp + # yaml-language-server # YAML lsp + # dockerfile-language-server-nodejs # Dockerfiles + # zls # Zig lsp + # lemminx # XML lsp (юзает java) ############ ## Архивы ## @@ -141,7 +177,7 @@ ############## ## Terminal ## ############## - + mdadm cryptsetup openssl @@ -151,22 +187,23 @@ xclip # Для работы буфера обмена ffmpeg_7 # Обработка видео. Нужен всегда и везде imagemagick # Обработка изображений. Мб тоже нужен всегда + vips # В 4 раза быстрее imagemagick? tree # Структура файлов в терминале gnugrep # Поиск в терминале gawk # Обработка и анализ текста в терминале rsync # Синхронизация файлов - bat # A cat(1) clone with syntax highlighting and Git integration. - xorg.xwininfo # Для команды xprop? Статы окна, по типу класса - xorg.xrandr # Для команды xrandr. Управление мониторами - xorg.xev # Для команды xev, чтоб узнать бинды + bat # Аналог cat с подсветкой синтаксиса + xorg.xwininfo # Команда xprop. Статы окна, по типу класса + xorg.xrandr # Управление мониторами + xorg.xev # Узнать айдишник бинда xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks - playerctl # Command-line utility and library for controlling media players that implement MPRIS - xdotool # Fake keyboard/mouse input, window management, and more. Автоматизация - zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll - tokei # Показывает количество строк кода на разных языках внутри каталога + playerctl # Управление медиа. Плей/пауза и тд + xdotool # Fake keyboard/mouse input. Для rofi-pass + # zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll + tokei # Количество строк кода на разных языках в каталоге pass # Менеджер паролей в терминале btop # Монитор ресурсов в терминале - # rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает) + rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает) # rocmPackages_5.rocm-smi # Старая версия пакета выше. Хз какой надо yt-dlp # Скачивать и смотреть медиа с разных сайтов tasktimer # TUI task timer. Можно несколько таймеров с описанием запустить. В терминал tt @@ -177,7 +214,14 @@ fzf # Нечёткий поиск killall # Убить процессы. Мем, что в стоке не стоит libnotify # Вызов оповещений через "notify-send" - gallery-dl # download images from several image hosting sites + gallery-dl # Качать много картинок с кучи разных сайтов + shellcheck # Проверка shell скриптов на ошибки + pwgen # Генератор паролей + lm_sensors # Сенсоры + httpie # interacting with APIs & HTTP servers + # mkvtoolnix-cli # Cross-platform tools for Matroska + # jq # Cli JSON processor + # htmlq # Как jq, но для html. Извлекать конкретные элементы из html alacritty # Минималистичный терминал. Основной у меня # kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает @@ -197,7 +241,7 @@ # pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol) networkmanagerapplet # Tray for network manager brightnessctl # Brightness control for laptop - gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает + # gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает ############## ## Browsers ## @@ -277,21 +321,18 @@ # Смотреть картинки imv # Не умеет показывать анимированные webp. Через раз может показывать avif qview # Умеет в анимированные webp. Не умеет открывать avif - feh # Вроде нужен в большом количестве софта как зависимость. Может в avif, но криво + feh # Нужен в большом количестве софта как зависимость. Может в avif, но криво ############ ## Social ## ############ (discord.override { # Discord - withOpenASAR = true; # Оптимизатор дискрода + # withOpenASAR = true; # Оптимизатор дискрода withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными }) telegram-desktop - - element-desktop # Matrix клиент десктоп. Без кастом смайликов - # cinny-desktop # Matrix клиент с кастом смайликами, похож на дс - # https://github.com/commetchat/commet/pull/295 # Matrix клиент, фул копия дса + # revolt-desktop # FOSS аналог дискорда ########### ## Games ## @@ -323,6 +364,7 @@ blender-hip # 3д графика и рендер видео gcolor3 # GUI color picker xcolor # CLI color picker https://github.com/Soft/xcolor + # inkscape # Vector graphic editor ################## ## Productivity ## @@ -384,14 +426,19 @@ google-fonts libva-utils # Проверяет работоспособность VAAPI? clinfo # Проверяет работоспособность OpenCL? - libcap # Мб надо для nekoray libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox alsa-utils # Мне для команды amixer надо pamixer # PulseAudio cli (громкость редачу) - weston # Для запуска wayland only apps на x11 (ещё есть cage, на тесты ставлю оба) + easyeffects # PipeWire settings. Мне для эквалайзера нужен + weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде) + nix-index # Проверить как отображаются некоторые пакеты(например libz.so.1). Запускается nix-index, а потом nix-locate --top-level <Название пакета> docker docker-compose - # lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома + # Для работы некоторых тем sddm + kdePackages.qt5compat + libsForQt5.qt5.qtgraphicaleffects + libsForQt5.qt5.qtquickcontrols + sddm-chili-theme # Qt5 SDDM Theme ]; } diff --git a/shit/mimeapps.list b/shit/mimeapps.list index 76bb961..e2ae4a3 100644 --- a/shit/mimeapps.list +++ b/shit/mimeapps.list @@ -1,8 +1,8 @@ [Added Associations] -application/json=nvim.desktop;codiumcodium.desktop;librewolf.desktop;firefox.desktop;chromium.desktop -application/x-sh=nvim.desktop;codiumcodium.desktop -application/x-shellscript=nvim.desktop;codiumcodium.desktop -application/xml=nvim.desktop;codiumcodium.desktop +application/json=nvim.desktop;codium.desktop;librewolf.desktop;firefox.desktop;chromium.desktop +application/x-sh=nvim.desktop;codium.desktop +application/x-shellscript=nvim.desktop;codium.desktop +application/xml=nvim.desktop;codium.desktop application/yaml=nvim.desktop;codium.desktop image/*=com.interversehq.qView.desktop;imv.desktop image/apng=com.interversehq.qView.desktop;imv.desktop