From 9d0411bf4ff58685210f1a5f762fc1415268e815 Mon Sep 17 00:00:00 2001 From: Buliway Date: Sun, 25 Aug 2024 07:30:48 +0300 Subject: [PATCH] shit --- README.md | 13 +++++++------ modules/home-manager/terminal/zsh.nix | 6 +++--- modules/home-manager/wm/bspwm/bspwm.nix | 20 +++++++++++++++----- modules/home-manager/wm/polybar.nix | 10 +++------- modules/home-manager/wm/sxhkd.nix | 15 ++++++++++----- nixos/packages.nix | 1 + 6 files changed, 39 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 7a149ff..e94e2db 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ | `Super + Q` | Quit. Выключить приложение | Да | | `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его | Да | | `Super + F` | Floating toggle | Да | +| `Super + Shift + F` | Tiled toggle | Да | | `Super + Enter` | Fullscreen toggle | Да | | `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора | Да | | `Super + ЛКМ` | Переместить окно | Да | @@ -114,10 +115,13 @@ ## Проблемы - Некоторые симлинки, созданные через home-manager, могут быть перезаписаны другим софтом, удалив мои настройки -- `Thunar` удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы - `Mimetypes` удаляют симлинк. Поэтому я сделал отдельный файл в каталоге `shit` и буду копировать готовый файл целиком в нужный каталог -- Файловые менеджеры `Thunar` и `ranger` показывают превью видео через `ffmpegthumbnailer`, который не берёт изображение из метаданных видео, а берёт первый кадр видео. Это залупа, потому что у меня видео созданы через метаданные. Хз даже как исправить. Потом сделаю скрипт, для добавления картинки из метаданных в первый кадр видео - Не работает TUN мод во всех xray/singbox клиентах. Например nekoray пишет, что не удалось `setcap` при вводе пароля. Испробовал все доступные методы подключения, даже голый `singbox` через сервис никса. У меня просто пропадает инет в системе после конекта. Сейчас единственный рабочий метод, это скачать appimage nekoray с гитхаба, обязательно именно версии `3.26`, иначе не заработает, и запустить через sudo. И в настройках tun надо обязательно выключить `strick route`. Обычно я с ним сидел, но тут с ним проблемы и не работает ничего. +- `Gitui` выёбывается. Не может запушить, ошибка ssh появляется +- `Thunar` удаляет мой конфиг, даже если это не симлинк и даже если я перезапишу настройки в его же собственный файл. Приходится руками всё делать при каждой переустановке системы +- `Thunar` крашится при работе с более чем одним окном. Не всегда, но в самый не нужный момент. А `dolphin` тянет 10 терабайт гей порно в зависимости и выводит blowjob по среди экрана, так что я рот ебал. Хз даже что делать. Все файловый менеджеры гавно ебаное +- `Thunar` криво показывает превью видео. Это ебло дырявое генерит рандом кадр из видео в качестве превью. Ебантропы не могут взять данные из метаданных, куда все закидывают реальное превью. Они считают, что лучше генерить превью каждый ёбаный раз, чем взять уже готовое +- `polybar` и `bspwm` создали пидарасы ебаные бездарные. Одни ломают floating окна и не умеют нормально отображать все символы без ручного указания двух сотен шрифтов, другие не имеют документации и не могут нормально реализовать слои в wm. Ебланы блять. Все floating окна находятся под tiling окнами при запуске ебаного гей бара. Ебантропы не могут даже элементарную работу слоёв реализовать нормально. И эти два куска дерьма называют лучшими wm и status bar? Та нахуй они кому нужны с такими далбаёбами на разрабах. Иногда даже фулскрин находится под флоатингом, а флоатинг под тилингом. Ёбаный олигофрен создал этот bspwm ## TODO @@ -269,7 +273,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 @@ -342,10 +346,7 @@ sudo nixos-rebuild boot --impure --flake ~/nixos-private-dots size = 64*1024; # В мегабайтах } ]; ``` -- Включить автомаунд бекап ссд и сделать симлинк на него в `~/backups` в файле `./modules/nixos/filesystems.nix` и раскомментировать импорт в `./modules/nixos/bundle.nix`. -- Сделать симлинки на все нужные вещи в `./modules/home-manager/symlinks.nix`. Например браузеры я так бекаплю - Активировать скрипт в `shit` каталоге, чтоб скопировать нужные конфиги в нужные каталоги. Симлинки не работают -- Раскомментировать нужные мне настройки звука в `./modules/nixos/sound.nix` - Добавить gpg ключи ```sh gpg --import /path/to/your-key.gpg diff --git a/modules/home-manager/terminal/zsh.nix b/modules/home-manager/terminal/zsh.nix index 7d40398..ecbfa85 100644 --- a/modules/home-manager/terminal/zsh.nix +++ b/modules/home-manager/terminal/zsh.nix @@ -44,9 +44,9 @@ }; # Extra commands that should be added to .zshrc - # initExtra = '' - # ssh-add ~/.ssh/id_ed25519 - # ''; + initExtra = '' + source ${pkgs.zsh-you-should-use}/share/zsh/plugins/you-should-use/you-should-use.plugin.zsh + ''; historySubstringSearch.enable = true; # Чтоб вверх/вниз учитывал уже написанную команду diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index e97c57a..3b4ee7d 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -30,30 +30,37 @@ rules = let # Это переменные floating1600x900 = { state = "floating"; + # layer = "above"; center = true; focus = true; rectangle = "1600x900+0+0"; }; floating1200x800 = { state = "floating"; + # layer = "above"; center = true; focus = true; rectangle = "1200x800+0+0"; }; floating900x600 = { state = "floating"; + # layer = "above"; center = true; focus = true; rectangle = "900x600+0+0"; }; + floating = { + state = "floating"; + # layer = "above"; + }; in { # А тут правила окон - # "polybar" = { layer = "above"; }; + # "Polybar" = { layer = "below"; }; "Screenkey" = { manage = false; }; - "gcolor3" = { state = "floating"; }; - "steam" = { state = "floating"; }; + "gcolor3" = floating; + "steam" = floating; "steam:steamwebhelper:Steam" = { state = "tiled"; }; - "SshAskpass" = { state = "floating"; }; - "Nm-connection-editor" = { state = "floating"; }; + "SshAskpass" = floating; + "Nm-connection-editor" = floating; "ksnip" = floating1600x900; # "ark" = floating1200x800; # Удалил, чтоб blowjob на экран не выдавало "file-roller" = floating1200x800; @@ -97,6 +104,9 @@ # Фокусировка следует за курсором focus_follows_pointer = true; + # When focusing a window, put the pointer at its center. + # pointer_follows_focus = true; + # Какую кнопку надо зажать, чтоб кнопки мыши меняли окно? pointer_modifier = "mod4"; # control lock mod1 mod2 mod3 mod4 mod5 shift diff --git a/modules/home-manager/wm/polybar.nix b/modules/home-manager/wm/polybar.nix index b5cd6f6..04808be 100644 --- a/modules/home-manager/wm/polybar.nix +++ b/modules/home-manager/wm/polybar.nix @@ -25,18 +25,14 @@ services.polybar = { enable = true; script = '' - if type "xrandr"; then - for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do + for m in $(polybar --list-monitors | cut -d":" -f1); do MONITOR=$m polybar --reload bottom & - done - else - polybar --reload bottom & - fi + done ''; settings = { # Или переимоневать в "config"? Не понял в чём разница "bar/bottom" = { - # monitor = "exec polybar -M | cut -d ':' -f 1"; + monitor = "\${env:MONITOR:}"; # monitor-strict = false; # monitor-exact = true; diff --git a/modules/home-manager/wm/sxhkd.nix b/modules/home-manager/wm/sxhkd.nix index 5c62e48..fbabead 100644 --- a/modules/home-manager/wm/sxhkd.nix +++ b/modules/home-manager/wm/sxhkd.nix @@ -3,9 +3,12 @@ # Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc let - notifyMute = ''dunstify "t2" -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; - notifyMicMute = ''dunstify "t2" -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; - notifyVolume = ''dunstify "t2" -a " Volume: $(pamixer --get-volume)" -r 91190 -t 800''; + notifyMute = ''dunstify -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + notifyMicMute = ''dunstify -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + notifyVolume = ''dunstify -a " Volume: $(pamixer --get-volume)" -r 91190 -t 800''; + # notifyMute = ''dunstify "t2" -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + # notifyMicMute = ''dunstify "t2" -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000''; + # notifyVolume = ''dunstify "t2" -a " Volume: $(pamixer --get-volume)" -r 91190 -t 800''; # Если указать "t2" перед "-a", то заголовок будет огромным. # -r 91190: Это идентификатор уведомления (notification ID). Уведомления с одинаковым ID будут заменять друг друга. # -t 800: Это время в миллисекундах, через которое уведомление будет автоматически закрыто. @@ -30,7 +33,9 @@ in { "super + l" = "betterlockscreen -l dimblur"; # Lock screen "super + q" = "bspc node -c"; # Quit. Закрыть приложение "super + shift + q" = "bspc node -k"; # Kill. Убить приложение, если оно не отвечает - "super + {f,Return}" = "bspc node -t ~{floating,fullscreen}"; # Floating/Fullscreen toggle + "super + f" = "bspc node -t ~floating"; # Floating toggle + "super + shift + f" = "bspc node -t ~tiled"; # Tiled toggle + "super + Return" = "bspc node -t ~fullscreen"; # Fullscreen toggle # Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним "super + ctrl + alt + {Left,Right}" = "bspc node -d {prev,next}.local --follow"; @@ -70,7 +75,7 @@ in { # Меняет позиционирование с горизонтального на вертикальный и обратно. Мб надо -R # (хуй, и то и то требует аргументы, а не делает toggle, и даже с аргументами нихуя не работает) - "super + s" = "bspc node -F"; + # "super + s" = "bspc node -F"; ########## diff --git a/nixos/packages.nix b/nixos/packages.nix index 1678792..c1908e6 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -358,6 +358,7 @@ libcap # Мб надо для nekoray libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox alsa-utils # Мне для команды amixer надо + pamixer # PulseAudio cli (громкость редачу) # lxqt.lxqt-policykit # Меню для воода пароля при запуске с правами админа. Пока юзаю от гнома ];