refactor(desktop): rework kanshi configurations

This commit is contained in:
Yorick Barbanneau 2025-09-26 22:18:20 +02:00
parent 0d8a394dcf
commit 70ec9d25a7
Signed by: ephase
GPG key ID: 246042E52B41FFCF
7 changed files with 104 additions and 65 deletions

View file

@ -10,12 +10,66 @@ in {
options.modules.desktop.sway = {
enable = mkEnableOption "enable Sway Windows Manager";
kanshi = mkOption {
kanshi.enable = mkOption {
type = types.bool;
default = false;
description = "configure laptop mode";
};
kanshi.standalone = mkOption {
type = types.attrs;
default = {
profile.name = "standalone";
profile.outputs = [
{
criteria = "eDP-1";
scale = 1.325;
status = "enable";
}
];
};
description = ''
Default configuration for laptop internal screen when no others screen
are connected.
'';
};
kanshi.home = mkOption {
type = types.attrs;
default = {
profile.name = "home";
profile.outputs = [
{
criteria = "Iiyama North America PL2792UH 1166310803122";
mode = "3840x2160";
position = "1235,0";
scale = 1.75;
}
{
criteria = "Iiyama North America PL2792UH 1176923201598";
mode = "3840x2160";
position = "0,0";
transform = "90";
scale = 1.75;
}
{
criteria = "eDP-1";
status = "disable";
}
];
};
description = ''
Default home configuration use on most of my laptops
'';
};
kanshi.others = mkOption {
type = types.listOf types.attrs;
default = [];
description = ''
Kanshi profile to use specifically for host
'';
};
swaylock.useNullPackage = mkOption {
type = types.bool;
default = false;

View file

@ -3,61 +3,18 @@
lib,
...
}:
with lib; {
config = mkIf config.modules.desktop.sway.enable {
with lib; let
cfg = config.modules.desktop.sway;
in {
config = mkIf cfg.enable {
services.kanshi = {
enable = config.modules.desktop.sway.kanshi;
settings = [
{
profile.name = "standalone";
profile.outputs = [
{
criteria = "eDP-1";
scale = 1.33;
status = "enable";
}
];
}
{
profile.name = "home";
profile.outputs = [
{
criteria = "Iiyama North America PL2792UH 1166310803122";
mode = "3840x2160";
position = "1235,0";
scale = 1.75;
}
{
criteria = "Iiyama North America PL2792UH 1176923201598";
mode = "3840x2160";
position = "0,0";
transform = "90";
scale = 1.75;
}
{
criteria = "eDP-1";
status = "disable";
}
];
}
{
profile.name = "work";
profile.outputs = [
{
criteria = "Iiyama North America PL2792QN 1179214201663";
mode = "2560x1440";
position = "1450,0";
scale = 1.15;
}
{
criteria = "BOE 0x0A95 Unknown";
mode = "1920x1080";
position = "0,0";
scale = 1.325;
}
];
}
];
enable = cfg.kanshi.enable;
settings =
[
cfg.kanshi.standalone
cfg.kanshi.home
]
++ cfg.kanshi.others;
};
};
}