diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-26 23:07:08 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-09-26 23:07:08 +0530 |
| commit | 5c8698ea33bae80f6d247ad295a5ce1c30dfde10 (patch) | |
| tree | 731b3ca2c1c115f1d7d9b093b306117ebecaab78 /modules/desktop/icons | |
| parent | 8c11cd451c5bb42b306c7d65392798350a26fce7 (diff) | |
| download | home-manager-config-5c8698ea33bae80f6d247ad295a5ce1c30dfde10.tar.gz home-manager-config-5c8698ea33bae80f6d247ad295a5ce1c30dfde10.zip | |
feat(desktop/icons): using icons submodule, to provide icons for all modules
Diffstat (limited to 'modules/desktop/icons')
| -rw-r--r-- | modules/desktop/icons/default.nix | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/modules/desktop/icons/default.nix b/modules/desktop/icons/default.nix new file mode 100644 index 0000000..2963d37 --- /dev/null +++ b/modules/desktop/icons/default.nix @@ -0,0 +1,190 @@ +# Icon definitions for Tela-nord-dark theme +{ + config, + lib, + ... +}: +let + cfg = config.desktop; +in +{ + options.desktop.icons = { + apps = { + calcurse = lib.mkOption { + type = lib.types.str; + default = "calendar"; + description = "Icon for calcurse calendar app"; + }; + git = lib.mkOption { + type = lib.types.str; + default = "git"; + description = "Icon for git/lazygit"; + }; + gopass = lib.mkOption { + type = lib.types.str; + default = "password-manager"; + description = "Icon for gopass password manager"; + }; + gpg = lib.mkOption { + type = lib.types.str; + default = "dialog-password"; + description = "Icon for GPG/gpg-tui"; + }; + browser = lib.mkOption { + type = lib.types.str; + default = "internet-web-browser"; + description = "Icon for web browser/chawan"; + }; + opencode = lib.mkOption { + type = lib.types.str; + default = "visualstudiocode"; + description = "Icon for opencode"; + }; + systemctl = lib.mkOption { + type = lib.types.str; + default = "preferences-system"; + description = "Icon for systemctl-tui"; + }; + neomutt = lib.mkOption { + type = lib.types.str; + default = "neomutt"; + description = "Icon for neomutt email client"; + }; + btop = lib.mkOption { + type = lib.types.str; + default = "btop"; + description = "Icon for btop system monitor"; + }; + senpai = lib.mkOption { + type = lib.types.str; + default = "senpai"; + description = "Icon for senpai IRC client"; + }; + niriPowerOffMonitors = lib.mkOption { + type = lib.types.str; + default = "system-shutdown-symbolic"; + description = "Icon for niri poweroff monitors action"; + }; + bluetui = lib.mkOption { + type = lib.types.str; + default = "bluetooth-active-symbolic"; + description = "Icon for bluetui bluetooth manager"; + }; + heroic = lib.mkOption { + type = lib.types.str; + default = "com.heroicgameslauncher.hgl"; + description = "Icon for heroic games launcher"; + }; + impala = lib.mkOption { + type = lib.types.str; + default = "network-wireless-signal-excellent-symbolic"; + description = "Icon for impala wifi manager"; + }; + usqueVpn = lib.mkOption { + type = lib.types.str; + default = "network-vpn-symbolic"; + description = "Icon for usque VPN connected"; + }; + usqueVpnDisconnected = lib.mkOption { + type = lib.types.str; + default = "network-vpn-disconnected-symbolic"; + description = "Icon for usque VPN disconnected"; + }; + aria2 = lib.mkOption { + type = lib.types.str; + default = "folder-download"; + description = "Icon for aria2 download manager"; + }; + yazi = lib.mkOption { + type = lib.types.str; + default = "yazi"; + description = "Icon for yazi file manager"; + }; + }; + + bar = { + offline = lib.mkOption { + type = lib.types.str; + default = "network-offline"; + description = "Bar icon for offline network"; + }; + wifi = lib.mkOption { + type = lib.types.str; + default = "network-wireless"; + description = "Bar icon for wifi network"; + }; + ethernet = lib.mkOption { + type = lib.types.str; + default = "network-wired"; + description = "Bar icon for ethernet network"; + }; + vpn = lib.mkOption { + type = lib.types.str; + default = "network-vpn"; + description = "Bar icon for VPN network"; + }; + cpu = lib.mkOption { + type = lib.types.str; + default = "cpu"; + description = "Bar icon for CPU"; + }; + ram = lib.mkOption { + type = lib.types.str; + default = "drive-harddisk"; + description = "Bar icon for RAM"; + }; + battery = lib.mkOption { + type = lib.types.str; + default = "battery"; + description = "Bar icon for battery"; + }; + audio = lib.mkOption { + type = lib.types.str; + default = "audio-volume-high"; + description = "Bar icon for audio"; + }; + calendar = lib.mkOption { + type = lib.types.str; + default = "calendar"; + description = "Bar icon for calendar"; + }; + }; + }; + + config = lib.mkIf cfg.enable { + desktop.icons = { + apps = { + calcurse = "calendar"; + git = "git"; + gopass = "password-manager"; + gpg = "dialog-password"; + browser = "internet-web-browser"; + opencode = "visualstudiocode"; + systemctl = "preferences-system"; + neomutt = "neomutt"; + btop = "btop"; + senpai = "senpai"; + niriPowerOffMonitors = "system-shutdown-symbolic"; + bluetui = "bluetooth-active-symbolic"; + heroic = "com.heroicgameslauncher.hgl"; + impala = "network-wireless-signal-excellent-symbolic"; + usqueVpn = "network-vpn-symbolic"; + usqueVpnDisconnected = "network-vpn-disconnected-symbolic"; + aria2 = "folder-download"; + yazi = "yazi"; + }; + + bar = { + offline = "network-offline"; + wifi = "network-wireless"; + ethernet = "network-wired"; + vpn = "network-vpn"; + cpu = "cpu"; + ram = "drive-harddisk"; + battery = "battery"; + audio = "audio-volume-high"; + calendar = "calendar"; + }; + }; + }; +} |
