48 lines
1.3 KiB
Nix
48 lines
1.3 KiB
Nix
# TODO: Need some kind of menu generator API that is integrated with hyprland hotkeys
|
|
# VPN and Container modules should use this rofi module to enable their menus then
|
|
{
|
|
config,
|
|
nixosConfig,
|
|
lib,
|
|
mylib,
|
|
pkgs,
|
|
...
|
|
}: let
|
|
cfg = config.modules.rofi;
|
|
in {
|
|
options.modules.rofi = import ./options.nix {inherit lib mylib;};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
home.packages = with pkgs; [
|
|
rofi-wayland
|
|
];
|
|
|
|
modules.hyprland.keybindings = let
|
|
power-menu =
|
|
mylib.rofi.mkSimpleMenu
|
|
"power"
|
|
{
|
|
"Poweroff" = "poweroff";
|
|
"Reboot" = "reboot";
|
|
"Reload Hyprland" = "hyprctl reload";
|
|
"Exit Hyprland" = "hyprctl dispatch exit";
|
|
};
|
|
in {
|
|
bindings = {
|
|
"$mainMod, A" = ["exec, rofi -show drun"];
|
|
"$mainMod, escape" = ["exec, \"${power-menu}\""];
|
|
};
|
|
};
|
|
|
|
home.activation = {
|
|
# NOTE: Keep the rofi config symlinked, to allow easy changes with hotreload
|
|
linkRofiConfig =
|
|
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
(mylib.modules.mkLink "~/NixFlake/config/rofi/rofi.rasi" "~/.config/rofi/config.rasi");
|
|
linkRofiColors =
|
|
lib.hm.dag.entryAfter ["writeBoundary"]
|
|
(mylib.modules.mkLink "~/NixFlake/config/rofi/colors/${cfg.theme}.rasi" "~/.config/rofi/colors.rasi");
|
|
};
|
|
};
|
|
}
|