diff --git a/modules/config/theming/_catppuccin.nix b/modules/config/theming/_catppuccin.nix index f205c62..6d69def 100644 --- a/modules/config/theming/_catppuccin.nix +++ b/modules/config/theming/_catppuccin.nix @@ -31,6 +31,12 @@ }: { + my.programs.tofi.settings = { + text-color = "#${text}"; + prompt-color = "#${red}"; + selection-color = "#${yellow}"; + background-color = "#${base}"; + }; home-manager.users.moritz = { programs = { fzf.colors = { diff --git a/modules/config/theming/default.nix b/modules/config/theming/default.nix index 31d8cb4..9101c51 100644 --- a/modules/config/theming/default.nix +++ b/modules/config/theming/default.nix @@ -31,6 +31,20 @@ in }; config = mkIf cfg.enable { + my.programs.tofi.settings = { + font-size = "20"; + font = + let + fontBasePath = pkgs.nerdfonts.override { + fonts = [ "FiraCode" ]; + }; + in + "${fontBasePath}/share/fonts/truetype/NerdFonts/FiraCodeNerdFont-Regular.ttf"; + height = "360"; + width = "720"; + outline-width = "0"; + border-width = "0"; + }; home-manager.users.moritz = { services.polybar = { config = { diff --git a/modules/profiles/impermanence.nix b/modules/profiles/impermanence.nix index 43b58ce..5e23faa 100644 --- a/modules/profiles/impermanence.nix +++ b/modules/profiles/impermanence.nix @@ -54,6 +54,7 @@ in ".local/share/nvim" ".local/share/zoxide" ".local/state/nvim" + ".local/state/tofi-history" ".mozilla" "Documents" "Downloads" diff --git a/modules/programs/river/default.nix b/modules/programs/river/default.nix index 0580b88..61016ed 100644 --- a/modules/programs/river/default.nix +++ b/modules/programs/river/default.nix @@ -30,7 +30,7 @@ in programs = { wallpaper.enable = true; foot.enable = true; - rofi.enable = true; + tofi.enable = true; }; wallpapers.enable = true; services = { @@ -59,6 +59,7 @@ in "Super Q" = "close"; "Super Return" = "spawn footclient"; "Super+Shift Return" = "spawn foot"; + "Super R" = ''spawn 'exec $(tofi-run --fuzzy-match=true)' ''; }; }; }; diff --git a/modules/programs/tofi.nix b/modules/programs/tofi.nix new file mode 100644 index 0000000..54913ca --- /dev/null +++ b/modules/programs/tofi.nix @@ -0,0 +1,44 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.programs.tofi; + + configText = + let + settingsStrings = mapAttrsToList (name: value: "${name} = ${value}") cfg.settings; + in + concatLines settingsStrings; +in +{ + options.my.programs.tofi = { + enable = mkEnableOption "tofi"; + settings = mkOption { + type = with types; attrsOf str; + default = { }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + (lib.mkIf config.networking.networkmanager.enable networkmanager_dmenu) + # (lib.mkIf config.hardware.bluetooth.enable rofi-bluetooth) + # rofi-power-menu + ]; + home-manager.users.moritz = { + home.packages = with pkgs; [ tofi ]; + xdg = { + enable = true; + configFile."tofi/config".text = configText; + configFile."networkmanager-dmenu/config.ini".text = '' + [dmenu] + dmenu_command = tofi + ''; + }; + }; + }; +}