Refactor displayselect

This commit is contained in:
Oliver Davies 2025-08-19 20:56:05 +01:00
parent 8466ffcfb7
commit 94ec854383
8 changed files with 59 additions and 36 deletions

View file

@ -17,7 +17,6 @@ in
count-tags = callPackage ./count-tags.nix { };
create-script = callPackage ./create-script.nix { };
dev-commit = callPackage ./dev-commit.nix { };
displayselect = callPackage ./displayselect { };
get-tags = callPackage ./get-tags.nix { };
git-exclude = callPackage ./git-exclude.nix { };
git-graph = callPackage ./git-graph.nix { };

View file

@ -1,32 +0,0 @@
{ pkgs, ... }:
pkgs.stdenv.mkDerivation {
pname = "displayselect";
version = "unstable-2024-05-11";
src = builtins.fetchurl {
url = "https://raw.githubusercontent.com/lukesmithxyz/voidrice/97687287bdfd332398b82a196b5f1feaec73f1d7/.local/bin/displayselect";
sha256 = "sha256:11r561pfhb48a3xmi42zzvpljahnwlfad9rz8qmmp64dhz1f2vp0";
};
dontUnpack = true;
buildInputs = with pkgs; [
bash
xorg.xrandr
];
prePatch = ''
cp $src displayselect
'';
patches = [ ./scaling.patch ];
installPhase = ''
mkdir -p $out/bin
cp displayselect $out/bin
chmod +x $out/bin/displayselect
'';
meta.mainProgram = "displayselect";
}

View file

@ -1,26 +0,0 @@
diff --git a/.local/bin/displayselect b/.local/bin/displayselect
index 51dd468..c132b7a 100755
--- a/displayselect
+++ b/displayselect
@@ -15,20 +15,13 @@ twoscreen() { # If multi-monitor is selected and there are two screens.
res_external=$(xrandr --query | sed -n "/^$external/,/\+/p" | \
tail -n 1 | awk '{print $1}')
- res_internal=$(xrandr --query | sed -n "/^$internal/,/\+/p" | \
- tail -n 1 | awk '{print $1}')
res_ext_x=$(echo "$res_external" | sed 's/x.*//')
res_ext_y=$(echo "$res_external" | sed 's/.*x//')
- res_int_x=$(echo "$res_internal" | sed 's/x.*//')
- res_int_y=$(echo "$res_internal" | sed 's/.*x//')
-
- scale_x=$(echo "$res_ext_x / $res_int_x" | bc -l)
- scale_y=$(echo "$res_ext_y / $res_int_y" | bc -l)
xrandr --output "$external" --auto --scale 1.0x1.0 \
--output "$internal" --auto --same-as "$external" \
- --scale "$scale_x"x"$scale_y"
+ --scale-from "${res_ext_x}x${res_ext_y}"
else
primary=$(echo "$screens" | dmenu -i -p "Select primary display:")