This commit is contained in:
Buliway 2024-08-05 06:31:12 +03:00
parent 120ba475b9
commit 00917c258f
13 changed files with 355 additions and 142 deletions

130
README.md
View file

@ -1,3 +1,133 @@
Это мои приватные дотсы
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
## Бинды
Клавиша `Super` это клавиша `Win`
| Bspwm | Описание |
| --------------------------------- | ------------------------------------------------------------------------------------------- |
| `Super + L` | Lock screen |
| `Super + Q` | Quit. Выключить приложение |
| `Super + Shift + Q` | Kill. Если приложение не отвечает, то убить его |
| `Super + F` | Floating toggle |
| `Super + Enter` | Fullscreen toggle |
| `Super + Esc` | Прошлый воркспейс. Желательно внутри одного монитора |
| `Super + ЛКМ` | Переместить окно |
| `Super + ПКМ` | Ресайзить окно |
| `Super + Scroll` | Скролишь колесо вверх = +1 воркспейс. Если вниз, то -1 |
| `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 |
| Rofi | Описание |
| ------------------- | ---------------------------------------------------------------------------------------------- |
| `Super + A` | Applications. Запускатор софта |
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. |
| `Super + P` | Passwords. Пароли из утилиты pass |
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. |
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |
| `Super + Backspace` | PowerMenu. Выключение пк |
| Applications | Описание |
| -------------------------- | ----------------------------------------- |
| `Super + B` | Browser LibreWolf. Основа |
| `Super + Shift + B` | Browser Firefox. Паблик активность |
| `Super + Shift + Ctrl + B` | Browser Chromium. Пусть будет |
| `Super + N` | Note taking app (obsidian) |
| `Super + E` | Explorer. Thunar file manager |
| `Super + I` | IDE, text editor, NeoVim |
| `Super + M` | Monitor of resources (btop) |
| `Super + G` | Goals. Todo manager. Task tracker |
| `Super + Shift + C` | Color picker. Получить hex в буфер обмена |
| `Super + Ctrl + C` | Color picker. Получить rgb в буфер обмена |
| Terminal | Описание |
| -------------------------- | ---------------------------------------------------------------------------- |
| `Super + T` | Terminal основной |
| `Super + Shift + T` | Floating Terminal основной в центре экрана с размерами треть на треть экрана |
| `Super + Ctrl + T` | Terminal запасной |
| `Super + Shift + Ctrl + T` | Floating Terminal запасной в центре экрана с размерами треть на треть экрана |
| Колдунские кнопки | Описание |
| ----------------------- | ---------------------- |
| `XF86AudioMute` | Toggle audio mute |
| `XF86AudioMicMute` | Toggle microphone mute |
| `XF86AudioLowerVolume` | Decrease volume |
| `XF86AudioRaiseVolume` | Increase volume |
| `XF86AudioPlay` | Play/pause |
| `XF86AudioPause` | Play/pause |
| `XF86AudioNext` | Next track |
| `XF86AudioPrev` | Previous track |
| `XF86MonBrightnessUp` | Increase brightness |
| `XF86MonBrightnessDown` | Decrease brightness |
| Not sxhkd | Описание |
| --------------- | ---------------------- |
| `Print` | Выделить область |
| `Print + Alt` | Все мониторы целиком |
| `Print + Ctrl` | Активный монитор |
| `Print + Shift` | Активное окно |
| `CapsLock` | Switch keyboard layout |
Так же есть бинд на зажим дальней боковой кнопки мыши. Если эту кнопку нажимать, то она работает как обычно. Если её зажать и начать двигать мышку, то вместо движения курсора будет плавный скрол. Обычно такое делают на трекболах без колеса мыши, но я люблю этот метод скрола на любом девайсе. Можно скролить с нужной скоростью и точностью куда надо без долгого кручения колеса.
## Иконки
Соберу сюда список nerd иконок, которые могут пригодиться
 - CPU (мб не юзать, а писать текстом и cpu и gpu)
 - RAM
󰪛 - CapsLock
 или 󰌌 - Клавиатура
   - Громкость
󰃟 󰃞 󰃝 - Яркость
  󰸗 - Календарь
⏻ 󰐥  - Выключение пк
 󰀻  󰵆 - Приложения
 󰂯 󰂲 󰥰 󰦋 󰏳 󰦢 󰗾 󰗿 - Блютуз
󰈀  󰒍 - Network
  󱉧  - Clipboard
󰀦  󰀧 󰀨 󰅉 󰨱 󰵙  󰂚     - Оповещения (bell)
󰑓 󱄋 - Reload
Wifi
 󰖩 󱚵 󱚽 󱚼 󰖪 󱛄
󰤭 󰤨 󰤥 󰤢 󰤟 󰤯 󰤫 󰤮
Батарейки
    
󰁹 󰂂 󰂁 󰂀 󰁿 󰁾 󰁽 󰁼 󰁻 󰁺 󰂎
󱊣 󱊢 󱊡 󰂎
󰂃 󱉝 󰂑
Батарейки зарядка
󰂅 󰂋 󰂊 󰢞 󰂉 󰢝 󰂈 󰂇 󰂆 󰢜 󰢟
󱊦 󱊥 󱊤 󰢟
󰂄
Батарейки блютуз
󰥈 󰥆 󰥅 󰥄 󰥃 󰥂 󰥁 󰥀 󰤿 󰤾
󰥇 󰥊 󰥉
Температура
󰔄 - Температура по цельсию
    
 

View file

@ -19,11 +19,6 @@
# url = "github:fufexan/nix-gaming";
# inputs.nixpkgs.follows = "nixpkgs";
# };
# firefox-addons = { # Мб не пригодится. Мб сработает другой метод установки через параметр
# url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
# inputs.nixpkgs.follows = "nixpkgs";
# };
};
outputs = { self, nixpkgs, ... }@inputs:

View file

@ -2,6 +2,6 @@
programs.chromium = {
enable = true;
# Настроить по фулам попробовать
# Пока что передумал настраивать браузер. Бекаплю каталог целиком
};
}

View file

@ -1,8 +1,8 @@
{ inputs, ... }: {
programs.firefox = {
{
programs.firefox = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
enable = true;
profiles.buliway = {
# profiles.buliway = {
# search = {
# engines = {
@ -40,38 +40,29 @@
# }
# ];
# extensions = with inputs.firefox-addons.packages."x86_64-linux"; [ # Ты не активировал это во флейках
# bitwarden
# block-origin
# sponsorblock
# darkreader
# tridactyl
# youtube-shorts-block
# ];
# nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
settings = {
# "extensions.autoDisableScopes" = 0; # To automatically enable extensions
"browser.bookmarks.openInTabClosesMenu" = false;
"browser.tabs.loadBookmarksInBackground" = true;
"layout.css.has-selector.enabled" = true;
# https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
"browser.newtabpage.activity-stream.telemetry" = false;
"datareporting.healthreport.uploadEnabled" = false;
"datareporting.policy.dataSubmissionEnabled" = false;
"toolkit.telemetry.archive.enabled" = false;
"toolkit.telemetry.bhrPing.enabled" = false;
"toolkit.telemetry.enabled" = false;
"toolkit.telemetry.firstShutdownPing.enabled" = false;
"toolkit.telemetry.newProfilePing.enabled" = false;
"toolkit.telemetry.reportingpolicy.firstRun" = false;
"toolkit.telemetry.server" = "";
"toolkit.telemetry.shutdownPingSender.enabled" = false;
"toolkit.telemetry.unified" = false;
"toolkit.telemetry.updatePing.enabled" = false;
};
};
# settings = {
# # "extensions.autoDisableScopes" = 0; # To automatically enable extensions
# "browser.bookmarks.openInTabClosesMenu" = false;
# "browser.tabs.loadBookmarksInBackground" = true;
# "layout.css.has-selector.enabled" = true;
# # https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection
# "browser.newtabpage.activity-stream.feeds.telemetry" = false;
# "browser.newtabpage.activity-stream.telemetry" = false;
# "datareporting.healthreport.uploadEnabled" = false;
# "datareporting.policy.dataSubmissionEnabled" = false;
# "toolkit.telemetry.archive.enabled" = false;
# "toolkit.telemetry.bhrPing.enabled" = false;
# "toolkit.telemetry.enabled" = false;
# "toolkit.telemetry.firstShutdownPing.enabled" = false;
# "toolkit.telemetry.newProfilePing.enabled" = false;
# "toolkit.telemetry.reportingpolicy.firstRun" = false;
# "toolkit.telemetry.server" = "";
# "toolkit.telemetry.shutdownPingSender.enabled" = false;
# "toolkit.telemetry.unified" = false;
# "toolkit.telemetry.updatePing.enabled" = false;
# };
# };
};
}

View file

@ -1,43 +1,43 @@
{ pkgs, ... }: {
programs.librewolf = {
programs.librewolf = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
enable = true;
settings = { # Надо из about:config записать сюда свои изменения
"browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню
"browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню
"layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют
# settings = { # Надо из about:config записать сюда свои изменения
# "browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню
# "browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню
# "layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют
# General
# # General
# # Search (Если надо вернуть гугл поисковик в стоке)
# "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения
# "amazondotcom@search.mozilla.org"
# "ebay@search.mozilla.org"
# "twitter@search.mozilla.org"
# # # Search (Если надо вернуть гугл поисковик в стоке)
# # "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения
# # "amazondotcom@search.mozilla.org"
# # "ebay@search.mozilla.org"
# # "twitter@search.mozilla.org"
# # ];
# # "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки
# # "Amazon.com"
# # "eBay"
# # "Twitter"
# # ];
# # "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик
# # Privacy & Security
# # LibreWolf
# "clipboard.autocopy" = false; # Выкл копирование колесом мыши
# "middlemouse.paste" = false; # Выкл копирование колесом мыши
# "network.dns.disableIPv6" = true; # Выкл ivp6
# "privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов
# "privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов?
# "webgl.disabled" = false; # Включить WebGL
# # Extensions
# "browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений
# "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # uBlock
# "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger/latest.xpi" # Privacy Badger
# ];
# "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки
# "Amazon.com"
# "eBay"
# "Twitter"
# ];
# "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик
# Privacy & Security
# LibreWolf
"clipboard.autocopy" = false; # Выкл копирование колесом мыши
"middlemouse.paste" = false; # Выкл копирование колесом мыши
"network.dns.disableIPv6" = true; # Выкл ivp6
"privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов
"privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов?
"webgl.disabled" = false; # Включить WebGL
# Extensions
"browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # uBlock
"https://addons.mozilla.org/firefox/downloads/latest/privacy-badger/latest.xpi" # Privacy Badger
];
};
# };
};
# Чтоб ff2mpv работал. Не надо юзать их скрипт с гитхаба
@ -53,5 +53,5 @@
# '';
# Ниже сделать настройки расширений декларативными
# home.file.".config/starship.toml".source = ./starship.toml;
# home.file.".librewolf/?".source = ./?;
}

View file

@ -9,6 +9,8 @@
./file-managers/thunar/thunar.nix
./file-managers/yazi/yazi.nix
./gui/vscode.nix
./imv/imv.nix
./mpv/mpv.nix
./obs/obs.nix

View file

@ -0,0 +1,25 @@
{
programs.vscode = {
enable = true;
extensions = [
];
userSettings = {
"editor.fontFamily" = "JetBrainsMono Nerd Font";
};
globalSnippets = {};
languageSnippets = {};
# keybindings = [
# {
# key = "ctrl+c";
# command = "editor.action.clipboardCopyAction";
# when = "textInputFocus";
# }
# ];
};
}

View file

@ -288,8 +288,7 @@ Select a desktop.
```
DESKTOP_SEL := [DESKTOP_SEL#]
(CYCLE_DIR|any|last|newest|older|newer|
[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)
(CYCLE_DIR|any|last|newest|older|newer|[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)
[.[!]focused]
[.[!]active]
[.[!]occupied]
@ -352,8 +351,7 @@ Select a monitor.
```
MONITOR_SEL := [MONITOR_SEL#]
(DIR|CYCLE_DIR|any|last|newest|older|newer|focused|
pointed|primary|^<n>|<monitor_id>|<monitor_name>)
(DIR|CYCLE_DIR|any|last|newest|older|newer|focused|pointed|primary|^<n>|<monitor_id>|<monitor_name>)
[.[!]focused]
[.[!]occupied]
```
@ -681,8 +679,7 @@ Create a new rule.
[layer=LAYER]
[split_dir=DIR]
[split_ratio=RATIO]
[(hidden|sticky|private|locked|marked|center|
follow|manage|focus|border)=(on|off)]
[(hidden|sticky|private|locked|marked|center|follow|manage|focus|border)=(on|off)]
[rectangle=WxH+X+Y]
```

View file

@ -1,8 +1,10 @@
#!/usr/bin/env bash
# Дефолт конфиг https://github.com/baskerville/bspwm/blob/master/examples/bspwmrc
# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html
# Или через "man bspc" в терминале
# Или в ./bspwm.md
# https://my-take-on.tech/2020/07/03/some-tricks-for-sxhkd-and-bspwm/
################
## Автозапуск ##
@ -25,8 +27,6 @@
## Настройки мониторов ##
#########################
# bspc monitor -d I II III IV V VI VII VIII IX X # Это было в стоке
# Получаем имена активных мониторов
MONITORS=( $(xrandr --listactivemonitors | grep -E '^ [0-9]+:' | cut -d' ' -f6 | sed 's/\n/ /') )
@ -89,3 +89,5 @@ bspc config focus_follows_pointer true
bspc rule -a 'polybar' layer=above
bspc rule -a Screenkey manage=off
bspc rule -a floating-terminal state=floating center=true focus=on rectangle=600x300+0+0

View file

@ -3,3 +3,5 @@
enable = true;
};
}
# При наведении на имя окна сделать скрол фул имени через zscroll

View file

@ -1,65 +1,131 @@
{ pkgs, ... }: let
mainTerminal = "${pkgs.alacritty}/bin/alacritty";
secondTerminal = "${pkgs.kitty}/bin/kitty";
in {
services.sxhkd = { # Бинды системы
# Можно запускать софт через "${pkgs.betterlockscreen}/bin/betterlockscreen -l dimblur";
# Но мне лень столько текста делать. И так сойдёт
# Удалить потом
# toggleMute = "pamixer -t; dunstify \"t2\" -a \"$(if [ \"$(pamixer --get-mute)\" = \"true\" ]; then echo \" Muted\"; else echo \" Unmuted\"; fi)\" -r 91190 -t 8000";
# toggleMicMute = "pamixer --default-source -t; dunstify \"t2\" -a \"$(if [ \"$(pamixer --default-source --get-mute)\" = \"true\" ]; then echo \" Muted\"; else echo \" Unmuted\"; fi)\" -r 91190 -t 8000";
# "XF86AudioMute" = toggleMute; # Toggle mute
# "XF86AudioMicMute" = toggleMicMute; # Toggle microphone mute
# "XF86AudioLowerVolume" = "pamixer -d 5; dunstify \"t2\" -a \" Volume: $(pamixer --get-volume)\" -r 91190 -t 800"; # Decrease volume
# "XF86AudioRaiseVolume" = "pamixer -i 5; dunstify \"t2\" -a \" Volume: $(pamixer --get-volume)\" -r 91190 -t 800"; # Increase volume
let
# dunstify = "dunstify \"t2\" -a";
# dunstifyMuteText = "\" = \"true\" ]; then echo \" Muted\"; else echo \" Unmuted\"; fi)\" -r 91190 -t 8000";
# dunstifyMute = "${dunstify} \"$(if [ \"$(pamixer --get-mute)${dunstifyMuteText}";
# dunstifyMicMute = "${dunstify} \"$(if [ \"$(pamixer --default-source --get-mute)${dunstifyMuteText}";
# dunstifyVolume = "${dunstify} \" Volume: $(pamixer --get-volume)\" -r 91190 -t 800";
# Выше нечитабельный ад, который превращается в это
# dunstify "t2" -a "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000
# dunstify "t2" -a "$(if [ "$(pamixer --default-source --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000
# dunstify "t2" -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: Это время в миллисекундах, через которое уведомление будет автоматически закрыто.
terminalFirst = "alacritty";
terminalSecond = "kitty";
in { # https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
services.sxhkd = { # Бинды системы https://manpages.org/sxhkd
enable = true;
keybindings = {
# bspwm
"super + q" = "oa";
#########################################################
## bspwm (описание параметров есть в файле "bspwm.md") ##
#########################################################
# rofi
"super + shift + ctrl + r" = "pkill -USR1 -x sxhkd; dunstify \"t2\" -a \"󰑓 Sxhkd reloaded\""; # Make sxhkd reload its config files
"super + shift + ctrl + alt + {q,r}" = "bspc {quit,wm -r}"; # Quit/Restart bspwm
# applications
# "super + return" = "bspc desktop -l next"; # Fullscreen toggle (немного не тот)
# "super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}"; # Set the node flags
"super + l" = "betterlockscreen -l dimblur"; # Lock screen
"super + button{1-3}" = "bspc pointer -g {move,resize_side,resize_corner}"; # Двигать и ресайзить окно мышкой
"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 + s" = "bspc node -F"; # Меняет позиционирование с горизонтального на вертикальный и обратно. Мб надо -R
"super + ctrl + alt + {left,right}" = "bspc node -d {next,prev}.local --follow"; # Перекидывает активное окно на предыдущий/следующий воркспейс и следует за ним
"super + {left,down,up,right}" = "bspc node -f {west,south,north,east}"; # Менять фокус приложения в указанном направлении
"super + alt + {left,down,up,right}" = "bspc node -v {-30 0,0 30,0 -30,30 0}"; # Move a floating window
"super + ctrl + alt + down" = "bspc node -s biggest.window --follow"; # Свапает активное окно с самым большим на экране
"super + shift + ctrl + {left,down,up,right}" = "bspc node -n {west,south,north,east} --follow"; # Перемещает активное окно в указанном направлении (не уверен сработает ли, мб надо -s)
"super + shift + {left,down,up,right}" = "bspc node -z {left -30 0,bottom 0 30,top 0 -30,right 30 0}"; # Expand a window by moving one of its side outward
"super + shift + alt + {left,down,up,right}" = "bspc node -z {right -30 0,top 0 30,bottom 0 -30,left 30 0}"; # Contract a window by moving one of its side inward
"super + ctrl + {left,right}" = "bspc desktop -f {prev,next}.local"; # Переключает на предыдущий/следующий воркспейс внутри одного монитора.
"super + escape" = "bspc desktop -f last.local"; # Прошлый воркспейс внутри одного монитора
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} '^{1-9,10}'"; # Focus or send to the given desktop
"super + ctrl + down" = "bspk desktop -f next.!occupied"; # Переключает на первый пустой воркспейс
##########
## rofi ##
##########
"super + a" = "rofi -show drun"; # Applications. Запускатор софта
#"super + c" = ""; # Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`.
#"super + p" = ""; # Passwords. Пароли из утилиты pass
#"super + v" = ""; # История буфера обмена. Как ctrl+v, но через win.
#"super + tab" = ""; # Как alt+tab, переключение окон. На нужный воркспейс само перекинет
#"super + alt + t" = ""; # Timer. Думаю сделать через утилиту timer
#"super + shift + n" = ""; # Notification history. История оповещений. Мб не делать
#"super + backspace" = ""; # PowerMenu. Выключение пк
##################
## applications ##
##################
"super + b" = "librewolf"; # Browser LibreWolf. Основа
"super + shift + b" = "firefox"; # Browser Firefox. Паблик активность
"super + shift + ctrl + b" = "chromium"; # Browser Chromium. Пусть будет
"super + n" = "obsidian"; # Note taking app (obsidian)
"super + e" = "thunar"; # Explorer. Thunar file manager
"super + i" = "code"; # IDE, text editor
"super + m" = "${terminalFirst} -e btop"; # Monitor of resources (btop)
"super + g" = "planify"; # Goals. Todo manager. Task tracker
"super + shift + c" = "xcolor -s"; # Color picker. Получить hex в буфер обмена
"super + ctrl + c" = "xcolor -s -f rgb"; # Color picker. Получить rgb в буфер обмена
##############
## terminal ##
##############
"super + t" = terminalFirst; # Терминал alacritty
"super + shift + t" = "${terminalFirst} --class floating-terminal"; # Floating терминал alacritty в центре экрана 600x300px
"super + ctrl + t" = terminalSecond; # Tерминал kitty
"super + ctrl + shift + t" = "${terminalSecond} --class floating-terminal"; # Floating терминал kitty в центре экрана 600x300px
#######################
## Колдунские кнопки ##
#######################
# В pamixer для настроек микро надо добавлять "--default-source"
"XF86AudioMute" = "pamixer -t; ${notifyMute}"; # Toggle mute
"XF86AudioMicMute" = "pamixer --default-source -t; ${notifyMicMute}"; # Toggle microphone mute
"XF86Audio{Lower,Raise}Volume" = "pamixer -{d,i} 5; ${notifyVolume}"; # Decrease/Increase volume
"XF86Audio{Play,Pause}" = "playerctl play-pause"; # Play/Pause
"XF86Audio{Next,Prev}" = "playerctl {next,previous}"; # Next/Previous track
# Простое редактирование яркости будет менять на 1% (Символ _ означает ничего, просто бинд яркости)
# С зажатым шифтом будет редактировать яркость на 10%
# С зажатой клавишей win будет менять между минимальным и максимальным значениями
# Не знаю работает ли эта команда, у меня не ноут. Добавил как написано в "man sxhkd"
"{_,shift + ,super + }XF86MonBrightness{Down,Up}" = "bright {-1,-10,min,+1,+10,max}"; # Increase/Decrease brightness
###########
## other ##
###########
# terminal
"super + t" = mainTerminal;
"super ctrl + t" = secondTerminal;
# "super + shift + t" = mainTerminal; # Floating в центре экрана треть на треть или пиксели задать
# "super + shift + ctrl + t" = secondTerminal; # Floating в центре экрана треть на треть или пиксели задать
};
};
}
# | Бинд | Описание |
# | ------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
# | `Print` | Выделить область |
# | `Print + Alt` | Все мониторы целиком |
# | `Print + Ctrl` | Активный монитор |
# | `Print + Shift` | Активное окно |
# | `Win + A` | Applications. Запускатор приложений. Rofi |
# | `Win + B` | Browser LibreWolf. Основа |
# | `Win + Shift + B` | Browser Firefox. Паблик активность |
# | `Win + Shift + Ctrl + B` | Browser Chromium. Пусть будет |
# | `Win + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. Через rofi |
# | `Win + Shift + C` | Color picker. Получить hex в буфер обмена |
# | `Win + Ctrl + C` | Color picker. Получить rgb в буфер обмена |
# | `Win + ЛКМ` | Переместить окно |
# | `Win + ПКМ` | Ресайзить окно |
# | `Win + scroll` | Скролишь колесо вверх = -1 воркспейс. Если вниз, то +1 |
# | `Win + 0-9/F1-F12` | Переключать воркспейсы с 1 по 22 |
# | `Win + Shift + 0-9/F1-F12` | Перекинуть активное окно на воркспейс с 1 по 22. Желательно silent, чтоб меня не перекидывало к проге |
# | `Win + arrow` | Менять фокус приложения через вин + стрелки |
# | `Win + Ctrl + left/right` | Переключает активные воркспейсы на мониторе. На левом 1 и 3, на правом 2 и 4. С 1 он делает +1 не на 2, а на 3 |
# | `Win + Ctrl + Down` | Переключиться на первый пустой воркспейс |
# | `Win + Shift + arrows` | Resize windows на 30 пикселей |
# | `Win + Shift + Ctrl + arrows` | Перемещает активное окно в указанном направлении |
# | `Win + Ctrl + Alt + left/right` | Как без альта, но не просто переключает, а перекидывает туда активное окно |
# | `Win + Enter` | Fullscreen toggle. Думал на F сделать, но не с моей раскладкой. Мб Alt + Enter |
# | `Win + Esc` | Прошлый воркспейс |
# | `Win + L` (мб с шифтом) | Lock screen |
# | `Win + P` | Passwords. Для утилиты pass всплывающее меню через rofi |
# | `Win + Q` | Quit. Офнуть приложение. Хз надо ли Alt + F4 добавлять |
# | `Win + V` | История буферa обмена (rofi) |
# | `Win + Alt + T` | Timer. Думаю через rofi сделать и утилиту timer |
# | `Win + I` | `I`DE? text `E`ditor? `N`ixVim? |
# | `Win + E` | `F`ile manager? `E`xplorer? |
# | `Win + F` | Toggle `f`loating. На f? сука не удобно на моей клаве |
# | Win + хз | Меняет позиционирование с горизонтального на вертикальный и обратно. Сейчас на `J`. Мб на `S`, от слова toggle split |
# | `Win + N` | `O`bsidian? `N`ote taking app? |
# | Win + хз | `T`odo. `T`ask tracker. Сука всё на Т, но не вариант. Либо с шифтом, либо придумать что-то типо `Z`адачи :D |
# | `Win + Backspace` | Launch logout menu. Через rofi |
# | `Ctrl + Shift + Esc` | Launch system monitor (btop) |
# | `Win + Tab` | Window switcher (rofi). Выбирать окно, а на нужный воркспейс само перекинет. Мб сделать alt+tab? |
# | `CapsLock` | Switch keyboard layout |

