summaryrefslogtreecommitdiff
path: root/hm/env
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-02-03 22:58:50 +0100
committeradikro <adikro@disroot.org>2026-02-03 22:58:50 +0100
commiteb95abfc230dc239122f1e89e90cd9a998491a2f (patch)
tree9d60efacf83b97059f6300e360be2248f8e9c57e /hm/env
parente5036417abe5d3597792f869e2831decd50eba5d (diff)
...
Diffstat (limited to 'hm/env')
-rw-r--r--hm/env/niri/binds.nix247
-rw-r--r--hm/env/niri/niri.nix32
-rw-r--r--hm/env/screenshot.nix12
-rw-r--r--hm/env/waybar.nix14
4 files changed, 162 insertions, 143 deletions
diff --git a/hm/env/niri/binds.nix b/hm/env/niri/binds.nix
index 4cf92e0..fd46c17 100644
--- a/hm/env/niri/binds.nix
+++ b/hm/env/niri/binds.nix
@@ -4,147 +4,156 @@
pkgs,
...
}:
-with config.lib.niri.actions;
-let
+with config.lib.niri.actions; let
playerctl = spawn "${pkgs.playerctl}/bin/playerctl";
ss = "${toString config.hm.conf.xdg-dirs.mediaPath}/pics/ss/$(date +%Y-%m-%d_%H-%M-%S)";
in
-{
- "Mod+O" = {
- action = toggle-overview;
- repeat = false;
- };
- "Mod+Slash".action = show-hotkey-overlay;
+ {
+ "Mod+O" = {
+ action = toggle-overview;
+ repeat = false;
+ };
+ "Mod+Slash".action = show-hotkey-overlay;
- XF86AudioRaiseVolume.action = playerctl "volume" "0.03+";
- XF86AudioLowerVolume.action = playerctl "volume" "0.03-";
- XF86AudioMute.action = spawn "sh" "-c" ''
- wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
- '';
- # XF86Tools.action = spawn "sh" "-c" ''
- # wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
- # wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
- # '';
- "XF86Tools" = {
- action = spawn "sh" "-c" ''
- pkill -9 firefox || true
- swaylock -f
- wpctl set-mute @DEFAULT_AUDIO_SINK@ 1
- wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1
- niri msg action power-off-monitors
+ XF86AudioRaiseVolume.action = playerctl "volume" "0.03+";
+ XF86AudioLowerVolume.action = playerctl "volume" "0.03-";
+ XF86AudioMute.action = spawn "sh" "-c" ''
+ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
+ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
+ '';
+ XF86Tools.action = spawn "sh" "-c" ''
+ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && \
+ wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
'';
- repeat = false;
- };
- "Mod+WheelScrollDown".action = focus-column-right;
- "Mod+WheelScrollUp".action = focus-column-left;
- "Mod+Shift+WheelScrollDown".action = move-column-right;
- "Mod+Shift+WheelScrollUp".action = move-column-left;
+ "Mod+WheelScrollDown".action = focus-column-right;
+ "Mod+WheelScrollUp".action = focus-column-left;
+ "Mod+Shift+WheelScrollDown".action = move-column-right;
+ "Mod+Shift+WheelScrollUp".action = move-column-left;
- "Super+WheelScrollDown".action = focus-workspace-down;
- "Super+WheelScrollUp".action = focus-workspace-up;
- "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down;
- "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up;
+ "Super+WheelScrollDown".action = focus-workspace-down;
+ "Super+WheelScrollUp".action = focus-workspace-up;
+ "Super+Shift+WheelScrollDown".action = move-window-down-or-to-workspace-down;
+ "Super+Shift+WheelScrollUp".action = move-window-up-or-to-workspace-up;
- XF86Launch5.action = consume-or-expel-window-right;
- XF86Launch6.action = consume-or-expel-window-left;
- XF86Launch7.action = switch-preset-column-width;
+ XF86Launch5.action = consume-or-expel-window-right;
+ XF86Launch6.action = consume-or-expel-window-left;
+ XF86Launch7.action = switch-preset-column-width;
- "Super+Shift+L".action = spawn "swaylock" "-f";
- XF86AudioPlay.action = playerctl "play-pause";
- XF86AudioPrev.action = playerctl "previous";
- XF86AudioNext.action = playerctl "next";
+ "Super+Shift+L".action = spawn "swaylock" "-f";
+ XF86AudioPlay.action = playerctl "play-pause";
+ XF86AudioPrev.action = playerctl "previous";
+ XF86AudioNext.action = playerctl "next";
- "Mod+Minus".action = set-column-width "-10%";
- "Mod+Equal".action = set-column-width "+10%";
+ "Mod+Minus".action = set-column-width "-10%";
+ "Mod+Equal".action = set-column-width "+10%";
- "Mod+Shift+Minus".action = set-window-height "-10%";
- "Mod+Shift+Equal".action = set-window-height "+10%";
+ "Mod+Shift+Minus".action = set-window-height "-10%";
+ "Mod+Shift+Equal".action = set-window-height "+10%";
- "Mod+Shift+V".action = toggle-window-floating;
- "Mod+W".action = toggle-column-tabbed-display;
+ "Mod+Shift+V".action = toggle-window-floating;
+ "Mod+W".action = toggle-column-tabbed-display;
- "Mod+XF86Launch7" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
- '';
- repeat = false;
- };
- "Mod+Shift+XF86Launch7" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" ${ss}.png
- satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
- '';
- repeat = false;
- };
+ "Mod+XF86Launch7" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" - | tee ${ss}.png | wl-copy
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+S" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" - | tee ${ss}.png | wl-copy
- '';
- repeat = false;
- };
+ "Mod+Shift+XF86Launch7" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" -t ppm - | satty --filename - --output-filename "${ss}-edited.png"
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+Shift+S" = {
- action = spawn "sh" "-c" ''
- grim -g "$(slurp)" ${ss}.png
- satty --filename "${ss}.png" --output-filename "${ss}-edited.png"
- '';
- repeat = false;
- };
+ "Mod+S" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" - | tee ${ss}.png | wl-copy
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+Shift+D".action = spawn "sh" "-c" ''
- cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
- '';
+ "Mod+Shift+S" = {
+ action = spawn "sh" "-c" ''
+ wayfreeze &
+ sleep 0.1
+ GEOM=$(slurp)
+ if [ -n "$GEOM" ]; then
+ grim -g "$GEOM" -t ppm - | satty --filename - --output-filename "${ss}-edited.png"
+ fi
+ pkill -n wayfreeze
+ '';
+ repeat = false;
+ };
- "Mod+Return".action = spawn "foot";
- "Mod+D".action = spawn "fuzzel";
- "Mod+C".action = spawn "qalculate-gtk";
- "Mod+BracketLeft".action = consume-or-expel-window-left;
- "Mod+BracketRight".action = consume-or-expel-window-right;
+ "Mod+Shift+D".action = spawn "sh" "-c" ''
+ cliphist list | fuzzel --dmenu | cliphist decode | wl-copy
+ '';
- "Mod+R".action = switch-preset-column-width;
- "Mod+Shift+R".action = reset-window-height;
- "Mod+F".action = maximize-column;
- "Mod+Shift+F".action = fullscreen-window;
+ "Mod+Return".action = spawn "foot";
+ "Mod+D".action = spawn "fuzzel";
+ "Mod+C".action = spawn "qalculate-gtk";
+ "Mod+BracketLeft".action = consume-or-expel-window-left;
+ "Mod+BracketRight".action = consume-or-expel-window-right;
- "Mod+Comma".action = consume-window-into-column;
- "Mod+Period".action = expel-window-from-column;
+ "Mod+R".action = switch-preset-column-width;
+ "Mod+Shift+R".action = reset-window-height;
+ "Mod+F".action = maximize-column;
+ "Mod+Shift+F".action = fullscreen-window;
- "Mod+Shift+E".action = quit;
+ "Mod+Comma".action = consume-window-into-column;
+ "Mod+Period".action = expel-window-from-column;
- "Mod+H".action = focus-column-left;
- "Mod+L".action = focus-column-right;
- "Mod+J".action = focus-workspace-down;
- "Mod+K".action = focus-workspace-up;
+ "Mod+Shift+E".action = quit;
- "Mod+Shift+H".action = move-column-left;
- "Mod+Shift+L".action = move-column-right;
- "Mod+Shift+J".action = move-window-down-or-to-workspace-down;
- "Mod+Shift+K".action = move-window-up-or-to-workspace-up;
+ "Mod+H".action = focus-column-left;
+ "Mod+L".action = focus-column-right;
+ "Mod+J".action = focus-workspace-down;
+ "Mod+K".action = focus-workspace-up;
- "Mod+Shift+Q".action = close-window;
+ "Mod+Shift+H".action = move-column-left;
+ "Mod+Shift+L".action = move-column-right;
+ "Mod+Shift+J".action = move-window-down-or-to-workspace-down;
+ "Mod+Shift+K".action = move-window-up-or-to-workspace-up;
- "Super+Return".action = spawn "obs-cmd" "replay" "save";
+ "Mod+Shift+Q".action = close-window;
-}
-// (builtins.listToAttrs (
- builtins.concatMap (
- keyNum:
- let
- key = toString keyNum;
- targetWS = keyNum + 1;
- in
- [
- {
- name = "Mod+${key}";
- value.action = focus-workspace targetWS;
- }
- {
- name = "Mod+Shift+${key}";
- value.action.move-column-to-workspace = [ targetWS ];
- }
- ]
- ) (lib.range 1 9)
-))
+ "Super+Return".action = spawn "obs-cmd" "replay" "save";
+ }
+ // (builtins.listToAttrs (
+ builtins.concatMap (
+ keyNum: let
+ key = toString keyNum;
+ targetWS = keyNum + 1;
+ in [
+ {
+ name = "Mod+${key}";
+ value.action = focus-workspace targetWS;
+ }
+ {
+ name = "Mod+Shift+${key}";
+ value.action.move-column-to-workspace = [targetWS];
+ }
+ ]
+ ) (lib.range 1 9)
+ ))
diff --git a/hm/env/niri/niri.nix b/hm/env/niri/niri.nix
index b751d3d..3f66f6e 100644
--- a/hm/env/niri/niri.nix
+++ b/hm/env/niri/niri.nix
@@ -1,8 +1,11 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.hm.env.niri;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.hm.env.niri;
+in {
options.hm.env.niri.enable = lib.mkEnableOption "niri hm";
config = lib.mkIf cfg.enable {
hm.env = {
@@ -15,9 +18,8 @@ in
programs.niri.settings = {
debug.disable-cursor-plane = [];
- binds = import ./binds.nix { inherit config lib pkgs; };
+ binds = import ./binds.nix {inherit config lib pkgs;};
- # animations.enable = false;
prefer-no-csd = true;
hotkey-overlay.skip-at-startup = true;
input = {
@@ -53,7 +55,6 @@ in
cursor = {
hide-when-typing = true;
size = 48;
- theme = "miyabi";
};
layout = {
empty-workspace-above-first = true;
@@ -66,14 +67,14 @@ in
# active = <decoration>;
};
preset-column-widths = [
- { proportion = 1. / 3.; }
- { proportion = 1. / 2.; }
- { proportion = 2. / 3.; }
+ {proportion = 1. / 3.;}
+ {proportion = 1. / 2.;}
+ {proportion = 2. / 3.;}
];
preset-window-heights = [
- { proportion = 1. / 3.; }
- { proportion = 1. / 2.; }
- { proportion = 2. / 3.; }
+ {proportion = 1. / 3.;}
+ {proportion = 1. / 2.;}
+ {proportion = 2. / 3.;}
];
default-column-width.proportion = 0.5;
tab-indicator = {
@@ -84,15 +85,14 @@ in
window-rules = [
{
matches = [
- { app-id = "Bitwarden"; }
+ {app-id = "Bitwarden";}
];
block-out-from = "screen-capture";
}
];
gestures.hot-corners.enable = false;
spawn-at-startup = [
- { command = [ "waybar" ]; }
- { command = [ "obs" "--disable-missing-files-check" "--startreplaybuffer" ]; }
+ {command = ["obs" "--disable-missing-files-check" "--startreplaybuffer"];}
];
};
home.packages = with pkgs; [
diff --git a/hm/env/screenshot.nix b/hm/env/screenshot.nix
index e61e3de..eac2fe7 100644
--- a/hm/env/screenshot.nix
+++ b/hm/env/screenshot.nix
@@ -1,14 +1,18 @@
-{ config, lib, pkgs, ... }:
-let
- cfg = config.hm.env.screenshot;
-in
{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.hm.env.screenshot;
+in {
options.hm.env.screenshot.enable = lib.mkEnableOption "enables screenshot utilities";
config = lib.mkIf cfg.enable {
programs.satty = {
enable = true;
};
home.packages = with pkgs; [
+ wayfreeze
grim
slurp
];
diff --git a/hm/env/waybar.nix b/hm/env/waybar.nix
index 182a4fb..b75cc91 100644
--- a/hm/env/waybar.nix
+++ b/hm/env/waybar.nix
@@ -1,12 +1,18 @@
-{ config, lib, ... }:
-let
- cfg = config.hm.env.waybar;
-in
{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.hm.env.waybar;
+in {
options.hm.env.waybar.enable = lib.mkEnableOption "enables waybar";
config = lib.mkIf cfg.enable {
programs.waybar = {
enable = true;
+ systemd = {
+ enable = true;
+ target = "graphical-session.target";
+ };
};
};
}