From 573ab32cc01b7f4e9030458f83a55e0bf4bdd168 Mon Sep 17 00:00:00 2001 From: Buliway Date: Wed, 14 Aug 2024 16:34:44 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=87=D0=B0=D1=81=D1=82=D1=8C=20=D0=B1=D0=B8=D0=BD?= =?UTF-8?q?=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 53 +-- modules/home-manager/symlinks.nix | 7 +- modules/home-manager/wm/bspwm/bspwm.nix | 24 +- modules/home-manager/wm/polybar.nix | 82 +++-- modules/home-manager/wm/sxhkd.nix | 64 +++- modules/nixos/hardware.nix | 5 +- modules/nixos/network.nix | 21 +- modules/nixos/stylix.nix | 6 +- modules/nixos/xserver.nix | 4 - nixos/packages.nix | 116 +++++-- shit/README.md | 2 + shit/mimeapps.list | 44 +-- shit/strawberry.conf | 443 ++++++++++++++++++++++++ 13 files changed, 730 insertions(+), 141 deletions(-) create mode 100644 shit/strawberry.conf diff --git a/README.md b/README.md index 2cc5862..70911a4 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Надо сделать декларативную QT тему (ебал их рты). Сейчас у меня есть три каталог в каталоге `shit`. Их я могу скопировать в `~/.config`, нужная переменная окружения в `home.nix` стоит и всё заработает. Но это залупа. Другой человек не сможет это юзать мб. Потому что там в коде написан путь `/home/buliway`. Не всем же быть буливеями. Хотя это изи исправляется, потом сделаю. Но пока что я рот ебал тратить 3 дня на настройку темы бездарных далбаёбов на QT. +Надо сделать Nekoray нормально. Пока что только путь пидараса есть. Запускаешь `sudo ~/Downloads/VPN/nekoray-3.26-2023-12-09-linux-x64.AppImage`. В некобоксе офаешь у тян мода стрик роут. Систем тан. В меню жмёшь перезапустить прогу, она отлипла от терминала, перетащил на 10 воркспейс и сижу хуй сосу, ибо меня сайты в пермак кидают за такую хуйню + ## Дотсы Железо, на котором это работает: @@ -149,31 +151,30 @@ gpg --edit-key ID-ключа | `Super + Q` | Quit. Выключить приложение | Да | | `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его | Да | | `Super + F` | Floating toggle | Да | -| `Super + Enter` | Fullscreen toggle |нет| -| `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора |нет| -| `Super + ЛКМ` | Переместить окно |нет| -| `Super + ПКМ` | Ресайзить окно |нет| -| `Super + Arrows` | Менять фокус приложения в указанном направлении |нет| -| `Super + 0-9` | Переключить воркспейс на 1-10. Если они общие на все моники, то добавить F1-F12 для 11-22 |хз| -| `Super + Shift + 0-9` | Перекинуть активное окно на воркспейс. Желательно silent, чтоб меня не перекидывало к проге |хз| -| `Super + Ctrl + Down` | Переключает на первый пустой воркспейс |хз| -| `Super + Ctrl + Left/Right` | Переключает на предыдущий/следующий воркспейс. Тоесть делает -1 или +1 от текущего |хз| +| `Super + Enter` | Fullscreen toggle | Да | +| `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора | Да | +| `Super + ЛКМ` | Переместить окно | Да | +| `Super + ПКМ` | Ресайзить окно | Да | +| `Super + Arrows` | Менять фокус приложения в указанном направлении | Да | +| `Super + 0-9` | Переключить воркспейс на 1-10. Если они общие на все моники, то добавить F1-F12 для 11-22 | Да | +| `Super + Shift + 0-9` | Перекинуть активное окно на воркспейс. Желательно silent, чтоб меня не перекидывало к проге | Да | +| `Super + Ctrl + Down` | Переключает на первый пустой воркспейс |нет| +| `Super + Ctrl + Left/Right` | Переключает на предыдущий/следующий воркспейс. Тоесть делает -1 или +1 от текущего | Да | | `Super + Ctrl + Alt + Down` | Свапает активное окно с самым большим на экране |хз| -| `Super + Ctrl + Alt + Left/Right` | Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним |хз| -| `Super + Alt + Arrows` | Move floating window |хз| -| `Super + Shift + Arrows` | Resize window на 30 пикселей в указанном направлении наружу |хз| -| `Super + Shift + Alt + Arrows` | Resize window на 30 пикселей в указанном направлении внутрь |хз| -| `Super + Shift + Ctrl + Arrows` | Перемещает активное окно в указанном направлении |хз| -| `Super + S` | Split toggle. Меняет позиционирование с горизонтального на вертикальный и обратно. |хз| -| `Super + Ctrl + Shift + R` | Make sxhkd reload its config files |хз| -| `Super + Alt + Ctrn + Shift + R` | Restart bspwm |хз| -| `Super + Alt + Ctrn + Shift + Q` | Quit bspwm |хз| -| `Super + button{1-3}` | Move, resize_side, resize_corner |хз| +| `Super + Ctrl + Alt + Left/Right` | Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним | Да | +| `Super + Alt + Arrows` | Move floating window | Да | +| `Super + Shift + Arrows` | Resize window на 30 пикселей в указанном направлении наружу | Да | +| `Super + Shift + Alt + Arrows` | Resize window на 30 пикселей в указанном направлении внутрь | Да | +| `Super + Shift + Ctrl + Arrows` | Перемещает активное окно в указанном направлении | Криво | +| `Super + S` | Split toggle. Меняет позиционирование с горизонтального на вертикальный и обратно. | Не понял | +| `Super + Ctrl + Shift + R` | Make sxhkd reload its config files | Да | +| `Super + Alt + Ctrn + Shift + R` | Restart bspwm | Да | +| `Super + Alt + Ctrn + Shift + Q` | Quit bspwm | Да | | Rofi | Описание | Работает? | | ------------------- | ---------------------------------------------------------------------------------------------- | --------- | | `Super + A` | Applications. Запускатор софта | Да | -| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. |нет| +| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да | | `Super + P` | Passwords. Пароли из утилиты pass |нет| | `Super + V` | История буфера обмена. Как ctrl+v, но через win. |нет| | `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |хз| @@ -186,20 +187,20 @@ gpg --edit-key ID-ключа | `Super + B` | Browser LibreWolf. Основа | Да | | `Super + Shift + B` | Browser Firefox. Паблик активность | Да | | `Super + Shift + Ctrl + B` | Browser Chromium. Пусть будет | Да | -| `Super + N` | Note taking app (obsidian) |хз| +| `Super + N` | Note taking app (obsidian) | Да | | `Super + E` | Explorer. Thunar file manager | Да | | `Super + I` | IDE, text editor, NeoVim | Да | | `Super + M` | Monitor of resources (btop) | Да | -| `Super + G` | Goals. Todo manager. Task tracker |хз| +| `Super + G` | Goals. Todo manager. Task tracker | Да | | `Super + Shift + C` | Color picker. Получить hex в буфер обмена | Да | | `Super + Ctrl + C` | Color picker. Получить rgb в буфер обмена | Да | | Terminal | Описание | Работает? | | -------------------------- | ---------------------------------------------------------------------------- | --------- | -| `Super + T` | Terminal основной | -| `Super + Shift + T` | Floating Terminal основной в центре экрана с размерами треть на треть экрана | -| `Super + Ctrl + T` | Terminal запасной | -| `Super + Shift + Ctrl + T` | Floating Terminal запасной в центре экрана с размерами треть на треть экрана | +| `Super + T` | Terminal основной | Да | +| `Super + Shift + T` | Floating Terminal основной в центре экрана с размерами треть на треть экрана | Да | +| `Super + Ctrl + T` | Terminal запасной | Да | +| `Super + Shift + Ctrl + T` | Floating Terminal запасной в центре экрана с размерами треть на треть экрана | Да | | Колдунские кнопки | Описание | Работает? | | ----------------------- | ---------------------- | --------- | diff --git a/modules/home-manager/symlinks.nix b/modules/home-manager/symlinks.nix index 6970b73..f07e362 100644 --- a/modules/home-manager/symlinks.nix +++ b/modules/home-manager/symlinks.nix @@ -28,10 +28,11 @@ in { # ".local/share/osu-wine/osu!/osu!.buliway.cfg".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Games/osu!/osu!.buliway.cfg"; # Browsers. Мб сделать .force, чтоб удалить сток. А мб руками удалить сток перед этим - # ".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.mozilla"; - # ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf"; + ".mozilla".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.mozilla"; + ".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf"; - # Не знаю на счёт strawberry, obs, chatbox, planify, calibre, discord, nekobox и каталога для скачивания в телеге + # Не знаю на счёт strawberry, obs, chatbox, planify, calibre, discord, nekobox + "Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop"; }; xdg.configFile = { # Это для каталога .config diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index 7cc6896..f822752 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -12,7 +12,7 @@ ''; startupPrograms = [ - "lxqt-policykit-agent" + # "lxqt-policykit-agent" "nm-applet" "ksnip" # "nekoray" @@ -27,7 +27,7 @@ "^2" = workspaces; }; - rules = let + rules = let # Это переменные floating1600x900 = { state = "floating"; center = true; @@ -46,7 +46,7 @@ focus = true; rectangle = "900x600+0+0"; }; - in { + in { # А тут правила окон "polybar" = { layer = "above"; }; "Screenkey" = { manage = false; }; "ksnip" = floating1600x900; @@ -57,7 +57,7 @@ "qt5ct" = floating1200x800; "qt6ct" = floating1200x800; "pavucontrol" = floating900x600; - # Нетворк манагер надо флоатинг + "nm-connection-editor" = floating900x600; # blueman-манагер надо флоатинг }; @@ -91,27 +91,29 @@ # Фокусировка следует за курсором focus_follows_pointer = true; + + # Какую кнопку надо зажать, чтоб кнопки мыши меняли окно? + pointer_modifier = "mod4"; # control lock mod1 mod2 mod3 mod4 mod5 shift + + # Действия с кнопками мыши 1, 2 и 3 + pointer_action1 = "move"; + pointer_action2 = "resize_side"; + pointer_action3 = "resize_corner"; }; }; - # xsession.pointerCursor = { # Курсор настраивать }; - gtk = lib.mkIf (pkgs.stdenv.hostPlatform.isLinux) { # enable = true; iconTheme = { name = "Gruvbox-Plus-Dark"; # Имя каталога в /usr/share/icons/ package = pkgs.gruvbox-plus-icons; # Пакет иконок }; - # cursorTheme = { - # package = pkgs.bibata-cursors; - # name = "Bibata-Modern-Ice"; - # size = 24; # default = 32 - # }; }; stylix = { # Выключить стили у конкретного таргета походу можно лишь в home-manager targets = { vscode.enable = false; # Руками ставлю. Не нравится stylix вариант + firefox.enable = false; # Руками ставлю и бекаплю каталог браузера # lightdm.enable = false; # Не хочу обои в lightdm (в сурсе есть, но не билдит, мать ебал) }; }; diff --git a/modules/home-manager/wm/polybar.nix b/modules/home-manager/wm/polybar.nix index 1506dd0..934d065 100644 --- a/modules/home-manager/wm/polybar.nix +++ b/modules/home-manager/wm/polybar.nix @@ -65,15 +65,47 @@ { # Статус бар внизу services.polybar = { enable = true; - script = "polybar bottom &"; + script = '' + if type "xrandr"; then + for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do + MONITOR=$m polybar --reload bottom & + done + else + polybar --reload bottom & + fi + ''; settings = { "global/wm" = { margin-bottom = 0; }; + "bar/bottom" = { - monitor = "polybar -M | cut -d ':' -f 1"; # содержит список мониторов + monitor = "$\{env:MONITOR:}"; fixed-center = true; # Мидл модуль будет по центру экрана. При false будет между левым и правым модулями + bottom = true; # Put the bar at the bottom of the screen + + modules-center = "time"; + }; + + "module/time" = { + type = "internal/date"; + interval = 1; + # format = "🕓