test3
This commit is contained in:
parent
120ba475b9
commit
00917c258f
13 changed files with 355 additions and 142 deletions
130
README.md
130
README.md
|
|
@ -1,3 +1,133 @@
|
||||||
Это мои приватные дотсы
|
Это мои приватные дотсы
|
||||||
|
|
||||||
Искать иконки для nerd шрифта можно [тут](https://www.nerdfonts.com/cheat-sheet).
|
Искать иконки для 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки зарядка
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Батарейки блютуз
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Температура
|
||||||
|
- Температура по цельсию
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,11 +19,6 @@
|
||||||
# url = "github:fufexan/nix-gaming";
|
# url = "github:fufexan/nix-gaming";
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# firefox-addons = { # Мб не пригодится. Мб сработает другой метод установки через параметр
|
|
||||||
# url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
|
|
||||||
# inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
# };
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs:
|
outputs = { self, nixpkgs, ... }@inputs:
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
programs.chromium = {
|
programs.chromium = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
# Настроить по фулам попробовать
|
# Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{ inputs, ... }: {
|
{
|
||||||
programs.firefox = {
|
programs.firefox = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
profiles.buliway = {
|
# profiles.buliway = {
|
||||||
|
|
||||||
# search = {
|
# search = {
|
||||||
# engines = {
|
# engines = {
|
||||||
|
|
@ -40,38 +40,29 @@
|
||||||
# }
|
# }
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
# extensions = with inputs.firefox-addons.packages."x86_64-linux"; [ # Ты не активировал это во флейках
|
# nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
|
||||||
# bitwarden
|
|
||||||
# block-origin
|
|
||||||
# sponsorblock
|
|
||||||
# darkreader
|
|
||||||
# tridactyl
|
|
||||||
# youtube-shorts-block
|
|
||||||
# ];
|
|
||||||
|
|
||||||
nativeMessagingHosts.ff2mpv = true; # Чтоб ff2mpv работал
|
# settings = {
|
||||||
|
# # "extensions.autoDisableScopes" = 0; # To automatically enable extensions
|
||||||
settings = {
|
# "browser.bookmarks.openInTabClosesMenu" = false;
|
||||||
# "extensions.autoDisableScopes" = 0; # To automatically enable extensions
|
# "browser.tabs.loadBookmarksInBackground" = true;
|
||||||
"browser.bookmarks.openInTabClosesMenu" = false;
|
# "layout.css.has-selector.enabled" = true;
|
||||||
"browser.tabs.loadBookmarksInBackground" = true;
|
# # https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection
|
||||||
"layout.css.has-selector.enabled" = true;
|
# "browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
||||||
# https://github.com/K3V1991/Disable-Firefox-Telemetry-and-Data-Collection
|
# "browser.newtabpage.activity-stream.telemetry" = false;
|
||||||
"browser.newtabpage.activity-stream.feeds.telemetry" = false;
|
# "datareporting.healthreport.uploadEnabled" = false;
|
||||||
"browser.newtabpage.activity-stream.telemetry" = false;
|
# "datareporting.policy.dataSubmissionEnabled" = false;
|
||||||
"datareporting.healthreport.uploadEnabled" = false;
|
# "toolkit.telemetry.archive.enabled" = false;
|
||||||
"datareporting.policy.dataSubmissionEnabled" = false;
|
# "toolkit.telemetry.bhrPing.enabled" = false;
|
||||||
"toolkit.telemetry.archive.enabled" = false;
|
# "toolkit.telemetry.enabled" = false;
|
||||||
"toolkit.telemetry.bhrPing.enabled" = false;
|
# "toolkit.telemetry.firstShutdownPing.enabled" = false;
|
||||||
"toolkit.telemetry.enabled" = false;
|
# "toolkit.telemetry.newProfilePing.enabled" = false;
|
||||||
"toolkit.telemetry.firstShutdownPing.enabled" = false;
|
# "toolkit.telemetry.reportingpolicy.firstRun" = false;
|
||||||
"toolkit.telemetry.newProfilePing.enabled" = false;
|
# "toolkit.telemetry.server" = "";
|
||||||
"toolkit.telemetry.reportingpolicy.firstRun" = false;
|
# "toolkit.telemetry.shutdownPingSender.enabled" = false;
|
||||||
"toolkit.telemetry.server" = "";
|
# "toolkit.telemetry.unified" = false;
|
||||||
"toolkit.telemetry.shutdownPingSender.enabled" = false;
|
# "toolkit.telemetry.updatePing.enabled" = false;
|
||||||
"toolkit.telemetry.unified" = false;
|
# };
|
||||||
"toolkit.telemetry.updatePing.enabled" = false;
|
# };
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
@ -1,43 +1,43 @@
|
||||||
{ pkgs, ... }: {
|
{ pkgs, ... }: {
|
||||||
programs.librewolf = {
|
programs.librewolf = { # Пока что передумал настраивать браузер. Бекаплю каталог целиком
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
settings = { # Надо из about:config записать сюда свои изменения
|
# settings = { # Надо из about:config записать сюда свои изменения
|
||||||
"browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню
|
# "browser.bookmarks.openInTabClosesMenu" = false; # Не закрывать каталог закладок при открытии через СКМ? Не помню
|
||||||
"browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню
|
# "browser.tabs.loadBookmarksInBackground" = true; # Не перекидывать меня сразу на открытую закладку через СКМ? Не помню
|
||||||
"layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют
|
# "layout.css.has-selector.enabled" = true; # Некоторые кастом стили это требуют
|
||||||
|
|
||||||
# General
|
# # General
|
||||||
|
|
||||||
# # Search (Если надо вернуть гугл поисковик в стоке)
|
# # # Search (Если надо вернуть гугл поисковик в стоке)
|
||||||
# "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения
|
# # "browser.policies.runOncePerModification.extensionsUninstall" = [ # Удалить расширения
|
||||||
# "amazondotcom@search.mozilla.org"
|
# # "amazondotcom@search.mozilla.org"
|
||||||
# "ebay@search.mozilla.org"
|
# # "ebay@search.mozilla.org"
|
||||||
# "twitter@search.mozilla.org"
|
# # "twitter@search.mozilla.org"
|
||||||
# ];
|
# # ];
|
||||||
# "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки
|
# # "browser.policies.runOncePerModification.removeSearchEngines" = [ # Удалить поисковые движки
|
||||||
# "Amazon.com"
|
# # "Amazon.com"
|
||||||
# "eBay"
|
# # "eBay"
|
||||||
# "Twitter"
|
# # "Twitter"
|
||||||
# ];
|
# # ];
|
||||||
# "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик
|
# # "browser.policies.runOncePerModification.setDefaultSearchEngine" = "Google"; # Стандартный поисковик
|
||||||
|
|
||||||
# Privacy & Security
|
# # Privacy & Security
|
||||||
|
|
||||||
# LibreWolf
|
# # LibreWolf
|
||||||
"clipboard.autocopy" = false; # Выкл копирование колесом мыши
|
# "clipboard.autocopy" = false; # Выкл копирование колесом мыши
|
||||||
"middlemouse.paste" = false; # Выкл копирование колесом мыши
|
# "middlemouse.paste" = false; # Выкл копирование колесом мыши
|
||||||
"network.dns.disableIPv6" = true; # Выкл ivp6
|
# "network.dns.disableIPv6" = true; # Выкл ivp6
|
||||||
"privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов
|
# "privacy.resistFingerprinting" = false; # Лайтовое и мб не ломает работу сайтов
|
||||||
"privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов?
|
# "privacy.fingerprintingProtection" = false; # Хардовее и может ломать работу сайтов?
|
||||||
"webgl.disabled" = false; # Включить WebGL
|
# "webgl.disabled" = false; # Включить WebGL
|
||||||
|
|
||||||
# Extensions
|
# # Extensions
|
||||||
"browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений
|
# "browser.policies.runOncePerModification.extensionsInstall" = [ # Установка расширений
|
||||||
"https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # uBlock
|
# "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
|
# "https://addons.mozilla.org/firefox/downloads/latest/privacy-badger/latest.xpi" # Privacy Badger
|
||||||
];
|
# ];
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
# Чтоб ff2mpv работал. Не надо юзать их скрипт с гитхаба
|
# Чтоб ff2mpv работал. Не надо юзать их скрипт с гитхаба
|
||||||
|
|
@ -53,5 +53,5 @@
|
||||||
# '';
|
# '';
|
||||||
|
|
||||||
# Ниже сделать настройки расширений декларативными
|
# Ниже сделать настройки расширений декларативными
|
||||||
# home.file.".config/starship.toml".source = ./starship.toml;
|
# home.file.".librewolf/?".source = ./?;
|
||||||
}
|
}
|
||||||
|
|
@ -9,6 +9,8 @@
|
||||||
./file-managers/thunar/thunar.nix
|
./file-managers/thunar/thunar.nix
|
||||||
./file-managers/yazi/yazi.nix
|
./file-managers/yazi/yazi.nix
|
||||||
|
|
||||||
|
./gui/vscode.nix
|
||||||
|
|
||||||
./imv/imv.nix
|
./imv/imv.nix
|
||||||
./mpv/mpv.nix
|
./mpv/mpv.nix
|
||||||
./obs/obs.nix
|
./obs/obs.nix
|
||||||
|
|
|
||||||
25
modules/home-manager/gui/vscode.nix
Normal file
25
modules/home-manager/gui/vscode.nix
Normal 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";
|
||||||
|
# }
|
||||||
|
# ];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -288,8 +288,7 @@ Select a desktop.
|
||||||
|
|
||||||
```
|
```
|
||||||
DESKTOP_SEL := [DESKTOP_SEL#]
|
DESKTOP_SEL := [DESKTOP_SEL#]
|
||||||
(CYCLE_DIR|any|last|newest|older|newer|
|
(CYCLE_DIR|any|last|newest|older|newer|[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)
|
||||||
[MONITOR_SEL:](focused|^<n>)|<desktop_id>|<desktop_name>)
|
|
||||||
[.[!]focused]
|
[.[!]focused]
|
||||||
[.[!]active]
|
[.[!]active]
|
||||||
[.[!]occupied]
|
[.[!]occupied]
|
||||||
|
|
@ -352,8 +351,7 @@ Select a monitor.
|
||||||
|
|
||||||
```
|
```
|
||||||
MONITOR_SEL := [MONITOR_SEL#]
|
MONITOR_SEL := [MONITOR_SEL#]
|
||||||
(DIR|CYCLE_DIR|any|last|newest|older|newer|focused|
|
(DIR|CYCLE_DIR|any|last|newest|older|newer|focused|pointed|primary|^<n>|<monitor_id>|<monitor_name>)
|
||||||
pointed|primary|^<n>|<monitor_id>|<monitor_name>)
|
|
||||||
[.[!]focused]
|
[.[!]focused]
|
||||||
[.[!]occupied]
|
[.[!]occupied]
|
||||||
```
|
```
|
||||||
|
|
@ -681,8 +679,7 @@ Create a new rule.
|
||||||
[layer=LAYER]
|
[layer=LAYER]
|
||||||
[split_dir=DIR]
|
[split_dir=DIR]
|
||||||
[split_ratio=RATIO]
|
[split_ratio=RATIO]
|
||||||
[(hidden|sticky|private|locked|marked|center|
|
[(hidden|sticky|private|locked|marked|center|follow|manage|focus|border)=(on|off)]
|
||||||
follow|manage|focus|border)=(on|off)]
|
|
||||||
[rectangle=WxH+X+Y]
|
[rectangle=WxH+X+Y]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Дефолт конфиг https://github.com/baskerville/bspwm/blob/master/examples/bspwmrc
|
||||||
# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html
|
# Описание настроек можно найти тут https://manpages.debian.org/testing/bspwm/bspc.1.en.html
|
||||||
# Или через "man bspc" в терминале
|
# Или через "man bspc" в терминале
|
||||||
# Или в ./bspwm.md
|
# Или в ./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/ /') )
|
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 'polybar' layer=above
|
||||||
|
|
||||||
bspc rule -a Screenkey manage=off
|
bspc rule -a Screenkey manage=off
|
||||||
|
|
||||||
|
bspc rule -a floating-terminal state=floating center=true focus=on rectangle=600x300+0+0
|
||||||
|
|
|
||||||
|
|
@ -3,3 +3,5 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# При наведении на имя окна сделать скрол фул имени через zscroll
|
||||||
|
|
@ -1,65 +1,131 @@
|
||||||
{ pkgs, ... }: let
|
# Можно запускать софт через "${pkgs.betterlockscreen}/bin/betterlockscreen -l dimblur";
|
||||||
mainTerminal = "${pkgs.alacritty}/bin/alacritty";
|
# Но мне лень столько текста делать. И так сойдёт
|
||||||
secondTerminal = "${pkgs.kitty}/bin/kitty";
|
|
||||||
in {
|
# Удалить потом
|
||||||
services.sxhkd = { # Бинды системы
|
# 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;
|
enable = true;
|
||||||
|
|
||||||
keybindings = {
|
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 |
|
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ in {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = username;
|
description = username;
|
||||||
extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" "storage" "docker" ];
|
extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" "storage" "docker" ];
|
||||||
packages = with pkgs; [];
|
# packages = with pkgs; [];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
services = {
|
services = {
|
||||||
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
|
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
|
||||||
tumbler.enable = true; # Thumbnail support 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
|
greenclip.enable = true; # Clipboard manager. https://github.com/erebe/greenclip
|
||||||
openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
|
openssh.enable = true; # Потом удали. Это ставится на виртуалку, чтоб к ней конект по ssh работал.
|
||||||
spice-vdagentd.enable = true; # Общий буфер обмена с виртуалкой
|
spice-vdagentd.enable = true; # Общий буфер обмена с виртуалкой
|
||||||
|
|
@ -28,6 +29,7 @@
|
||||||
xfconf.enable = true; # For Thunar configs
|
xfconf.enable = true; # For Thunar configs
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Многое из этого продублировано в home-manager. Мне так удобней
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|
||||||
# Это рекомендуют ставить не на всю систему,
|
# Это рекомендуют ставить не на всю систему,
|
||||||
|
|
@ -62,6 +64,7 @@
|
||||||
feh # Смотреть изображения. Вроде нужен в большом количестве софта как зависимость
|
feh # Смотреть изображения. Вроде нужен в большом количестве софта как зависимость
|
||||||
playerctl # Command-line utility and library for controlling media players that implement MPRIS
|
playerctl # Command-line utility and library for controlling media players that implement MPRIS
|
||||||
xdotool # Fake keyboard/mouse input, window management, and more. Автоматизация
|
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 # Менеджер паролей в терминале
|
pass # Менеджер паролей в терминале
|
||||||
|
|
@ -169,9 +172,9 @@
|
||||||
planify # Task manager
|
planify # Task manager
|
||||||
|
|
||||||
# IDE (neovim мб не надо писать, он у меня необычный через nixvim flake)
|
# IDE (neovim мб не надо писать, он у меня необычный через nixvim flake)
|
||||||
vscode # TODO: Настройки надо сделать декларативными?
|
vscode
|
||||||
vscodium # TODO: Настройки надо сделать декларативными?
|
# vscodium # VSCode без телеметрии и прочего кала. Не имеет обратной совместимости с расширениями vscode
|
||||||
jetbrains-toolbox # TODO: Настройки надо сделать декларативными?
|
jetbrains-toolbox
|
||||||
helix # A Kakoune / Neovim inspired editor, written in Rust.
|
helix # A Kakoune / Neovim inspired editor, written in Rust.
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue