Commits

edf725ec24728981e045517f34c61f507c709cbb
All users
All time
January 2026
Su Mo Tu We Th Fr Sa
28 29 30 31 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
1 2 3 4 5 6 7

Commits on January 12, 2026

  1. i3 IPC compatibility for polybar integration
    - Binary protocol: "i3-ipc" + length + type + JSON payload
    - Socket at $XDG_RUNTIME_DIR/gar-i3.sock, sets I3SOCK env var
    - Implements GET_WORKSPACES, GET_OUTPUTS, SUBSCRIBE, GET_VERSION
    - Broadcasts workspace/output events for real-time updates
    - Enables polybar's i3 module for per-monitor workspace indicators
    mfwolffe committed
  2. Config: keybinds, polybar/rofi examples, session scripts
    - Mod+Space rofi drun, Mod+Tab window switcher, Mod+grave cycle float
    - Mod+Shift+f fullscreen, follow_window_on_move option
    - polybar-example.ini with gar/ewmh modules
    - rofi-gar.rasi matching theme
    - Session scripts updated for xrandr monitor setup
    mfwolffe committed
  3. Sprint 8: EWMH/ICCCM, fullscreen, urgency, titlebars, i3-style workspaces
    - EWMH: _NET_SUPPORTING_WM_CHECK, _NET_CLIENT_LIST, ClientMessage handler
    - ICCCM: WM_HINTS and WM_NORMAL_HINTS parsing
    - Fullscreen: toggle support, Mod+Shift+f keybind
    - Urgency: PropertyNotify handler, border_color_urgent, clear on focus
    - Title bars: frame.rs reparenting framework, config options
    - i3-style: dynamic workspace/monitor assignment, follow_window_on_move
    mfwolffe committed
  4. mfwolffe committed
  5. mfwolffe committed
  6. mfwolffe committed
  7. Add multi-monitor support and panic mode
    Multi-monitor via RandR:
    - Detect monitors, distribute workspaces across them
    - mod+comma/period to focus prev/next monitor
    - mod+shift+comma/period to move window to monitor
    - Per-monitor workspace switching, hotplug support
    - garctl: focus-monitor, move-to-monitor, get-monitors
    
    Panic mode:
    - mod+shift+Escape exits gar immediately
    - start-gar.sh script for real X11 testing
    - Default config now uses Super key
    mfwolffe committed
  8. Add IPC system with Unix socket and garctl CLI
    - Unix socket server at $XDG_RUNTIME_DIR/gar.sock
    - JSON command/response protocol
    - Non-blocking event loop integration
    - Command dispatch for all WM actions (focus, swap, resize, workspace, etc.)
    - Query commands: get_workspaces, get_focused, get_tree
    - garctl CLI tool with clap for external control
    mfwolffe committed
  9. Add deferred features: gaps, rules, EWMH, startup adoption
    - Gaps: gap_inner between windows, gap_outer around screen edges
    - Window rules: gar.rule() for class/instance/title matching
    - gar.exec_once() for autostart commands
    - EWMH workspace hints for status bar integration
    - Adopt existing windows on WM startup
    - Cycle floating windows with mod+Tab
    - Auto-create user config on first run
    mfwolffe committed

Commits on January 11, 2026

  1. mfwolffe committed
  2. mfwolffe committed
  3. mfwolffe committed
  4. mfwolffe committed
  5. mfwolffe committed
  6. mfwolffe committed
  7. mfwolffe committed
  8. mfwolffe committed
  9. mfwolffe committed
  10. mfwolffe committed
  11. feat: add smart splits and keyboard navigation
    - Smart split: auto-detect direction based on container size
    - Mod+Arrows: focus, Mod+Shift+Arrows: swap, Mod+Ctrl+Arrows: resize
    - Mod+Q: close window, Mod+E: equalize splits
    mfwolffe committed
  12. feat: add event handling, tiling, and click-to-focus
    Sprint 1 event handling:
    - Handle MapRequest to manage new windows
    - Handle UnmapNotify/DestroyNotify for cleanup
    - Apply BSP tree layout to configure windows
    - Implement click-to-focus with button grab
    - Add Mod+Enter keybind to spawn terminal
    - Border colors for focused/unfocused windows
    mfwolffe committed