blob: 458da7ba7efd0f0a2cd80df4b842564321385d3c [file] [log] [blame]
Skyler Turner202e73d2022-03-09 00:23:39 +00001{ pkgs, lib, ... }: {
Skyler Turnerdb486c92022-03-06 10:48:24 +00002 wayland.windowManager.sway = {
3 enable = true;
4 wrapperFeatures.gtk = true;
Skyler Turnerf2a88392022-03-06 21:08:15 +00005
6 config = {
7 assigns = {};
8 bars = [];
9 colors = {};
Skyler Turnerfe471d32022-03-07 13:16:17 +000010 defaultWorkspace = null;
11 down = "j";
12 floating = {};
13 focus = {};
14 fonts = {};
15 gaps = {
Skyler Turner801a9a82022-03-07 13:40:41 +000016 inner = 10;
Skyler Turner89be0062022-03-07 21:37:09 +000017 top = -10;
Skyler Turner1bd708a2022-03-07 13:44:27 +000018 outer = 0;
Skyler Turnera076a832022-03-09 09:42:54 +000019 smartGaps = false;
Skyler Turnerfe471d32022-03-07 13:16:17 +000020 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000021 input = {
Skyler Turnera9227fd2022-03-07 13:48:39 +000022 "type:touchpad" = {
Skyler Turnerf277cf62022-03-07 13:49:14 +000023 dwt = "enabled";
24 tap = "enabled";
25 natural_scroll = "enabled";
Skyler Turner42bc3662022-03-09 13:33:14 +000026 middle_emulation = "enabled";
Skyler Turnera9227fd2022-03-07 13:48:39 +000027 events = "disabled_on_external_mouse";
28 };
29 "type:keyboard" = {
30 xkb_layout = "gb";
31 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000032 };
Skyler Turnerb8a61992022-03-15 10:32:51 +000033 keybindings = lib.mkOptionDefault {
34 "Mod4+l" = "/usr/bin/env swaylock -c 000000";
35 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000036 keycodebindings = {};
37 left = "h";
38 menu = "/usr/bin/env rofi -show combi";
39 modes = {
40 resize = {
41 Down = "resize grow height 10 px";
42 Escape = "mode default";
43 Left = "resize shrink width 10 px";
44 Return = "mode default";
45 Right = "resize grow width 10 px";
46 Up = "resize shrink height 10 px";
47 h = "resize shrink width 10 px";
48 j = "resize grow height 10 px";
49 k = "resize shrink height 10 px";
50 l = "resize grow width 10 px";
51 };
52 };
53 modifier = "Mod4";
54 output = {
55 HDMI-A-2 = {
56 resolution = "3840x2160";
57 position = "1920,0";
58 };
59 eDP-1 = {
60 resolution = "1920x1080";
61 position = "0,1522";
62 };
Skyler Turnerc6af35b2022-03-09 00:16:45 +000063 "*" = {
Skyler Turner202e73d2022-03-09 00:23:39 +000064 bg = "${./sway/background.png} fill";
Skyler Turnerc6af35b2022-03-09 00:16:45 +000065 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000066 };
67 right = "l";
68 seat = {
69 "*" = {
70 hide_cursor = "when-typing enable";
71 };
72 };
73 startup = [];
74 terminal = "alacritty";
75 up = "k";
76 window = {};
77 workspaceAutoBackAndForth = true;
78 workspaceLayout = "default";
79 workspaceOutputAssign = [];
80 };
81
82 extraSessionCommands = ''
83 export SDL_VIDEODRIVER=wayland
84 # needs qt5.qtwayland in systemPackages
85 export QT_QPA_PLATFORM=wayland
86 export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
87 # Fix for some Java AWT applications (e.g. Android Studio),
88 # use this if they aren't displayed properly:
89 export _JAVA_AWT_WM_NONREPARENTING=1
90 '';
91
92 swaynag = {
Skyler Turner36510212022-03-07 23:13:14 +000093 enable = true;
94 settings = {
Skyler Turnerd0a8f5c2022-03-07 23:16:01 +000095 "<config>" = {
96 background = "#ffffff99";
97 border-bottom = "#00000000";
98 button-background = "#ffffffcc";
Skyler Turner4ea60622022-03-07 23:24:22 +000099 button-padding = 10;
Skyler Turnerd0a8f5c2022-03-07 23:16:01 +0000100 button-border-size = 0;
101 };
Skyler Turner7b341db2022-03-07 23:17:23 +0000102
103 warning = {
Skyler Turnere957a372022-03-07 23:18:27 +0000104 background = "#ffffff99";
Skyler Turner6222f752022-03-07 23:21:23 +0000105 border-bottom = "#00000000";
Skyler Turnerf24ef5e2022-03-07 23:26:30 +0000106 button-background = "#ffff00";
107 };
108
109 error = {
110 background = "#ffffff99";
111 border-bottom = "#00000000";
Skyler Turnere609f0a2022-03-07 23:25:17 +0000112 button-background = "#ff0000";
Skyler Turner7b341db2022-03-07 23:17:23 +0000113 };
Skyler Turnerf24ef5e2022-03-07 23:26:30 +0000114
115 green = {
116 background = "#ffffff99";
117 border-bottom = "#00000000";
Skyler Turnerc4d1c0b2022-03-07 23:28:58 +0000118 button-background = "#00b300";
Skyler Turnerf24ef5e2022-03-07 23:26:30 +0000119 };
120
121 blue = {
122 background = "#ffffff99";
123 border-bottom = "#00000000";
Skyler Turnerc4d1c0b2022-03-07 23:28:58 +0000124 button-background = "#0000ff";
Skyler Turnerf24ef5e2022-03-07 23:26:30 +0000125 };
Skyler Turner36510212022-03-07 23:13:14 +0000126 };
Skyler Turner07eb3d12022-03-06 21:08:29 +0000127 };
Skyler Turnereda726a2022-03-07 00:23:17 +0000128
129 systemdIntegration = true;
Skyler Turnerdb486c92022-03-06 10:48:24 +0000130 };
131
132 home.packages = with pkgs; [
133 swaylock
134 swayidle
135 wl-clipboard
Skyler Turner9dfac612022-03-06 10:48:57 +0000136 ];
Skyler Turnerdb486c92022-03-06 10:48:24 +0000137
Skyler Turnerd3b70682022-03-06 23:19:45 +0000138 programs.zsh.profileExtra = ''
139 if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
140 exec systemd-cat -t sway sway
141 fi
142 '';
Skyler Turnerc6af35b2022-03-09 00:16:45 +0000143}