Compare commits
No commits in common. "74f549dab89b9dbeb017a3343a37857ddad081d8" and "b3e54574bccc9cfd57e9fce5b9c277588833286c" have entirely different histories.
74f549dab8
...
b3e54574bc
11 changed files with 42 additions and 512 deletions
34
README.md
34
README.md
|
|
@ -4,7 +4,6 @@
|
|||
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
||||
- [Проблемы](#проблемы)
|
||||
- [TODO](#todo)
|
||||
- [bspwm или i3](#bspwm-или-i3)
|
||||
- [Описание](#описание)
|
||||
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
|
||||
- [Настройки для игр](#настройки-для-игр)
|
||||
|
|
@ -59,11 +58,11 @@
|
|||
| `Super + A` | Applications. Запускатор софта | Да |
|
||||
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да |
|
||||
| `Super + P` | Passwords. Пароли из утилиты pass |нет|
|
||||
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. | Да |
|
||||
| `Super + Backspace` | PowerMenu. Выключение пк | Да |
|
||||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |нет|
|
||||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |нет|
|
||||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |нет|
|
||||
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. |нет|
|
||||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |хз|
|
||||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |хз|
|
||||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |хз|
|
||||
| `Super + Backspace` | PowerMenu. Выключение пк |нет|
|
||||
|
||||
| Applications | Описание | Работает? |
|
||||
| -------------------------- | ----------------------------------------- | --------- |
|
||||
|
|
@ -141,18 +140,6 @@
|
|||
- i3 с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
||||
- Sway. Мб сделать через ags
|
||||
|
||||
## bspwm или i3
|
||||
|
||||
Изначально я написал конфиги для `bspwm` + `polybar`. Но так как оба эти проги созданы далбаёбами бездарными, я переехал на `i3` + `i3bar`. Если хочешь затестить `bspwm`, то закомментируй эти строки в `modules/home-manager/bundle.nix`:
|
||||
- `./wm/i3.nix`
|
||||
И раскомментируй эти строки в том же файле:
|
||||
- `./wm/bspwm/bspwm.nix`
|
||||
- `./wm/lockscreen.nix`
|
||||
- `./wm/polybar.nix`
|
||||
- `./wm/sxhkd.nix`
|
||||
|
||||
В теории можно сделать так, чтоб оба работали из коробки. Для этого надо тот же `polybar` и `sxhkd` скачать не как сервис, а как пакет. Чтоб он не был в автозапуске. А конфиги сделать симлинком, а не в nix синтаксисе. Запускать через `bspwm` конфиг, чтоб на `i3` не стартовало. Но я не хочу с этим ебаться ради бездарного кала, который не может делать элементарные вещи по типу отображение floating окон поверх tiling.
|
||||
|
||||
## Описание
|
||||
|
||||
Железо, на котором это работает:
|
||||
|
|
@ -166,15 +153,13 @@
|
|||
|
||||
| Software | Name |
|
||||
| ------------ | -------------------------------- |
|
||||
| WM | bspwm/i3 |
|
||||
| Hotkeys | sxhkd/i3 |
|
||||
| WM | bspwm |
|
||||
| Hotkeys | sxhkd |
|
||||
| Terminal | Alacritty, Kitty |
|
||||
| Multiplexer | Zellij |
|
||||
| Shell | oh-my-zsh with many plugins |
|
||||
| Shell Prompt | Starship |
|
||||
| Apps/Menus | Rofi |
|
||||
| Bar | Polybar/i3bar |
|
||||
| ScreenLock | betterlockscreen/i3lock |
|
||||
| Notification | Dunst |
|
||||
| Files | Thunar, Ranger |
|
||||
| Images | qView, imv, viewnior, feh |
|
||||
|
|
@ -324,13 +309,12 @@ sudo nixos-rebuild switch
|
|||
|
||||
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой:
|
||||
|
||||
- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера. И открыть файл `nixos/home.nix`, где надо заменить `username` и `homeDirectory`.
|
||||
- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера.
|
||||
- Изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры экрана. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки.
|
||||
- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их.
|
||||
- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix` и `boot.initrd.kernelModules` в `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`. Там монтируется мой второй ссд для бекапов. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
|
||||
- Если хочешь `bspwm`, а не `i3`, то читай [bspwm или i3](#bspwm-или-i3)
|
||||
|
||||
С гитом есть нюанс. Если захочешь потом создать свои конфиги или добавить новые файлы, на которые надо ссылаться из nix, то надо указывать либо полный путь до файла, либо добавлять файл в гит. Если указывать относительный путь, как сделано в моих `bundle.nix`, то все эти файлы должны находиться в гите, либо каталог дотсов должен быть без гита вовсе. Если в каталоге дотсов инициализирован репозиторий гита, то в относительных путях он не видит файлы из `gitignore` или просто не отслеживаемые гитом файлы.
|
||||
|
||||
|
|
|
|||
|
|
@ -22,9 +22,8 @@
|
|||
./terminal/zsh.nix
|
||||
|
||||
./wm/bspwm/bspwm.nix
|
||||
./wm/rofi/rofi.nix
|
||||
./wm/rofi.nix
|
||||
./wm/dunst.nix
|
||||
./wm/i3.nix
|
||||
./wm/lockscreen.nix
|
||||
./wm/polybar.nix
|
||||
./wm/sxhkd.nix
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
# Вроде это более простой симлинк, чем просто ссылка на файл
|
||||
# Но мб меня обманули
|
||||
|
||||
{ pkgs, config, ... }: let
|
||||
{ config, ... }: let
|
||||
home-dir = "backups"; # Имя каталога для бекапов. Мб захочу поменять
|
||||
dir = "${config.home.homeDirectory}/${home-dir}";
|
||||
in {
|
||||
|
|
@ -32,19 +32,12 @@ in {
|
|||
".librewolf".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Backups/Apps/.librewolf";
|
||||
|
||||
"Downloads/Telegram Desktop".source = config.lib.file.mkOutOfStoreSymlink "${dir}/Telegram Desktop";
|
||||
# Не знаю на счёт strawberry, obs, chatbox, planify, calibre, discord, nekobox
|
||||
|
||||
# Временное решение, где `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
|
||||
};
|
||||
|
||||
xdg.configFile = { # Это для каталога .config
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
{ # https://nixos.wiki/wiki/I3
|
||||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# programs = {
|
||||
# i3status = {};
|
||||
# i3blocks = {};
|
||||
# };
|
||||
}
|
||||
|
|
@ -52,7 +52,7 @@
|
|||
|
||||
modules-center=time
|
||||
modules-left=bspwm title
|
||||
modules-right=cpu memory alsa tray xkeyboard rofi power
|
||||
modules-right=cpu memory alsa tray xkeyboard rofi
|
||||
|
||||
wm-restack=bspwm
|
||||
|
||||
|
|
@ -294,13 +294,9 @@
|
|||
[module/rofi]
|
||||
type=custom/text
|
||||
click-left=exec rofi -show drun -show-icons
|
||||
click-right=exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
|
||||
label=" "
|
||||
|
||||
[module/power]
|
||||
type=custom/text
|
||||
click-left=exec rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
|
||||
label=" "
|
||||
|
||||
[module/time]
|
||||
type=internal/date
|
||||
interval=1
|
||||
|
|
|
|||
|
|
@ -7,20 +7,19 @@
|
|||
# Полезная инфа https://wiki.archlinux.org/title/Rofi
|
||||
# Готовые скрипты https://github.com/davatorium/rofi/wiki/User-scripts
|
||||
|
||||
{ pkgs, config, ... }: { # Запускатор софта и не только
|
||||
{ pkgs, ... }: { # Запускатор софта и не только
|
||||
programs.rofi = { # https://github.com/davatorium/rofi
|
||||
enable = true;
|
||||
terminal = "${pkgs.alacritty}/bin/alacritty"; # Path to the terminal which will be used to run console applications
|
||||
location = "center"; # The location rofi appears on the screen.
|
||||
# cycle = true; # Whether to cycle through the results list.
|
||||
|
||||
pass = {
|
||||
enable = true; # https://github.com/carnager/rofi-pass
|
||||
extraConfig = ''
|
||||
_rofi () {
|
||||
rofi -i -no-auto-select -theme ${config.home.homeDirectory}/.config/rofi/launcher.rasi "$@"
|
||||
}
|
||||
'';
|
||||
pass = { # https://github.com/carnager/rofi-pass
|
||||
enable = true;
|
||||
# stores = []; # Directory roots of your password-stores.
|
||||
# extraConfig = ''
|
||||
# https://github.com/carnager/rofi-pass/blob/master/config.example
|
||||
# '';
|
||||
};
|
||||
|
||||
plugins = with pkgs; [
|
||||
|
|
@ -29,7 +28,9 @@
|
|||
# rofi-bluetooth # https://github.com/nickclyde/rofi-bluetooth
|
||||
];
|
||||
|
||||
# extraConfig = {};
|
||||
extraConfig = {
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
# Мб заменю на greenclip, который включается как сервис в packages.nix
|
||||
|
|
@ -38,25 +39,7 @@
|
|||
launcher = "rofi";
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
"rofi/launcher.rasi".source = ./launcher.rasi;
|
||||
"rofi/power.rasi".source = ./power.rasi;
|
||||
"rofi/colors.rasi".text = ''
|
||||
* {
|
||||
background: #${config.lib.stylix.colors.base00};
|
||||
background-alt: #${config.lib.stylix.colors.base01};
|
||||
foreground: #${config.lib.stylix.colors.base06};
|
||||
selected: #${config.lib.stylix.colors.base0D};
|
||||
active: #${config.lib.stylix.colors.base0B};
|
||||
urgent: #${config.lib.stylix.colors.base08};
|
||||
}
|
||||
'';
|
||||
};
|
||||
# xdg.configFile = {
|
||||
# "rofi/config.rasi".source = config.rasi;
|
||||
# };
|
||||
}
|
||||
|
||||
# background: #${config.lib.stylix.colors.base00}; #282828
|
||||
# background-alt: #${config.lib.stylix.colors.base01}; #3c3836
|
||||
# foreground: #${config.lib.stylix.colors.base06}; #ebdbb2
|
||||
# selected: #${config.lib.stylix.colors.base0D}; #83a598
|
||||
# active: #${config.lib.stylix.colors.base0B}; #b8bb26
|
||||
# urgent: #${config.lib.stylix.colors.base08}; #fb4934
|
||||
|
|
@ -1,264 +0,0 @@
|
|||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
modes: "drun,run,window";
|
||||
show-icons: true;
|
||||
icon-theme: "Papirus";
|
||||
display-drun: "";
|
||||
display-run: "";
|
||||
display-window: "";
|
||||
drun-display-format: "{name} [<span weight='light' size='small'><i>({generic})</i></span>]";
|
||||
window-format: "{w} · {c} · {t}";
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "colors.rasi"
|
||||
|
||||
* {
|
||||
border-colour: var(selected);
|
||||
handle-colour: var(selected);
|
||||
background-colour: var(background);
|
||||
foreground-colour: var(foreground);
|
||||
alternate-background: var(background-alt);
|
||||
normal-background: var(background);
|
||||
normal-foreground: var(foreground);
|
||||
urgent-background: var(urgent);
|
||||
urgent-foreground: var(background);
|
||||
active-background: var(active);
|
||||
active-foreground: var(background);
|
||||
selected-normal-background: var(selected);
|
||||
selected-normal-foreground: var(background);
|
||||
selected-urgent-background: var(active);
|
||||
selected-urgent-foreground: var(background);
|
||||
selected-active-background: var(urgent);
|
||||
selected-active-foreground: var(background);
|
||||
alternate-normal-background: var(background);
|
||||
alternate-normal-foreground: var(foreground);
|
||||
alternate-urgent-background: var(urgent);
|
||||
alternate-urgent-foreground: var(background);
|
||||
alternate-active-background: var(active);
|
||||
alternate-active-foreground: var(background);
|
||||
}
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 800px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 1px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
cursor: "default";
|
||||
background-color: @background-colour;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 30px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px 0px 10px 10px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
children: [ "prompt", "entry" ];
|
||||
}
|
||||
|
||||
prompt {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "::";
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
}
|
||||
entry {
|
||||
enabled: true;
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
cursor: text;
|
||||
placeholder: "";
|
||||
placeholder-color: inherit;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 12;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: "default";
|
||||
}
|
||||
scrollbar {
|
||||
handle-width: 5px ;
|
||||
handle-color: @handle-colour;
|
||||
border-radius: 0px;
|
||||
background-color: @alternate-background;
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 5px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
cursor: pointer;
|
||||
}
|
||||
element normal.normal {
|
||||
background-color: var(normal-background);
|
||||
text-color: var(normal-foreground);
|
||||
}
|
||||
element normal.urgent {
|
||||
background-color: var(urgent-background);
|
||||
text-color: var(urgent-foreground);
|
||||
}
|
||||
element normal.active {
|
||||
background-color: var(active-background);
|
||||
text-color: var(active-foreground);
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(alternate-background);
|
||||
text-color: var(foreground-colour);
|
||||
}
|
||||
element selected.urgent {
|
||||
background-color: var(selected-urgent-background);
|
||||
text-color: var(selected-urgent-foreground);
|
||||
}
|
||||
element selected.active {
|
||||
background-color: var(selected-active-background);
|
||||
text-color: var(selected-active-foreground);
|
||||
}
|
||||
element alternate.normal {
|
||||
background-color: var(alternate-normal-background);
|
||||
text-color: var(alternate-normal-foreground);
|
||||
}
|
||||
element alternate.urgent {
|
||||
background-color: var(alternate-urgent-background);
|
||||
text-color: var(alternate-urgent-foreground);
|
||||
}
|
||||
element alternate.active {
|
||||
background-color: var(alternate-active-background);
|
||||
text-color: var(alternate-active-foreground);
|
||||
}
|
||||
element-icon {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
size: 24px;
|
||||
cursor: inherit;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
highlight: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
|
||||
/*****----- Mode Switcher -----*****/
|
||||
mode-switcher{
|
||||
enabled: true;
|
||||
spacing: 10px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
button {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: inherit;
|
||||
cursor: pointer;
|
||||
}
|
||||
button selected {
|
||||
background-color: var(selected-normal-background);
|
||||
text-color: var(selected-normal-foreground);
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px 0px 0px 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: transparent;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
textbox {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @alternate-background;
|
||||
text-color: @foreground-colour;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
highlight: none;
|
||||
placeholder-color: @foreground-colour;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 10px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @border-colour;
|
||||
background-color: @background-colour;
|
||||
text-color: @foreground-colour;
|
||||
}
|
||||
|
|
@ -1,151 +0,0 @@
|
|||
/*****----- Configuration -----*****/
|
||||
configuration {
|
||||
show-icons: false;
|
||||
}
|
||||
|
||||
/*****----- Global Properties -----*****/
|
||||
@import "colors.rasi"
|
||||
|
||||
/*****----- Main Window -----*****/
|
||||
window {
|
||||
/* properties for window widget */
|
||||
transparency: "real";
|
||||
location: center;
|
||||
anchor: center;
|
||||
fullscreen: false;
|
||||
width: 350px;
|
||||
x-offset: 0px;
|
||||
y-offset: 0px;
|
||||
|
||||
/* properties for all widgets */
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 1px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
cursor: "default";
|
||||
background-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Main Box -----*****/
|
||||
mainbox {
|
||||
enabled: true;
|
||||
spacing: 8px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
children: [ "inputbar", "message", "listview" ];
|
||||
}
|
||||
|
||||
/*****----- Inputbar -----*****/
|
||||
inputbar {
|
||||
enabled: true;
|
||||
spacing: 8px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
children: [ "textbox-prompt-colon", "prompt"];
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
enabled: true;
|
||||
expand: false;
|
||||
str: "";
|
||||
padding: 8px 12px;
|
||||
border-radius: 0px;
|
||||
background-color: @urgent;
|
||||
text-color: @background;
|
||||
}
|
||||
prompt {
|
||||
enabled: true;
|
||||
padding: 8px;
|
||||
border-radius: 0px;
|
||||
background-color: @active;
|
||||
text-color: @background;
|
||||
}
|
||||
|
||||
/*****----- Message -----*****/
|
||||
message {
|
||||
enabled: true;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background-alt;
|
||||
text-color: @foreground;
|
||||
}
|
||||
textbox {
|
||||
background-color: inherit;
|
||||
text-color: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
placeholder-color: @foreground;
|
||||
blink: true;
|
||||
markup: true;
|
||||
}
|
||||
error-message {
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: @background;
|
||||
text-color: @foreground;
|
||||
}
|
||||
|
||||
/*****----- Listview -----*****/
|
||||
listview {
|
||||
enabled: true;
|
||||
columns: 1;
|
||||
lines: 5;
|
||||
cycle: true;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
layout: vertical;
|
||||
reverse: false;
|
||||
fixed-height: true;
|
||||
fixed-columns: true;
|
||||
|
||||
spacing: 5px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: "default";
|
||||
}
|
||||
|
||||
/*****----- Elements -----*****/
|
||||
element {
|
||||
enabled: true;
|
||||
spacing: 0px;
|
||||
margin: 0px;
|
||||
padding: 8px;
|
||||
border: 0px solid;
|
||||
border-radius: 0px;
|
||||
border-color: @selected;
|
||||
background-color: transparent;
|
||||
text-color: @foreground;
|
||||
cursor: pointer;
|
||||
}
|
||||
element-text {
|
||||
background-color: transparent;
|
||||
text-color: inherit;
|
||||
cursor: inherit;
|
||||
vertical-align: 0.5;
|
||||
horizontal-align: 0.0;
|
||||
}
|
||||
element selected.normal {
|
||||
background-color: var(selected);
|
||||
text-color: var(background);
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
# Но мне лень столько текста делать. И так сойдёт
|
||||
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
|
||||
|
||||
{ pkgs, config, ... }: let
|
||||
{ pkgs, ... }: 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'';
|
||||
notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
|
||||
|
|
@ -13,8 +13,6 @@
|
|||
|
||||
terminalFirst = "alacritty";
|
||||
terminalSecond = "kitty";
|
||||
|
||||
rofiDir = "${config.home.homeDirectory}/.config/rofi"
|
||||
in {
|
||||
home.package = [ sxhkd ];
|
||||
|
||||
|
|
@ -121,11 +119,11 @@ in {
|
|||
|
||||
# Applications. Запускатор софта
|
||||
super + a
|
||||
rofi -show drun -theme ${rofiDir}/launcher.rasi
|
||||
rofi -show drun -show-icons
|
||||
|
||||
# Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`.
|
||||
super + c
|
||||
rofi -show calc -modi calc -no-show-match -no-sort -theme ${rofiDir}/launcher.rasi
|
||||
rofi -show calc -modi calc -no-show-match -no-sort
|
||||
|
||||
# Passwords. Пароли из утилиты pass
|
||||
super + p
|
||||
|
|
@ -137,11 +135,11 @@ in {
|
|||
|
||||
# Как alt+tab, переключение окон. На нужный воркспейс само перекинет
|
||||
super + tab
|
||||
rofi -show window -theme ${rofiDir}/launcher.rasi
|
||||
rofi -show window -show-icons
|
||||
|
||||
# PowerMenu. Выключение пк
|
||||
super + BackSpace
|
||||
rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiDir}/power.rasi
|
||||
rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
|
||||
|
||||
# Timer. Думаю сделать через утилиту timer
|
||||
# super + alt + t
|
||||
|
|
|
|||
|
|
@ -23,10 +23,7 @@
|
|||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
windowManager = {
|
||||
bspwm.enable = true;
|
||||
i3.enable = true; # i3-gaps доступен в стоке в новых версиях
|
||||
};
|
||||
windowManager.bspwm.enable = true;
|
||||
|
||||
displayManager = {
|
||||
lightdm = { # Минималистичный display manager
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@
|
|||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
pinentryPackage = pkgs.pinentry-qt;
|
||||
};
|
||||
|
||||
appimage = { # Чтоб .appimage работал
|
||||
|
|
@ -301,9 +300,15 @@
|
|||
## IDE ##
|
||||
#########
|
||||
|
||||
# neovim # Мб не надо писать, он у меня необычный, через nixvim flake
|
||||
# vscode # Надо в home.packages писать, чтоб расширения ставились без рута
|
||||
# jetbrains-toolbox # Надо в home.packages писать. https://nixos.wiki/wiki/Jetbrains_Tools
|
||||
# neovim # Мб не надо писать, он у меня необычный через nixvim flake
|
||||
# vscode # Мб надо в home.packages писать, чтоб расширения ставились без рута
|
||||
# vscodium # VSCode без телеметрии и прочего кала. Не имеет обратной совместимости с расширениями vscode
|
||||
# jetbrains-toolbox # У меня крашит ребилд. https://nixos.wiki/wiki/Jetbrains_Tools
|
||||
# jetbrains.webstorm
|
||||
# jetbrains.rust-rover
|
||||
# jetbrains.pycharm-professional
|
||||
# jetbrains.clion
|
||||
# jetbrains.goland
|
||||
helix # A Kakoune / Neovim inspired editor, written in Rust.
|
||||
|
||||
###########
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue