Changes for version 6.0 - 2026-03-07

  • Update to X11::XCB 0.24 to ensure compatibility with Perl 5.42.0
  • Implement new tiling layouts:
    • Add 'columns' layout for vertical window arrangement
    • Add 'narrow' layout optimized for wide screens
    • Refactor Layout module to simplify addition of new layout functions
    • Add option to specify tiled windows order: reverse or forward
  • Implement pinned windows feature:
    • Windows can be pinned to stay visible across all tags
    • Pinned windows work with both managed and unmanaged windows
    • Pinned windows are not affected by tag switching
  • Enhance screen management and topology:
    • Support screens with y != 0 coordinates
    • Change Screen->id format from x,y,w,h to w,h,x,y for consistency
    • Implement soft_placement rule for handle_screens() as fallback
    • Select proper tags on completely new screens
    • Use external korgwm_xrandr script in randr_cmd for flexible monitor handling
    • Add doc/Screen_Management.md describing multi-monitor management
    • Implement @handle_screens_post_hooks to make proper updates on RandR events
  • Improve focus handling and window management:
    • Refactor focus logic in Tag->show() for better consistency
    • Focus previous window per Tag on close() with per-tag focus_prev tracking
    • Fix stale input focus on hidden windows
    • Fix stale focus on hidden windows during tag switching
    • Support Window->focus() on BUTTON_PRESS for tiled windows
    • Make mod+click focus the window unconditionally
    • Fix improper $old_screen selection in win_move_* functions
  • Enhance pointer warping and mouse interaction:
    • Introduce bypass_single_window_warp to prevent unnecessary warping
    • Introduce warp_ignore_korgwm and fix bug with bypass_single_window_warp
    • Improve warp_pointer() during screen_select()
    • Warp pointer on de-maximizing window
    • Prevent EnterNotify for any MapRequest, not only floating windows
  • Add multimedia and attention support:
    • Add support for XF86Audio multimedia buttons (Play, Stop, Prev, Next)
    • Add support for _NET_WM_STATE_DEMANDS_ATTENTION
    • Honour _NET_WM_FULLSCREEN state on MapRequest
  • Enhance Panel and calendar functionality:
    • Implement toggle_calendar() API function
    • Open calendar when clicking on clock
    • Make calendar separate for each screen
    • Add padding for calendar children
    • Improve Panel::add_element() with %params for flexible configuration
    • Switch colors to CSS format and remove Pango markup hack
    • Improve battery configuration with BAT* support for Panel/Battery
    • Avoid Grapheme_Extend characters in Panel title for better rendering
  • Enhance configuration and debugging:
    • Implement KORGWM_DEBUG_CONFIG environment variable to override config search paths
    • Add support for multiple keycodes in keymap
    • Support new syntax for placement and soft_placement rules
    • Add mouse_nowarp and tag_rotate options for perl-conf
    • Fix issue with leading zeros in colours config
    • Add croak to Hotkeys initialization for better error handling
  • Other improvements and fixes:
    • Fix issue processing WM_PROTOCOLS on window close
    • Fix issue with newline in title and fix backspace handling in auth_korgwm
    • Fix stale Panel->ws urgency
    • Fix critical mistype in Tag.pm
    • Try processing Gtk3 events on X11 idle for better responsiveness
    • Make Xkb::lang_update() callable from external places
    • Update doc with tag-specific layout fields
    • Update resources/.XCompose with some emojis
    • Add usage comment to korgwm_xrandr
    • Update doc/Development.md with release procedure enhancements

Documentation

a tiling window manager written in Perl

Modules

a tiling window manager written in Perl

Provides

in lib/X11/korgwm/Notifications.pm
in lib/X11/korgwm/API.pm
in lib/X11/korgwm/Common.pm
in lib/X11/korgwm/Config.pm
in lib/X11/korgwm/EWMH.pm
in lib/X11/korgwm/Executor.pm
in lib/X11/korgwm/Expose.pm
in lib/X11/korgwm/Hotkeys.pm
in lib/X11/korgwm/Layout.pm
in lib/X11/korgwm/Mouse.pm
in lib/X11/korgwm/Notifications.pm
in lib/X11/korgwm/Panel.pm
in lib/X11/korgwm/Panel/Battery.pm
in lib/X11/korgwm/Panel/Clock.pm
in lib/X11/korgwm/Panel/Lang.pm
in lib/X11/korgwm/Screen.pm
in lib/X11/korgwm/Tag.pm
in lib/X11/korgwm/Window.pm
in lib/X11/korgwm/Xkb.pm