aboutsummaryrefslogtreecommitdiffstats
path: root/modules/networking/impala/default.nix
blob: 81b9df5ae5333cf41aac5a76ae882cc395cbb7ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Impala - TUI for managing wifi on Linux
{
  config,
  lib,
  pkgs,
  ...
}:
let
  impalaDesktopItem = pkgs.makeDesktopItem {
    name = "impala";
    desktopName = "Impala";
    exec = "${lib.getExe config.terminal.kitty.package} --class impala -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
      impalaDesktopItem
    ];

    xdg.mimeApps.defaultApplications = {
      "x-scheme-handler/impala" = "impala.desktop";
    };
  };
}