-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
75 lines (60 loc) · 1.84 KB
/
Copy pathREADME
File metadata and controls
75 lines (60 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
swl
===
Wayland tiling compositor using Smithay.
FEATURES
--------
- master/slave simple tiling
- tabbed mode
- configurable virtual outputs
KEYBINDS
--------
mod = logo key
mod+return spawn terminal (hardcoded wezterm)
mod+q quit window
mod+j/k focus next/prev
mod+shift+j/k move window in stack
mod+h/l resize master width
mod+shift+l increment master count
mod+shift+h decrement master count
mod+space toggle float
mod+tab toggle tabbed mode
mod+1-9 switch workspace
mod+shift+1-9 move window to workspace
mod+f fullscreen toggle
mod+shift+e quit compositor
BUILDING
--------
cargo build --release
RUNNING
-------
switch to tty, then:
./target/release/swl
DEPS
----
rust 1.85+, libinput, libgbm, libudev, libseat
STARTUP
-------
Put your startup script at ~/.config/swl/run (make it executable)
or set SWL_RUN=/path/to/script
ENVIRONMENT
-----------
SWL_VIRTUAL_OUTPUTS split monitors into regions, format: "DP-1:0,0,1920x1080;DP-1:1920,0,1920x1080"
splits DP-1 into left/right halves, each gets own workspace
SWL_KEYBOARD_LAYOUT xkb layout (default: us)
SWL_KEYBOARD_OPTIONS xkb options (example: "ctrl:nocaps,compose:ralt")
SWL_RUN path to startup script (default: ~/.config/swl/run)
VIRTUAL OUTPUTS
---------------
Split your 4k monitor into 4 FHD workspaces:
export SWL_VIRTUAL_OUTPUTS="DP-1:0,0,1920x1080;DP-1:1920,0,1920x1080;DP-1:0,1080,1920x1080;DP-1:1920,1080,1920x1080"
Or just left/right split:
export SWL_VIRTUAL_OUTPUTS="HDMI-A-1:0,0,1920x2160;HDMI-A-1:1920,0,1920x2160"
Coordinates are physical pixels, pre-scaling, post-rotation.
STATUS
------
I use it daily, but probably not production ready yet.
TODO
----
- config file
- mouse resize/move for floating windows
- output merging (span workspace across monitors)