{ pkgs, lib, config, ... }: with lib; let cfg = config.module.wm.sway; font = config.stylix.fonts; border = 2; titlebar = false; in { config = mkMerge [ (mkIf cfg.bars.enable { wayland.windowManager.sway.config.bars = [ { command = "${waybar}/bin/waybar"; } ]; }) (mkIf cfg.sets.enable { wayland.windowManager.sway = with config.lib.stylix.colors; { config = with pkgs; { # INPUTS input."*" = { xkb_layout = "us,ru"; xkb_options = "grp:caps_toggle"; }; # AUTOSTART startup = [ { command = "${mako}/bin/mako"; } { command = "${autotiling-rs}/bin/autotiling-rs"; always = true; } ]; bars = [ ]; fonts = { names = [ "${font.monospace.name}" ]; }; # MOVEMENT & BINDS modifier = "Mod4"; bindkeysToCode = true; workspaceAutoBackAndForth = true; # DECORATIONS gaps = { inner = 4; outer = 4; smartBorders = "on"; smartGaps = true; }; window = { inherit border titlebar; hideEdgeBorders = "smart"; }; floating = with config.wayland.windowManager.sway.config; { inherit border titlebar; modifier = "${modifier}"; }; # COLORS colors = lib.mkForce { background = "#${base00}"; focused = { background = "#${base00}"; border = "#${base00}"; childBorder = "#${base0B}"; indicator = "#${base08}"; text = "#${base06}"; }; focusedInactive = { background = "#${base02}"; border = "#${base00}"; childBorder = "#${base0B}"; indicator = "#${base08}"; text = "#${base04}"; }; unfocused = { background = "#${base00}"; border = "#${base00}"; childBorder = "#${base0B}"; indicator = "#${base08}"; text = "#${base06}"; }; urgent = { background = "#${base00}"; border = "#${base08}"; childBorder = "#${base0B}"; indicator = "#${base08}"; text = "#${base06}"; }; }; }; extraConfig = '' corner_radius 10 blur enable blur_xray on shadows enable shadows_on_csd enable shadow_color #${base00} shadow_blur_radius 12 default_dim_inactive 0.4 layer_effects "waybar" shadows disable; corner_radius 0; blur disable ''; }; }) ]; }