View file

@ -32,7 +32,7 @@ in {
isNormalUser = true;
description = username;
extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" "storage" "docker" ];
packages = with pkgs; [];
# packages = with pkgs; [];
};
};

View file

@ -5,6 +5,7 @@
services = {
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
tumbler.enable = true; # Thumbnail support for Thunar file manager
unclutter.enable = true; # Enable unclutter to hide your mouse cursor when inactive
greenclip.enable = true; # Clipboard manager. https://github.com/erebe/greenclip
openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
spice-vdagentd.enable = true; # Общий буфер обмена с виртуалкой
@ -28,6 +29,7 @@
xfconf.enable = true; # For Thunar configs
};
# Многое из этого продублировано в home-manager. Мне так удобней
environment.systemPackages = with pkgs; [
# Это рекомендуют ставить не на всю систему,
@ -62,6 +64,7 @@
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
pass # Менеджер паролей в терминале
@ -169,9 +172,9 @@
planify # Task manager
# IDE (neovim мб не надо писать, он у меня необычный через nixvim flake)
vscode # TODO: Настройки надо сделать декларативными?
vscodium # TODO: Настройки надо сделать декларативными?
jetbrains-toolbox # TODO: Настройки надо сделать декларативными?
vscode
# vscodium # VSCode без телеметрии и прочего кала. Не имеет обратной совместимости с расширениями vscode
jetbrains-toolbox
helix # A Kakoune / Neovim inspired editor, written in Rust.
];