From 19ac0b6726d659f8bac2714a2eb6639709fa9ca7 Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 16:27:29 +0300 Subject: [PATCH 01/16] =?UTF-8?q?=D1=83=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=BB=D0=B8=D1=88=D0=BD=D0=B5=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nixos/packages.nix | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/nixos/packages.nix b/nixos/packages.nix index 2bfdd2f..a01eeb1 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -39,17 +39,11 @@ gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager tumbler.enable = true; # Thumbnail support for Thunar file manager # flatpak.enable = true; - # unclutter.enable = true; # Enable unclutter to hide your mouse cursor when inactive + # unclutter.enable = true; # Hide your mouse cursor when inactive # fwupd.enable = true; # DBus service that allows applications to update firmware # greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого) # fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь # archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить - - # Для запуска wayland приложений на x11. Мне для waydroid надо - # cage = { - # enable = true; - # user = "buliway"; - # }; }; programs = { @@ -58,7 +52,7 @@ gnupg.agent = { enable = true; enableSSHSupport = true; - pinentryPackage = pkgs.pinentry-qt; + pinentryPackage = pkgs.pinentry-qt; # Окно ввода пароля }; appimage = { # Чтоб .appimage работал @@ -72,9 +66,9 @@ thunar = { # Can't I use it with home-manager? WTF enable = true; plugins = with pkgs.xfce; [ - thunar-media-tags-plugin # Thunar plugin providing tagging and renaming features for media files - thunar-archive-plugin # Thunar plugin providing file context menus for archives - thunar-volman # Thunar extension for automatic management of removable drives and media + thunar-media-tags-plugin # Tagging and renaming features for media files + thunar-archive-plugin # File context menus for archives + thunar-volman # Automatic management of removable drives and media ]; }; xfconf.enable = true; # For Thunar configs @@ -146,7 +140,6 @@ xorg.xrandr # Для команды xrandr. Управление мониторами xorg.xev # Для команды xev, чтоб узнать бинды xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks - feh # Смотреть изображения. Вроде нужен в большом количестве софта как зависимость 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 @@ -165,7 +158,6 @@ killall # Убить процессы. Мем, что в стоке не стоит libnotify # Вызов оповещений через "notify-send" gallery-dl # download images from several image hosting sites - nvim alacritty # Минималистичный терминал. Основной у меня kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает @@ -257,9 +249,10 @@ mousai # Опенсорс шазам. Со временем просит платный api spek # Спектрограмма аудио. mpv # Смотреть видео - imv # Смотреть картинки 1. Не умеет показывать анимированные webp - qview # Смотреть картинки 2. Если imv не может что-то открыть - viewnior # До перехода на wayland юзал его. Если сортирует лучше imv, то удалить imv + # Смотреть картинки + imv # Не умеет показывать анимированные webp. Через раз может показывать avif + qview # Умеет в анимированные webp. Не умеет открывать avif + feh # Вроде нужен в большом количестве софта как зависимость. Может в avif, но криво ############ ## Social ## @@ -316,7 +309,7 @@ ## IDE ## ######### - # neovim # Мб не надо писать, он у меня необычный, через nixvim flake + neovim # Мб не надо писать, он у меня необычный, через nixvim flake # vscode # Надо в home.packages писать, чтоб расширения ставились без рута # jetbrains-toolbox # Надо в home.packages писать. https://nixos.wiki/wiki/Jetbrains_Tools helix # A Kakoune / Neovim inspired editor, written in Rust. From cb05fc79fa92de70f22c9214f946ed087b071904 Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 16:41:38 +0300 Subject: [PATCH 02/16] =?UTF-8?q?=D0=B7=D0=B0=D0=BA=D0=BE=D0=BC=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B8=D0=BB=20=D0=BB=D0=B8=D1=88=D0=BD=D0=B5?= =?UTF-8?q?=D0=B5=20=D1=87=D1=82=D0=BE=D0=B1=20=D0=BC=D0=BE=D0=B6=D0=BD?= =?UTF-8?q?=D0=BE=20=D0=B1=D1=8B=D0=BB=D0=BE=20=D1=81=D1=82=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D1=81=D0=B8=D1=81=D1=82=D0=B5=D0=BC=D1=83?= =?UTF-8?q?=20=D1=81=20=D0=BC=D0=B8=D0=BD=D0=B8=D0=BC=D1=83=D0=BC=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../home-manager => archive}/browsers/chromium.nix | 0 .../home-manager => archive}/browsers/firefox.nix | 0 .../home-manager => archive}/browsers/librewolf.nix | 0 modules/home-manager/bundle.nix | 8 ++------ modules/home-manager/wm/bspwm/bspwm.nix | 11 ++++++----- modules/nixos/bundle.nix | 6 +++--- modules/nixos/hardware.nix | 10 +++++----- modules/nixos/virtualisation.nix | 9 ++++++--- modules/nixos/xserver.nix | 4 ++-- nixos/configuration.nix | 8 ++++---- 10 files changed, 28 insertions(+), 28 deletions(-) rename {modules/home-manager => archive}/browsers/chromium.nix (100%) rename {modules/home-manager => archive}/browsers/firefox.nix (100%) rename {modules/home-manager => archive}/browsers/librewolf.nix (100%) diff --git a/modules/home-manager/browsers/chromium.nix b/archive/browsers/chromium.nix similarity index 100% rename from modules/home-manager/browsers/chromium.nix rename to archive/browsers/chromium.nix diff --git a/modules/home-manager/browsers/firefox.nix b/archive/browsers/firefox.nix similarity index 100% rename from modules/home-manager/browsers/firefox.nix rename to archive/browsers/firefox.nix diff --git a/modules/home-manager/browsers/librewolf.nix b/archive/browsers/librewolf.nix similarity index 100% rename from modules/home-manager/browsers/librewolf.nix rename to archive/browsers/librewolf.nix diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index 7fbcd2c..fe93546 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -1,13 +1,9 @@ { imports = [ - # ./browsers/chromium.nix - # ./browsers/firefox.nix - # ./browsers/librewolf.nix ./browsers/lynx.nix ./ranger/ranger.nix - ./gui/vscode.nix ./imv/imv.nix @@ -30,6 +26,6 @@ ./wm/sxhkd.nix ./mangohud.nix - ./symlinks.nix +# ./symlinks.nix ]; -} \ 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 3508845..8282f93 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -7,10 +7,10 @@ # Как я понял, эти команды выполняются в начале bspwmrc # Ниже настройки для основного монитора. Мб вместе с --primary надо # И настройки для второго (правого) монитора - extraConfigEarly = '' - xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165 - xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 - ''; + # extraConfigEarly = '' + # xrandr --output DisplayPort-2 --mode 1920x1080 --rate 165 + # xrandr --output HDMI-A-0 --mode 1920x1080 --rate 100 --right-of DisplayPort-2 + # ''; # Эти команды выполняются в конце bspwmrc extraConfig = '' @@ -27,6 +27,7 @@ # "nekoray" # "obsidian" # "planify" + # "spice-vdagent" # Для виртуалки ]; monitors = let @@ -126,4 +127,4 @@ pointer_action3 = "resize_corner"; }; }; -} \ No newline at end of file +} diff --git a/modules/nixos/bundle.nix b/modules/nixos/bundle.nix index c93a781..0182089 100644 --- a/modules/nixos/bundle.nix +++ b/modules/nixos/bundle.nix @@ -1,9 +1,9 @@ { imports = [ # ./env.nix # Мб не надо, ибо редачу через home.nix? - ./filesystems.nix +# ./filesystems.nix ./hardware.nix - ./hibernate.nix +# ./hibernate.nix ./locale.nix ./network.nix ./sound.nix @@ -11,4 +11,4 @@ ./virtualisation.nix ./xserver.nix ]; -} \ No newline at end of file +} diff --git a/modules/nixos/hardware.nix b/modules/nixos/hardware.nix index bfd0d73..cf0560a 100644 --- a/modules/nixos/hardware.nix +++ b/modules/nixos/hardware.nix @@ -4,15 +4,15 @@ { pkgs, ... }: { hardware = { # Параметры для 24.05 и unstable могут сильно отличаться - amdgpu = { - opencl.enable = true; # # Enable OpenCL support using ROCM runtime library. +# 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. # }; - }; +# }; graphics = { # hardware.opengl переименован в hardware.graphics в unstable ветке enable = true; @@ -51,7 +51,7 @@ # "L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}" # ]; - boot.initrd.kernelModules = [ "amdgpu" ]; # Мб не обязательно +# boot.initrd.kernelModules = [ "amdgpu" ]; # Мб не обязательно # Для AMD существует два драйвера Vulkan # Один официальный от AMD - amdvlk @@ -60,4 +60,4 @@ # В некоторых играх лучше работает radv, в некоторых amdvlk # Штука ниже не обязательна для работы radv, но я сохранил # environment.variables.AMD_VULKAN_ICD = "RADV"; -} \ No newline at end of file +} diff --git a/modules/nixos/virtualisation.nix b/modules/nixos/virtualisation.nix index 409600b..2bfabce 100644 --- a/modules/nixos/virtualisation.nix +++ b/modules/nixos/virtualisation.nix @@ -45,10 +45,13 @@ # services = { # openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал. - # qemuGuest.enable = true; # Time syncing and scripting # spice-vdagentd.enable = true; # Clipboard sharing + # # Ниже я не включаю # spice-webdavd.enable = true; # VirtFS alternative for directory sharing - # qemuGuest.package = pkgs.qemu_full; # Time syncing and scripting + # qemuGuest = { + # enable = true; # Time syncing and scripting + # package = pkgs.qemu_full; # Time syncing and scripting + # }; # }; -} \ No newline at end of file +} diff --git a/modules/nixos/xserver.nix b/modules/nixos/xserver.nix index 5f414d8..cc8edb0 100644 --- a/modules/nixos/xserver.nix +++ b/modules/nixos/xserver.nix @@ -49,7 +49,7 @@ # https://discourse.nixos.org/t/amd-gpu-optimal-settings/27648/3 # videoDrivers = [ "nvidia" ]; # https://nixos.wiki/wiki/Nvidia - videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU - deviceSection = ''Option "TearFree" "True"''; +# videoDrivers = [ "amdgpu" ]; # https://nixos.wiki/wiki/AMD_GPU +# deviceSection = ''Option "TearFree" "True"''; }; } diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 17aadcb..0eccf39 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -16,10 +16,10 @@ in { # Список сервисов, которые не надо ребутать после rebuild switch # Мне это надо, потому что некоторые сервисы кладут систему - systemd.services = { - "accounts-daemon".restartIfChanged = false; - # "home-manager-buliway".restartIfChanged = false; - }; + # systemd.services = { + # "accounts-daemon".restartIfChanged = false; + # "home-manager-buliway".restartIfChanged = false; + # }; boot = { kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия From 05e37190e477c28ee89539001b44cc052708d269 Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 16:53:00 +0300 Subject: [PATCH 03/16] =?UTF-8?q?=D0=BA=D0=BE=D0=BC=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D1=8B=20=D0=BF=D0=BE=20=D1=85=D1=83=D0=B9=D0=BD=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/nixos/sound.nix | 1 + nixos/configuration.nix | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/modules/nixos/sound.nix b/modules/nixos/sound.nix index 777b9de..73b9942 100644 --- a/modules/nixos/sound.nix +++ b/modules/nixos/sound.nix @@ -54,6 +54,7 @@ context.properties = { default.clock.rate = 48000; # Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь закомментить, если не знаешь что ставить + # Гавноёбы ебаные не могут запихать список без запятых и без кавычек. Из-за этого не работает default.clock.allowed-rates = "[ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]"; }; }; diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 0eccf39..f6f9c1c 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -23,6 +23,9 @@ in { boot = { kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия + # kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors + # "video=Virtual-1:1920x1080@60" + # ]; loader = { # systemd-boot.enable = true; @@ -31,13 +34,7 @@ in { efiSupport = true; device = "nodev"; # nodev позволяет не устанавливать grub в конкретное место, но видеть его ui }; - efi.canTouchEfiVariables = true; - - # kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors - # "video=DP-3:1920x1080@165" - # "video=HDMI-A-1:1920x1080@75" - # ]; }; }; From e7d32024600213ac6e936298e347bc794e0efbd0 Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 17:14:33 +0300 Subject: [PATCH 04/16] =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D1=8B=D0=B9=20=D0=B3?= =?UTF-8?q?=D0=B0=D0=B9=D0=B4=20=D0=BF=D0=BE=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 ++++++++++++++--------- modules/nixos/sound.nix | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b710ab8..aa42397 100644 --- a/README.md +++ b/README.md @@ -353,15 +353,19 @@ sudo nano /etc/nixos/configuration.nix sudo nixos-rebuild switch ``` -Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой: +Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой (либо можно сделать гит клон и через nano внести изменения для первых трёх пунктов, остальное менять на готовой системе): -- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера. И открыть файл `nixos/home.nix`, где надо заменить `username` и `homeDirectory`. -- Изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры экрана. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки. -- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их. -- Изменить настройки звука в `modules/nixos/sound.nix`. Там надо закомментировать `default.clock.allowed-rates` с кучей разных частот. Они сделаны для моего цапа, но у большинства людей это может вызвать ошибки. Те, кто знают что это и зачем, те изменят под себя. -- Закомментировать/удалить `./symlinks.nix` в файле `modules/home-manager/bundle.nix`. Там написаны симлинки для второго ссд, где я бекаплю браузер и тд. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг. -- Закомментировать/удалить `./filesystems.nix` в файле `modules/nixos/bundle.nix`. Там монтируется мой второй ссд для бекапов. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг. -- Закомментировать/удалить `./hibernate.nix` в файле `modules/nixos/bundle.nix`. Там создаётся хибернация в файл подкачки по uuid. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг. +- Переменную `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` или просто не отслеживаемые гитом файлы. @@ -393,8 +397,9 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots size = 64*1024; # В мегабайтах } ]; ``` -- Включить гибренацию в `modules/nixos/hibernate.nix` +- Настроить гибренацию в `modules/nixos/hibernate.nix` - Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают +- Настроить приложения `Qt5 Settings`, `Qt6 Settings` и `Kvantum`. Там надо выбрать свою системную тему. Вроде всё интуитивно понятно будет. Можно попробовать обновить систему, в надежде, что системная тема `stylix` начнёт работать с приложениями `qt`. Для этого надо будет закомментить настройки `qt` в конфиге `stylix`. - Добавить gpg ключи ```sh gpg --import /path/to/your-key.gpg diff --git a/modules/nixos/sound.nix b/modules/nixos/sound.nix index 73b9942..3e18b57 100644 --- a/modules/nixos/sound.nix +++ b/modules/nixos/sound.nix @@ -55,7 +55,7 @@ default.clock.rate = 48000; # Ниже измени под свой пк. У меня цап поддерживает всё это. Можешь закомментить, если не знаешь что ставить # Гавноёбы ебаные не могут запихать список без запятых и без кавычек. Из-за этого не работает - default.clock.allowed-rates = "[ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]"; + # default.clock.allowed-rates = "[ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ]"; }; }; # Ниже настройки для минимальной задержки в играх (например osu!stable через wine) From 85a46de39d56ba6e990cc59fc56a3a102649a373 Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 17:34:32 +0300 Subject: [PATCH 05/16] new install.sh --- nixos/configuration.nix | 2 +- shit/install.sh | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/nixos/configuration.nix b/nixos/configuration.nix index f6f9c1c..38e6898 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -24,7 +24,7 @@ in { boot = { kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия # kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors - # "video=Virtual-1:1920x1080@60" + # "video=1920x1080" # ]; loader = { diff --git a/shit/install.sh b/shit/install.sh index aaf2d2a..e3f5eed 100755 --- a/shit/install.sh +++ b/shit/install.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash -cp ./helpers.rc $HOME/.config/xfce4/helpers.rc -cp ./mimeapps.list $HOME/.config/mimeapps.list +mkdir -p $HOME/.config/xfce4/ +cp $HOME/nixos-private-dots/shit/helpers.rc $HOME/.config/xfce4/helpers.rc +cp $HOME/nixos-private-dots/shit/mimeapps.list $HOME/.config/mimeapps.list -cp ./Kvantum $HOME/.config/Kvantum -cp ./qt5ct $HOME/.config/qt5ct -cp ./qt6ct $HOME/.config/qt6ct +cp -r $HOME/nixos-private-dots/shit/Kvantum $HOME/.config/Kvantum +cp -r $HOME/nixos-private-dots/shit/qt5ct $HOME/.config/qt5ct +cp -r $HOME/nixos-private-dots/shit/qt6ct $HOME/.config/qt6ct From 2d3e46d06320941d909376bd3e0137ec5573ed2f Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 7 Oct 2024 19:47:41 +0300 Subject: [PATCH 06/16] new readme, pipewire and hibernate --- README.md | 4 ++++ modules/home-manager/pipewire.nix | 11 +++++++++++ modules/nixos/hibernate.nix | 4 ++-- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 modules/home-manager/pipewire.nix diff --git a/README.md b/README.md index aa42397..f4c70cf 100644 --- a/README.md +++ b/README.md @@ -375,6 +375,9 @@ sudo nixos-rebuild switch ```sh sudo nixos-rebuild boot --flake github:Buliway/nixos-private-dots --impure ``` + +Чтоб использовать с репой forgejo, можно попробовать такой синтаксис `git@git.buliway.ru:Buliway/nixos-private-dots`. + Параметр `boot` делает так, что настройки не применяются сразу. После установки надо будет перезапустить пк. Если хочешь проверить как оно заработает без ребута пк, то используй `switch` вместо `boot`. ### Второй способ @@ -400,6 +403,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 diff --git a/modules/home-manager/pipewire.nix b/modules/home-manager/pipewire.nix new file mode 100644 index 0000000..0b26bcf --- /dev/null +++ b/modules/home-manager/pipewire.nix @@ -0,0 +1,11 @@ +# Раз через sound.nix не работает, ставя лишние символы +# То я буду делать симлинк в хоум. Ребут пипы: +# systemctl --user restart pipewire + +{ + xdg.configFile."pipewire/pipewire.conf".text = '' + context.properties = { + default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 705600 768000 ] + } + ''; +} diff --git a/modules/nixos/hibernate.nix b/modules/nixos/hibernate.nix index 3930d91..4a495f2 100644 --- a/modules/nixos/hibernate.nix +++ b/modules/nixos/hibernate.nix @@ -12,7 +12,7 @@ { boot = { - resumeDevice = "/dev/disk/by-uuid/0951089a-fd89-4647-9ddb-0e3ff63d7b49"; - kernelParams = [ "resume_offset=6807551" ]; + resumeDevice = "/swapfile"; + kernelParams = [ "resume_offset=18874367" ]; }; } From d5e3da8a35b1507bf3b4719a8a727506dfe63e9e Mon Sep 17 00:00:00 2001 From: Buliway Date: Tue, 8 Oct 2024 19:15:04 +0300 Subject: [PATCH 07/16] hibernation fix --- modules/home-manager/bundle.nix | 1 + modules/home-manager/symlinks.nix | 2 +- modules/home-manager/wm/sxhkd.nix | 2 +- modules/nixos/hibernate.nix | 9 ++++++--- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index fe93546..c77dc9e 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -26,6 +26,7 @@ ./wm/sxhkd.nix ./mangohud.nix +# ./pipewire.nix # ./symlinks.nix ]; } diff --git a/modules/home-manager/symlinks.nix b/modules/home-manager/symlinks.nix index d8fa5d0..0e9b3c5 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/wm/sxhkd.nix b/modules/home-manager/wm/sxhkd.nix index 4651ac2..ab5faf0 100644 --- a/modules/home-manager/wm/sxhkd.nix +++ b/modules/home-manager/wm/sxhkd.nix @@ -43,7 +43,7 @@ in { # Lock screen super + l - betterlockscreen -l dimblur + betterlockscreen -l dimblur --show-layout # Quit. Закрыть приложение super + q diff --git a/modules/nixos/hibernate.nix b/modules/nixos/hibernate.nix index 4a495f2..1b5c986 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 = "/swapfile"; - kernelParams = [ "resume_offset=18874367" ]; + resumeDevice = "/dev/disk/by-uuid/15630f8d-edf8-4e0b-8df4-9ac20f80fc88"; + kernelParams = [ "resume_offset=18745344" ]; }; + + # Не знаю надо ли это. На виртуалке я не могу забутиться в любом случае + # boot.initrd.systemd.enable = true; } From 7ca878fd495121e6b7e0ec0c9dbddee76118f1f3 Mon Sep 17 00:00:00 2001 From: Buliway Date: Fri, 11 Oct 2024 21:36:04 +0300 Subject: [PATCH 08/16] new readme --- README.md | 27 ++++++++++++++++++++++++++- modules/nixos/virtualisation.nix | 12 ++++++------ 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f4c70cf..5eee15a 100644 --- a/README.md +++ b/README.md @@ -207,7 +207,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 | @@ -415,6 +415,31 @@ 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 ++ }; +``` +В файле `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" # Для виртуалки + ]; +``` + ## Иконки diff --git a/modules/nixos/virtualisation.nix b/modules/nixos/virtualisation.nix index 2bfabce..cc0cde1 100644 --- a/modules/nixos/virtualisation.nix +++ b/modules/nixos/virtualisation.nix @@ -44,14 +44,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 - # }; + # # spice-webdavd.enable = true; # VirtFS alternative for directory sharing + # # qemuGuest = { + # # enable = true; # Time syncing and scripting + # # package = pkgs.qemu_full; # Time syncing and scripting + # # }; # }; } From aeed2cdbebdfbec79ece7a33c78ed3cd82a7f514 Mon Sep 17 00:00:00 2001 From: Buliway Date: Sat, 12 Oct 2024 04:00:03 +0300 Subject: [PATCH 09/16] new window rules --- modules/home-manager/wm/bspwm/bspwm.nix | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index 8282f93..4ea2080 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -67,19 +67,19 @@ "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-манагер надо флоатинг }; From 958bf4aaa4cc5c5e6719c58609c3285be99b9503 Mon Sep 17 00:00:00 2001 From: Buliway Date: Sat, 12 Oct 2024 05:23:10 +0300 Subject: [PATCH 10/16] rewrote polybar in nix --- modules/home-manager/wm/bspwm/bspwm.nix | 9 +- modules/home-manager/wm/polybar.nix | 630 ++++++++++++------------ nixos/packages.nix | 7 +- 3 files changed, 327 insertions(+), 319 deletions(-) diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index 4ea2080..a6bc3ab 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -14,9 +14,11 @@ # Эти команды выполняются в конце bspwmrc extraConfig = '' - for m in $(polybar --list-monitors | cut -d":" -f1); do - MONITOR=$m polybar --reload bottom & - done + if [[ "$XDG_SESSION_DESKTOP" == *"bspwm"* ]]; then + for m in $(polybar --list-monitors | cut -d":" -f1); do + MONITOR=$m polybar --reload bspwm & + done + fi ''; startupPrograms = [ @@ -61,7 +63,6 @@ state = "floating"; }; in { # А тут правила окон - # "Polybar" = { layer = "below"; }; "Screenkey" = { manage = false; }; "gcolor3" = floating; "obs" = floating; diff --git a/modules/home-manager/wm/polybar.nix b/modules/home-manager/wm/polybar.nix index da07179..5ab992a 100644 --- a/modules/home-manager/wm/polybar.nix +++ b/modules/home-manager/wm/polybar.nix @@ -26,317 +26,327 @@ rofiPower = "${config.home.homeDirectory}/.config/rofi/power.rasi"; monitor = "$\{env:MONITOR:\}"; in { # Статус бар внизу - home.packages = with pkgs; [ polybar ]; + services.polybar = { + enable = true; - xdg.configFile."polybar/config.ini" = { - # executable = true; - text = '' - [bar/bottom] - monitor=${monitor} - tray-position=right - - bottom=true - fixed-center=true - enable-ipc=true - double-click-interval=400 - offset-x=0 - offset-y=0 - - width=100% - height=16pt - radius=0 - dpi=0 - background=${config.lib.stylix.colors.base00} - foreground=${config.lib.stylix.colors.base07} - border-color=${config.lib.stylix.colors.base00} - border-size=4pt - module-margin=4pt - separator=| - separator-foreground=${config.lib.stylix.colors.base0F} - - modules-center=time - modules-left=bspwm title - modules-right=cpu memory alsa tray xkeyboard rofi power - - wm-restack=bspwm - - font-0=NotoSans Nerd Font:style=Regular:size=12;3 - - ; Выблядки не могут юзать все Noto Sans при указании одного шрифта - font-1=Noto Sans:size=12;3 - font-2=Noto Sans CJK HK:size=12;3 - font-3=Noto Sans CJK JP:size=12;3 - font-4=Noto Sans CJK KR:size=12;3 - font-5=Noto Sans CJK SC:size=12;3 - font-6=Noto Sans CJK TC:size=12;3 - font-7=Unifont:style=Regular:size=12;3 - font-8=Noto Sans Balinese:size=12;3 - font-9=Noto Sans Bamum:size=12;3 - font-10=Noto Sans Zanabazar Square:size=12;3 - font-11=Noto Sans Bassa Vah:size=12;3 - font-12=Noto Sans Batak:size=12;3 - font-13=Noto Sans Bengali:size=12;3 - font-14=Noto Sans Bhaiksuki:size=12;3 - font-15=Noto Sans Brahmi:size=12;3 - font-16=Noto Sans Buginese:size=12;3 - font-17=Noto Sans Buhid:size=12;3 - font-18=Noto Sans Canadian Aboriginal:size=12;3 - font-19=Noto Sans Carian:size=12;3 - font-20=Noto Sans Caucasian Albanian:size=12;3 - font-21=Noto Sans Chakma:size=12;3 - font-22=Noto Sans Cham:size=12;3 - font-23=Noto Sans Cherokee:size=12;3 - font-24=Noto Sans Chorasmian:size=12;3 - font-25=Noto Sans Adlam:size=12;3 - font-26=Noto Sans Anatolian Hieroglyphs:size=12;3 - font-27=Noto Sans Arabic:size=12;3 - font-28=Noto Sans Armenian:size=12;3 - font-29=Noto Sans Avestan:size=12;3 - font-30=Noto Sans Elymaic:size=12;3 - font-31=Noto Sans Coptic:size=12;3 - font-32=Noto Sans Cuneiform:size=12;3 - font-33=Noto Sans Cypriot:size=12;3 - font-34=Noto Sans Cypro Minoan:size=12;3 - font-35=Noto Sans Deseret:size=12;3 - font-36=Noto Sans Devanagari:size=12;3 - font-37=Noto Sans Duployan:size=12;3 - font-38=Noto Sans Egyptian Hieroglyphs:size=12;3 - font-39=Noto Sans Elbasan:size=12;3 - font-40=Noto Sans Hanunoo:size=12;3 - font-41=Noto Sans Ethiopic:size=12;3 - font-42=Noto Sans Georgian:size=12;3 - font-43=Noto Sans Glagolitic:size=12;3 - font-44=Noto Sans Gothic:size=12;3 - font-45=Noto Sans Grantha:size=12;3 - font-46=Noto Sans Gujarati:size=12;3 - font-47=Noto Sans Gunjala Gondi:size=12;3 - font-48=Noto Sans Gurmukhi:size=12;3 - font-49=Noto Sans Hanifi Rohingya:size=12;3 - font-50=Noto Sans Kawi:size=12;3 - font-51=Noto Sans Hatran:size=12;3 - font-52=Noto Sans Hebrew:size=12;3 - font-53=Noto Sans Imperial Aramaic:size=12;3 - font-54=Noto Sans Indic Siyaq Numbers:size=12;3 - font-55=Noto Sans Inscriptional Pahlavi:size=12;3 - font-56=Noto Sans Inscriptional Parthian:size=12;3 - font-57=Noto Sans Javanese:size=12;3 - font-58=Noto Sans Kaithi:size=12;3 - font-59=Noto Sans Kannada:size=12;3 - font-60=Noto Sans Linear B:size=12;3 - font-61=Noto Sans Kayah Li:size=12;3 - font-62=Noto Sans Kharoshthi:size=12;3 - font-63=Noto Sans Khmer:size=12;3 - font-64=Noto Sans Khojki:size=12;3 - font-65=Noto Sans Khudawadi:size=12;3 - font-66=Noto Sans Lao:size=12;3 - font-67=Noto Sans Lepcha:size=12;3 - font-68=Noto Sans Limbu:size=12;3 - font-69=Noto Sans Linear A:size=12;3 - font-70=Noto Sans Math:size=12;3 - font-71=Noto Sans Lisu:size=12;3 - font-72=Noto Sans Lycian:size=12;3 - font-73=Noto Sans Lydian:size=12;3 - font-74=Noto Sans Mahajani:size=12;3 - font-75=Noto Sans Malayalam:size=12;3 - font-76=Noto Sans Mandaic:size=12;3 - font-77=Noto Sans Manichaean:size=12;3 - font-78=Noto Sans Marchen:size=12;3 - font-79=Noto Sans Masaram Gondi:size=12;3 - font-80=Noto Sans Mono CJK HK:size=12;3 - font-81=Noto Sans Mayan Numerals:size=12;3 - font-82=Noto Sans Medefaidrin:size=12;3 - font-83=Noto Sans Meetei Mayek:size=12;3 - font-84=Noto Sans Mende Kikakui:size=12;3 - font-85=Noto Sans Meroitic:size=12;3 - font-86=Noto Sans Miao:size=12;3 - font-87=Noto Sans Modi:size=12;3 - font-88=Noto Sans Mongolian:size=12;3 - font-89=Noto Sans Mono:size=12;3 - font-90=Noto Sans Nandinagari:size=12;3 - font-91=Noto Sans Mono CJK JP:size=12;3 - font-92=Noto Sans Mono CJK KR:size=12;3 - font-93=Noto Sans Mono CJK SC:size=12;3 - font-94=Noto Sans Mono CJK TC:size=12;3 - font-95=Noto Sans Mro:size=12;3 - font-96=Noto Sans Multani:size=12;3 - font-97=Noto Sans Myanmar:size=12;3 - font-98=Noto Sans Nabataean:size=12;3 - font-99=Noto Sans Nag Mundari:size=12;3 - font-100=Noto Sans Old Permic:size=12;3 - font-101=Noto Sans Newa:size=12;3 - font-102=Noto Sans New Tai Lue:size=12;3 - font-103=Noto Sans NKo:size=12;3 - font-104=Noto Sans Nushu:size=12;3 - font-105=Noto Sans Ogham:size=12;3 - font-106=Noto Sans Ol Chiki:size=12;3 - font-107=Noto Sans Old Hungarian:size=12;3 - font-108=Noto Sans Old Italic:size=12;3 - font-109=Noto Sans Old North Arabian:size=12;3 - font-110=Noto Sans Pau Cin Hau:size=12;3 - font-111=Noto Sans Old Persian:size=12;3 - font-112=Noto Sans Old Sogdian:size=12;3 - font-113=Noto Sans Old South Arabian:size=12;3 - font-114=Noto Sans Old Turkic:size=12;3 - font-115=Noto Sans Oriya:size=12;3 - font-116=Noto Sans Osage:size=12;3 - font-117=Noto Sans Osmanya:size=12;3 - font-118=Noto Sans Pahawh Hmong:size=12;3 - font-119=Noto Sans Palmyrene:size=12;3 - font-120=Noto Sans Shavian:size=12;3 - font-121=Noto Sans Phags-Pa:size=12;3 - font-122=Noto Sans PhagsPa:size=12;3 - font-123=Noto Sans Phoenician:size=12;3 - font-124=Noto Sans Psalter Pahlavi:size=12;3 - font-125=Noto Sans Rejang:size=12;3 - font-126=Noto Sans Runic:size=12;3 - font-127=Noto Sans Samaritan:size=12;3 - font-128=Noto Sans Saurashtra:size=12;3 - font-129=Noto Sans Sharada:size=12;3 - font-130=Noto Sans Symbols 2:size=12;3 - font-131=Noto Sans Siddham:size=12;3 - font-132=Noto Sans SignWriting:size=12;3 - font-133=Noto Sans Sinhala:size=12;3 - font-134=Noto Sans Sogdian:size=12;3 - font-135=Noto Sans Sora Sompeng:size=12;3 - font-136=Noto Sans Soyombo:size=12;3 - font-137=Noto Sans Sundanese:size=12;3 - font-138=Noto Sans Syloti Nagri:size=12;3 - font-139=Noto Sans Symbols:size=12;3 - font-140=Noto Sans Telugu:size=12;3 - font-141=Noto Sans Syriac:size=12;3 - font-142=Noto Sans Tagalog:size=12;3 - font-143=Noto Sans Tagbanwa:size=12;3 - font-144=Noto Sans Tai Le:size=12;3 - font-145=Noto Sans Tai Tham:size=12;3 - font-146=Noto Sans Tai Viet:size=12;3 - font-147=Noto Sans Takri:size=12;3 - font-148=Noto Sans Tamil:size=12;3 - font-149=Noto Sans Tangsa:size=12;3 - font-150=Noto Sans Warang Citi:size=12;3 - font-151=Noto Sans Test:size=12;3 - font-152=Noto Sans Thaana:size=12;3 - font-153=Noto Sans Thai:size=12;3 - font-154=Noto Sans Tifinagh:size=12;3 - font-155=Noto Sans Tirhuta:size=12;3 - font-156=Noto Sans Ugaritic:size=12;3 - font-157=Noto Sans Vai:size=12;3 - font-158=Noto Sans Vithkuqi:size=12;3 - font-159=Noto Sans Wancho:size=12;3 - font-160=Noto Sans Yi:size=12;3 - - ; Ебаные дауны не могут нормально отображать смайлики - ; Там хуйня на пол экрана - ; font-161=Noto Color Emoji:style=Regular:size=12;3 - ; font-162=Noto Emoji:style=Regular:size=12;3 - - [module/alsa] - type=internal/alsa - master-soundcard=default - speaker-soundcard=default - headphone-soundcard=default - master-mixer=Master - interval=5 - format-volume= - format-muted= - label-muted= %percentage% - label-volume= %percentage% - click-right=exec pavucontrol - - [module/bspwm] - type=internal/bspwm - pin-workspaces=true - inline-mode=true - enable-click=true - enable-scroll=false - reverse-scroll=false - occupied-scroll=true - - ws-icon-1=1;1 - ws-icon-2=2;2 - ws-icon-3=3;3 - ws-icon-4=4;4 - ws-icon-5=5;5 - ws-icon-6=6;6 - ws-icon-7=7;7 - ws-icon-8=8;8 - ws-icon-9=9;9 - ws-icon-10=10;10 - - format= - - label-empty=%name% - label-empty-background=${config.lib.stylix.colors.base03} - label-empty-foreground=${config.lib.stylix.colors.base00} - label-empty-padding=5pt - - label-focused=%name% - label-focused-background=${config.lib.stylix.colors.base09} - label-focused-foreground=${config.lib.stylix.colors.base00} - label-focused-padding=5pt - - label-occupied=%name% - label-occupied-background=${config.lib.stylix.colors.base04} - label-occupied-foreground=${config.lib.stylix.colors.base00} - label-occupied-padding=5pt - - label-urgent=%name% - label-urgent-background=${config.lib.stylix.colors.base08} - label-urgent-foreground=${config.lib.stylix.colors.base00} - label-urgent-padding=5pt - - label-separator=" " - label-separator-foreground=${config.lib.stylix.colors.base00} - label-separator-padding=0 - - [module/cpu] - type=internal/cpu - interval=1 - warn-percentage=95 - label=CPU %percentage%% - label-warn=CPU %percentage%% - - [module/memory] - interval=5 - label=RAM: %gb_used% + %gb_swap_used% - type=internal/memory - - [module/rofi] - type=custom/text - click-left=exec rofi -show drun -show-icons -theme ${rofiApps} - label=" " - - [module/power] - type=custom/text - click-left=exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiPower} - label=" " - - [module/time] - type=internal/date - interval=1 - date=%d %B %Y - date-alt=%d-%m-%Y - time=%H:%M:%S - time-alt=%H:%M - label=%date% %time% - - [module/title] - type=internal/xwindow - label=%title% - label-maxlen=40 - label-foreground=${config.lib.stylix.colors.base07} - - [module/tray] - type=internal/tray - format= - tray-spacing=8px - tray-size=90% - - [module/xkeyboard] - type=internal/xkeyboard - format= - label-layout=%icon% - layout-icon-0=ru;RU - layout-icon-1=us;EN + # Скрипт запуска polybar. Выключил. Включаю в bspwm.nix + script = '' + sleep 0 ''; + + settings = { # Или переимоневать в "config"? Не понял в чём разница + "bar/bspwm" = { + monitor = "\${env:MONITOR:}"; + + bottom = true; + fixed-center = true; + enable-ipc = true; + double-click-interval = 400; + offset-x = 0; + offset-y = 0; + + width = "100%"; + height = "16pt"; + radius = 0; + dpi = 0; + background = config.lib.stylix.colors.base00; + foreground = config.lib.stylix.colors.base07; + border-color = config.lib.stylix.colors.base00; + border-size = "4pt"; + module-margin = "4pt"; + separator = "|"; + separator-foreground = config.lib.stylix.colors.base0F; + + modules-left = "bspwm title"; + modules-center = "time"; + modules-right = "cpu memory alsa tray xkeyboard rofi power"; + wm-restack = "bspwm"; + + font-0 = "NotoSans Nerd Font:style=Regular:size=12;3"; + + # Выблядки не могут юзать все Noto Sans при указании одного шрифта + # А ещё дауны не могут отображать смайлики нормально + # Там кусок дерьма на пол экрана + font-1 = "Noto Sans:size=12;3"; + font-2 = "Noto Sans CJK HK:size=12;3"; + font-3 = "Noto Sans CJK JP:size=12;3"; + font-4 = "Noto Sans CJK KR:size=12;3"; + font-5 = "Noto Sans CJK SC:size=12;3"; + font-6 = "Noto Sans CJK TC:size=12;3"; + font-7 = "Unifont:style=Regular:size=12;3"; + font-8 = "Noto Sans Balinese:size=12;3"; + font-9 = "Noto Sans Bamum:size=12;3"; + font-10 = "Noto Sans Zanabazar Square:size=12;3"; + font-11 = "Noto Sans Bassa Vah:size=12;3"; + font-12 = "Noto Sans Batak:size=12;3"; + font-13 = "Noto Sans Bengali:size=12;3"; + font-14 = "Noto Sans Bhaiksuki:size=12;3"; + font-15 = "Noto Sans Brahmi:size=12;3"; + font-16 = "Noto Sans Buginese:size=12;3"; + font-17 = "Noto Sans Buhid:size=12;3"; + font-18 = "Noto Sans Canadian Aboriginal:size=12;3"; + font-19 = "Noto Sans Carian:size=12;3"; + font-20 = "Noto Sans Caucasian Albanian:size=12;3"; + font-21 = "Noto Sans Chakma:size=12;3"; + font-22 = "Noto Sans Cham:size=12;3"; + font-23 = "Noto Sans Cherokee:size=12;3"; + font-24 = "Noto Sans Chorasmian:size=12;3"; + font-25 = "Noto Sans Adlam:size=12;3"; + font-26 = "Noto Sans Anatolian Hieroglyphs:size=12;3"; + font-27 = "Noto Sans Arabic:size=12;3"; + font-28 = "Noto Sans Armenian:size=12;3"; + font-29 = "Noto Sans Avestan:size=12;3"; + font-30 = "Noto Sans Elymaic:size=12;3"; + font-31 = "Noto Sans Coptic:size=12;3"; + font-32 = "Noto Sans Cuneiform:size=12;3"; + font-33 = "Noto Sans Cypriot:size=12;3"; + font-34 = "Noto Sans Cypro Minoan:size=12;3"; + font-35 = "Noto Sans Deseret:size=12;3"; + font-36 = "Noto Sans Devanagari:size=12;3"; + font-37 = "Noto Sans Duployan:size=12;3"; + font-38 = "Noto Sans Egyptian Hieroglyphs:size=12;3"; + font-39 = "Noto Sans Elbasan:size=12;3"; + font-40 = "Noto Sans Hanunoo:size=12;3"; + font-41 = "Noto Sans Ethiopic:size=12;3"; + font-42 = "Noto Sans Georgian:size=12;3"; + font-43 = "Noto Sans Glagolitic:size=12;3"; + font-44 = "Noto Sans Gothic:size=12;3"; + font-45 = "Noto Sans Grantha:size=12;3"; + font-46 = "Noto Sans Gujarati:size=12;3"; + font-47 = "Noto Sans Gunjala Gondi:size=12;3"; + font-48 = "Noto Sans Gurmukhi:size=12;3"; + font-49 = "Noto Sans Hanifi Rohingya:size=12;3"; + font-50 = "Noto Sans Kawi:size=12;3"; + font-51 = "Noto Sans Hatran:size=12;3"; + font-52 = "Noto Sans Hebrew:size=12;3"; + font-53 = "Noto Sans Imperial Aramaic:size=12;3"; + font-54 = "Noto Sans Indic Siyaq Numbers:size=12;3"; + font-55 = "Noto Sans Inscriptional Pahlavi:size=12;3"; + font-56 = "Noto Sans Inscriptional Parthian:size=12;3"; + font-57 = "Noto Sans Javanese:size=12;3"; + font-58 = "Noto Sans Kaithi:size=12;3"; + font-59 = "Noto Sans Kannada:size=12;3"; + font-60 = "Noto Sans Linear B:size=12;3"; + font-61 = "Noto Sans Kayah Li:size=12;3"; + font-62 = "Noto Sans Kharoshthi:size=12;3"; + font-63 = "Noto Sans Khmer:size=12;3"; + font-64 = "Noto Sans Khojki:size=12;3"; + font-65 = "Noto Sans Khudawadi:size=12;3"; + font-66 = "Noto Sans Lao:size=12;3"; + font-67 = "Noto Sans Lepcha:size=12;3"; + font-68 = "Noto Sans Limbu:size=12;3"; + font-69 = "Noto Sans Linear A:size=12;3"; + font-70 = "Noto Sans Math:size=12;3"; + font-71 = "Noto Sans Lisu:size=12;3"; + font-72 = "Noto Sans Lycian:size=12;3"; + font-73 = "Noto Sans Lydian:size=12;3"; + font-74 = "Noto Sans Mahajani:size=12;3"; + font-75 = "Noto Sans Malayalam:size=12;3"; + font-76 = "Noto Sans Mandaic:size=12;3"; + font-77 = "Noto Sans Manichaean:size=12;3"; + font-78 = "Noto Sans Marchen:size=12;3"; + font-79 = "Noto Sans Masaram Gondi:size=12;3"; + font-80 = "Noto Sans Mono CJK HK:size=12;3"; + font-81 = "Noto Sans Mayan Numerals:size=12;3"; + font-82 = "Noto Sans Medefaidrin:size=12;3"; + font-83 = "Noto Sans Meetei Mayek:size=12;3"; + font-84 = "Noto Sans Mende Kikakui:size=12;3"; + font-85 = "Noto Sans Meroitic:size=12;3"; + font-86 = "Noto Sans Miao:size=12;3"; + font-87 = "Noto Sans Modi:size=12;3"; + font-88 = "Noto Sans Mongolian:size=12;3"; + font-89 = "Noto Sans Mono:size=12;3"; + font-90 = "Noto Sans Nandinagari:size=12;3"; + font-91 = "Noto Sans Mono CJK JP:size=12;3"; + font-92 = "Noto Sans Mono CJK KR:size=12;3"; + font-93 = "Noto Sans Mono CJK SC:size=12;3"; + font-94 = "Noto Sans Mono CJK TC:size=12;3"; + font-95 = "Noto Sans Mro:size=12;3"; + font-96 = "Noto Sans Multani:size=12;3"; + font-97 = "Noto Sans Myanmar:size=12;3"; + font-98 = "Noto Sans Nabataean:size=12;3"; + font-99 = "Noto Sans Nag Mundari:size=12;3"; + font-100 = "Noto Sans Old Permic:size=12;3"; + font-101 = "Noto Sans Newa:size=12;3"; + font-102 = "Noto Sans New Tai Lue:size=12;3"; + font-103 = "Noto Sans NKo:size=12;3"; + font-104 = "Noto Sans Nushu:size=12;3"; + font-105 = "Noto Sans Ogham:size=12;3"; + font-106 = "Noto Sans Ol Chiki:size=12;3"; + font-107 = "Noto Sans Old Hungarian:size=12;3"; + font-108 = "Noto Sans Old Italic:size=12;3"; + font-109 = "Noto Sans Old North Arabian:size=12;3"; + font-110 = "Noto Sans Pau Cin Hau:size=12;3"; + font-111 = "Noto Sans Old Persian:size=12;3"; + font-112 = "Noto Sans Old Sogdian:size=12;3"; + font-113 = "Noto Sans Old South Arabian:size=12;3"; + font-114 = "Noto Sans Old Turkic:size=12;3"; + font-115 = "Noto Sans Oriya:size=12;3"; + font-116 = "Noto Sans Osage:size=12;3"; + font-117 = "Noto Sans Osmanya:size=12;3"; + font-118 = "Noto Sans Pahawh Hmong:size=12;3"; + font-119 = "Noto Sans Palmyrene:size=12;3"; + font-120 = "Noto Sans Shavian:size=12;3"; + font-121 = "Noto Sans Phags-Pa:size=12;3"; + font-122 = "Noto Sans PhagsPa:size=12;3"; + font-123 = "Noto Sans Phoenician:size=12;3"; + font-124 = "Noto Sans Psalter Pahlavi:size=12;3"; + font-125 = "Noto Sans Rejang:size=12;3"; + font-126 = "Noto Sans Runic:size=12;3"; + font-127 = "Noto Sans Samaritan:size=12;3"; + font-128 = "Noto Sans Saurashtra:size=12;3"; + font-129 = "Noto Sans Sharada:size=12;3"; + font-130 = "Noto Sans Symbols 2:size=12;3"; + font-131 = "Noto Sans Siddham:size=12;3"; + font-132 = "Noto Sans SignWriting:size=12;3"; + font-133 = "Noto Sans Sinhala:size=12;3"; + font-134 = "Noto Sans Sogdian:size=12;3"; + font-135 = "Noto Sans Sora Sompeng:size=12;3"; + font-136 = "Noto Sans Soyombo:size=12;3"; + font-137 = "Noto Sans Sundanese:size=12;3"; + font-138 = "Noto Sans Syloti Nagri:size=12;3"; + font-139 = "Noto Sans Symbols:size=12;3"; + font-140 = "Noto Sans Telugu:size=12;3"; + font-141 = "Noto Sans Syriac:size=12;3"; + font-142 = "Noto Sans Tagalog:size=12;3"; + font-143 = "Noto Sans Tagbanwa:size=12;3"; + font-144 = "Noto Sans Tai Le:size=12;3"; + font-145 = "Noto Sans Tai Tham:size=12;3"; + font-146 = "Noto Sans Tai Viet:size=12;3"; + font-147 = "Noto Sans Takri:size=12;3"; + font-148 = "Noto Sans Tamil:size=12;3"; + font-149 = "Noto Sans Tangsa:size=12;3"; + font-150 = "Noto Sans Warang Citi:size=12;3"; + font-151 = "Noto Sans Test:size=12;3"; + font-152 = "Noto Sans Thaana:size=12;3"; + font-153 = "Noto Sans Thai:size=12;3"; + font-154 = "Noto Sans Tifinagh:size=12;3"; + font-155 = "Noto Sans Tirhuta:size=12;3"; + font-156 = "Noto Sans Ugaritic:size=12;3"; + font-157 = "Noto Sans Vai:size=12;3"; + font-158 = "Noto Sans Vithkuqi:size=12;3"; + font-159 = "Noto Sans Wancho:size=12;3"; + font-160 = "Noto Sans Yi:size=12;3"; + }; + + "module/rofi" = { + type = "custom/text"; + click-left = "exec rofi -show drun -show-icons -theme ${rofiApps}"; + label = " "; + }; + + "module/power" = { + type = "custom/text"; + click-left = "exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiPower}"; + label = " "; + }; + + "module/bspwm" = { + type = "internal/bspwm"; + pin-workspaces = true; + inline-mode = true; + enable-click = true; + enable-scroll = false; + # reverse-scroll = false; + # occupied-scroll = true; + + ws-icon-1 = "1;1"; + ws-icon-2 = "2;2"; + ws-icon-3 = "3;3"; + ws-icon-4 = "4;4"; + ws-icon-5 = "5;5"; + ws-icon-6 = "6;6"; + ws-icon-7 = "7;7"; + ws-icon-8 = "8;8"; + ws-icon-9 = "9;9"; + ws-icon-10 = "10;10"; + + format = ""; + + label-empty = "%name%"; + label-empty-foreground = config.lib.stylix.colors.base00; + label-empty-background= config.lib.stylix.colors.base03; + label-empty-padding = "5pt"; + + label-focused = "%name%"; + label-focused-foreground = config.lib.stylix.colors.base00; + label-focused-background= config.lib.stylix.colors.base09; + label-focused-padding = "5pt"; + + label-occupied = "%name%"; + label-occupied-foreground = config.lib.stylix.colors.base00; + label-occupied-background= config.lib.stylix.colors.base04; + label-occupied-padding = "5pt"; + + label-urgent = "%name%"; + label-urgent-foreground = config.lib.stylix.colors.base00; + label-urgent-background= config.lib.stylix.colors.base08; + label-urgent-padding = "5pt"; + + label-separator = " "; + label-separator-padding = 0; + label-separator-foreground = config.lib.stylix.colors.base00; + }; + + "module/title" = { + type = "internal/xwindow"; + label = "%title%"; + label-maxlen = 35; + label-foreground = config.lib.stylix.colors.base07; + }; + + "module/time" = { + type = "internal/date"; + interval = 1; + date = "%d %B %Y"; + date-alt = "%d-%m-%Y"; + time = "%H:%M:%S"; + time-alt = "%H:%M"; + label = "%date% %time%"; + }; + + "module/xkeyboard" = { + type = "internal/xkeyboard"; + format = ""; + label-layout = "%icon%"; + layout-icon-0 = "ru;RU"; + layout-icon-1 = "us;EN"; + }; + + "module/tray" = { + type = "internal/tray"; + format = ""; + tray-spacing = "8px"; + tray-size = "90%"; + }; + + "module/alsa" = { + type = "internal/alsa"; + master-soundcard = "default"; + speaker-soundcard = "default"; + headphone-soundcard = "default"; + master-mixer = "Master"; + interval = 5; + format-volume = ""; + format-muted = ""; + label-volume = " %percentage%"; + label-muted = " %percentage%"; + click-right = "exec pavucontrol"; + }; + + "module/memory" = { + type = "internal/memory"; + interval = 5; + label = "RAM: %gb_used% + %gb_swap_used%"; + }; + + "module/cpu" = { + type = "internal/cpu"; + interval = 1; + warn-percentage = 95; + label = "CPU %percentage%%"; + label-warn = "CPU %percentage%%"; + }; + }; }; } diff --git a/nixos/packages.nix b/nixos/packages.nix index a01eeb1..bcb0778 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -263,10 +263,7 @@ withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными }) telegram-desktop - - element-desktop # Matrix клиент десктоп. Без кастом смайликов - # cinny-desktop # Matrix клиент с кастом смайликами, похож на дс - # https://github.com/commetchat/commet/pull/295 # Matrix клиент, фул копия дса + revolt-desktop # FOSS аналог дискорда ########### ## Games ## @@ -276,7 +273,7 @@ # steam # Мб не надо сюда писать, раз через programs.steam редачу # heroic # A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac # lutris # Запускать игры не из стима - bottles # Минималистичная альтернатива lutris + # bottles # Минималистичная альтернатива lutris # Мб зависимости steam-run # На всякий случай From b4f0587284e65eb7c7227e1c979c0ccb5f1dba5d Mon Sep 17 00:00:00 2001 From: Buliway Date: Sat, 12 Oct 2024 05:40:40 +0300 Subject: [PATCH 11/16] some fixes --- README.md | 4 ++-- modules/home-manager/bundle.nix | 4 +++- modules/home-manager/wm/sxhkd.nix | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 5eee15a..c4fd302 100644 --- a/README.md +++ b/README.md @@ -190,9 +190,9 @@ - Motherboard: MSI Z590-A PRO - Два монитора 1920x1080 на 165 и 100 герц -Основное набор софта +Основной набор софта -Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я переехал на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. +Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я перееду на `i3` + `i3bar`. В теории между ними можно переключаться при запуске пк, так что проблем быть не должно. Если какой-то wm надо выключить, чтоб не засирать систему, то это можно делать в `modules/home-manager/bundle.nix` | Software | Name | | ------------ | -------------------------------- | diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index c77dc9e..c211cce 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -17,11 +17,13 @@ ./terminal/zellij.nix ./terminal/zsh.nix - ./wm/bspwm/bspwm.nix ./wm/rofi/rofi.nix ./wm/dunst.nix ./wm/i3.nix ./wm/lockscreen.nix + + # Для выключения bspwm комментируй все три строки ниже + ./wm/bspwm/bspwm.nix ./wm/polybar.nix ./wm/sxhkd.nix diff --git a/modules/home-manager/wm/sxhkd.nix b/modules/home-manager/wm/sxhkd.nix index ab5faf0..331625b 100644 --- a/modules/home-manager/wm/sxhkd.nix +++ b/modules/home-manager/wm/sxhkd.nix @@ -5,8 +5,9 @@ # Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc { pkgs, config, ... }: let - notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; - notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + muteText = ''then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; ${muteText}''; + notifyMicMute = ''dunstify "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; ${muteText}''; notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800''; # -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга. # -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто. From f88cba95d8a02e9f78b0c34495d7ef224c7e7a8b Mon Sep 17 00:00:00 2001 From: Buliway Date: Sat, 12 Oct 2024 23:49:53 +0300 Subject: [PATCH 12/16] =?UTF-8?q?=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D1=83=D1=80=D1=83?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- modules/home-manager/bundle.nix | 7 +++---- modules/home-manager/{browsers => terminal}/lynx.nix | 0 modules/home-manager/wm/{ => bspwm}/polybar.nix | 0 modules/home-manager/wm/{ => bspwm}/sxhkd.nix | 0 5 files changed, 5 insertions(+), 5 deletions(-) rename modules/home-manager/{browsers => terminal}/lynx.nix (100%) rename modules/home-manager/wm/{ => bspwm}/polybar.nix (100%) rename modules/home-manager/wm/{ => bspwm}/sxhkd.nix (100%) diff --git a/README.md b/README.md index c4fd302..d10a8f3 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ - [Первый способ](#первый-способ) - [Второй способ](#второй-способ) - [После установки надо](#после-установки-надо) +- [Изменения для виртуалок](#изменения-для-виртуалок) - [Иконки](#иконки) - [Темы](#темы) @@ -319,7 +320,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 diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index c211cce..e68b7da 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -1,7 +1,5 @@ { imports = [ - ./browsers/lynx.nix - ./ranger/ranger.nix ./gui/vscode.nix @@ -13,6 +11,7 @@ ./terminal/alacritty.nix ./terminal/git.nix ./terminal/kitty.nix + ./terminal/lynx.nix ./terminal/starship.nix ./terminal/zellij.nix ./terminal/zsh.nix @@ -24,8 +23,8 @@ # Для выключения bspwm комментируй все три строки ниже ./wm/bspwm/bspwm.nix - ./wm/polybar.nix - ./wm/sxhkd.nix + ./wm/bspwm/polybar.nix + ./wm/bspwm/sxhkd.nix ./mangohud.nix # ./pipewire.nix 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/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 From dfd18026264ac3f6acfe33d2fb7fce96718bbacb Mon Sep 17 00:00:00 2001 From: Buliway Date: Sun, 13 Oct 2024 01:54:17 +0300 Subject: [PATCH 13/16] new bundl.nix and packages description --- modules/home-manager/bundle.nix | 26 +++++++++++++++++++++----- nixos/packages.nix | 29 ++++++++++++++--------------- 2 files changed, 35 insertions(+), 20 deletions(-) diff --git a/modules/home-manager/bundle.nix b/modules/home-manager/bundle.nix index e68b7da..b5e3da6 100644 --- a/modules/home-manager/bundle.nix +++ b/modules/home-manager/bundle.nix @@ -16,18 +16,34 @@ ./terminal/zellij.nix ./terminal/zsh.nix + ./mangohud.nix + # ./pipewire.nix + # ./symlinks.nix + + ############## + ## WM (X11) ## + ############## + + # Софт для работы WM на X11 ./wm/rofi/rofi.nix ./wm/dunst.nix - ./wm/i3.nix ./wm/lockscreen.nix - # Для выключения bspwm комментируй все три строки ниже + # Для выключения i3 комментируй все строки ниже + ./wm/i3.nix + + # Для выключения bspwm комментируй все строки ниже ./wm/bspwm/bspwm.nix ./wm/bspwm/polybar.nix ./wm/bspwm/sxhkd.nix - ./mangohud.nix -# ./pipewire.nix -# ./symlinks.nix + ################## + ## WM (Wayland) ## + ################## + + # Wayland гавно лаганое, но мб на NixOS дела будут лучше + # Мб я сделаю конфиги для sway и hyprland на ags + # Каталог wm мб переименовать в X11 и создать отдельный Wayland + ]; } diff --git a/nixos/packages.nix b/nixos/packages.nix index bcb0778..38db967 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -128,22 +128,22 @@ wget curl git - xclip # Для работы буфера обмена - ffmpeg_7 # Обработка видео. Нужен всегда и везде + xclip # Буфера обмена + ffmpeg_7 # Обработка видео. Нужен всегда и везде как зависимость 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 (не работает) @@ -157,7 +157,7 @@ fzf # Нечёткий поиск killall # Убить процессы. Мем, что в стоке не стоит libnotify # Вызов оповещений через "notify-send" - gallery-dl # download images from several image hosting sites + gallery-dl # Качать много картинок с кучи разных сайтов alacritty # Минималистичный терминал. Основной у меня kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает @@ -186,7 +186,7 @@ librewolf firefox chromium - # ff2mpv # Открывать видео из браузера в mpv плеере + # ff2mpv # Открывать видео из браузера в mpv плеере. Кидает файл в каталог мозилы, мне не надо lynx # Текстовый браузер в терминале. Без картинок ########## @@ -252,7 +252,7 @@ # Смотреть картинки imv # Не умеет показывать анимированные webp. Через раз может показывать avif qview # Умеет в анимированные webp. Не умеет открывать avif - feh # Вроде нужен в большом количестве софта как зависимость. Может в avif, но криво + feh # Нужен в большом количестве софта как зависимость. Может в avif, но криво ############ ## Social ## @@ -355,11 +355,10 @@ google-fonts libva-utils # Проверяет работоспособность VAAPI? clinfo # Проверяет работоспособность OpenCL? - libcap # Мб надо для nekoray libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox alsa-utils # Мне для команды amixer надо pamixer # PulseAudio cli (громкость редачу) - weston # Для запуска wayland only apps на x11 (ещё есть cage, на тесты ставлю оба) + weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде) # lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома ]; From 6045cb81b84cd9eab525d833dfc755aeb57449dd Mon Sep 17 00:00:00 2001 From: Buliway Date: Mon, 14 Oct 2024 12:01:59 +0300 Subject: [PATCH 14/16] remove some zsh plugins --- modules/home-manager/terminal/zsh.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/home-manager/terminal/zsh.nix b/modules/home-manager/terminal/zsh.nix index 762f9bd..fcaf4f0 100644 --- a/modules/home-manager/terminal/zsh.nix +++ b/modules/home-manager/terminal/zsh.nix @@ -72,7 +72,7 @@ "fzf" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/fzf "git" # Git aliases https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/git # "gitignore" # Use https://gitignore.io from the command line - "golang" # Completions and aliases for golang + # "golang" # Completions and aliases for golang # "gpg-agent" # Enables GPG's gpg-agent if it is not running. Хз что это значит, мб пригодится "httpie" # Completion for HTTPie, a command line HTTP client, a friendlier cURL replacement. # "isodate" # Completion for the ISO 8601, as well as some aliases for common Date commands. @@ -83,13 +83,13 @@ # "pass" # Completion for the pass password manager # "pip" # Completion for pip, the Python package manager # "podman" # Autocompletion and aliases for podman. - "python" # Aliases for useful Python commands - "rust" # Completion for rustc, rustup and cargo + # "python" # Aliases for useful Python commands + # "rust" # Completion for rustc, rustup and cargo "safe-paste" # Preventing any code from running while pasting, so you have a chance to review what was pasted "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 From 9fd1cd7392adf270753afa4fa920c3c812986e49 Mon Sep 17 00:00:00 2001 From: Buliway Date: Tue, 15 Oct 2024 04:28:03 +0300 Subject: [PATCH 15/16] Remove unnecessary code --- README.md | 36 ++++++++++++--------------- modules/home-manager/symlinks.nix | 11 -------- modules/home-manager/terminal/zsh.nix | 16 +----------- nixos/packages.nix | 1 - 4 files changed, 17 insertions(+), 47 deletions(-) diff --git a/README.md b/README.md index d10a8f3..401229a 100644 --- a/README.md +++ b/README.md @@ -133,28 +133,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` - -Первый ребилд был нормальный вроде. Потом я ребутнул пк, чтоб проверить работу полибара, а всё пошло по пизде при некст ребутах - #### Потенциальный способ исправить проблему Есть следующие два параметра: @@ -165,6 +147,10 @@ Я сделал это для одного сервиса в `nixos/configuration.nix`. Мне помогло. Но если будут ещё сервисы, ребилд на которых зависает и после него крашится система, то можно пробовать запретить рестарт при ребилде. +#### Реальный способ исправить проблему + +Походу дело было в сервисе `cage`. Когда я его удалил, то всё стало работать нормально + ## TODO Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT. @@ -441,6 +427,16 @@ gpg --edit-key ID-ключа ]; ``` +## Запуск Waydroid на X11 + +Один раз написать в терминале `waydroid init` + +- Запустить `weston` +- В его терминале написать `waydroid session start &` +- Потом `waydroid show-full-ui` + +На weston всё работает сразу как надо. Но стоит изменить размеры окна, как waydroid ui пропадает. Приходится стопать и по новой запускать отображение + ## Иконки diff --git a/modules/home-manager/symlinks.nix b/modules/home-manager/symlinks.nix index 0e9b3c5..86c40b2 100644 --- a/modules/home-manager/symlinks.nix +++ b/modules/home-manager/symlinks.nix @@ -33,17 +33,6 @@ in { "Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop"; - # Временное решение, где `native-messaging-hosts/ff2mpv.json` ссылается на ~/ff2mpv.py - "ff2mpv.py" = { - source = "${pkgs.ff2mpv}/bin/ff2mpv.py"; - executable = true; - }; - # Надо добавить симлинк на `native-messaging-hosts/ff2mpv.json`. - # Сначала установить это на firefox, который мне не особо важен - # А потом задать симлинк с firefox на librewolf, который мне важен - # и который я не хочу редактировать через nix - - # Не знаю на счёт obs, chatbox, planify, calibre, discord, nekobox }; diff --git a/modules/home-manager/terminal/zsh.nix b/modules/home-manager/terminal/zsh.nix index fcaf4f0..b5b5884 100644 --- a/modules/home-manager/terminal/zsh.nix +++ b/modules/home-manager/terminal/zsh.nix @@ -66,30 +66,16 @@ #"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 # "gitignore" # Use https://gitignore.io from the command line - # "golang" # Completions and aliases for golang # "gpg-agent" # Enables GPG's gpg-agent if it is not running. Хз что это значит, мб пригодится "httpie" # Completion for HTTPie, a command line HTTP client, a friendlier cURL replacement. # "isodate" # Completion for the ISO 8601, as well as some aliases for common Date commands. - # "kitty" # Aliases for kitty terminal # "mise" # dev tools, env vars, task runner https://github.com/jdx/mise - # "npm" # Completion and aliases for npm - # "nvm" # Autocompletions for nvm — a Node.js version manager - # "pass" # Completion for the pass password manager - # "pip" # Completion for pip, the Python package manager - # "podman" # Autocompletion and aliases for podman. - # "python" # Aliases for useful Python commands - # "rust" # Completion for rustc, rustup and cargo + "pass" # Completion for the pass password manager (вдруг добавит нечёткий поиск?) "safe-paste" # Preventing any code from running while pasting, so you have a chance to review what was pasted "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 "timer" # Показывает время выполнения команды "universalarchive" # Run "ua "" to compress into an archive file using # "vi-mode" # https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/vi-mode diff --git a/nixos/packages.nix b/nixos/packages.nix index 38db967..a72b9bf 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -186,7 +186,6 @@ librewolf firefox chromium - # ff2mpv # Открывать видео из браузера в mpv плеере. Кидает файл в каталог мозилы, мне не надо lynx # Текстовый браузер в терминале. Без картинок ########## From 891f8b054ca2e01a7ec22cb66b4bb3a73b06e29c Mon Sep 17 00:00:00 2001 From: Buliway Date: Tue, 15 Oct 2024 07:08:39 +0300 Subject: [PATCH 16/16] Fix qemu resolution and install SDDM --- README.md | 4 ++++ modules/nixos/virtualisation.nix | 8 ++++---- modules/nixos/xserver.nix | 19 ++++++++----------- nixos/packages.nix | 7 ++++++- 4 files changed, 22 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 401229a..72de036 100644 --- a/README.md +++ b/README.md @@ -411,6 +411,10 @@ gpg --edit-key ID-ключа + 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 --git a/modules/nixos/virtualisation.nix b/modules/nixos/virtualisation.nix index cc0cde1..e72f2e7 100644 --- a/modules/nixos/virtualisation.nix +++ b/modules/nixos/virtualisation.nix @@ -46,12 +46,12 @@ # services = { # openssh.enable = true; # Это ставится на виртуалку, чтоб к ней конект по ssh работал. # spice-vdagentd.enable = true; # Clipboard sharing + # qemuGuest = { + # enable = true; # Fix resolution + # package = pkgs.qemu_full; + # }; # # Ниже я не включаю # # spice-webdavd.enable = true; # VirtFS alternative for directory sharing - # # qemuGuest = { - # # enable = true; # Time syncing and scripting - # # package = pkgs.qemu_full; # Time syncing and scripting - # # }; # }; } diff --git a/modules/nixos/xserver.nix b/modules/nixos/xserver.nix index cc8edb0..6126d3f 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 = ""; diff --git a/nixos/packages.nix b/nixos/packages.nix index a72b9bf..f0c1c62 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -158,6 +158,7 @@ killall # Убить процессы. Мем, что в стоке не стоит libnotify # Вызов оповещений через "notify-send" gallery-dl # Качать много картинок с кучи разных сайтов + shellcheck # Проверка shell скриптов на ошибки alacritty # Минималистичный терминал. Основной у меня kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает @@ -359,6 +360,10 @@ pamixer # PulseAudio cli (громкость редачу) weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде) - # lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома + # Для работы некоторых тем sddm + kdePackages.qt5compat + libsForQt5.qt5.qtgraphicaleffects + libsForQt5.qt5.qtquickcontrols + sddm-chili-theme # Qt5 SDDM Theme ]; }