NovaWM is right now a experimental window manager/compositor which right now does not work properly
- C 97.8%
- Makefile 2.2%
| include | ||
| src | ||
| LICENSE | ||
| Makefile | ||
| novawm.conf.example | ||
| README.md | ||
NovaWM
NovaWM is a dynamic tiling window manager for X11 with a tree-based layout.
Features
- Tree-based tiling (dwindle-style splits)
- Per-workspace layouts (no window loss on switch)
- Floating & tiling modes
- Configurable gaps (inner & outer)
- Focus follows mouse (optional)
- Mouse follows focus (optional)
- Live config reload
- Multi-workspace support
- Fullscreen support
- Adjustable split ratios (grow/shrink)
- Flip split direction
- Built-in wallpaper support
Regarding polybar
NovaWM has a option to reserve space for polybar/others in the config.
Setup
You do not need to manually create a config anymore.
NovaWM will automatically create:
~/.config/novawm/novawm.conf
on first launch.
Default Config
# NovaWM config
master_factor = 0.5
border_width = 2
border_color_active = 0x00ff00
border_color_inactive = 0x222222
gaps_inner = 8
gaps_outer = 12
focus_follows_mouse = true
mouse_follows_focus = false
show_splash = false
background_color = 0x000000
# wallpaper = ~/Pictures/wallpaper.png
wallpaper_mode = fill # fill/zoomed, fit, stretch, center, tile
# Commands to run once when NovaWM starts
exec-once = picom --experimental-backends
# exec-once = polybar mybar
# Windows NovaWM should not tile/manage
# Useful for panels, bars, docks, desktop widgets, launchers, etc.
ignore_class = Polybar
ignore_class = polybar
ignore_name = polybar
ignore_type = dock
ignore_type = desktop
ignore_type = notification
bind = SUPER, Return, spawn, kitty
bind = SUPER, Q, killactive
bind = SUPER, F, togglefloating
bind = SUPER, F11, fullscreen
bind = SUPER, J, focusnext
bind = SUPER, K, focusprev
bind = SUPER, H, shrink
bind = SUPER, L, grow
bind = SUPER, V, flipsplit
bind = SUPER, G, togglegaps
bind = SUPER, M, centerfloating
bind = SUPER, R, reload
bind = SUPER SHIFT, E, quit
## workspaces
bind = SUPER, 1, workspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER, 0, workspace, 10
## move focused window to workspace
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER SHIFT, 9, movetoworkspace, 9
bind = SUPER SHIFT, 0, movetoworkspace, 10
Roadmap Ideas
- Wayland backend (future)
- Rules system (assign apps to workspaces, float rules, etc.)