diff options
Diffstat (limited to 'modules/networking/bluetui')
| -rw-r--r-- | modules/networking/bluetui/assertions.nix | 13 | ||||
| -rw-r--r-- | modules/networking/bluetui/default.nix | 22 |
2 files changed, 33 insertions, 2 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 + ]; }; } |
