aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/desktop/waybar/lib.nix26
-rw-r--r--modules/desktop/waybar/module/default.nix4
-rw-r--r--modules/desktop/waybar/module/window.nix24
-rw-r--r--modules/desktop/waybar/module/workspaces.nix52
-rw-r--r--modules/media/default.nix4
-rw-r--r--modules/media/feh/default.nix31
-rw-r--r--modules/media/swayimg/default.nix55
-rw-r--r--modules/networking/bluetui/default.nix4
-rw-r--r--modules/networking/impala/default.nix4
-rw-r--r--modules/security/enteauth/default.nix34
-rw-r--r--modules/security/gopass/default.nix3
-rw-r--r--modules/web/chromium/default.nix2
-rw-r--r--modules/web/w3m/default.nix1
-rw-r--r--users/arpit.nix2
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;