From 1ee84211145824f718cfa10e473b6d2d3c7d4dcf Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sat, 18 Jul 2026 21:57:06 +0530 Subject: feat: added desktop entries for bluetui and impala Added the desktop entries for bluetui and impala so they can now be run from fzf-launchers or any other launcher. Also added assertions making sure terminal.kitty is enabled if bluetui or impala are enabled, as we are using it as the terminal for the commands for their desktop entries. --- modules/networking/bluetui/assertions.nix | 13 +++++++++++++ modules/networking/bluetui/default.nix | 22 ++++++++++++++++++++-- modules/networking/impala/assertions.nix | 13 +++++++++++++ modules/networking/impala/default.nix | 22 ++++++++++++++++++++-- 4 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 modules/networking/bluetui/assertions.nix create mode 100644 modules/networking/impala/assertions.nix (limited to 'modules/networking') 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"; -- cgit v1.2.3