Стили для rofi
This commit is contained in:
parent
b3b69d2a85
commit
74f549dab8
6 changed files with 483 additions and 29 deletions
34
README.md
34
README.md
|
|
@ -4,6 +4,7 @@
|
||||||
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
- [Другие README файлы в этих дотсах](#другие-readme-файлы-в-этих-дотсах)
|
||||||
- [Проблемы](#проблемы)
|
- [Проблемы](#проблемы)
|
||||||
- [TODO](#todo)
|
- [TODO](#todo)
|
||||||
|
- [bspwm или i3](#bspwm-или-i3)
|
||||||
- [Описание](#описание)
|
- [Описание](#описание)
|
||||||
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
|
- [Нюансы с JetBrains Toolbox](#нюансы-с-jetbrains-toolbox)
|
||||||
- [Настройки для игр](#настройки-для-игр)
|
- [Настройки для игр](#настройки-для-игр)
|
||||||
|
|
@ -58,11 +59,11 @@
|
||||||
| `Super + A` | Applications. Запускатор софта | Да |
|
| `Super + A` | Applications. Запускатор софта | Да |
|
||||||
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да |
|
| `Super + C` | Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`. | Да |
|
||||||
| `Super + P` | Passwords. Пароли из утилиты pass |нет|
|
| `Super + P` | Passwords. Пароли из утилиты pass |нет|
|
||||||
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. |нет|
|
| `Super + V` | История буфера обмена. Как ctrl+v, но через win. | Да |
|
||||||
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |хз|
|
| `Super + Backspace` | PowerMenu. Выключение пк | Да |
|
||||||
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |хз|
|
| `Super + Tab` | Как alt+tab, переключение окон. На нужный воркспейс само перекинет |нет|
|
||||||
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |хз|
|
| `Super + Alt + T` | Timer. Думаю сделать через утилиту timer |нет|
|
||||||
| `Super + Backspace` | PowerMenu. Выключение пк |нет|
|
| `Super + Shift + N` | Notification history. История оповещений. Мб сделать только в баре кнопку? Мб не делать вообще |нет|
|
||||||
|
|
||||||
| Applications | Описание | Работает? |
|
| Applications | Описание | Работает? |
|
||||||
| -------------------------- | ----------------------------------------- | --------- |
|
| -------------------------- | ----------------------------------------- | --------- |
|
||||||
|
|
@ -140,6 +141,18 @@
|
||||||
- i3 с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
- i3 с его экосистемой софта. Чтоб тот же polybar был лишь на bspwm, а на i3 работал i3bar
|
||||||
- Sway. Мб сделать через ags
|
- 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.
|
||||||
|
|
||||||
## Описание
|
## Описание
|
||||||
|
|
||||||
Железо, на котором это работает:
|
Железо, на котором это работает:
|
||||||
|
|
@ -153,13 +166,15 @@
|
||||||
|
|
||||||
| Software | Name |
|
| Software | Name |
|
||||||
| ------------ | -------------------------------- |
|
| ------------ | -------------------------------- |
|
||||||
| WM | bspwm |
|
| WM | bspwm/i3 |
|
||||||
| Hotkeys | sxhkd |
|
| Hotkeys | sxhkd/i3 |
|
||||||
| Terminal | Alacritty, Kitty |
|
| Terminal | Alacritty, Kitty |
|
||||||
| Multiplexer | Zellij |
|
| Multiplexer | Zellij |
|
||||||
| Shell | oh-my-zsh with many plugins |
|
| Shell | oh-my-zsh with many plugins |
|
||||||
| Shell Prompt | Starship |
|
| Shell Prompt | Starship |
|
||||||
| Apps/Menus | Rofi |
|
| Apps/Menus | Rofi |
|
||||||
|
| Bar | Polybar/i3bar |
|
||||||
|
| ScreenLock | betterlockscreen/i3lock |
|
||||||
| Notification | Dunst |
|
| Notification | Dunst |
|
||||||
| Files | Thunar, Ranger |
|
| Files | Thunar, Ranger |
|
||||||
| Images | qView, imv, viewnior, feh |
|
| Images | qView, imv, viewnior, feh |
|
||||||
|
|
@ -309,12 +324,13 @@ sudo nixos-rebuild switch
|
||||||
|
|
||||||
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой:
|
Дальше есть два способа. Перед использованием любого из них я рекомендую сделать форк и внести следующие изменения в конфиг перед установкой:
|
||||||
|
|
||||||
- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера.
|
- Заменить имя юзера на своё. Для этого надо открыть файл `nixos/configuration.nix` и заменить переменную `username` на ник своего юзера. И открыть файл `nixos/home.nix`, где надо заменить `username` и `homeDirectory`.
|
||||||
- Изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры экрана. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки.
|
- Изменить параметры мониторов в `modules/home-manager/wm/bspwm/bspwm.nix`. Для этого через xrandr надо узнать параметры экрана. Либо закомментить настройки мониторов и посмотреть как будет работать из коробки.
|
||||||
- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix` и `boot.initrd.kernelModules` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их.
|
- Изменить gpu драйвер, если видеокарта не от amd. Самый простой вариант - закомментировать `videoDrivers` в `modules/nixos/xserver.nix`, `boot.initrd.kernelModules` и всю категорию настроек `amdgpu` в `modules/nixos/hardware.nix`. Мб он сам подберёт подходящий драйвер. Если же знаешь конкретные настройки, которые надо ставить, то пишешь их.
|
||||||
- Изменить настройки звука в `modules/nixos/sound.nix`. Там надо закомментировать `default.clock.allowed-rates` с кучей разных частот. Они сделаны для моего цапа, но у большинства людей это может вызвать ошибки. Те, кто знают что это и зачем, те изменят под себя.
|
- Изменить настройки звука в `modules/nixos/sound.nix`. Там надо закомментировать `default.clock.allowed-rates` с кучей разных частот. Они сделаны для моего цапа, но у большинства людей это может вызвать ошибки. Те, кто знают что это и зачем, те изменят под себя.
|
||||||
- Закомментировать/удалить `./symlinks.nix` в файле `modules/home-manager/bundle.nix`. Там написаны симлинки для второго ссд, где я бекаплю браузер и тд. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
|
- Закомментировать/удалить `./symlinks.nix` в файле `modules/home-manager/bundle.nix`. Там написаны симлинки для второго ссд, где я бекаплю браузер и тд. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
|
||||||
- Закомментировать/удалить `./filesystems.nix` в файле `modules/nixos/bundle.nix`. Там монтируется мой второй ссд для бекапов. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
|
- Закомментировать/удалить `./filesystems.nix` в файле `modules/nixos/bundle.nix`. Там монтируется мой второй ссд для бекапов. Ребилд выдаст ошибку, если другой человек попробует использовать этот же конфиг.
|
||||||
|
- Если хочешь `bspwm`, а не `i3`, то читай [bspwm или i3](#bspwm-или-i3)
|
||||||
|
|
||||||
С гитом есть нюанс. Если захочешь потом создать свои конфиги или добавить новые файлы, на которые надо ссылаться из nix, то надо указывать либо полный путь до файла, либо добавлять файл в гит. Если указывать относительный путь, как сделано в моих `bundle.nix`, то все эти файлы должны находиться в гите, либо каталог дотсов должен быть без гита вовсе. Если в каталоге дотсов инициализирован репозиторий гита, то в относительных путях он не видит файлы из `gitignore` или просто не отслеживаемые гитом файлы.
|
С гитом есть нюанс. Если захочешь потом создать свои конфиги или добавить новые файлы, на которые надо ссылаться из nix, то надо указывать либо полный путь до файла, либо добавлять файл в гит. Если указывать относительный путь, как сделано в моих `bundle.nix`, то все эти файлы должны находиться в гите, либо каталог дотсов должен быть без гита вовсе. Если в каталоге дотсов инициализирован репозиторий гита, то в относительных путях он не видит файлы из `gitignore` или просто не отслеживаемые гитом файлы.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@
|
||||||
|
|
||||||
modules-center=time
|
modules-center=time
|
||||||
modules-left=bspwm title
|
modules-left=bspwm title
|
||||||
modules-right=cpu memory alsa tray xkeyboard rofi
|
modules-right=cpu memory alsa tray xkeyboard rofi power
|
||||||
|
|
||||||
wm-restack=bspwm
|
wm-restack=bspwm
|
||||||
|
|
||||||
|
|
@ -294,9 +294,13 @@
|
||||||
[module/rofi]
|
[module/rofi]
|
||||||
type=custom/text
|
type=custom/text
|
||||||
click-left=exec rofi -show drun -show-icons
|
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=" "
|
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]
|
[module/time]
|
||||||
type=internal/date
|
type=internal/date
|
||||||
interval=1
|
interval=1
|
||||||
|
|
|
||||||
264
modules/home-manager/wm/rofi/launcher.rasi
Normal file
264
modules/home-manager/wm/rofi/launcher.rasi
Normal file
|
|
@ -0,0 +1,264 @@
|
||||||
|
/*****----- 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;
|
||||||
|
}
|
||||||
151
modules/home-manager/wm/rofi/power.rasi
Normal file
151
modules/home-manager/wm/rofi/power.rasi
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
/*****----- 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);
|
||||||
|
}
|
||||||
|
|
@ -7,19 +7,20 @@
|
||||||
# Полезная инфа https://wiki.archlinux.org/title/Rofi
|
# Полезная инфа https://wiki.archlinux.org/title/Rofi
|
||||||
# Готовые скрипты https://github.com/davatorium/rofi/wiki/User-scripts
|
# Готовые скрипты https://github.com/davatorium/rofi/wiki/User-scripts
|
||||||
|
|
||||||
{ pkgs, ... }: { # Запускатор софта и не только
|
{ pkgs, config, ... }: { # Запускатор софта и не только
|
||||||
programs.rofi = { # https://github.com/davatorium/rofi
|
programs.rofi = { # https://github.com/davatorium/rofi
|
||||||
enable = true;
|
enable = true;
|
||||||
terminal = "${pkgs.alacritty}/bin/alacritty"; # Path to the terminal which will be used to run console applications
|
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.
|
location = "center"; # The location rofi appears on the screen.
|
||||||
# cycle = true; # Whether to cycle through the results list.
|
# cycle = true; # Whether to cycle through the results list.
|
||||||
|
|
||||||
pass = { # https://github.com/carnager/rofi-pass
|
pass = {
|
||||||
enable = true;
|
enable = true; # https://github.com/carnager/rofi-pass
|
||||||
# stores = []; # Directory roots of your password-stores.
|
extraConfig = ''
|
||||||
# extraConfig = ''
|
_rofi () {
|
||||||
# https://github.com/carnager/rofi-pass/blob/master/config.example
|
rofi -i -no-auto-select -theme ${config.home.homeDirectory}/.config/rofi/launcher.rasi "$@"
|
||||||
# '';
|
}
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
plugins = with pkgs; [
|
plugins = with pkgs; [
|
||||||
|
|
@ -28,9 +29,7 @@
|
||||||
# rofi-bluetooth # https://github.com/nickclyde/rofi-bluetooth
|
# rofi-bluetooth # https://github.com/nickclyde/rofi-bluetooth
|
||||||
];
|
];
|
||||||
|
|
||||||
extraConfig = {
|
# extraConfig = {};
|
||||||
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Мб заменю на greenclip, который включается как сервис в packages.nix
|
# Мб заменю на greenclip, который включается как сервис в packages.nix
|
||||||
|
|
@ -39,7 +38,25 @@
|
||||||
launcher = "rofi";
|
launcher = "rofi";
|
||||||
};
|
};
|
||||||
|
|
||||||
# xdg.configFile = {
|
xdg.configFile = {
|
||||||
# "rofi/config.rasi".source = config.rasi;
|
"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};
|
||||||
}
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
# Но мне лень столько текста делать. И так сойдёт
|
# Но мне лень столько текста делать. И так сойдёт
|
||||||
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
|
# Стандартный конфиг https://github.com/baskerville/bspwm/blob/master/examples/sxhkdrc
|
||||||
|
|
||||||
{ pkgs, ... }: let
|
{ pkgs, config, ... }: let
|
||||||
notifyMute = ''dunstify "$(if [ "$(pamixer --get-mute)" = "true" ]; then echo " Muted"; else echo " Unmuted"; fi)" -r 91190 -t 8000'';
|
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'';
|
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'';
|
notifyVolume = ''dunstify " Volume: $(pamixer --get-volume)" -r 91190 -t 800'';
|
||||||
|
|
@ -13,6 +13,8 @@
|
||||||
|
|
||||||
terminalFirst = "alacritty";
|
terminalFirst = "alacritty";
|
||||||
terminalSecond = "kitty";
|
terminalSecond = "kitty";
|
||||||
|
|
||||||
|
rofiDir = "${config.home.homeDirectory}/.config/rofi"
|
||||||
in {
|
in {
|
||||||
home.package = [ sxhkd ];
|
home.package = [ sxhkd ];
|
||||||
|
|
||||||
|
|
@ -119,11 +121,11 @@ in {
|
||||||
|
|
||||||
# Applications. Запускатор софта
|
# Applications. Запускатор софта
|
||||||
super + a
|
super + a
|
||||||
rofi -show drun -show-icons
|
rofi -show drun -theme ${rofiDir}/launcher.rasi
|
||||||
|
|
||||||
# Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`.
|
# Calculator имбовый. Можно даже написать `5600 USD to BTC` или `500 + 25%`.
|
||||||
super + c
|
super + c
|
||||||
rofi -show calc -modi calc -no-show-match -no-sort
|
rofi -show calc -modi calc -no-show-match -no-sort -theme ${rofiDir}/launcher.rasi
|
||||||
|
|
||||||
# Passwords. Пароли из утилиты pass
|
# Passwords. Пароли из утилиты pass
|
||||||
super + p
|
super + p
|
||||||
|
|
@ -135,11 +137,11 @@ in {
|
||||||
|
|
||||||
# Как alt+tab, переключение окон. На нужный воркспейс само перекинет
|
# Как alt+tab, переключение окон. На нужный воркспейс само перекинет
|
||||||
super + tab
|
super + tab
|
||||||
rofi -show window -show-icons
|
rofi -show window -theme ${rofiDir}/launcher.rasi
|
||||||
|
|
||||||
# PowerMenu. Выключение пк
|
# PowerMenu. Выключение пк
|
||||||
super + BackSpace
|
super + BackSpace
|
||||||
rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu
|
rofi -show powermenu -modi powermenu:${pkgs.rofi-power-menu}/bin/rofi-power-menu -theme ${rofiDir}/power.rasi
|
||||||
|
|
||||||
# Timer. Думаю сделать через утилиту timer
|
# Timer. Думаю сделать через утилиту timer
|
||||||
# super + alt + t
|
# super + alt + t
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue