{ config, lib, options, ... }: { options.desktop.windowManager = lib.mkOption { type = with lib.types; nullOr (enum [ "swayfx" ]); }; config.wayland.windowManager.sway = if (config.desktop.windowManager == "swayfx") then { enable = lib.mkForce true; package = null; # use the nixos module config = { bars = [ ]; bindswitches = { "lid:off" = { action = "output eDP-1 power on"; locked = true; }; "lid:on" = { action = "output eDP-1 power off"; locked = true; }; }; floating.titlebar = false; focus.followMouse = false; gaps = { inner = 4; outer = 8; }; input = { "*" = { accel_profile = "flat"; }; "type:touchpad" = { drag = "enabled"; dwt = "enabled"; natural_scroll = "enabled"; tap = "enabled"; }; }; keybindings = let mod = config.wayland.windowManager.sway.config.modifier; in lib.mkOptionDefault { "${mod}+Return" = "exec foot"; "${mod}+Q" = "kill"; }; modifier = "Mod4"; output = { "eDP-1" = { mode = "2256x1504@60Hz"; position = "0 0"; scale = "1.5"; }; }; window.titlebar = false; }; extraConfig = '' blur enable corner_radius 10 shadows enable ''; } else { }; }