blob: 58cb82e0325e0e8c55a206f78602662576c68f36 [file] [log] [blame]
Skyler Turner7a7eaf42022-03-07 13:39:48 +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 Turner1bd708a2022-03-07 13:44:27 +000017 outer = 0;
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000018 smartGaps = true;
Skyler Turnerfe471d32022-03-07 13:16:17 +000019 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000020 input = {
Skyler Turnera9227fd2022-03-07 13:48:39 +000021 "type:touchpad" = {
Skyler Turnerf277cf62022-03-07 13:49:14 +000022 dwt = "enabled";
23 tap = "enabled";
24 natural_scroll = "enabled";
25 middle_emulation = "enabled";
Skyler Turnera9227fd2022-03-07 13:48:39 +000026 events = "disabled_on_external_mouse";
27 };
28 "type:keyboard" = {
29 xkb_layout = "gb";
30 };
Skyler Turnerb1fef9e2022-03-07 13:39:14 +000031 };
32 keybindings = lib.mkOptionDefault {};
33 keycodebindings = {};
34 left = "h";
35 menu = "/usr/bin/env rofi -show combi";
36 modes = {
37 resize = {
38 Down = "resize grow height 10 px";
39 Escape = "mode default";
40 Left = "resize shrink width 10 px";
41 Return = "mode default";
42 Right = "resize grow width 10 px";
43 Up = "resize shrink height 10 px";
44 h = "resize shrink width 10 px";
45 j = "resize grow height 10 px";
46 k = "resize shrink height 10 px";
47 l = "resize grow width 10 px";
48 };
49 };
50 modifier = "Mod4";
51 output = {
52 HDMI-A-2 = {
53 resolution = "3840x2160";
54 position = "1920,0";
55 };
56 eDP-1 = {
57 resolution = "1920x1080";
58 position = "0,1522";
59 };
60 };
61 right = "l";
62 seat = {
63 "*" = {
64 hide_cursor = "when-typing enable";
65 };
66 };
67 startup = [];
68 terminal = "alacritty";
69 up = "k";
70 window = {};
71 workspaceAutoBackAndForth = true;
72 workspaceLayout = "default";
73 workspaceOutputAssign = [];
74 };
75
76 extraSessionCommands = ''
77 export SDL_VIDEODRIVER=wayland
78 # needs qt5.qtwayland in systemPackages
79 export QT_QPA_PLATFORM=wayland
80 export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
81 # Fix for some Java AWT applications (e.g. Android Studio),
82 # use this if they aren't displayed properly:
83 export _JAVA_AWT_WM_NONREPARENTING=1
84 '';
85
86 swaynag = {
87 enable = false; # TODO: Configure swaynag to fit with waybar
88 settings = {};
Skyler Turner07eb3d12022-03-06 21:08:29 +000089 };
Skyler Turnereda726a2022-03-07 00:23:17 +000090
91 systemdIntegration = true;
Skyler Turnerdb486c92022-03-06 10:48:24 +000092 };
93
94 home.packages = with pkgs; [
95 swaylock
96 swayidle
97 wl-clipboard
Skyler Turner9dfac612022-03-06 10:48:57 +000098 ];
Skyler Turnerdb486c92022-03-06 10:48:24 +000099
Skyler Turnerd3b70682022-03-06 23:19:45 +0000100 programs.zsh.profileExtra = ''
101 if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
102 exec systemd-cat -t sway sway
103 fi
104 '';
Skyler Turnerdb486c92022-03-06 10:48:24 +0000105}