From cca77a1184dcdcc0ff8605e3b679c1cfb1f0de3d Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Sat, 1 Aug 2026 03:20:21 +0530 Subject: feat: added icons to desktop entries - Text-based applications (neomutt, impala, ...) start a desktop session by running inside of kitty and thus had kitty's icon, but now we are using their own icons. --- modules/communication/neomutt/neomutt.nix | 2 +- modules/file-management/yazi/default.nix | 6 +++++- modules/networking/bluetui/default.nix | 6 +++++- modules/networking/impala/default.nix | 6 +++++- modules/scripts/default.nix | 2 +- modules/scripts/lib.nix | 5 +++++ modules/scripts/screen-recording/default.nix | 4 ++++ modules/scripts/system-monitor/default.nix | 4 ++++ modules/security/gopass/default.nix | 14 ++++++++++++++ modules/web/chawan/default.nix | 6 +++++- 10 files changed, 49 insertions(+), 6 deletions(-) (limited to 'modules') diff --git a/modules/communication/neomutt/neomutt.nix b/modules/communication/neomutt/neomutt.nix index 223ce5b..7dab1e9 100644 --- a/modules/communication/neomutt/neomutt.nix +++ b/modules/communication/neomutt/neomutt.nix @@ -5,7 +5,7 @@ xdg.desktopEntries."neomutt" = { name = "NeoMutt"; exec = "${lib.getExe config.terminal.kitty.package} --class neomutt -e ${lib.getExe config.programs.neomutt.package}"; - icon = "kitty"; + icon = "${config.programs.neomutt.package}/share/neomutt/logo/neomutt.svg"; categories = [ "Network" "Email" diff --git a/modules/file-management/yazi/default.nix b/modules/file-management/yazi/default.nix index 6a6afdb..3033674 100644 --- a/modules/file-management/yazi/default.nix +++ b/modules/file-management/yazi/default.nix @@ -28,10 +28,14 @@ }; }; + home.file.".local/share/icons/hicolor/scalable/apps/yazi.png" = { + source = ../../../assets/icons/yazi.png; + }; + xdg.desktopEntries."yazi" = { name = "Yazi"; exec = "${lib.getExe config.terminal.kitty.package} --class yazi -e ${lib.getExe config.file-management.yazi.package}"; - icon = "kitty"; + icon = "yazi"; categories = [ "Utility" ]; comment = "Terminal file manager"; terminal = false; diff --git a/modules/networking/bluetui/default.nix b/modules/networking/bluetui/default.nix index c99b582..fc8971e 100644 --- a/modules/networking/bluetui/default.nix +++ b/modules/networking/bluetui/default.nix @@ -16,10 +16,14 @@ }; config = lib.mkIf config.networking.bluetui.enable { + home.file.".local/share/icons/hicolor/scalable/apps/bluetooth.svg" = { + source = ../../../assets/icons/bluetooth.svg; + }; + xdg.desktopEntries."bluetui" = { name = "bluetui"; exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.networking.bluetui.package}"; - icon = "kitty"; + icon = "bluetooth"; categories = [ "Network" ]; comment = "Bluetooth TUI client"; terminal = false; diff --git a/modules/networking/impala/default.nix b/modules/networking/impala/default.nix index b0c7eae..66c992e 100644 --- a/modules/networking/impala/default.nix +++ b/modules/networking/impala/default.nix @@ -16,10 +16,14 @@ }; config = lib.mkIf config.networking.impala.enable { + home.file.".local/share/icons/hicolor/scalable/apps/network-wireless.svg" = { + source = ../../../assets/icons/network-wireless.svg; + }; + xdg.desktopEntries."impala" = { name = "impala"; exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.networking.impala.package}"; - icon = "kitty"; + icon = "network-wireless"; categories = [ "Network" ]; comment = "TUI for managing wifi on Linux"; terminal = false; diff --git a/modules/scripts/default.nix b/modules/scripts/default.nix index 2a86ca4..2e91f20 100644 --- a/modules/scripts/default.nix +++ b/modules/scripts/default.nix @@ -22,7 +22,7 @@ lib.nameValuePair name { name = sc.desktop.displayName; exec = "${lib.getExe config.terminal.kitty.package} --class ${name} -e ${lib.getExe sc.package}"; - icon = "kitty"; + icon = sc.desktop.icon; categories = [ "Utility" ]; terminal = false; type = "Application"; diff --git a/modules/scripts/lib.nix b/modules/scripts/lib.nix index cab897d..2d2aed3 100644 --- a/modules/scripts/lib.nix +++ b/modules/scripts/lib.nix @@ -71,6 +71,11 @@ let default = name; description = "Display name for the .desktop entry."; }; + icon = lib.mkOption { + type = lib.types.str; + default = "kitty"; + description = "Icon for the .desktop entry."; + }; }; }; diff --git a/modules/scripts/screen-recording/default.nix b/modules/scripts/screen-recording/default.nix index b997b02..50d54ae 100644 --- a/modules/scripts/screen-recording/default.nix +++ b/modules/scripts/screen-recording/default.nix @@ -17,6 +17,7 @@ let desktop = { enable = true; displayName = "Screen Recording"; + icon = "obs"; }; inherit config; }; @@ -25,5 +26,8 @@ in options = base.options; config = base.moduleConfig // { assertions = base.moduleConfig.assertions ++ (import ./assertions.nix { inherit config lib; }); + home.file.".local/share/icons/hicolor/scalable/apps/obs.svg" = { + source = ../../../assets/icons/obs.svg; + }; }; } diff --git a/modules/scripts/system-monitor/default.nix b/modules/scripts/system-monitor/default.nix index 1f4990b..65c1074 100644 --- a/modules/scripts/system-monitor/default.nix +++ b/modules/scripts/system-monitor/default.nix @@ -20,6 +20,7 @@ let desktop = { enable = true; displayName = "System Monitor"; + icon = "bottom-system-monitor"; }; inherit config; }; @@ -28,5 +29,8 @@ in options = base.options; config = base.moduleConfig // { assertions = base.moduleConfig.assertions ++ (import ./assertions.nix { inherit config lib; }); + home.file.".local/share/icons/hicolor/scalable/apps/bottom-system-monitor.svg" = { + source = ../../../assets/icons/bottom-system-monitor.svg; + }; }; } diff --git a/modules/security/gopass/default.nix b/modules/security/gopass/default.nix index f9bdf14..fa359d8 100644 --- a/modules/security/gopass/default.nix +++ b/modules/security/gopass/default.nix @@ -29,5 +29,19 @@ home.sessionVariables = { PASSWORD_STORE_DIR = config.programs.password-store.settings.PASSWORD_STORE_DIR; }; + + home.file.".local/share/icons/hicolor/scalable/apps/gopass.svg" = { + source = ../../../assets/icons/gopass.svg; + }; + + xdg.desktopEntries."gopass" = { + name = "gopass"; + exec = "${lib.getExe config.terminal.kitty.package} --class gopass -e ${lib.getExe config.security.gopass.package}"; + icon = "gopass"; + comment = "Standard Unix password manager (Go implementation)"; + categories = [ "Utility" ]; + terminal = false; + type = "Application"; + }; }; } diff --git a/modules/web/chawan/default.nix b/modules/web/chawan/default.nix index 073e527..50080f7 100644 --- a/modules/web/chawan/default.nix +++ b/modules/web/chawan/default.nix @@ -26,10 +26,14 @@ }; config = lib.mkIf config.web.chawan.enable { + home.file.".local/share/icons/hicolor/scalable/apps/internet-web-browser.svg" = { + source = ../../../assets/icons/internet-web-browser.svg; + }; + xdg.desktopEntries."chawan" = { name = "Chawan"; exec = "${lib.getExe config.terminal.kitty.package} --class chawan -e ${lib.getExe config.web.chawan.package} ${config.web.chawan.homeUrl}"; - icon = "kitty"; + icon = "internet-web-browser"; categories = [ "Network" ]; comment = "Text-based web browser"; terminal = false; -- cgit v1.2.3