1{
2 pkgs,
3 inputs,
4 ...
5}: {
6 xdg.configFile."sway/config".text = ''
7 output eDP1 pos 3537 0 res 1920 1200
8 output DP-3 scale 1.4
9 output DP-3 pos 2440 0 res 3840 2160
10
11 set $mod Mod4
12 set $term ghostty
13
14 font pango:iosevka 20
15
16 exec dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
17 exec /usr/libexec/pipewire-launcher
18
19 focus_follows_mouse no
20
21 for_window [class="^.*"] border pixel 3
22 default_border pixel 5
23 default_floating_border pixel 5
24 hide_edge_borders both
25
26 floating_modifier $mod
27
28 # custom shortcut
29 bindsym $mod+Shift+q kill
30 bindsym $mod+t exec $term
31 bindsym $mod+d exec wofi --show run
32 bindsym $mod+c exec comment
33 bindsym $mod+n exec neovide
34 bindsym $mod+x exec open_web
35 bindsym $mod+Shift+p exec maim --select | wl-copy
36 bindsym $mod+p exec grim -g "$(slurp)" - | wl-copy
37 bindsym $mod+Shift+d exec wofi --show drun
38 bindsym $mod+Shift+minus move scratchpad
39 bindsym $mod+minus scratchpad show
40
41 bindsym $mod+j focus down
42 bindsym $mod+k focus up
43 bindsym $mod+l focus right
44 bindsym $mod+h focus left
45
46 # move focused window
47 bindsym $mod+Shift+h move left
48 bindsym $mod+Shift+j move down
49 bindsym $mod+Shift+k move up
50 bindsym $mod+Shift+l move right
51
52 # move focused workspace between monitors
53 bindsym $mod+Ctrl+greater move workspace to output right
54 bindsym $mod+Ctrl+less move workspace to output left
55
56
57 # split in vertical orientation
58 bindsym $mod+v split v
59
60 # enter fullscreen mode for the focused container
61 bindsym $mod+f fullscreen toggle
62
63 # change container layout (stacked, tabbed, toggle split)
64 bindsym $mod+w layout tabbed
65 bindsym $mod+s layout toggle split
66
67
68 bindsym $mod+Shift+space floating toggle
69 bindsym $mod+a sticky toggle
70
71 # change focus between tiling / floating windows
72 bindsym $mod+space focus mode_toggle
73
74 # Define names for default workspaces for which we configure key bindings later on.
75 # We use variables to avoid repeating the names in multiple places.
76 set $ws1 "1.web"
77 set $ws2 "2.nvim"
78 set $ws3 "3.work"
79 set $ws4 "4.buffer"
80 set $ws5 "5.chat"
81 set $ws6 "6"
82 set $ws7 "7"
83 set $ws8 "8"
84 set $ws9 "9"
85 set $ws10 "10"
86
87 # switch to workspace
88 bindsym $mod+1 workspace $ws1
89 bindsym $mod+2 workspace $ws2
90 bindsym $mod+3 workspace $ws3
91 bindsym $mod+4 workspace $ws4
92 bindsym $mod+5 workspace $ws5
93 bindsym $mod+6 workspace $ws6
94 bindsym $mod+7 workspace $ws7
95 bindsym $mod+8 workspace $ws8
96 bindsym $mod+9 workspace $ws9
97 bindsym $mod+0 workspace $ws10
98
99 # move focused container to workspace
100 bindsym $mod+Shift+1 move container to workspace $ws1
101 bindsym $mod+Shift+2 move container to workspace $ws2
102 bindsym $mod+Shift+3 move container to workspace $ws3
103 bindsym $mod+Shift+4 move container to workspace $ws4
104 bindsym $mod+Shift+5 move container to workspace $ws5
105 bindsym $mod+Shift+6 move container to workspace $ws6
106 bindsym $mod+Shift+7 move container to workspace $ws7
107 bindsym $mod+Shift+8 move container to workspace $ws8
108 bindsym $mod+Shift+9 move container to workspace $ws9
109 bindsym $mod+Shift+0 move container to workspace $ws10
110
111 # reload the configuration file
112 bindsym $mod+Shift+c reload
113 # restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
114 bindsym $mod+Shift+r restart
115
116 # resize window (you can also use the mouse for that)
117 mode "resize" {
118 bindsym h resize shrink width 10 px or 10 ppt
119 bindsym j resize grow height 10 px or 10 ppt
120 bindsym k resize shrink height 10 px or 10 ppt
121 bindsym l resize grow width 10 px or 10 ppt
122
123 # same bindings, but for the arrow keys
124 bindsym Left resize shrink width 10 px or 10 ppt
125 bindsym Down resize grow height 10 px or 10 ppt
126 bindsym Up resize shrink height 10 px or 10 ppt
127 bindsym Right resize grow width 10 px or 10 ppt
128
129 # back to normal: Enter or Escape or $mod+r
130 bindsym Return mode "default"
131 bindsym Escape mode "default"
132 bindsym $mod+r mode "default"
133 }
134
135 bindsym $mod+r mode "resize"
136
137 # class border bground text indicator child_border
138 client.focused #83CAFA #51A2DA #FFFFFF #83CAFA #51A2DA
139 client.unfocused #4C4C4C #222222 #888888 #292D2E #222222
140 client.urgent #EC69A0 #DB3279 #FFFFFF #DB3279 #DB3279
141 client.placeholder #000000 #0C0C0C #FFFFFF #000000 #0C0C0C
142
143 client.background #FFFFFF
144
145 bar {
146 swaybar_command waybar
147 }
148
149 input type:keyboard {
150 xkb_layout us,us_intl,de
151 xkb_options grp:rctrl_toggle
152 }
153
154 gaps outer 5
155 gaps inner 5
156 output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill
157 output "LG Electronics LG HDR 4K 0x0001A8D9" scale 1.4
158
159
160 exec nextcloud
161 exec mako
162 exec blueman-applet
163 '';
164}