diff options
| -rw-r--r-- | modules/desktop/waybar/lib.nix | 26 | ||||
| -rw-r--r-- | modules/desktop/waybar/module/default.nix | 4 | ||||
| -rw-r--r-- | modules/desktop/waybar/module/window.nix | 24 | ||||
| -rw-r--r-- | modules/desktop/waybar/module/workspaces.nix | 52 | ||||
| -rw-r--r-- | modules/media/default.nix | 4 | ||||
| -rw-r--r-- | modules/media/feh/default.nix | 31 | ||||
| -rw-r--r-- | modules/media/swayimg/default.nix | 55 | ||||
| -rw-r--r-- | modules/networking/bluetui/default.nix | 4 | ||||
| -rw-r--r-- | modules/networking/impala/default.nix | 4 | ||||
| -rw-r--r-- | modules/security/enteauth/default.nix | 34 | ||||
| -rw-r--r-- | modules/security/gopass/default.nix | 3 | ||||
| -rw-r--r-- | modules/web/chromium/default.nix | 2 | ||||
| -rw-r--r-- | modules/web/w3m/default.nix | 1 | ||||
| -rw-r--r-- | users/arpit.nix | 2 |
14 files changed, 141 insertions, 105 deletions
diff --git a/modules/desktop/waybar/lib.nix b/modules/desktop/waybar/lib.nix index 3eaaab0..4e59cd3 100644 --- a/modules/desktop/waybar/lib.nix +++ b/modules/desktop/waybar/lib.nix @@ -1,7 +1,31 @@ { ... }: let mkIcon = color: icon: "<span foreground='${color}' font_size='120%'>${icon}</span>"; + icons = { + "Chromium" = mkIcon "#4285F4" ""; + "Kitty" = mkIcon "#F5A97F" ""; + "VLC" = mkIcon "#FF8800" ""; + "Swayimg" = mkIcon "#7EC699" ""; + "Zathura" = mkIcon "#E06C75" ""; + "Heroic" = mkIcon "#4B93FF" ""; + "Steam" = mkIcon "#1B2838" ""; + "Bruno" = mkIcon "#F97316" ""; + "VSCodium" = mkIcon "#3993EE" ""; + "VirtManager" = mkIcon "#AD8AFF" ""; + "Opencode" = mkIcon "#98C379" ""; + "EnteAuth" = mkIcon "#E5C07B" ""; + "Yazi" = mkIcon "#56B6C2" ""; + "W3M" = mkIcon "#8BE9FD" ""; + "bluetui" = mkIcon "#BD93F9" ""; + "impala" = mkIcon "#50FA7B" ""; + "neomutt" = mkIcon "#FFB86C" ""; + "Rofi" = mkIcon "#BD93F9" ""; + "Aria2" = mkIcon "#8BE9FD" ""; + "screen-recording" = mkIcon "#FF5555" ""; + "system-monitor" = mkIcon "#50FA7B" ""; + "neovim" = mkIcon "#005900" ""; + }; in { - inherit mkIcon; + inherit mkIcon icons; } diff --git a/modules/desktop/waybar/module/default.nix b/modules/desktop/waybar/module/default.nix index 99b8420..133f597 100644 --- a/modules/desktop/waybar/module/default.nix +++ b/modules/desktop/waybar/module/default.nix @@ -3,10 +3,10 @@ ... }@input: let - inherit (import ../lib.nix { inherit lib; }) mkIcon; + inherit (import ../lib.nix { inherit lib; }) mkIcon icons; args = input // { - inherit mkIcon; + inherit mkIcon icons; }; modules = { diff --git a/modules/desktop/waybar/module/window.nix b/modules/desktop/waybar/module/window.nix index 06f0c5b..a6ea1e9 100644 --- a/modules/desktop/waybar/module/window.nix +++ b/modules/desktop/waybar/module/window.nix @@ -1,4 +1,26 @@ -{ ... }: +{ icons, ... }: { expand = true; + format = "{}"; + rewrite = { + "(.*) - Chromium" = "${icons."Chromium"} $1"; + "(.*?)(?: - )?VLC Media Player" = "${icons."VLC"} $1"; + "(.*)heroic(.*)" = "${icons."Heroic"} $1$2"; + "(.*)Steam(.*)" = "${icons."Steam"} $1$2"; + "bruno" = "${icons."Bruno"} Bruno"; + "(.*) - VSCodium" = "${icons."VSCodium"} $1"; + "Virtual Machine Manager" = "${icons."VirtManager"} Virtual Machine Manager"; + "OC \\|(.*)" = "${icons."Opencode"} $1"; + "OpenCode" = "${icons."Opencode"} OpenCode"; + "Ente Auth" = "${icons."EnteAuth"} Ente Auth"; + "Yazi:(.*)" = "${icons."Yazi"} $1"; + "Swayimg:(.*)" = "${icons."Swayimg"} $1"; + "(.*)w3m(.*)" = "${icons."W3M"} $1$2"; + "bluetui" = "${icons."bluetui"} bluetui"; + "impala" = "${icons."impala"} impala"; + "neomutt" = "${icons."neomutt"} NeoMutt"; + "screen-recording" = "${icons."screen-recording"} Screen Recording"; + "system-monitor" = "${icons."system-monitor"} System Monitor"; + "nvim(.*)" = "${icons."neovim"} $1"; + }; } diff --git a/modules/desktop/waybar/module/workspaces.nix b/modules/desktop/waybar/module/workspaces.nix index ccfeaa6..8a3be38 100644 --- a/modules/desktop/waybar/module/workspaces.nix +++ b/modules/desktop/waybar/module/workspaces.nix @@ -1,14 +1,9 @@ { config, lib, - mkIcon, + icons, ... }: -let - mkWindowRewrite = - enable: color: icon: - lib.mkIf enable (mkIcon color icon); -in { format = "{windows} <span rise='-3000' font_size='small'>{id}</span>"; persistent-workspaces = { @@ -27,27 +22,28 @@ in }; window-rewrite-default = ""; window-rewrite = { - "class<chromium-browser>" = mkWindowRewrite config.web.chromium.enable "#4285F4" ""; - "class<kitty>" = mkWindowRewrite config.terminal.kitty.enable "#F5A97F" ""; - "class<vlc>" = mkWindowRewrite config.media.vlc.enable "#FF8800" ""; - "class<feh>" = mkWindowRewrite config.media.feh.enable "#7EC699" ""; - "class<org.pwmt.zathura>" = mkWindowRewrite config.office.zathura.enable "#E06C75" ""; - "class<heroic>" = mkWindowRewrite config.gaming.heroic.enable "#4B93FF" ""; - "class<Steam>" = mkWindowRewrite config.gaming.steam.enable "#1B2838" ""; - "class<bruno>" = mkWindowRewrite config.development.bruno.enable "#F97316" ""; - "class<codium>" = mkWindowRewrite config.development.vscodium.enable "#3993EE" ""; - "class<.virt-manager-wrapped>" = mkWindowRewrite config.development.qemu.enable "#AD8AFF" ""; - "class<opencode>" = mkWindowRewrite config.development.opencode.enable "#98C379" ""; - "class<io.ente.auth>" = mkWindowRewrite config.security.enteauth.enable "#E5C07B" ""; - "class<yazi>" = mkWindowRewrite config.file-management.yazi.enable "#56B6C2" ""; - "class<w3m>" = mkWindowRewrite config.web.w3m.enable "#8BE9FD" ""; - "class<bluetui>" = mkWindowRewrite config.networking.bluetui.enable "#BD93F9" ""; - "class<impala>" = mkWindowRewrite config.networking.impala.enable "#50FA7B" ""; - "class<neomutt>" = mkWindowRewrite config.communication.neomutt.enable "#FFB86C" ""; - "class<rofi>" = mkWindowRewrite config.desktop.rofi.enable "#BD93F9" ""; - "class<aria2-run>" = mkWindowRewrite config.scripts.aria2-run.enable "#8BE9FD" ""; - "class<screen-recording>" = mkWindowRewrite config.scripts.screen-recording.enable "#FF5555" ""; - "class<system-monitor>" = mkWindowRewrite config.scripts.system-monitor.enable "#50FA7B" ""; - "class<neovim>" = mkWindowRewrite config.development.nixvim.enable "#005900" ""; + "class<chromium-browser>" = lib.mkIf config.web.chromium.enable icons."Chromium"; + "class<kitty>" = lib.mkIf config.terminal.kitty.enable icons."Kitty"; + "class<vlc>" = lib.mkIf config.media.vlc.enable icons."VLC"; + "class<org.pwmt.zathura>" = lib.mkIf config.office.zathura.enable icons."Zathura"; + "class<heroic>" = lib.mkIf config.gaming.heroic.enable icons."Heroic"; + "class<Steam>" = lib.mkIf config.gaming.steam.enable icons."Steam"; + "class<bruno>" = lib.mkIf config.development.bruno.enable icons."Bruno"; + "class<codium>" = lib.mkIf config.development.vscodium.enable icons."VSCodium"; + "class<io.ente.auth>" = lib.mkIf config.security.enteauth.enable icons."EnteAuth"; + + "title<Virtual Machine Manager>" = lib.mkIf config.development.qemu.enable icons."VirtManager"; + "title<OC \\| (.*)>" = lib.mkIf config.development.opencode.enable icons."Opencode"; + "title<Swayimg:(.*)>" = lib.mkIf config.media.swayimg.enable icons."Swayimg"; + "title<Yazi:(.*)>" = lib.mkIf config.file-management.yazi.enable icons."Yazi"; + "title<(.*)w3m(.*)>" = lib.mkIf config.web.w3m.enable icons."W3M"; + "title<bluetui>" = lib.mkIf config.networking.bluetui.enable icons."bluetui"; + "title<impala>" = lib.mkIf config.networking.impala.enable icons."impala"; + "title<neomutt>" = lib.mkIf config.communication.neomutt.enable icons."neomutt"; + "title<screen-recording>" = + lib.mkIf config.scripts.screen-recording.enable + icons."screen-recording"; + "title<system-monitor>" = lib.mkIf config.scripts.system-monitor.enable icons."system-monitor"; + "title<nvim(.*)>" = lib.mkIf config.development.nixvim.enable icons."neovim"; }; } diff --git a/modules/media/default.nix b/modules/media/default.nix index 21fd596..b7c744f 100644 --- a/modules/media/default.nix +++ b/modules/media/default.nix @@ -1,8 +1,8 @@ -# Media - Multimedia tools (feh, grim, pamixer, playerctl, slurp, vlc, wf-recorder) +# Media - Multimedia tools (swayimg, grim, pamixer, playerctl, slurp, vlc, wf-recorder) { ... }: { imports = [ - ./feh + ./swayimg ./grim ./pamixer ./playerctl diff --git a/modules/media/feh/default.nix b/modules/media/feh/default.nix deleted file mode 100644 index 6caf96f..0000000 --- a/modules/media/feh/default.nix +++ /dev/null @@ -1,31 +0,0 @@ -# Feh - Lightweight image viewer and wallpaper setter -{ - config, - lib, - pkgs, - ... -}: -{ - options.media.feh = { - enable = lib.mkEnableOption "Enables feh."; - }; - - config = lib.mkIf config.media.feh.enable { - programs.feh = { - enable = true; - package = pkgs.feh; - }; - - xdg.mimeApps.defaultApplications = { - "image/bmp" = "feh.desktop"; - "image/gif" = "feh.desktop"; - "image/jpeg" = "feh.desktop"; - "image/png" = "feh.desktop"; - "image/tiff" = "feh.desktop"; - "image/webp" = "feh.desktop"; - "image/x-bmp" = "feh.desktop"; - "image/x-png" = "feh.desktop"; - "image/x-tga" = "feh.desktop"; - }; - }; -} diff --git a/modules/media/swayimg/default.nix b/modules/media/swayimg/default.nix new file mode 100644 index 0000000..96a568d --- /dev/null +++ b/modules/media/swayimg/default.nix @@ -0,0 +1,55 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options.media.swayimg = { + enable = lib.mkEnableOption "Enables swayimg."; + package = lib.mkPackageOption pkgs "swayimg" { }; + }; + + config = lib.mkIf config.media.swayimg.enable { + programs.swayimg = { + enable = true; + package = config.media.swayimg.package; + initLua = '' + swayimg.viewer.on_key("h", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x + 10, pos.y) + end) + + swayimg.viewer.on_key("j", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x, pos.y - 10) + end) + + swayimg.viewer.on_key("k", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x, pos.y + 10) + end) + + swayimg.viewer.on_key("l", function() + local pos = swayimg.viewer.get_position() + swayimg.viewer.set_abs_position(pos.x - 10, pos.y) + end) + ''; + }; + + xdg.mimeApps.defaultApplications = { + "image/avif" = "swayimg.desktop"; + "image/bmp" = "swayimg.desktop"; + "image/gif" = "swayimg.desktop"; + "image/jpeg" = "swayimg.desktop"; + "image/jpg" = "swayimg.desktop"; + "image/png" = "swayimg.desktop"; + "image/svg+xml" = "swayimg.desktop"; + "image/tiff" = "swayimg.desktop"; + "image/webp" = "swayimg.desktop"; + "image/x-bmp" = "swayimg.desktop"; + "image/x-png" = "swayimg.desktop"; + "image/x-tga" = "swayimg.desktop"; + }; + }; +} diff --git a/modules/networking/bluetui/default.nix b/modules/networking/bluetui/default.nix index 339c822..c99b582 100644 --- a/modules/networking/bluetui/default.nix +++ b/modules/networking/bluetui/default.nix @@ -17,8 +17,8 @@ config = lib.mkIf config.networking.bluetui.enable { xdg.desktopEntries."bluetui" = { - name = "BlueTUI"; - exec = "${lib.getExe config.terminal.kitty.package} --class bluetui -e ${lib.getExe config.networking.bluetui.package}"; + name = "bluetui"; + exec = "${lib.getExe config.terminal.kitty.package} -e ${lib.getExe config.networking.bluetui.package}"; icon = "kitty"; categories = [ "Network" ]; comment = "Bluetooth TUI client"; diff --git a/modules/networking/impala/default.nix b/modules/networking/impala/default.nix index b850dcc..b0c7eae 100644 --- a/modules/networking/impala/default.nix +++ b/modules/networking/impala/default.nix @@ -17,8 +17,8 @@ config = lib.mkIf config.networking.impala.enable { xdg.desktopEntries."impala" = { - name = "Impala"; - exec = "${lib.getExe config.terminal.kitty.package} --class impala -e ${lib.getExe config.networking.impala.package}"; + name = "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"; diff --git a/modules/security/enteauth/default.nix b/modules/security/enteauth/default.nix index a883d1a..d2c8a1d 100644 --- a/modules/security/enteauth/default.nix +++ b/modules/security/enteauth/default.nix @@ -5,30 +5,12 @@ pkgs, ... }: -let - enteAuthWithKeyring = pkgs.symlinkJoin { - name = "ente-auth-wrapped"; - paths = [ pkgs.ente-auth ]; - buildInputs = [ pkgs.makeWrapper ]; - postBuild = '' - wrapProgram $out/bin/enteauth \ - --prefix PATH : ${ - lib.makeBinPath [ - pkgs.gnome-keyring - pkgs.dbus - ] - } \ - --run "echo 'password' | ${pkgs.gnome-keyring}/bin/gnome-keyring-daemon --unlock --components=secrets" - - ''; - }; -in { options.security.enteauth = { enable = lib.mkEnableOption "Enables wrapped ente-auth with automated keyring unlocks and a desktop entry."; package = lib.mkOption { type = lib.types.package; - default = enteAuthWithKeyring; + default = pkgs.ente-auth; description = "The customized version of ente-auth with a self-unlocking daemon backend."; }; }; @@ -36,20 +18,6 @@ in config = lib.mkIf config.security.enteauth.enable { home.packages = [ config.security.enteauth.package ]; - xdg.desktopEntries."enteauth" = { - name = "Ente Auth"; - exec = "enteauth"; - icon = "io.ente.auth"; - comment = "End-to-end encrypted 2FA authenticator"; - genericName = "2FA Authenticator"; - categories = [ - "Utility" - "Security" - ]; - terminal = false; - type = "Application"; - }; - xdg.mimeApps.defaultApplications = { "x-scheme-handler/enteauth" = "enteauth.desktop"; }; diff --git a/modules/security/gopass/default.nix b/modules/security/gopass/default.nix index a121022..23692bf 100644 --- a/modules/security/gopass/default.nix +++ b/modules/security/gopass/default.nix @@ -26,6 +26,9 @@ PASSWORD_STORE_DIR = "${config.home.homeDirectory}/.local/share/pass"; }; }; + home.sessionVariables = { + PASSWORD_STORE_DIR = config.programs.password-store.settings.PASSWORD_STORE_DIR; + }; systemd.user.services.gopass-ssh-load = lib.mkIf config.security.gopass.ssh-agent.enable { Unit = { Description = "Load SSH keys from gopass into SSH agent for git"; diff --git a/modules/web/chromium/default.nix b/modules/web/chromium/default.nix index 86ebde9..f867e3b 100644 --- a/modules/web/chromium/default.nix +++ b/modules/web/chromium/default.nix @@ -30,7 +30,7 @@ extensions = [ { id = "ddkjiahejlhfcafbddmgiahcphecmpfh"; } # uBlock Origin Lite { id = "naepdomgkenhinolocfifgehidddafch"; } # Browserpass - { id = "kioklelcojgbjoljlilalgdcppkiioge"; } # Quite Black + { id = "faeadnfmdfamenfhaipofoffijhlnkif"; } # True Amoled Black Theme { id = "eimadpbcbfnmbkopoojfekhnkhdbieeh"; } # Dark Reader { id = "mpkodccbngfoacfalldjimigbofkhgjn"; } # Aria2 Explorer ]; diff --git a/modules/web/w3m/default.nix b/modules/web/w3m/default.nix index 00e8d2a..a4fdb1f 100644 --- a/modules/web/w3m/default.nix +++ b/modules/web/w3m/default.nix @@ -2,7 +2,6 @@ { config, lib, - pkgs, ... }: { diff --git a/users/arpit.nix b/users/arpit.nix index 2caab41..faf6027 100644 --- a/users/arpit.nix +++ b/users/arpit.nix @@ -45,7 +45,7 @@ file-management.ouch.enable = true; # Media - media.feh.enable = true; + media.swayimg.enable = true; media.grim.enable = true; media.pamixer.enable = true; media.playerctl.enable = true; |
