diff options
| -rw-r--r-- | modules/networking/bluetui/assertions.nix | 13 | ||||
| -rw-r--r-- | modules/networking/bluetui/default.nix | 22 | ||||
| -rw-r--r-- | modules/networking/impala/assertions.nix | 13 | ||||
| -rw-r--r-- | modules/networking/impala/default.nix | 22 |
4 files changed, 66 insertions, 4 deletions
diff --git a/modules/networking/bluetui/assertions.nix b/modules/networking/bluetui/assertions.nix new file mode 100644 index 0000000..6d0924f --- /dev/null +++ b/modules/networking/bluetui/assertions.nix @@ -0,0 +1,13 @@ +# Assertions - Validates kitty is enabled for bluetui desktop entry +{ config, ... }: +{ + assertions = [ + { + assertion = !config.networking.bluetui.enable || config.terminal.kitty.enable; + message = '' + networking.bluetui is enabled but terminal.kitty.enable is not. + bluetui's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty. + ''; + } + ]; +} diff --git a/modules/networking/bluetui/default.nix b/modules/networking/bluetui/default.nix index 21bed12..6aefc6a 100644 --- a/modules/networking/bluetui/default.nix +++ b/modules/networking/bluetui/default.nix @@ -5,14 +5,32 @@ pkgs, ... }: - +let + bluetuiDesktopItem = pkgs.makeDesktopItem { + name = "bluetui"; + desktopName = "BlueTUI"; + exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.networking.bluetui.package}"; + icon = "kitty"; + categories = [ "Network" ]; + comment = "Bluetooth TUI client"; + terminal = false; + type = "Application"; + }; +in { + imports = [ + ./assertions.nix + ]; + options.networking.bluetui = { enable = lib.mkEnableOption "Enables bluetui."; package = lib.mkPackageOption pkgs "bluetui" { }; }; config = lib.mkIf config.networking.bluetui.enable { - home.packages = [ config.networking.bluetui.package ]; + home.packages = [ + config.networking.bluetui.package + bluetuiDesktopItem + ]; }; } diff --git a/modules/networking/impala/assertions.nix b/modules/networking/impala/assertions.nix new file mode 100644 index 0000000..57cb04f --- /dev/null +++ b/modules/networking/impala/assertions.nix @@ -0,0 +1,13 @@ +# Assertions - Validates kitty is enabled for impala desktop entry +{ config, ... }: +{ + assertions = [ + { + assertion = !config.networking.impala.enable || config.terminal.kitty.enable; + message = '' + networking.impala is enabled but terminal.kitty.enable is not. + impala's desktop entry requires kitty as the terminal launcher. Please enable terminal.kitty. + ''; + } + ]; +} diff --git a/modules/networking/impala/default.nix b/modules/networking/impala/default.nix index 41fb208..6d37361 100644 --- a/modules/networking/impala/default.nix +++ b/modules/networking/impala/default.nix @@ -5,15 +5,33 @@ pkgs, ... }: - +let + impalaDesktopItem = pkgs.makeDesktopItem { + name = "impala"; + desktopName = "Impala"; + exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.networking.impala.package}"; + icon = "kitty"; + categories = [ "Network" ]; + comment = "TUI for managing wifi on Linux"; + terminal = false; + type = "Application"; + }; +in { + imports = [ + ./assertions.nix + ]; + options.networking.impala = { enable = lib.mkEnableOption "Enables impala."; package = lib.mkPackageOption pkgs "impala" { }; }; config = lib.mkIf config.networking.impala.enable { - home.packages = [ config.networking.impala.package ]; + home.packages = [ + config.networking.impala.package + impalaDesktopItem + ]; xdg.mimeApps.defaultApplications = { "x-scheme-handler/impala" = "impala.desktop"; |
