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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
# 🪄 Sei
> A fixed, patched, and modified window manager from a dwm 6.4 base
[](https://i.imgur.com/GEDBZ6N.png)
<a href="https://anilist.co/character/188173/" target="_blank"><img src="https://i.imgur.com/MVp2ULn.png" align="right" height="250vw"></a>
## Installation
```bash
git clone https://github.com/Fuwn/seiwm.git
cd seiwm
sudo ninja install
```
### Build Dependencies
- [FreeType2](https://freetype.org/)
- [libX11](https://x.org/releases/current/doc/libX11/libX11/libX11.html)
- [libXft](https://gitlab.freedesktop.org/xorg/lib/libxft)
- [Imlib2](https://docs.enlightenment.org/api/imlib2/html/index.html)
- [GNU FriBidi](https://github.com/fribidi/fribidi)
- [libXinerama](https://gitlab.freedesktop.org/xorg/lib/libxinerama)
- [xcb](https://xcb.freedesktop.org/)
## Recommendations
- Use [Compfy](https://github.com/Fuwn/compfy) for X11 compositing for
"transparency, background blurring, rounded corners, animations and way more!"
- Install and specify [Zig](https://ziglang.org/) as `CC` for improved memory
allocation efficiency and runtime speed: `CC="zig cc" sudo ninja install`
## Sei Specific Fixes & Patches
- Removed refresh rate limit
- Fixed tray position and button responsiveness for use with custom padding
- Reactive bar toggling: If the user has manually toggled the bar visibility
using <kbd>mod+b</kbd>, the bar
will stay locked with the same visibility. If the user has not manually
toggled the bar visibility, the bar visibility will
reflect that of the full-screen state.
- Clear nametag patch's current tag name upon new assignment and reset tag name
to default upon empty string. (why is this not default behaviour?)
- Append mode for nametag: Chose between appending the name of a tag to the
default name or to overwrite it completely
- XSession desktop entry
- centretitle patch toggle
- `followclient`:
- The view will follow the client when sent to an empty tag
- The focus and cursor will follow the client when sent to a new monitor
- `systraypinning` toggle fix: If `systraypinning` is enabled, the system tray will
only toggle its visibility if the mutation originates from the monitor it is
pinned on.
## "Official" Patches
- [xresources](https://dwm.suckless.org/patches/xresources/): Applies colours
and other variables (i.e. using [`pywal`](https://github.com/dylanaraps/pywal)
, etc.)
- [scratchpad](https://dwm.suckless.org/patches/scratchpad/): Accessible using
<kbd>mod+shift+enter</kbd>
- [fibonacci](https://dwm.suckless.org/patches/fibonacci/),
[deck](https://dwm.suckless.org/patches/deck/),
[centeredmaster](https://dwm.suckless.org/patches/centeredmaster/), and more:
New layout options bound to keys <kbd>super+(shift+)t/y/u/i</kbd>
- [actualfullscreen](https://dwm.suckless.org/patches/actualfullscreen/): Using
<kbd>super+f</kbd>, and prevents focus shifting
- [sticky](https://dwm.suckless.org/patches/sticky/): Persist window across all
tags using <kbd>super+s</kbd>
- [statuscmd](https://dwm.suckless.org/patches/statuscmd/): A clickable status
bar, applied if using Luke Smith's build of [dwmblocks](https://github.com/lukesmithxyz/dwmblocks)
- [hide vacant tags](https://dwm.suckless.org/patches/hide_vacant_tags/): Hides
tags with no windows
- [stacker](https://dwm.suckless.org/patches/stacker/): Move windows up the
stack manually using <kbd>super-K/J</kbd>
- [shiftview](https://dwm.suckless.org/patches/nextprev/): Cycle through tags
using <kbd>super+g/;</kbd>
- [vanitygaps](https://dwm.suckless.org/patches/vanitygaps/): Gaps allowed
across all layouts
- [swallow](https://dwm.suckless.org/patches/swallow/): Replaces terminal with
program if spawned from terminal
- [systray](https://dwm.suckless.org/patches/systray/): Functional system tray
- [bidi](https://dwm.suckless.org/patches/bidi/): Bidirectional text support
- [barpadding](https://dwm.suckless.org/patches/barpadding/): Padding for status
bar
- [winicon](https://dwm.suckless.org/patches/winicon/): Active window icon shown
in status bar
- [attachaside](https://dwm.suckless.org/patches/attachaside/): Attach and focus
new clients to the side instead of making it the new master
- [zoomswap](https://dwm.suckless.org/patches/zoomswap/): Swap client and master
in-place when assigning new master
- [pertag](https://dwm.suckless.org/patches/pertag/): Tag-unique layouts
- [combo](https://dwm.suckless.org/patches/combo/): View multiple tags at once by
holding down the mod key and one or more tag
- [nametag](https://dwm.suckless.org/patches/nametag/): Name tags using <kbd>mod+n</kbd>
- [centretitle](https://dwm.suckless.org/patches/centretitle/): Optionally
centre the focused client's title
- [cursor](https://dwm.suckless.org/patches/cursorwarp/): Warps the mouse cursor
to the center of the target window when changing focus
- [clientindicators](https://dwm.suckless.org/patches/clientindicators/): Dot indicator of open clients in non-vacent tags
- [alt tab](https://dwm.suckless.org/patches/alt-tab/): <kbd>alt+tab</kbd> to cycle through clients
|