Skip to content

vodkanull/nullwc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

Note

nullwc is a minimal floating Wayland compositor built on top of wlroots. It's just a hobby project, so take it easy.

Screenshot

Supported Protocols

  • xdg-shell: For standard window support.
  • wlr-layer-shell-unstable-v1: For bars (Waybar), wallpapers (swaybg), etc.
  • wlr-screencopy-v1: For screenshots and screen recording.
  • ext-session-lock-v1: For secure session locking (e.g., swaylock).
  • ext-workspace-v1: For workspace-aware bars and taskbars.
  • wlr-pointer-constraints-v1: For locking/confining the mouse pointer.
  • wlr-foreign-toplevel-management-v1: For taskbars and window switchers.
  • wlr-xdg-output-v1: For better multi-monitor support.
  • wlr-xdg-decoration-v1: For handling window decorations.
  • wlr-data-control-v1: For clipboard managers.
  • wlr-gamma-control-v1: For gamma/LUT adjustments.
  • wlr-subcompositor-v1: For subsurface placement.

Configuration

Configuration is handled in ~/.config/nullwc/config.

Example configuration:

# Number of workspaces (1-20)
NULLWC_WORKSPACES = 5

# Modifier key
NULLWC_MOD = Super

# Window border
NULLWC_BORDER_WIDTH = 2
NULLWC_BORDER_COLOR = #6203fc

# Natural scroll for touchpads (1 = natural, 0 = traditional)
NULLWC_NATURAL_SCROLL = 1

# Apps
bind Mod+Return  = exec kitty
bind Mod+Space   = exec wofi --show drun

# Window
bind Mod+C       = close
bind Mod+F       = toggle_fullscreen
bind Mod+Tab     = cycle_toplevels

# Workspaces
bind Mod+Left    = workspace_prev
bind Mod+Right   = workspace_next

# System
bind Mod+Shift+R = reload
bind Mod+Escape  = exit

# Media keys
bind XF86AudioRaiseVolume  = exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bind XF86AudioLowerVolume  = exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bind XF86AudioMute         = exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bind XF86MonBrightnessUp   = exec brightnessctl set +5%
bind XF86MonBrightnessDown = exec brightnessctl set 5%-

# --- Autostart ---
swaybg -i $HOME/.config/nullwc/wallpaper.jpg &
waybar &

# --- Mouse ---
# !!! Hardcoded, do not uncomment !!!
# Mod + Left click              → Move window
# Mod + Right click             → Resize window (edge chosen by cursor position)
# Double click in titlebar      → Toggle fullscreen
# !!! Hardcoded, do not uncomment !!!

About

🟣 A minimal floating Wayland compositor built with wlroots.

Topics

Resources

License

Stars

Watchers

Forks

Contributors