zwm
所属分类:远程控制/远程桌面
开发工具:Zig
文件大小:24KB
下载次数:0
上传日期:2023-04-07 13:13:26
上 传 者:
sh-1993
说明: 用Zig编写的Linux最小平铺窗口管理器
(A minimal tiling window manager for Linux written in Zig)
文件列表:
LICENSE (1066, 2023-02-27)
build.zig (1249, 2023-02-27)
src (0, 2023-02-27)
src\atoms.zig (3251, 2023-02-27)
src\client.zig (6542, 2023-02-27)
src\commands.zig (4619, 2023-02-27)
src\config.zig (2317, 2023-02-27)
src\layout.zig (2005, 2023-02-27)
src\log.zig (1033, 2023-02-27)
src\main.zig (653, 2023-02-27)
src\monitor.zig (2405, 2023-02-27)
src\util.zig (4556, 2023-02-27)
src\wm.zig (42212, 2023-02-27)
src\workspace.zig (3042, 2023-02-27)
src\x11.zig (12052, 2023-02-27)
```
███████╗██╗ ██╗███╗ ███╗
╚══███╔╝██║ ██║████╗ ████║
███╔╝ ██║ █╗ ██║██╔████╔██║
███╔╝ ██║███╗██║██║╚██╔╝██║
███████╗╚███╔███╔╝██║ ╚═╝ ██║
╚══════╝ ╚══╝╚══╝ ╚═╝ ╚═╝
```
Zwm is a dwm-inspired minimal tiling window manager for X implemented in Zig programming language.
My main goals for creating Zwm are learning Zig and implementing a minimal window manager for personal use
that is easier to hack than dwm. Both goals are work in progress :)
### Current state
- [x] Basic tiling layout
- [x] Workspaces (tags)
- [x] Focus and window management commands
- [x] Spawn process command
- [x] Customizable config file
- [x] Hot reloading with persisted state (requires a [script](https://github.com/zuranthus/zwm/blob/master/#hot-reloading))
- [x] Support for external status bar, like [Polybar](https://github.com/zuranthus/zwm/blob/master/https://github.com/polybar/polybar)
- [x] Floating windows
- [x] Fullscreen windows
- [x] ICCCM and EWMH support
- [ ] "Urgency"/"Demands attention" window state
- [ ] Multi-monitor support
- [ ] Support for adding new layouts
- [ ] More built-in layouts: fullscreen, 3-column, ...
- [x] Iron out issues with focus, window management, and general UX
# Installation
You will need at least git and zig installed.
```bash
git clone https://github.com/zuranthus/zwm.git
cd zwm
sudo zig build install -p /usr/local
```
### Configuration
Modify `src/config.zig` before building and installing.
# Usage
The easiest way is to start zwm with `startx` by adding `exec zwm` to `~/.xinitrc`.
### Hot Reloading
It is possible to restart zwm while keeping windows and their workspace distribution intact. This makes updating zwm binary a quick and painless process.
Enabling hot reloading is easy: use the following script in `~/.xinitrc` instead of a simple `exec zwm`
```bash
while :
do
zwm
[[ $? == 42 ]] || break;
done
```
Now if you build and install a new zwm build, restart zwm with `Mod + Shift + Q` (configurable in `src/config.zig`). Voila: you are running the new build and all windows are alive and in their workspaces.
近期下载者:
相关文件:
收藏者: