This commit is contained in:
nora 2025-09-13 17:54:28 +02:00
parent 67c1ae558d
commit 968ae89998
6 changed files with 57 additions and 4 deletions

View file

@ -1,6 +1,7 @@
pkgs: { pkgs: {
cargo-bisect-rustc = import ./cargo-bisect-rustc/default.nix pkgs; cargo-bisect-rustc = import ./cargo-bisect-rustc/default.nix pkgs;
monaspace = import ./monaspace.nix pkgs; monaspace = import ./monaspace.nix pkgs;
sl = import ./sl { inherit pkgs; };
run = import ./run { inherit pkgs; }; run = import ./run { inherit pkgs; };
unpem = import ./unpem { inherit pkgs; }; unpem = import ./unpem { inherit pkgs; };
u = import ./u { inherit pkgs; }; u = import ./u { inherit pkgs; };

View file

@ -0,0 +1,9 @@
{ pkgs, ... }: pkgs.writeShellApplication {
name = "sl";
runtimeInputs = with pkgs; [ niri jq ];
derivationArgs = {
# shellcheck can't comprehend our amazingly new bash syntax
checkPhase = null;
};
text = builtins.readFile ./sl.sh;
}

30
custom-pkgs/sl/sl.sh Normal file
View file

@ -0,0 +1,30 @@
#!/usr/bin/env bash
win_id=$(niri msg --json windows | jq '.[] | select(.is_focused==true) | .id')
niri msg action move-window-to-floating
position() {
niri msg --json windows | jq ".[] | select(.id==${win_id}) | .layout.tile_pos_in_workspace_view.[0] | round"
}
while true; do
before_pos_x=${ position; }
niri msg action move-floating-window --id "$win_id" -x +50
after_pos_x=${ position; }
if [[ "$before_pos_x" == "$after_pos_x" ]]; then
break;
fi
done
while true; do
niri msg action move-floating-window --id "$win_id" -x -50
after_pos_x=${ position; }
if (( $after_pos_x <= 0 )); then
break;
fi
done
niri msg action toggle-window-floating --id "$win_id"

View file

@ -30,5 +30,6 @@ with pkgs; [
samply samply
tokei tokei
customPkgs.u customPkgs.u
customPkgs.sl
uwuify uwuify
] ++ crates ] ++ crates

View file

@ -540,17 +540,28 @@ binds {
// * adjust width as a percentage of screen width: "-10%" or "+10%" // * adjust width as a percentage of screen width: "-10%" or "+10%"
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
// set-column-width "100" will make the column occupy 200 physical screen pixels. // set-column-width "100" will make the column occupy 200 physical screen pixels.
Mod+Minus { set-column-width "-10%"; } // requires the numpad but at least makes it possible at all
Mod+Equal { set-column-width "+10%"; } Mod+KP_Subtract { set-column-width "-10%"; }
Mod+KP_Add { set-column-width "+10%"; }
// Finer height adjustments when in column with other windows. // Finer height adjustments when in column with other windows.
Mod+Shift+Minus { set-window-height "-10%"; } // requires the numpad but at least makes it possible at all
Mod+Shift+Equal { set-window-height "+10%"; } Mod+Shift+KP_Subtract { set-window-height "-10%"; }
Mod+Shift+KP_Add { set-window-height "+10%"; }
// Move the focused window between the floating and the tiling layout. // Move the focused window between the floating and the tiling layout.
Mod+V { toggle-window-floating; } Mod+V { toggle-window-floating; }
Mod+Shift+V { switch-focus-between-floating-and-tiling; } Mod+Shift+V { switch-focus-between-floating-and-tiling; }
// move around floating windows, sadly not available via binds directly.
Mod+Alt+Up { spawn "niri" "msg" "action" "move-floating-window" "-y" "-50"; }
Mod+Alt+Down { spawn "niri" "msg" "action" "move-floating-window" "-y" "+50"; }
Mod+Alt+Right { spawn "niri" "msg" "action" "move-floating-window" "-x" "+50"; }
Mod+Alt+Left { spawn "niri" "msg" "action" "move-floating-window" "-x" "-50"; }
Mod+S { set-dynamic-cast-window; }
Mod+Shift+S { set-dynamic-cast-monitor; }
// Toggle tabbed column display mode. // Toggle tabbed column display mode.
// Windows in this column will appear as vertical tabs, // Windows in this column will appear as vertical tabs,
// rather than stacked on top of each other. // rather than stacked on top of each other.

View file

@ -207,6 +207,7 @@
rgb(131, 80, 117) 45%, rgb(131, 80, 117) 45%,
#db88c5 #db88c5
); );
border-bottom: none;
color: black; color: black;
} }