Files
nixconfig/modules/home/wayland/apps/kanshi/default.nix
2026-06-16 00:14:42 +02:00

148 lines
4.8 KiB
Nix

{ config, lib, pkgs, ... }:
let
baseOutput = {
position = "0,0";
scale = 1.0;
adaptiveSync = true;
status = "enable";
transform = "normal";
};
in {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
services.kanshi = {
enable = true;
systemdTarget = "graphical-session.target";
settings = [
{output = baseOutput//{
criteria = "LG Electronics LG ULTRAGEAR+ 511NTDVGC194";
mode = "2560x1440@480.168";
# mode = "1920x1080x240.084";
};}
{output = baseOutput//{
criteria = "AOC 24E1W1 GNSKCHA086899";
mode = "1920x1080@60.000";
transform = "90";
};}
{output = baseOutput//{
criteria = "AOC 24E1W1 GNSKBHA080346";
mode = "1920x1080@60.000";
};}
{output = baseOutput//{
criteria = "LG UNKNOWN_TBD";
mode = "1920x1080@144.000";
};}
{output = baseOutput//{
criteria = "LG Display 0x060A Unknown";
mode = "1920x1080@60.020";
};}
{output = baseOutput//{
criteria = "CEX CX133 0x00000001";
mode = "2560x1600@59.972";
};}
{output = baseOutput//{
criteria = "AOC 16G3 1DDP7HA000348";
mode = "1920x1080@144.000";
};}
{profile = {
name = "tower_00";
outputs = [
{
criteria = "AOC 24E1W1 GNSKCHA086899";
transform = "180";
position = "0,0";
}
{
criteria = "AOC 24E1W1 GNSKBHA080346";
position = "0,1080";
}
{
criteria = "LG Electronics LG ULTRAGEAR+ 511NTDVGC194";
position = "1920,720";
}
];
exec = [
"${pkgs.eww}/bin/eww open bar --screen 0"
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '1', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '2', monitor = 'DP-2', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '3', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '4', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '5', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '6', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '7', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '8', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '9', monitor = 'DP-1', default = true });\""
"${pkgs.hyprland}/bin/hyprctl eval \"hl.workspace_rule({ workspace = '0', monitor = 'DP-3', default = true });\""
"${pkgs.awww}/bin/awww restore"
];
};}
{profile = {
name = "tower_0";
outputs = [
{
criteria = "AOC 24E1W1 GNSKCHA086899";
position = "0,0";
}
{
criteria = "AOC 24E1W1 GNSKBHA080346";
position = "1920,0";
}
];
exec = [ "${pkgs.eww}/bin/eww open bar --screen 1" ];
};}
{profile = {
name = "tower_1";
outputs = [
{
criteria = "AOC 24E1W1 GNSKCHA086899";
position = "0,0";
}
{
criteria = "AOC 24E1W1 GNSKBHA080346";
position = "0,0";
}
{
criteria = "LG UNKNOWN_TBD";
position = "0,0";
}
];
};}
{profile = {
name = "laptop_0";
outputs = [{
criteria = "LG Display 0x060A Unknown";
position = "0,0";
}];
};}
{profile = {
name = "laptop_1";
outputs = [
{
criteria = "CEX CX133 0x00000001";
position = "0,0";
}
{
criteria = "LG Display 0x060A Unknown";
position = "2560,0";
}
];
};}
{profile = {
name = "laptop_2";
outputs = [
{
criteria = "AOC 16G3 1DDP7HA000348";
position = "0,0";
}
{
criteria = "LG Display 0x060A Unknown";
position = "1920,0";
}
];
};}
];
};
};
}