{
config,
lib,
pkgs,
...
}: let
cfg = config.dotfiles.gui.sway;
# TODO this should be in a module configuration
scrnXps13 = {
criteria = "eDP-1";
status = "enable";
scale = 1.0;
mode = "1920x1080@144.003Hz";
};
scrnDell43 = {
criteria = "Dell Inc. DELL U4320Q 1LTJW13";
status = "enable";
mode = "3840x2160@59.997Hz";
position = "1440,0";
};
scrnDell27 = {
criteria = "Dell Inc. DELL U2713HM 7JNY544BAB6S";
status = "enable";
mode = "2560x1440@59.951Hz";
position = "0,0";
transform = "270";
};
in {
config = lib.mkIf cfg.enable {
services.kanshi = {
profiles = {
laptop-unplugged = {
outputs = [
scrnXps13
];
};
laptop-home-office = {
exec = [
"${pkgs.sway}/bin/swaymsg workspace 1, move workspace to ${scrnXps13.criteria}"
];
outputs = [
(scrnXps13 // {status = "disable";})
scrnDell43
scrnDell27
];
};
home-office = {
outputs = [
# TODO: is full res not supported via HDMI for some reason?
# Dell27's max res available is only 1080 wide, so we have to adjust the position
# of Dell43 to match
(scrnDell43 // {position = "1080,0";})
(scrnDell27 // {mode = "1920x1080@60.000Hz";})
];
};
};
};
};
}