nixos-config/home/programs/desktop/sway/headless-remote.nix

41 lines
1.2 KiB
Nix

{pkgs, ...}: {
## TODO MAKE THIS REMOVE ALL PREV HEADLESS MONITORS
home.packages = [
(pkgs.writeShellApplication {
name = "xun-start-headless";
runtimeInputs = [pkgs.sway pkgs.wayvnc pkgs.jq];
text = ''
headless_numbers() {
swaymsg -t get_outputs | jq -r '.[].name | select (. | startswith("HEADLESS-")) | ltrimstr("HEADLESS-")'
}
new_lines() {
diff <(echo "$1") <(echo "$2") | grep -E "^>" | cut -c3- || true
}
create_output() {
outputs1=$(headless_numbers)
swaymsg create_output >/dev/null
outputs2=$(headless_numbers)
new_lines "$outputs1" "$outputs2"
}
remove_outputs() {
for n in $(headless_numbers); do
swaymsg output "HEADLESS-$n" unplug
done
}
remove_outputs
outputid=$(create_output)
swaymsg output "HEADLESS-$outputid" scale 2
swaymsg output "HEADLESS-$outputid" mode "2400x1080@30Hz"
swaymsg output "HEADLESS-$outputid" position "0 1080" # below primary monitor
wayvnc --gpu -o "HEADLESS-$outputid" 0.0.0.0
'';
})
];
}