menus: use shell script instead of wrapper
Signed-off-by: Myned <dev@bjork.tech>
This commit is contained in:
parent
6cde225c08
commit
1196fdb95b
6 changed files with 46 additions and 49 deletions
|
@ -265,6 +265,7 @@ in {
|
||||||
|
|
||||||
(key "Super_L" "Super" "exec" config.custom.menus.default.show)
|
(key "Super_L" "Super" "exec" config.custom.menus.default.show)
|
||||||
(key "Super_L" "Super+Alt" "exec" config.custom.menus.vault.show)
|
(key "Super_L" "Super+Alt" "exec" config.custom.menus.vault.show)
|
||||||
|
(key "Super_L" "Super+Ctrl" "exec" config.custom.menus.calculator.show)
|
||||||
(key "Super_L" "Super+Ctrl+Shift" "exec" config.custom.menus.network.show)
|
(key "Super_L" "Super+Ctrl+Shift" "exec" config.custom.menus.network.show)
|
||||||
(key "Super_L" "Super+Shift" "exec" config.custom.menus.search.show)
|
(key "Super_L" "Super+Shift" "exec" config.custom.menus.search.show)
|
||||||
];
|
];
|
||||||
|
|
|
@ -136,7 +136,7 @@ in {
|
||||||
(key "N" "Mod" (spawn networkmanager_dmenu))
|
(key "N" "Mod" (spawn networkmanager_dmenu))
|
||||||
(key "O" "Mod" (spawn [loupe "/tmp/wallpaper.png"]))
|
(key "O" "Mod" (spawn [loupe "/tmp/wallpaper.png"]))
|
||||||
(key "P" "Ctrl+Alt" (spawn [pkill "bitwarden"]))
|
(key "P" "Ctrl+Alt" (spawn [pkill "bitwarden"]))
|
||||||
(key "P" "Mod" (spawn [bash "-c" config.custom.menus.vault.show]))
|
(key "P" "Mod" (spawn config.custom.menus.vault.show))
|
||||||
(key "P" "Mod+Shift" (spawn bitwarden))
|
(key "P" "Mod+Shift" (spawn bitwarden))
|
||||||
(key "Q" "Mod" close-window)
|
(key "Q" "Mod" close-window)
|
||||||
(key "R" "Mod" focus-window-or-workspace-down)
|
(key "R" "Mod" focus-window-or-workspace-down)
|
||||||
|
@ -156,9 +156,9 @@ in {
|
||||||
(key "T" "Mod" (spawn ghostty))
|
(key "T" "Mod" (spawn ghostty))
|
||||||
(key "Tab" "Mod" switch-focus-between-floating-and-tiling)
|
(key "Tab" "Mod" switch-focus-between-floating-and-tiling)
|
||||||
(key "Up" "Mod" (spawn [swayosd-client "--brightness" "raise"]))
|
(key "Up" "Mod" (spawn [swayosd-client "--brightness" "raise"]))
|
||||||
(key "V" "Mod" (spawn [bash "-c" config.custom.menus.clipboard.show]))
|
(key "V" "Mod" (spawn config.custom.menus.clipboard.show))
|
||||||
(key "V" "Mod+Ctrl" (spawn vm))
|
(key "V" "Mod+Ctrl" (spawn vm))
|
||||||
(key "V" "Mod+Shift" (spawn [bash "-c" config.custom.menus.clipboard.clear]))
|
(key "V" "Mod+Shift" (spawn config.custom.menus.clipboard.clear))
|
||||||
(key "W" "Mod" focus-window-or-workspace-up)
|
(key "W" "Mod" focus-window-or-workspace-up)
|
||||||
(key "W" "Mod+Shift" move-window-up-or-to-workspace-up)
|
(key "W" "Mod+Shift" move-window-up-or-to-workspace-up)
|
||||||
(key "WheelScrollDown" "Mod" focus-window-or-workspace-down)
|
(key "WheelScrollDown" "Mod" focus-window-or-workspace-down)
|
||||||
|
@ -183,9 +183,9 @@ in {
|
||||||
# TODO: Uncomment when fixed
|
# TODO: Uncomment when fixed
|
||||||
#// (key "Shift_L" "Mod" focus-workspace-previous)
|
#// (key "Shift_L" "Mod" focus-workspace-previous)
|
||||||
# TODO: Use "Super_L" when fixed
|
# TODO: Use "Super_L" when fixed
|
||||||
(key "Space" "Mod" (spawn [bash "-c" config.custom.menus.show]))
|
(key "Space" "Mod" (spawn config.custom.menus.default.show))
|
||||||
(key "Space" "Mod+Ctrl" (spawn [bash "-c" config.custom.menus.calculator.show]))
|
(key "Space" "Mod+Ctrl" (spawn config.custom.menus.calculator.show))
|
||||||
(key "Space" "Mod+Shift" (spawn [bash "-c" config.custom.menus.search.show]))
|
(key "Space" "Mod+Shift" (spawn config.custom.menus.search.show))
|
||||||
|
|
||||||
# Media keys
|
# Media keys
|
||||||
# https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h
|
# https://github.com/xkbcommon/libxkbcommon/blob/master/include/xkbcommon/xkbcommon-keysyms.h
|
||||||
|
|
|
@ -8,7 +8,7 @@ with lib; let
|
||||||
in {
|
in {
|
||||||
options.custom.menus = {
|
options.custom.menus = {
|
||||||
enable = mkOption {default = config.custom.full;};
|
enable = mkOption {default = config.custom.full;};
|
||||||
show = mkOption {default = "";};
|
default.show = mkOption {default = "";};
|
||||||
calculator.show = mkOption {default = "";};
|
calculator.show = mkOption {default = "";};
|
||||||
|
|
||||||
clipboard = {
|
clipboard = {
|
||||||
|
|
|
@ -8,6 +8,7 @@ with lib; let
|
||||||
cfg = config.custom.menus.rofi;
|
cfg = config.custom.menus.rofi;
|
||||||
hm = config.home-manager.users.${config.custom.username};
|
hm = config.home-manager.users.${config.custom.username};
|
||||||
|
|
||||||
|
bash = getExe pkgs.bash;
|
||||||
cliphist = getExe hm.services.cliphist.package;
|
cliphist = getExe hm.services.cliphist.package;
|
||||||
echo = getExe' pkgs.coreutils "echo";
|
echo = getExe' pkgs.coreutils "echo";
|
||||||
networkmanager_dmenu = getExe pkgs.networkmanager_dmenu;
|
networkmanager_dmenu = getExe pkgs.networkmanager_dmenu;
|
||||||
|
@ -24,30 +25,21 @@ in {
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
custom = mkIf (config.custom.menu == "rofi") {
|
custom = mkIf (config.custom.menu == "rofi") {
|
||||||
menus = let
|
menus = mapAttrsRecursive (path: value: pkgs.writeShellScript (concatStringsSep "-" (["menus"] ++ path)) value) {
|
||||||
quit = "${pkill} --exact rofi";
|
default.show = "${pkill} --exact rofi || ${rofi} -show drun -show-icons";
|
||||||
in {
|
calculator.show = ''${pkill} --exact rofi || ${rofi} -show calc -no-history -calc-error-color '#dc322f' -calc-command "${echo} -n '{result}' | ${wl-copy}"'';
|
||||||
show = "${quit} || ${rofi} -show drun -show-icons";
|
|
||||||
|
|
||||||
calculator.show = concatStringsSep " " [
|
|
||||||
"${quit} || ${rofi}"
|
|
||||||
"-show calc"
|
|
||||||
"-no-history"
|
|
||||||
"-calc-error-color '#dc322f'"
|
|
||||||
''-calc-command "${echo} -n '{result}' | ${wl-copy}"''
|
|
||||||
];
|
|
||||||
|
|
||||||
clipboard = {
|
clipboard = {
|
||||||
show = "${quit} || ${rofi} -show clipboard -show-icons";
|
show = "${pkill} --exact rofi || ${rofi} -show clipboard -show-icons";
|
||||||
clear = "${cliphist} wipe && ${notify-send} '> cliphist' 'Clipboard cleared' --urgency low";
|
clear = "${cliphist} wipe && ${notify-send} '> cliphist' 'Clipboard cleared' --urgency low";
|
||||||
clear-silent = "${cliphist} wipe";
|
clear-silent = "${cliphist} wipe";
|
||||||
};
|
};
|
||||||
|
|
||||||
dmenu.show = "${quit} || ${rofi} -dmenu";
|
dmenu.show = "${pkill} --exact rofi || ${rofi} -dmenu";
|
||||||
emoji.show = "${quit} || ${rofimoji} --prompt ";
|
emoji.show = "${pkill} --exact rofi || ${rofimoji} --prompt ";
|
||||||
network.show = "${quit} || ${networkmanager_dmenu}";
|
network.show = "${pkill} --exact rofi || ${networkmanager_dmenu}";
|
||||||
search.show = "";
|
search.show = "";
|
||||||
vault.show = "${quit} || ${rofi-rbw} --prompt ";
|
vault.show = "${pkill} --exact rofi || ${rofi-rbw} --prompt ";
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
|
|
@ -19,9 +19,9 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
custom = {
|
custom = mkIf (config.custom.menu == "walker") {
|
||||||
menus = mkIf (config.custom.menu == "walker") {
|
menus = mapAttrsRecursive (path: value: pkgs.writeShellScript (concatStringsSep "-" (["menus"] ++ path)) value) {
|
||||||
show = walker;
|
default.show = walker;
|
||||||
|
|
||||||
clipboard = {
|
clipboard = {
|
||||||
show = "${walker} --modules clipboard";
|
show = "${walker} --modules clipboard";
|
||||||
|
|
|
@ -10,33 +10,37 @@ with lib; let
|
||||||
|
|
||||||
rofi = getExe hm.programs.rofi.package;
|
rofi = getExe hm.programs.rofi.package;
|
||||||
in {
|
in {
|
||||||
options.custom.programs.networkmanager-dmenu.enable = mkOption {default = false;};
|
options.custom.programs.networkmanager-dmenu = {
|
||||||
|
enable = mkOption {default = false;};
|
||||||
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
# https://github.com/firecat53/networkmanager-dmenu
|
# https://github.com/firecat53/networkmanager-dmenu
|
||||||
environment.systemPackages = [pkgs.networkmanager_dmenu];
|
environment.systemPackages = [pkgs.networkmanager_dmenu];
|
||||||
|
|
||||||
home-manager.users.${config.custom.username} = {
|
home-manager.sharedModules = [
|
||||||
# https://github.com/firecat53/networkmanager-dmenu/blob/main/config.ini.example
|
{
|
||||||
#!! Option not available, files written directly
|
# https://github.com/firecat53/networkmanager-dmenu/blob/main/config.ini.example
|
||||||
xdg.configFile."networkmanager-dmenu/config.ini".text = let
|
xdg.configFile = {
|
||||||
menu =
|
"networkmanager-dmenu/config.ini".text = let
|
||||||
if config.custom.menu == "rofi"
|
menu =
|
||||||
then "${rofi} -dmenu -p "
|
if config.custom.menu == "rofi"
|
||||||
else "";
|
then "${rofi} -dmenu -p "
|
||||||
in ''
|
else "";
|
||||||
[dmenu]
|
in ''
|
||||||
compact = true
|
[dmenu]
|
||||||
dmenu_command = ${menu}
|
compact = true
|
||||||
list_saved = true
|
dmenu_command = ${menu}
|
||||||
active_chars =
|
active_chars =
|
||||||
highlight = true
|
highlight = true
|
||||||
wifi_icons =
|
wifi_icons =
|
||||||
format = {icon} {name}
|
format = {icon} {name}
|
||||||
|
|
||||||
[dmenu_passphrase]
|
[dmenu_passphrase]
|
||||||
obscure = true
|
obscure = true
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue