File hyprland.changes of Package hyprland

Fri Jun 14 21:51:19 UTC 2024 - Florian "spirit" <>

- Added support for loading plugins using "hyprpm"

Thu Jun 13 15:36:52 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.41.1:
  + Hello there! After 0.41.0's bumpy start, we're bringing 0.41.1 to
    you to fix a bunch of bugs and issues.
  + New features:
    - binds: Add description to key binds (#6358)
  + Fixes:
    - compositor: update suspended states on moveworkspacetomonitor
    - foreign-toplevel: fixup output resource finding
    - formats: fixup for legacy_renderer builds
    - groupbar: fix groupbar position rounding (#6433)
    - input: fix input regions being ignored on ls-es (#6413)
    - keybinds: fix bindm (#6429)
    - layershell: Fix keyboard focus grabs (#4968) (#6394)
    - layershell: minor fixes to re-mapping of layers
    - seat: fixup touch event handling
    - seatmgr: fix missing nullcheck in updateActiveKeyboardData
    - session-lock: fix refocus after unlocking (#6423)
    - sessionLock: fix focus not being tied to mouse (#6414)
    - virtualkeyboard: check if VirtualKeyboard is valid before
      accessing client. (#6460)
    - wayland: consistently check mmap error after 6967a31 (#6402)
  + Other:
    - core: move to hyprutils for utils (#6385)
    - datadevice: only send actions for ver >= 3
    - groupbar: Don't apply monitor scale twice to groupbar text
    - hyprpm: print all types of cmake errors during configure
    - input: fallback to main surface if not found on window
    - layer: don't close special ws when restoring focus (#6424)
    - renderer: properly software lock cursors with zoom_factor

Mon Jun 10 17:10:38 UTC 2024 - Florian "spirit" <>

- Update to version 0.41.0:
  + The biggest Hyprland update in its history has just dropped.
    Almost 200 commits, over 25000 lines changed. A lot of things
    added, and continuing work on detaching from wlroots. Enjoy!
  + As with 0.40, there is a lot of internal work going on detaching
    from wlroots, so some bugs are to be expected. However, many
    from 0.40 have been ironed out, so give 0.41 a try!
  + New features:
    - Meson: add wayland.xml proto
    - config: add tag dispacther and window rule (#6211)
    - debug: Add ARM GPU info (#6212)
    - error: Add option to change position of HyprError bar (#3241)
    - gestures: Add gestures:workspace_swipe_min_fingers option
    - hyprctl: Add Config Flag to hyprctl systeminfo (#6160)
    - hyprctl: Add locked cmd to requests (#6042)
    - hyprctl: add --quiet flag (#6380)
    - hyprctl: add delimiter to hyprctl batch command (#6261)
    - input: add cursor:persistent_warps to maintain relative
      position within a window (#6338)
    - internal: Add missing errno.h include to SdDaemon.cpp (#5938)
    - ipc: add togglegroup, moveintogroup and moveoutofgroup events
    - keybinds: Add option to disable window direction monitor
      fallback (#6182)
    - keybinds: Added new dispatcher (sendshortcut) (#6174)
    - keybinds: add empty on monitor and next empty flags (#5936)
    - keybinds: add keybind combos and add Left and Right mod
      distinction. (#5966)
    - meson: add more xcb-* dependencies after addd3e7
    - pointer: add back nvidia hardware cursor quirks (#6220)
    - protocols: add hyprland_focus_grab_v1 implementation (#5850)
    - renderer: render fonts with pango, add global font_family
      config option (#6138)
    - seatmgr: Add a grab class
    - windowrules add focusonactivate (#5976)
    - wlr-foreign-toplevel: fix fullscreen failing and add output
      support (#6360)
  + Fixes:
    - Fix initial xdg-decoration toplevel decoration mode negotiation
    - box: fix noNegativeSize
    - build: fix non-pch build (#6337)
    - compositor: fix getMonitorFromVector getting wrong monitor
    - core: fix a few asan reported issues and a coredump on exit
    - core: fix on-empty workspace being called too often (#6026)
    - core: remove unused includes and fix warn
    - cursor: minor fixes for unhiding surfaces
    - decorations: fix groupbar input (#5963)
    - groupbar: Fix window title rendering (#6392)
    - groupbar: fix title scaling (#5969)
    - helpers: fix misuse of syscalls in sd namespace (#6379)
    - idle-inhibit: fix and cleanup visibility logic
    - input: fix modifier and leds (#6062)
    - input: fix virtual devices not updating capabilities (#6366)
    - keybinds: Fix classic global keybinds(pass dispatcher) (#5967)
    - keybinds: fix empty on monitor for new workspaces (#6089)
    - keybinds: fix pass
    - keybinds: fix release binds in submaps (#6025)
    - keybinds: fix xkb keybind name to keysym comparison (#5917)
    - layersurface: fix invalid use of std::move
    - layout: Fix shrinking pseudotile windows. (#6143)
    - layout: fix centering of new floating windows
    - memory: fix SP/WP hierarchy templates
    - pkg-config: fix wlroots dir
    - popups: fix breadthfirst and at
    - renderer: fix xwayland solitary rechecks (#6295)
    - seat: fix pointer frame events not being sent correctly
    - shadow: fix small pixel gaps between border
    - socket2: fix events being reordered (#5955)
    - tablet: fix mapping when mapped region is specified (#6206)
    - wayland: fix invalid wl_output_mode dimensions sent
    - window: fix invalid env buffer size in getEnv
    - wlr-foreign-toplevel: fix fullscreen failing and add output
      support (#6360)
    - xdg-shell: fixup positioner behavior with slide and resize
    - xdg_shell: fix nested xdg_positioner calculations
  + Other:
    - Tablet: move to new impl
    - buffer: track asynchronous buffers and don't release them until
    - build: ProtocolManager missing header LIstener.hpp (#6391)
    - build: include missing header: "debug/Log.hpp" in Format.cpp
    - build: update meson, cmake setup
    - compositor: change monitor focus when no_warps is enabled
    - config: move various cursor-related vars to cursor:
    - configmgr: shadow exec rules when window is unmapped
    - core: chase hyprwayland-scanner
    - core: cleanup environment on exit (#5941)
    - core: drop unused protocol impls
    - core: free more memory on destruction (#6348)
    - core: remove wayland sockets on exit (#5959)
    - core: verify surface roles on creation of objects
    - cursor: move to a hyprland impl
    - datadevice: guard surface in dnd for null
    - deco-positioner: avoid infinite recalcs
    - decoration: Stacked group tabs (#5886)
    - deps: update wlroots
    - egl: assume implicit modifiers are available for old drivers
    - eventloop: don't call lost timers
    - foreign-toplevel-wlr: send current class and title on map
    - foreign-toplevel: bypass no activate focus checks 
    - hookSystem: Make needsDeadCleanup volatile (#6356)
    - hyprctl: Allow setting name for custom/headless outputs (#6319)
    - hyprctl: Make setcursor better (support XCursor themes, give
      fail message) (#6097)
    - hyprctl: return exitStatus in requestHyprpaper() and request()
    - hyprpm: don't shallow clone on non-main branches
    - hyprpm: force en_US locale for date calcs
    - hyprpm: print and fail on missing packages during configure
    - idle-inhibit: enable idle inhibitor if no hl surface is
      associated (#5882)
    - input: find surface pos correctly when mouse drag is active
    - inputmgr: send pointer motion on ffm != 1
    - internal: Replace monitor rule when disabling head. (#6136)
    - internal: new shared_ptr and weak_ptr implementation (#5883)
    - internal: save previous workspace before change (#6202)
    - kde-server-decoration: move to new impl
    - keybinds: make the keybind manager check for session lock
    - layer-shell: move to new impl
    - layersurface: avoid restack on identical layers
    - layersurface: reset popuphead after unmap
    - log: log with local timezone (#6331)
    - monitor: avoid UB on undefined auto dir
    - output: remove wl_output globals for mirrored displays
    - pointer-constraints: Remove unnecessary cursor warps (#5895)
    - pointer: Include monitor scaling in HW hotspot calculation
    - pointer: damage in software mode on cursor image changes
    - pointer: don't calculate hw hotspot for missing hw cursors
    - pointer: don't update hw cursors on disabled displays
    - pointer: remove dividing hotspot by scale
    - pointermgr: ensure compositor exist on destroy (#6216)
    - pointermgr: reset entered outputs when resetting surface
    - popup: clip input region to surface size
    - popup: minor safety improvements
    - popups: avoid infinite recursion in bf
    - presentation-time: move to new impl
    - primary-selection: move to hyprland impl
    - renderer: allow custom uv for surface no-blur passes
    - renderer: avoid locking during rendering
    - renderer: deny solitary during a session lock
    - screencopy: don't spam sw cursor locks
    - screencopy: use a simple renderer for frame passing
    - seat: Send discrete event when axis source is scroll wheel
    - seat: discrete round away from zero + high res scrolling
    - seat: don't send keymap on empty device
    - seat: send axis_stop events after axis events
    - seat: send enter/leave events to all bound wl_seats for a
    - seat: send events to all bound seats for a client
    - seat: update keymap/repeat info on keymap events from keebs
    - session-lock: don't allow events from rejected locks
    - tablet: avoid null deref on an empty cursor set
    - toplevelexport: avoid locking software cursors during render
    - virtual-keyboard: emit event before finishing keyboard
    - virtual-keyboard: release keys before destroy
    - wayland/core: move to new impl (#6268)
    - window: avoid nullptr deref on monitor in box helpers
    - window: avoid uaf on updateWindow decos
    - window: guard monitor in bounding box calculations
    - window: set sane default pseudo size
    - window: verify suppress flags in onUpdateState
    - windows: Revert "window: set config only when both props end
      anims" (#5904)
    - windows: make new_window_takes_over_fullscreen use the new
      window's workspace (#6263)
    - wl-data-device: move to hyprland impl
    - wl_seat: move to hyprland impl
    - wl_seat: send frame event after pointer leave (#6074)
    - wlr-data-device: move to hyprland impl
    - wlroots: bump
    - xdg-activation: keep tokens after the resource is dead
    - xdg-shell: move to new impl
    - xdg_shell: ignore outdated ack_configure events
    - xdg_shell: improve xdg_positioner resize calculations
    - xdg_shell: improve xdg_positioner slide behavior
    - xkb: check value correctly with
      xkb_state_layout_index_is_active() (#5925)
    - xwayland: Remove delta for real position with xwayland zero
      scaling (#6057)
    - xwayland: don't destroy server client
    - xwayland: move to hyprland impl (#6086)
    - xwayland: verify new xsurf is valid in prop reads

Sat May  4 22:46:12 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.40.0:
  + This is a massive update, with mostly changes under-the-hood, but
    also many QoL additions and fixes!
    A lot of wlroots implementations have been rewritten to use
    Hyprland-made ones. More will come, but this release also serves
    as a real test to their stability.
  + Breaking changes:
    - The hyprland logs, sockets, etc. have moved from /tmp/hypr to
  + New features:
    - alpha-modifier: add support for protocol
    - config: Add More Monitor 'Auto' Positions. (#5670)
    - config: add absolute monitor workspace selectors (#5848)
    - config: added option to choose the default monitor for the
      cursor (#5847)
    - core: add libinput backend support for headless session (#5699)
    - ext-foreign-toplevel: add implementation
    - keybindmgr: add optional silent suffix to movewindow. (#5597)
    - log: Add some colors to stdout log (#5778)
    - windowrules: add subtract window option to move rule (#5770)
    - windows: add misc:initial_workspace_tracking
    - workspace: Add 'v' flag for workspace selector that counts only
      visible windows (#5628)
    - workspace: Add fullscreen workspace selector (#5640)
  + Fixes:
    - CrashReporter: fix deadlocks by making it mostly
      async-signal-safe (#5771)
    - cursormgr: fix misscaled cursors on fractional
    - foreign-toplevel: fix bad_any_cast in moveWindow
    - foreign: fix no-pch builds
    - format: fix clang-format
    - hyprctl: add missing json string escapes (#5811)
    - hyprctl: fix activewindow request not showing workspace name
    - hyprctl: fix instances path
    - hyprpm: fix for multi-user + improve directory structure
    - hyprpm: fix updating headers
    - input: fix active keyboard for seat after destroying one
    - internal: fix a few asan reported leaks on exit of hyprland
    - keybindmgr: add optional silent suffix to movewindow. (#5597)
    - makefile: fix old headers only being copied
    - misc: fix autocompletions for meson (hyprctl/hyprpm)
    - nix: fix missing git in wlroots build
    - pluginsystem: fix unhooking on exit
    - pointer-constraints: remove emoji to fix clang
    - protocols: fix for hyprwayland-scanner update
    - relative-pointer: fix missing header for g_pCompositor (#5681)
    - renderer: Fix mirrored displays when transformed and preserve
      aspect ratio (#5697)
    - renderer: fix rounding of the size of fractionally scaled
      monitors (#5748)
    - renderer: fix safety around sendFrameEventsToWorkspace
    - scripts: fix asan patch
    - sessionLock: fix incorrect protocol error raised
    - socket2: fix empty activewindowv2 events
    - swipe: fix crashes with invalid distance
    - tokens: add more modes to initial_workspace_tracking
    - tokens: fix initial workspace token ignoring special
    - windowrules: Fix Floating Grouped Windows Crash and Bug.
    - workspace: Fix duplication of "special:" in special workspace
      name (#5729)
    - workspacerule: Fix monitor settings being deleted when merging
      ws rules (#5864)
  + Other:
    - Fractional-scale: move to new impl
    - HookSystem: improve callback safety
    - Protocols: implement protoLog
    - XDG-Output: move to hyprwayland-scanner
    - compositor: more fs safety around tmp directories
    - compositor: properly update workspace in
    - config: Allow more sensible input options for enabling
      animations. (#5659)
    - config: Default unconfigured monitors to open to the right
    - config: Expand on window matching (#5518)
    - config: merge all rules set for the same workspace selection
    - config: polish default config file (#5672)
    - core: Move /tmp/hypr to $XDG_RUNTIME_DIR/hypr (#5788)
    - core: Move tearing to hyprwayland-scanner (#5657)
    - core: prefer mkdir over create_directory and permissions
    - core: remove libsystemd dependency (#5660)
    - cursor-shape: allow duplicate devices per pointer resource
    - cursor-shape: move to new impl
    - cursor-shape: use - instead of _ in shapes
    - cursormgr: attempt using - instead of _ for failed cursors
      before fallback
    - events: set window initial* before searching for rules
    - ext-idle-notify: move to new impl
    - fractional: set scale before configure
    - gamma-control: move to new impl
    - helpers: Add new C++ Signal and Listener classes
    - hid: don't access expired resources in virtual devices
    - hooksystem: check for existing random outdir
    - hooksystem: use a random 700 directory for assembler
    - hyprctl: use XDG_RUNTIME_DIR if available
    - idle-inhibit: Always recheck idle inhibitors on creation and
      deletion (#5738)
    - idle-inhibit: don't destroy inhibitor on surface destroy
    - idle-inhibit: move to new impl
    - ime-v2: move to new impl
    - input: Introduce basic hyprland HID classes
    - input: check for focused_client being null before reading its
    - input: ignore destroyed devices in static events
    - inputmgr: dont double free on hotplug (#5855)
    - internal: Window storage rework - part 1 (#5762)
    - internal: store matched windowrules and emit event
    - keybinds: check for special workspace equality before switching
    - keybinds: clear repeat source on mouse inputs
    - keyboard: check for wlr() validity before accessing
    - keyboard: prevent UAF in destroy events
    - layerSurface: refactor/move to a memory-safe impl
    - layout: Trigger layout recalcuation on deco position/size
      change (#5821)
    - layout: limit updates when mouse animate drag is enabled
    - managers: Add a TokenManager
    - output-management: move to new impl
    - pluginAPI/hooks: Remove dependency on cc from the hooksystem
    - pluginapi: unregister callbacks on lost ptrs
    - pluginsystem: unload entire plugin before calling dlclose()
    - pointer-constraints: don't warp on entering a confined pointer
    - pointer-constraints: move to new impl
    - pointer-gestures: move to new impl
    - props: bump version to 0.40.0
    - protocols: minor style improvements to new impls
    - protocols: utilize hyprwayland-scanner 0.3.3 functions
    - relative-pointer: move to new impl
    - renderer: avoid rendering frame if finalDamage is empty
    - renderer: send frame events to apps on empty damage renders
    - session-lock: move to new impl
    - sessionLock: call wlr_surface_map/_unmap on the surface
    - sessionLock: remove m_pLastFocus on destroy of surface
    - sessionLock: set locked after emitting event
    - shaders: Use sin-less hash for noise (#5607)
    - shortcuts-inhibitor: move to new impl
    - tearing-control: hyprland impl (#5655)
    - tearing-control: search through all valid windows
    - text-input-v3: move to new impl
    - tokenmgr: separate getRandomUUID from registerNewToken
    - virtual-keyboard: destroy on vdestroy event
    - virtual-keyboard: move to new impl
    - virtual-pointer: move to new impl
    - wayland-protocol: remove unused CWaylandResource
    - Window: add destroy signal
    - windows: don't force workspace change on same tracked workspace
    - windows: recalculate monitor after updating windows (#5647)
    - windows: set fullscreen border size to 0 (#5865)
    - wlr-foreign-toplevel: move to new impl
    - wlr-foreign-toplevel: send done after property changes
    - wlr-output-power: move to new impl
    - xdg-activation: move to new impl
    - xdg-decoration: move to new impl

Tue Apr 16 17:04:36 UTC 2024 - Florian "spirit" <>

- Update to version 0.39.1:
  + Fixes:
    - constraint: Fix xwl cursor locking for scaled monitors (#5587)
    - hyprpm: minor fixes to hyprpm for shallow and versioned clones
    - misc: fix autocompletions for meson (hyprctl/hyprpm)
    - notifications: fix notifications on manually rotated monitor
  + Other:
    - CI: unshallow on checkout before sourcing the tarball
    - cursor: add hyprcursor loggers
    - build: Unbreak build on FreeBSD by adjusting dependencies
    - hyprpm: checkout branch and rev separately
    - hyprpm: err out on missing runtime deps
    - input: send an empty relative event after constraint motion
    - window: remove input ref on unmap

- Dropped "bash-completion-install-dir.patch" as it has been included

Mon Apr 15 09:57:22 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.39.0:
  + New features:
    - hyprctl: Add shell completions (#5404)
    - hyprpm: add shell completions (#5423)
    - hyprpm: add support for minimum versions
    - layouts: add missing include
    - monitor: add workspace null check to visible flag
    - renderer: Add dimaround layer rule (#4643)
    - swipe: add events
    - workspace: Add count group flag in windowCount workspace
      selector prop (#5499)
    - workspacerules: add back on-created-empty functionality (#5452)
  + Fixes:
    - CColor: fix getAsHex
    - IME: fix IME popup mouse inputs (again) (#5417)
    - IME: fix blurry ime on scaled
    - IME: fix crash on restarting IME (#5428)
    - IME: fix incorrect popup damage (#5383)
    - IME: fix race condition on closing window (#5455)
    - compositor: fix ghost fadingOut windows remaining after cleanup
    - configmgr: fix header priority
    - constraint: fix possible uaf on double destruction
    - core: fix compile without pch
    - core: fix some crash conditions around workspace ptrs in
    - core: fix visibility flags in moveWorkspaceToMonitor
    - hooksystem: Fix miscalculation in comment (#5442)
    - hooksystem: manually map trampoline addresses
    - hyprctl: fix fish completions
    - hyprctl: fix grammar mistakes in completions
    - hyprctl: fix zsh completions
    - hyprpm: fix wlroots path (#5567)
    - input: fix focus on maximized bg surfaces
    - input: fixup background layer checking on maximized
    - keybinds: fix spammy warning
    - macros: fix no pch warning
    - master: fix center resizing (#5394)
    - master: fix crash (#5472)
    - master: fix full height when all windows master (#5549)
    - master: fix swapped workspaces (#5397)
    - master: fix workspace orientation not being restored after
      workspace rule no longer applies (#5463)
    - opengl: fix modif in blur
    - renderer: some fixes for renderModif
    - window: fix invalid last workspace id
    - workspace: fix crash on destruction of compositor (#5495)
    - workspace: fix special unnamed workspace rules (#5390)
    - workspacerules: fix workspace rule loops (#5433)
  + Other:
    - Workspace/core: Refactor workspace storage (#5380)
    - blur: block modif only on no new optimize
    - compositor: move wl_display_destroy_clients (#5498)
    - compositor: remove windows from fadingOut properly
    - config: Don't override fullscreen opacity if only two opacities
      are provided (#5512)
    - config: verify string length in wrv2 before calling back
    - core: Event loop rework (#5466)
    - core: assert attempted UAFs in windowExists
    - core: simplify sanityCheckWorkspaces
    - cursor: Fallback to xcursor if failed to render hyprcursor
    - damageSurface: don't correct smallVec twice
    - deps: move from wlroots to wlroots-hyprland
    - eventloop: move timers to an event loop fd
    - hooksystem: attempt allocating pages in linear order
    - hyprctl: improve help pages (#5385)
    - hyprctl: print monitor disabled status (#5525)
    - hyprerror: align 32-bit types after 4c79668 (#5375)
    - hyprpm: Improve Hyprpm Update Performance (#5530)
    - hyprpm: Use proper path to update repo when processing user
      provided revision (#5414)
    - hyprpm: ignore version checks for shallow clones
    - hyprpm: install shell completions
    - hyprpm: print more info on build failures
    - inhibitor: always destroy on window unmap
    - input: Dont set active monitor when simulating mouse movement
    - input: Option for handling off-window axis events (#4177)
    - input: allow focus to bottom layers on maximized in reserved
    - input: don't remove pinned focus on workspace change (#5486)
    - layers: separate anim configs for open/close (#5421)
    - master: guard window in moveWindowTo
    - monitor: check for invalid workspaces in onConnect
    - monitor: unset visible flag from ws on disconnect
    - opengl: log framebuffer errors
    - popups: more safety in damage checking
    - props: Allow setting per-window fullscreen opacity (#5470)
    - props: Parse border color props as gradient (#5513)
    - renderer: avoid double-rendering ls-es on fadingOut
    - renderer: block screen shader on screencopy
    - renderer: render back layer for workspace-less passes
    - scripts: switch to branch --show-current for branch in
    - subsurface: init existing subsurfaces on children creations
    - swipe: nuke numbered
    - window: always unref workspace on unmap
    - workspaces: add visible flag
    - workspace: remove lastFocusedWindow on unmap
    - workspace: remove monitor and visible flags on inert
    - workspace: update windows when selector match could change

- Added "bash-completion-install-dir.patch"

Tue Apr  9 12:43:09 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.38.1:
  + This release comes with a few backports from main to 0.38.0 to
    fix a few issues and performance bugs.
  + Backports:
    - hyprerror: align 32-bit types after 4c79668 (#5375)
    - renderer: block screen shader on screencopy
    - input: allow focus to bottom layers on maximized in reserved
    - renderer: avoid double-rendering ls-es on fadingOut
    - CColor: fix getAsHex
    - subsurface: init existing subsurfaces on children creations
    - compositor: remove windows from fadingOut properly
    - compositor: fix ghost fadingOut windows remaining after cleanup

Tue Apr  2 15:46:34 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.38.0:
  + New features:
    - config/workspace: added workspace selectors
    - hyprctl: add missing commands to usage (#5211)
    - input: Add options to set tablet's active area (#5199)
    - input: add misc:hide_cursor_on_key_press
    - keybinds: add Dispatchers for "force float" and "force tiling"
      (non-toggle) (#5137)
    - keybinds: add binds:disable_keybind_grabbing
    - layers: add animation direction overrides
    - renderer: add support for gles3.2 screen shaders
    - screenshader: add screen_size uniform
    - socket2: add pin event
    - tablet: Add left_handed option for tablets (#5178)
  + Fixes:
    - CGradientValueData: fix toString() method (#5220)
    - IME/TI: Fixes and refactoring
    - IME: Fix ime popup coordinates and artifacts (#5373)
    - IME: Refactor and fixup popups
    - IME: don't assert on lock mismatch, just fix it
    - IME: fix crashes with destroyed text-inputs
    - animations: Fix animation issue in
      focusworkspaceoncurrentmonitor (#5202)
    - animations: Fix incorrect animation when manually moving a
      window when its being created (#5141)
    - animations: fix layer slide with fade
    - animvar: fixup update callbacks and cleanup
    - avar: fix warp onEnd conditions
    - avar: minor fixes
    - build: fix builds without pch (#5198)
    - core: Fix resizeparams (#5262)
    - core: fix fullscreen + floating focus change (#5291)
    - core: fix missing workspace events during swapping (#5251)
    - deco: fix groupbar offset (#5364)
    - dispatchers: fix swap workspaces wrong positioning of floating
      windows (#5328)
    - format: fix format
    - hyprctl: fix plugin list on no plugins (#5357)
    - hyprpm: add missing newline (#5207)
    - ime: fix build without pch
    - input: Fix incorrect keyboard focus taken when no window was
      present (#5337)
    - input: fix crash with text-input-v1 (#5234)
    - keybinds: Fix exit trigger by moving it to monitor.frame
    - layers: fix bottom slide animation (#5307)
    - master: fix moving fullscreen workspace and remove duplicate
      code (#5131)
    - reenderer: Add 1 border damage to fix number rounding issues
    - renderer/animations: Fix various inaccurate damage tracking
      issues and offsets (#5297)
    - renderer: Fix layer and window damage sometimes missing 1 frame
    - renderer: Fix rendering when swiping workspaces (#5367)
    - renderer: minor fixes to misaligned reported surface rendering
    - renderer: minor fixups for misaligned surface rendering offsets
    - scripts: fix asan patch
    - swipe: fix nullptr in onSwipeUpdate (#5191)
    - tablet: minor focus fixes
    - textinput: fix ime when opening multiple windows (#5281)
    - textinput: fix typo (#5365)
    - windowrules: Fix resizeparams parsing. (#5206)
    - workspace: fix integer overflow in selector parser (#5177)
    - workspace: fix selectors with special:
  + Other:
    - IME: Improve handling of text-input and ime-relay (#5147)
    - IME: guard unfocused TIs in leave
    - animationmgr: use realpos and size for border damage
    - animations: simplify window loop
    - compositor: remove windows from fading out on destroy
    - config: Config error limit/hyprctl (#5165)
    - config: be a bit louder in the disabled log warning
    - constraint: do not disable constraints in destroy
    - constraint: set active flag before propagating props
    - core: ensure m_pLastMonitor validity over unsafe state
    - core: match all workspace rules instead of the first one only
    - cursormgr: don't set x theme in changeTheme
    - cursormgr: initialize size to 0
    - cursormgr: log theme loading failures
    - cursormgr: scale hotspot with buffer
    - dispatchers: open special ws on active monitor instead of mouse
      monitor (#5330)
    - hyprctl: output json with --batch if requested (#5277)
    - hyprpm: avoid crashes on corrupted headers
    - hyprpm: log shell in build without fails
    - input: Only limit drag resizes (#5164)
    - input: focus window on mouse down on groupbar (#5224)
    - layer-shell: render popups above everything
    - layers: don't change workspace on layer restore focus (#5308)
    - layershell: release all mouse buttons before focus on new ls
    - layershell: update render pos and size in arrange
    - layout: improve initial size prediction for floating
    - master: Make master workspace orientation rule dynamic (#5339)
    - opengl: minor adjustment to getPreferredReadFormat
    - opengl: report shader compilation errors from screen_shader
    - refactor: move window.hpp to desktop/
    - renderer: allow blurring ls popups
    - renderer: disable surface adjustments for misaligned reported
      when manual resizing
    - renderer: don't render window on other mons during anim in
    - renderer: don't translate surface box on interactive resizes
      with non-updated sizes
    - renderer: dont render fullscreen special on wrong monitor
    - renderer: forward decl for b_pch=false (#5250)
    - screenShader: allow camel for screensize
    - socket2: sanitize data for newlines
    - swipe: Touchscreen workspace swipe (#4489)
    - text-input: reset lock counter on surface destroy
    - textinput: send deactivate on disable ti
    - window: assign surface on create
    - window: set config only when both props end anims
    - xwayland: assign wlr_surface on associate

- Removed "fixed-missing-return-statement.patch" as the issue has
  been fixed upstream.

Wed Mar 20 12:47:48 UTC 2024 - Muhammad Akbar Yanuar Mantari <>

- Add hyprland-wallpapers subpackage: Wallpapers too large are
  included in the main package.

Sat Mar 16 19:50:56 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.37.1:
  + A massive (not) update to fix rendering of half of your apps, oops.
  + New features:
    - renderer: add better multi monitor animations (#5126)
  + Fixes:
    - renderer: fix non-reported sizes window box calculations

- Changes from version 0.37.0:
  + Happy 2 years of Hyprland!! Thanks to everyone who has supported
    Hyprland in any way shape or form, couldn't have done it without
    yall. <3
  + New features:
    - config: Add input:scroll_factor configuration (#4980)
    - cursormgr: add fallbacks for unknown cursors
    - hyprpm: Add support for specifying exact git revisions for plugin
      repo (#4983)
    - input: add general:resize_corner for manual resizing (#5090)
    - input: fix window move stutter by introducing additional checks
      for low-hz monitors (#4553)
    - keybinds: Add the 'catchall' keyword that matches all keys (#4930)
    - layers: add fully featured animations
    - notify: Add custom fontsize support for notifications (#4981)
    - socket2: Add 5 IPC event with support for workspace ID (#5022)
    - subsurface/popup: expand on map/unmap to add buffering
  + Fixes:
    - CrashReporter: Fix compilation with musl libc (#4805)
    - animations: fix m_Goal not being set after #4911 (#4992)
    - configmgr: fix compile on 32-bit archs
    - core: add additional headers for Popup.cpp and
      InputMethodRelay.hpp (#4909)
    - core: Fix typo and check grandchild PID in spawn() (#5070)
    - core: fix crashes on access of deleted wlr_ surface
    - cursormgr: fix invalid access to hyprcursor in xwayland init
    - cursormgr: fix memory leak with cursor buffers
    - hyprctl: Fix incorrect invalid fontsize kwarg response (#5013)
    - input: fix minor default cursor reset conditions
    - input: fix window move stutter by introducing additional checks
      for low-hz monitors (#4553)
    - internal: minor fixups for fading out xwayland windows
    - keybinds: Fix typo (#5081)
    - layers: minor fixes for new animations
    - layout: Fix toggling fullscreen special workspace on different
      monitor (#5000)
    - lock: fix red screen issues with multiple monitors (#5100)
    - master: Fix animate resize (#4942)
    - master: Fix master layout window focus and scroll (#5074)
    - master: fix invalid config usage
    - opengl: fix compilation on legacy renderer (#4928)
    - popup: minor fixes to xdg geometries
    - renderer: fix invalid access on non-assigned surfaces
    - renderer: minor fixes to transformations
    - subsurface: fix visibility check
    - surface: fix damage tearing feedback
    - windowrules: fix center
    - xwayland: fix no_xwayland compiles
  + Other:
    - animations: Refactor AnimatedVariable (#4911)
    - compositor: ignore grab extend behind special workspaces (#4944)
    - compositor: reject focus to noFocus OR xwayland windows
    - compositor: update state after moving to workspace
    - config: improve config value infrastructure
    - config: more safety around monitor keyword
    - config: report errors from sourced files
    - config: update per device input configs link (#4951)
    - constraints: only warp cursor on deactivate if constraint is
      locked. (#5056)
    - cursormgr: use XCURSOR_THEME for x themes
    - drag: check min size for reisze drags
    - dwindle: preserve fs state on switchWindows
    - events: apply monitor state on sessionActive
    - events: don't switch to active workspace on workspace rule
    - events: ignore setTitle when title didn't change
    - events: update render data after workspace window rule (#4931)
    - hyprctl: hide unmapped windows without -a
    - hyprctl: parse custom types in getoption
    - hyprctl: print format and modes
    - hyprpm: don't copy .so if file doesn't exist
    - input: Rewritten pointer constraints (#4889)
    - input: only override dragging corner on floating (#5092)
    - input: scale local coords in constraints
    - input: send motion to confined cursors
    - internal: Support libhyprcursor (#5009)
    - internal: Removed Herobrine
    - keybinds: Allow fullscreen/maximize in special workspace (#4921)
    - keybinds: Better handling of workspace_back_and_forth (#4952)
    - keybinds: better follow xkb translation state
    - keybinds: track submap at press for keypresses
    - keybinds: unconstrain mouse on focusmonitor and cyclenext (#4863)
    - layer-shell: allow for popup creation before map
    - layout: unfullscreen on toggle into tiled fullscreen
    - layout: warp the cursor when focusing windows (#4982)
    - master: change active monitor when moving windows around (#5001)
    - monitor: remove commas from short description (#4970)
    - notifs: Implement notification dimissing (#4790)
    - popup: send scale on map
    - refactor: move a few things to desktop/
    - renderer: Allow headless mode in hyprland (#4794)
    - renderer: adjust surface dimensions for oversized not-yet ackd
      surface sizes
    - renderer: force a few render frames on init anim end
    - renderer: respect forceNoBlur when rendering small surface windows
    - sessionlock: refocus after destroy focused surface (#5117)
    - splashes: add 2ya splash
    - subsurface: Rewrite the subsurface tree (#4877)
    - subsurface: don't update transform on unmap
    - subsurfaceTree: assign surfaces to a CWLSurface
    - surface: unify owners
    - surfacetree: Revert "subsurfaceTree: assign surfaces to a CWLSurface"
    - window: ignore surface updates in unsafe / on invalid monitors
    - window: prevent vector modification segfault while iterating
    - window: remove unused list
    - windowrules: Make min/maxsize rules dynamic (#4775)
    - windowrules: check if floating when resizing from maxsize (#5019)
    - windowrules: minor improvements to min/max size
    - xdg: check for floating conditions before sending tiled size hint
    - xdg: minor improvements to initial size reporting
    - xdg: rewrite entire popup implementation
    - xkb: handle invalid keymaps in updateXKBTranslationState
    - xwayland: Set xwayland's name prop (#4924)
    - xwayland: disable initial focus for xwayland dialogs (#4936)
    - xwayland: set scaledBy for unmanaged windows in map
    - xwaylandmgr: don't read xwayland surface from unmapped xwayland

- Added "fixed-missing-return-statement.patch" which is necessary to
  build hyprlang on non x86_64 architectures and some compile flags

Fri Mar  1 00:16:18 UTC 2024 - Florian "sp1rit" <>

- Update to version 0.36.0:
  + A lot of fixes and changes, enjoy! Thanks for all the
    contributions :)
    CPU and GPU usage should be considerably down from 0.35.*
  + Breaking changes
    - config:
      * migrated to hyprlang. Some nice additions include
        rgba(123, 123, 69, 0.5), dynamic variables updating, and
      * all device:XYZ sections are now device { name = XYZ ..., see
        the wiki
      * ## is now properly treated as an escaped #.
    - windowrules:
      * no*request rules have been nuked in favor of the new suppressevent rule.
  + New features:
    - config: Add option to resolve keybinds by sym instead of code
    - config: add defaultName for workspace rules
    - config: add opengl:force_introspection
    - core: add env to disable crash reporter
    - dispatchers: add Fullscreen without sending fullscreen to
      application (#4720)
    - dwindle: add swapsplit dispatcher (#4702)
    - feat: Add css style gaps (#4723)
    - hyprctl: add -r argument
    - internal: add forcenofocus prop (#4672)
    - keybinds: Add an option to pass a window argument to
      moveoutofgroup (#4724)
    - renderer: add more logging for fails in beginRender
    - socket2: monitoraddedv2 IPC event for monitor description and
      id (#4646)
    - windowrules: add suppressevent
  + Fixes:
    - config: fix errors in default config
    - config: fix layout invalidation for keyword commands (#4826)
    - config: fix tiny typo in defaultConfig.hpp (#4693)
    - core: Fix SEGV/ABRT core dump when exiting (#4823)
    - core: Fix building plugins (#4783)
    - core: Try to fix the exit hang (#4811)
    - crashreporter: fix logging of function data (#4632)
    - format: fix formatting
    - hyprctl: fix dispatchBatch() treating empty curitem as last
      request (#4681)
    - hyprctl: fix showing invalid instances
    - input: fix follow_focus
    - input: fix vectorToWindowUnified with floating over fs
    - keybinds: Fix focus not moving along when moving workspace
    - keybinds: fix focuswindow for fullscreen (#4840)
    - keybinds: fix keys without keysyms triggering random binds
    - keybinds: fix movewindoworgroup onto empy workspace on next
      monitor (#4486)
    - keybinds: fix swapactiveworkspaces not moving focus
    - layout: Fixed ghost window when opened while fullscreen on a
      different workspace (#4822)
    - monitors: fix outputmgr nullptr crash (#4738)
    - renderer: fix invalid damage accumulation with invalid
    - renderer: fixup damage_ring rotation
    - renderer: minor fixes for introspection detection
    - screencopy: fix invalid damage being used for final copy in
    - screencopy: fix ~dtor being in monitorRenderResources map
    - shadow: fix missed invalid use of cfg val ptr
    - surface: fix damage calcs with a viewport src
    - surface: fix invalid damage tracking in damageSurface
    - surface: minor fixes for last logicalDamage calc fix
    - xdgpopup: fix UAF because of an invalid listener connection
  + Other:
    - IME: don't set modifiers on grab destroy
    - Migrate the config to hyprlang (#4656)
    - animationmgr: expand layer box for damage
    - assets: update tetrahedra by honkadaloonga
    - avar: return curve value of 1 when not animated
    - compositor: allow source monitor to be provided to
      getMonitorInDirection (#4837)
    - compositor: check for pworkspace validity in setActiveMonitor
    - config: adjust default splash col
    - config: remove usages of nomaximizerequest from default cfg
    - config: update default config for hyprlang migration
    - core: nullcheck for old monitor in moveWorkspaceToMonitor
    - crashreporter: Use ~/.cache as cache dir (#4719)
    - dwindle: round wbox before setting
    - events: bring back accidentally nuked preConfigReload
    - groupbar: scale groupbar text according to monitor scale (#4640)
    - hyprctl: ignore non-lock files for instances
    - hyprctl: jsonify new gaps
    - hyprctl: more safety around stoull
    - hyprctl: reload everything on dynamic source keywords
    - hyprctl: remove hardcoded hyprctl commands. (#4671)
    - input: Map touch devices and tablets bound to an output (#3544)
    - input: avoid rampant refocuses on popups
    - input: avoid reassigns of unchanged surfaces in
    - input: don't schedule frame on cursor move on hw cursors
    - input: focus monitor on mouse down
    - input: log cursor image requests
    - input: partially revert #4514
    - input: refocus on completed drags
    - internal: removed Herobrine
    - keybinds: focus floating on top of fs
    - keybinds: focusWorkspaceOnCurrentMonitor: use focused monitor
      instead (#4625)
    - misc: remove unused var
    - misc: you're the best for reading this :)
    - monitor: don't damage twice (#4727)
    - opengl: check bottom/bg layers for required introspection
    - renderer: Update splash text properties to be configurable
    - renderer: accept custom state requests for fake outputs
    - renderer: don't calculate mirror damage without mirrors present
    - renderer: don't set solitary on present notifications
    - renderer: ignore set cursor surface if cursor should be hidden
    - renderer: nuke lastFrameDamage and rework finalDamage
    - renderer: take into account fading out windows in solitary recheck
    - renderer: update cursor also when hostpot only changes
    - rules: ignore static tile/float rules in dynamic gets
    - screencopy/toplevelexport: sanitize pointers in ::copyFrame
    - screencopy: attempt binding framebuffer before gathering format
    - screencopy: avoid dangling client ptrs on client destroy
    - screencopy: damage entire screen on a no-damage request
    - screencopy: move monitor verif check to the proper place
    - screencopy: send full frame damage
    - sessionLock: send preferred fractional scale
    - shaders: use highp for fragments
    - socket2: move to the wayland event loop
    - surface: ensure global pointers valid before using in
      destructor (#4844)
    - toplevelexport: set last damage for dmabuf copy
    - vector: avoid min0 clamps without a max being invalid
    - wayland: implement keyboard_shortcuts_inhibit_v1
    - windowrules: nuke no*request
    - xdg: manually schedule initial configures
    - xwayland: ignore OR activate requests if surface doesn't want
    - xwaylandmgr: clamp size in setWindowSize
    - xwaylandmgr: proper clamping for setWindowSize

Mon Feb 12 10:46:15 UTC 2024 - Florian <>

- Update to version 0.35.0:
  + New hyprland release? No way. I think we got some new stuff and
    This release was brought to you by the Hyprland Corp.
  + New features:
    - config: Add border gradients to windowrulev2 (#4335)
    - hyprctl: add systeminfo
    - hyprpm: add --force for update
    - input: add special_fallthrough
    - keybinds: Add dispatcher for xmonad/qtile-style workspace
      switching (#4439)
    - master: Add more null checks for rollnext (#4343)
    - renderer: Add new background infrastructure
  + Fixes:
    - dwindle: fix windows being created at incorrect position when
      cursor is over reserved area (#4520)
    - hyprctl: screen_shader config fixes (#4102)
    - hyprpm: fix crash on add plugin
    - hyprpm: fix invalid pkg-config path env in build
    - keybinds: fix ignoremods with release
    - keybinds: fix keys getting stuck + minor refactor and
      optimizations to keybind handling (#4304)
    - keybinds: fix tracking of sent key states
    - layershell: Fix greedy mouse grab from keyboard_interactive
      layer (#4401)
    - main: Fix typo in std::cerr (#4359)
    - meson: fix wlroots patch (#4324)
    - pluginapi: fix hooks with negative rip offsets
    - renderer: fixup misaligned fsv1 surfaces with uv
    - subsurfaceTree: Fix nullptr crash when disconnecting a monitor
  + Other:
    - HookSystem: rename PAGESIZE_VAR from PAGESIZE to avoid conflict
    - build: protocols: require wayland-protocols >= 1.32
    - compositor: clarify common errors at launch
    - compositor: don't close special on focus on pinned (#4533)
    - config: variables update their value when set again (#4263)
    - core: improve cleanup logic
    - crashreporter: skip first possibly cut off line in log tail
    - damage: use buffer_damage instead of effective_damage
    - dwindle: avoid sending negative sizes to wlr
    - events: ignore sending mouse enter to focused if a constraint
      is active
    - fractional: Set preferred scale on monitor config reload
    - groupbar: Drag single window instead of destroying group
    - groupbar: improve gradient handling (#4390)
    - groupbar: separate gradients from title (#4444)
    - hyprctl: move to a class and unify commands
    - hyprpm: don't update headers if they are up-to-date, only
    - hyprpm: handle failed compilations gracefully
    - hyprpm: install headers locally (#4585)
    - hyprpm: log verbose return of cmake and meson in update
    - hyprpm: update global state on plugin recompile not header
    - hyprpm: verify headersHashCompiled as well in headersValid()
    - input: Allow disabling touchscreen input (#4517)
    - input: allow focusSurface when locked if surfase is sessionLock
    - input: focus window on mouse down on decoration (#4514)
    - input: leave special on focus (#4358)
    - input: partially revert #4401
    - input: remove animate checks on resize limiter (#4480)
    - input: track exclusive LSes
    - internal: minor header cleanup
    - issue templates: make versions spoiler'd
    - keybinds: Refocus only if the silently moved window had the
      focus (#4328)
    - keybinds: avoid duplicated held keys, only use last, remove all
    - layout: Round window pos and size on togglefloating (#4407)
    - layout: save float props before setting fs state (#4537)
    - layout: update rules before applying fullscreen nodes in
    - make: unbreak with non-GNU ln(1) after 78f9ba9
    - master: guard PNODE in roll*
    - monitor: clear output state after usage
    - monitor: don't call output_state_finish on buffer-less state
    - monitor: wrap usage of wlr_output_state
    - opengl: apply box rot to projections
    - opengl: rassert false on lost context
    - opengl: use texBox for rendering background texture
    - pluginapi: allow registering hyprctl commands
    - renderer: Only force nearest neighbor when the sizes are off by
      one or two (#4325)
    - renderer: allow rendering multiple fullscreen windows in third
      fs pass
    - renderer: avoid unnecessary gpu resource deletions
    - renderer: ignore box offsets for fullscreen windows
    - renderer: overhaul renderModifData
    - renderer: reset fb pointers after render pass
    - screenshader: rename output uniform to wl_output (#4606)
    - subsurfaceTree: update surface tree protocol feedback on map
    - surface: avoid spam of window surfaces with scale and transform
    - swipe: Prevent hiding current workspace when swiping (#4417)
    - tearing-control: handle unmapped surfaces for hints
    - wlroots: update version patches
    - xwayland: remove delta from pos sets in configureX11
    - xwayland: remove reportedsize set in unmanagedSetGeometry
- The patch "0001-fixed-patchd-wlroots-build.patch" has been dropped
  as it appears as if it isn't necessary anymore.

Thu Jan  4 10:44:41 UTC 2024 - Florian <>

- Update to version 0.34.0:
  + Hey, haven't seen you in a year! New year, new hyprland update.
    The longest commit gap to date ends with this plentiful one :D
  + New tools:
    - hyprpm: a hyprland plugin manager. See the wiki or
      hyprpm --help for usage.
  + New features:
    - config: add debug:disable_scale_checks
    - config: add qt env to default config
    - dispatchers: add tiled/floating to cyclenext
    - groupbar: add egl context to refreshGroupBarGradients() (#4238)
    - groupbar: add enabling groupbar and setting priority (#4299)
    - hyprctl: add decorations (#4275)
    - hyprpm: add duplicate header error and log more verbose in
      install fails
    - input: Add scroll_points option for device (#4101)
    - input: add relative_input for tablets
    - master: add dispatchers rollnext and rollprev (#4209)
    - opengl: add toggleable nvidia_anti_flicker
    - renderer: add decoration:blur:popups_ignorealpha
    - renderer: add occlusion for special workspaces
    - renderer: add option to blur popups
    - systemd: add HYPRLAND_NO_SD_NOTIFY
    - windowrules: add focus param
    - windowrules: add initialTitle and initialClass (#4259)
    - windowrules: add onworkspace
  + Fixes:
    - border: fix failed assert on small windows
    - border: fix missed translate by offset
    - deco: fix missing border on togglefloating (#4305)
    - functionHooks: fix incorrect protlen calcs
    - hyprpm: fix with system headers
    - internal: fix interactions with fakefullscreen (#4113)
    - internal: minor include fixes and missed format
    - renderer: double lookup fix, input: double conversion fix (#4124)
    - renderer: fix auto scale detection with fractional
    - renderer: fix null cursor surface sets being ignored
    - signal: fix invalid pointer access (#4207)
    - toplevelexport: fix missed pmonitor set for opengl
    - toplevelexport: fix missing GL_READ_FRAMEBUFFER set in shm copy
    - windowrules: minor fixes to onworkspace
    - xdg-shell: fix sending of suspended state
  + Other:
    - compositor: don't block focus if there is no keyboard
    - compositor: spawn environment setup with keybind manager (#3722)
    - config: Avoid regenerating config if --config is used (#4103)
    - config: Use canonical instead of read_symlink (#4136)
    - config: don't emit reloaded event before eventManager is created
    - config: improve layoutopt handling for workspacerules
    - configmanager: set a limit to config variable substitutions
    - crashreporter: don't explicitly set 777 on crash report directory
    - deco-positioner: include sticky in sent geometry
    - dwindle: Use window->middle() when cursor is on reserved area (#4253)
    - filesystem: Set the sticky bit on /tmp/hypr (#4199)
    - focus: prefer sendMotionEventsToFocused for ensuring cursor image
    - groupbar: Middle click on groupbar to close tab (#4297)
    - groupbar: remove extra border size from groupbars (#4262)
    - hyprctl: allow instances without HIS
    - hyprctl: check only ISDEBUG in version (#3702)
    - hyprpm: Make sure we're in git repo before getting new hash (#4303)
    - hyprpm: cast std::clamp args to be of the same type (#4116)
    - hyprpm: clone plugins recursively
    - hyprpm: guard empty command
    - hyprpm: trim paths in PATH
    - idle: notify idle on tablet inputs (#4201)
    - input: Activate resize_on_border only when key is pressed (#4170)
    - input: Ignore some input events when focus is on a layer surface (#4306)
    - input: Prevent crash with invalid keyboard layout (#4157)
    - input: allow setting cursor even if it's hidden
    - input: don't steal mouseDown from LS (#4260)
    - input: unset resize cursor on empty focus
    - internal: Remake borders as window decorations (#4104)
    - internal: Unify input handling on decorations (#4280)
    - internal: convert uname fields to strings before logging
    - internal: import qt env to dbus
    - internal: nuke CWindow::m_bMappedX11
    - internal: removed Herobrine
    - keybinds: Keep focus on special when switching workspaces (#4084)
    - keybinds: check for null last monitor in changeworkspace (#4077)
    - layout: Focus a floating window after closing the last tiled (#4137)
    - pluginapi: Trampoline hooks %rip patching improvements (#4256)
    - pluginapi: better wording for plugin function hook errors
    - pluginapi: log assembler return
    - pluginapi: manually detect endbr64 opcodes in function hooks
    - renderer: Allocate background texture only if required (#4111)
    - renderer: apply scale to wlr after checks
    - renderer: cursor hiding logic improvements (#4184)
    - renderer: deny invalid scales and suggest a replacement
    - renderer: don't render decorations on renderdata.decorate false
    - renderer: don't set surfaces on cursor timeout
    - renderer: don't use clipBox for pinned window occlusion during animations
    - renderer: ignore windowRequestedCursorHide
    - renderer: improve cursor hiding infra
    - renderer: improve fullscreen workspace client rendering
    - renderer: reject non-clean scales, find nearest clean
    - renderer: staticize local functions
    - renderer: use 120 as the denominator in scale checks
    - renderer: use nearest_neighbor for misaligned fractional-scale surfaces
    - renderer: use xray for background blur on small() surfaces
    - shadow: Avoid rounded shadows when rounding is 0 (#4230)
    - shadow: correctly scale boxes
    - socket2: emit configreloaded event
    - special: move floating windows along with the workspace
    - toplevel-export: commence render pass before reading
    - xdg: use better min/max size checks for floating resizes
    - xdgshell: bump to 6, send suspended states
    - xwayland: don't change workspace on configure for invisible windows
    - xwayland: set reported and pending size/pos on geometry sets
    - xwaylandmgr: allow resizes without a monitor

Wed Dec  6 16:56:14 UTC 2023 - Florian <>

- Update to version 0.33.1:
  + Small patch to fix some issues with screencopy / toplevel-export
    (notably crashing and/or misaligned buffers) and crashes on exit.
  + Fixes:
    - framebuffer: ignore addStencil on legacyRenderer
    - screencopy: fix glReadPixels offset
    - screencopy: fix legacyrenderer builds
    - toplevelexport: fix getPreferredReadFormat param in captureToplevel
  + Other:
    - hyprctl: order commands alphabetically (#4061)
    - input: Stop propagating axis events after valid binds (#4059)
    - input: don't send mouse events on touch (#4071)
    - internal: various improvements to avoid crashes on exit

Tue Dec  5 17:53:38 UTC 2023 - Florian "spirit" <>

- Update to version 0.33.0:
  + After the longest commit gap to date, I decided to bring y'all
    the 0.33.0 update. Enjoy!
  + Nvidia patches have been removed, they are no longer needed.
  + New features:
    - env: add HYPRLAND_NO_RT
    - events: add keyPress and mouseAxis
    - general: add workspace gaps (#3877)
    - hyprctl: Add 'layouts' command (#3895)
    - hyprctl: add monitors all to report all connected monitors
    - pluginapi: add touch event hooks (#3836)
    - renderer: Adding an option to disable first launch animation
    - workspacerules: Add workspace rule for master layout
      orientation (#3964)
  + Fixes:
    - config: Minor --config improvements, fixes (#4034)
    - config: fix red warn in default config
    - configmgr: fix parsing of touchdevice groups
    - deps: downgrade wlroots to fix crashes
    - group: fix dragging into floating groups (#3719)
    - groupbar: Fix position of groupbar titles on monitor scales
      != 1.0 (#3856)
    - groupbar: allow reload and fix locked groupbar gradient (#3546)
    - groupbar: fix crash in renderGradientTo
    - groupbar: fix text pos with verical offset (#3893)
    - hooksystem: fix missed log include
    - input: Fix custom acceleration profile config (#3948)
    - input: fix overzealous mouse capture on resize_on_border
    - makefile: Add CXXFLAGS to hyprlctl's Makefile (#3913)
    - managers: fix debug log using printf format (#4007)
    - monitor: fix transform matrix calculations for transformed
    - opengl: fix missed makeEGLCurrent
    - opengl: fix nvidia read formats
    - opengl: fix swapped rgb drm formats
    - opengl: fix window introspection check
    - opengl: fix xray modes in introspection checks for ls
    - opengl: fixup blur dirty repaint conditions with solitary
    - output-layout: fix wlroots display handling (#3718)
    - pluginmgr: fix double use of dlerror()
    - renderer: Fix floating clipbox (#3907)
    - renderer: Fixup double rendering cases with special (#3928)
    - renderer: fix double render of tiled on workspace switch
    - renderer: fix floating window rendering when scale > 1 (#3901)
    - renderer: fix inverseOpaque calcs in renderWithBlur
    - renderer: fix software cursors on nvidia
    - renderer: fixup cursor scaling
    - screencopy: fix broken shm copying
    - screencopy: fix detecting gl shm formats
    - screencopy: fix shm exports with 10-bit
    - screencopy: fix shm sharing if introspection required
    - screencopy: fix transformed on shm
    - shadow: add workspace offset to floating window shadow (#3906)
    - vector: New operator overloads and small fix in Vector2D.
  + Other:
    - build: remove nv patches (#3957)
    - compositor: drop unused vectorToWindow func
    - config: add nomaximizerequest all to default cfg
    - config: default special_scale_factor to 1
    - config: log info about logs before loading vars
    - config: Add variables to default config (#4032)
    - decorations: recalc layout and positioner on add/remove
    - deco-positioner: don't remove hidden windows' data
    - exec: remove redundant environment variables from spawn (#3923)
    - functionhooks: throw an exception on unsupported %rip usage
    - groupbar: more safety around gradient textures
    - groupbar: translate box by workspace offset
    - hyprctl: use a rolling buffer for reading requests
    - input: Handle fullscreen windows in vectorToWindowIdeal (#4021)
    - input: make fallback layout us
    - input: pass mouse input to IME popups (#3922)
    - inputmgr: clean lists in ~dtor
    - internal: Allow floating windows on special (#3872)
    - internal: make getPlusMinusKeywordResult return optional
    - internal: replace INT_MAX with WORKSPACE_INVALID
    - keybinds: Close special workspace after moving windows out of
      it (#3649)
    - layer-shell: simulate mouse movement on unmap
    - layout: Don't update pseudoSize after window moved by mouse.
    - logging: move to an internal rolling log buffer
    - monitor: remove comma from monitor description (#3996)
    - opengl: Don't use wrong shader just because it's GLES (#3867)
    - opengl: better checking for required introspection
    - opengl: check for introspection on special_blur
    - opengl: clear layer fade fbs in ~dtor
    - opengl: don't make a mirror buffer on fakeFrame
    - opengl: free window framebuffers in ~dtor
    - opengl: require introspection on mirroring
    - opengl: tiled special require introspection
    - plugins: make logging on error more verbose
    - renderer: Move to a full Hyprland GL rendering pipeline (#3920)
    - renderer: avoid rendering floating windows twice with special
    - renderer: better checks for special rendering in
    - renderer: clip floating boxes on slide anim
    - renderer: don't make snapshots of invisible windows on close
    - renderer: drop unnecessary spammy logs
    - renderer: make sure lastWindow has correct ws in
    - renderer: nvidia checks and use glFinish on nvidia
    - renderer: pass proper arg to main param of uv calcs
    - renderer: proper full occlusion checks for back layer
    - renderer: separate oversize uv calcs in dimensions
    - renderer: use occlusion checks for buffer clear
    - renderer: use viewporter corrected size for uv calcs
    - screencopy: use buffer format for glReadPixels
    - screencopy: use drmFormat instead of wlr funcs
    - screencopy: use new isNvidia() for format
    - shaders: Some more changes in rgb2hsl. (#3834)
    - shadow: avoid fatal mutation of the windowBox for calcs
    - shadow: avoid using glClear and don't draw behind window if
    - subsurfaces: damage window on subsurface size change
    - surface: avoid infinite pointer image resets
    - windowrules: make idleinhibit dynamic

Sat Nov 11 19:05:40 UTC 2023 - Florian "spirit" <>

- Upstream seams incapable of properly validating their releases.
- Update to version 0.32.3:
  + A small hotfix for 0.32.2's occasional crashes.
  + Fixes:
    - decoration-positioner: improve stability
  + Other:
    - props: bump ver to 0.32.3
- Changes from version 0.32.2:
  + A result of a few small hurried mistakes in 0.32.1. Hypr-active
    development, am I right? :)
  + Fixes:
    - shadow: move workspace offset calcs to draw
    - xdg: set state maximized for all tiled windows
  + Other:
    - props: bump ver to 0.32.2
	- shaders: Avoid calculating unused values in hsl2rgb. (#3827)
	- shaders: Small optimization in rgb2hsl. (#3831)
- Changes from version 0.32.1:
  + Small update with some fixes for screencopy, xdg surface
    handling, shadows on 10bit, etc.
  + Fixes:
    - hyprctl: Fix build warnings (#3821)
    - screencopy: round boxes
    - xdg-shell: improve ack-configure handling
    - xdg-shell: update reported size on ack_configure
    - xwayland: add half of delta to configure request sizes
  + Other:
    - animationmgr: push shadow avs to ended on disabled
    - deco-positioner: recalc after uncache
    - decoration-positioner: improve extent handling
    - decorations: Decoration Positioner (#3800)
    - deps: update wlroots
    - hyprctl: return group list in correct order (#3683)
    - input: don't schedule repaint on cursor move if hardware
	  cursors are in use
    - opengl: remove unused alpha matte from shadow
    - opengl: switch to black-and-white for alpha mattes
    - shaders: Use clamp in doubleCircleSigmoid. (#3824)
    - shadow: alpha treatment improvements

Tue Nov  7 21:53:45 UTC 2023 - Florian "spirit" <>

- Update to version 0.32.0:
  + A small update brought to you by yours truly :)
    This time without breaking changes. I think.
  + New features:
    - binds: add ignoreMods flag
    - binds: add movefocus_cycles_fullscreen
    - example: add special workspace to default config
    - fractional-scale: fix addon existence check
    - groups: add option to configure font name (#3751)
    - hooksystem: add callbackinfo struct and cancellable events
    - hyprctl: add a query for workspace rules (#3630)
    - hyprctl: add focusHistoryID to hyprctl clients
    - pluginapi: add a config keyword adding method
    - renderer: add transformers
    - renderer: added new customization options to the blur shaders
    - windowrules: add nearestneighbor
    - workspacerules: Add new optional "default command" for
	  auto-launching apps on new workspaces (#3559)
  + Fixes:
    - Master: fix drop_at_cursor when there are only two windows
    - compositor: Fix a lack of a check for workspace equality on
	  same monitors in getInDirection (#3625)
    - config: fixup usage of plugin in handles
    - fix(build): do not include wlr headers directly, use
	  includes.hpp instead. (#3587)
    - fractional-scale: fix addon existence check
    - group: fixes for dragging groups onto groupbars (#3708)
    - includes: fix box headers (#3771)
    - input: fix force_zero_scaling for tablet and touch (#3644)
    - input: fix mouse down handling on unset last surface
    - input: simulate mouse movement to fix focus on open/close
    - layout: fix missed setWindowSize in no_gaps_when_only node
    - layout: fix various rounding errors
    - master: fix movewindow across monitors (#3628)
    - master: fix moving window between monitors (#3721)
    - master: fix resizing wrong window behind in special workspace
    - pluginapi: fixup get_hash functions
    - renderer: fix legacy_renderer build (#3732)
    - renderer: fix missed box scale
    - renderer: fix shimmers when manual resizing
    - renderer: fix small surface's blur region being offset by
	  monitor coords
    - renderer: fixup blend disable conditions in renderSurface
    - shadow: fix ignore_window false
    - shadow: fix missed fullBox.scale
    - shadows: fix on transformed
    - wlsurface: fix small detection
  + Other:
    - Core: various unsafe state improvements (#3713)
    - Decos: Window decoration flags, shadow improvements (#3739)
    - Internal: Hyprland box implementation (#3755)
    - Map cmake None to meson's plain
    - box: use std::round instead of std::floor in ::round()
    - compositor: allow windowfromregex floating param
    - compositor: allow windowfromregex tiled param
    - compositor: do not process fullscreen events in unsafe
    - compositor: find windows in direction on floating
    - compositor: remove old comment
    - compositor: send preferred scale and transform events to
    - dwindle: move to CBox for expressing nodes
    - events: better adjust to unreported sizes for xwayland apps
    - events: ignore takes_over_fullscreen for floating windows
    - events: make new windows taking over fullscreen keep the
	  existing mode (#3588)
    - events: set reported size on floating map
    - events: set reported size on the end of mapping
    - fractional-scale: post error on taken fs objects
    - hyprctl: log monitor id in workspaces request
    - includes: include sharedDefs in includes.hpp
    - includes: include vector2d for sharedDefs
    - input: Apply scaling to cursorPosOnActivate position (#3664)
    - input: better cursor image infrastructure
    - input: don't reset cursor movement timer on
	  simulateMouseMovement (#3595)
    - input: handle mouse on decorations (#3560)
    - input: let input-grabbing decos have prio over resize on
    - input: properly track xdg surfaces' geometry in
    - input: remove incorrect check in re-enter
    - input: send motion events on focusWindow if follows_mouse is 0
    - input: simulate movement only if mouse is over in open/close
    - internal: create canBeGroupedInto() (#3693)
    - internal: honor close_special_on_empty on moveToWorkspace
    - layershell: support ON_DEMAND keyboard mode
    - layout: avoid redundant size sets on new fullscreen
    - layout: better storage for no fullscreen checks var
    - layout: round box in mouseMove
    - layout: round window boxes after special scale factor
    - main: set isShuttingDown after display dispatch reaches the
    - meson: generate version.h before install_headers (#3612)
    - region: include box in the header
    - renderer: allow transform enabling from outside opengl
    - renderer: avoid drawing invisibly small surfaces in
    - renderer: blur properly behind small surfaces
    - renderer: cast std::clamp args to be of the same type (#3589)
    - renderer: improvements to wayland surface small() detection
    - renderer: properly pass 10-bit formats to opengl
    - renderer: properly set currentFB on snapshot renders
    - renderer: render oversized blur with respect to fade alpha
    - renderer: respect viewporter dest on base surfaces
    - renderer: use optional for cursor surface storing
    - renderer: use preOffset pos instead of offset
    - shaders: support changing the outer radius of borders
    - subprojects: update tracy
    - surface/wayland: conform to small surface requirements
    - transformers: allow modifying renderdata pre-pass
    - window: update window reported size on damage events
    - workspacerules: search for special properly
    - xdg: send unconstrain events after a popup reposition (#3716)
    - xdg: use std::ceil for sending scale to surfaces
- Dropped "fix_ia86_std_clamp.patch" as it has been merged upstream.

Sun Oct 22 22:21:49 UTC 2023 - Florian "spirit" <>

- Added "fix_ia86_std_clamp.patch" that is required for Hyprland to
  build on ia86.

Thu Oct 19 14:12:29 UTC 2023 - Florian "spirit" <>

- Update to version 0.31.0:
  + A sizeable update for y'all, with quite a few breaking changes.
  + Breaking changes:
    - decoration:multisample_edges has been nuked. A better
	  algorithm is used by default.
	- misc:disable_hypr_chan has been removed. The new, more
	  flexible option is misc:force_default_wallpaper with a default
	  of -1. Setting to 0 will use the non-anime backgrounds
	  exclusively and behave like the old disable_hypr_chan = true.
	- All group-related options have been moved to group:, please
	  see the docs here:
	- Some makefile stuff has been changed/removed
  + New features:    
    - Plugin API: Add version query (#3545)
    - dispatchers: Add option to center the cursor on the focused
	  window when switching workspaces (#3528)
    - includes: add missing log include to animatedvariable
    - input: Add map to region options for tablets (#3425)
    - internal: Add GTK portal as fallback (#3469)
    - internal: add a watchdog
    - layout: add new_window_takes_over_fullscreen mode 2
    - makefile: fix using -d test for a binary file AND re-add
	  missing portals conf (#3570)
    - master: add option to drag and drop windows at cursor position
    - misc: add misc:new_window_takes_over_fullscreen
    - renderer: add force_wallpaper instead of no_hypr_chan (#3459)
    - renderer: add further conditions to solitary recheck
    - renderer: Tearing implementation (#3441)
    - workspacerules: Add a persistent workspace rule (#3530)
  + Fixes:
    - dispatchers: fix extra monitor offset when snapping floating
    - events: fixup empty events not being sent on unmap
    - hyprctl: fix crash in unsafe state with activeworkspace
    - input: fix unused variable warn
    - input: fix warn
    - input: fixup frame schedule conditions on mouse move
    - input: fixup mouse down refocus conditions
    - input: minor constraint fixes
    - master: fix drop_at_cursor on workspace 2 (#3512)
    - renderer: considerable fixes to repaint logic
    - renderer: fix missing check for surfaceCount in rechecking
    - renderer: fixup solitary conditions
  + Other:
    - Debug: respect logging settings for wlr (#3584)
    - animationmgr: damage floating windows on workspace anim
    - build: Unbreak build without precompiled headers (#3400)
    - build: guard execinfo.h via build systems (#3547)
    - build: include version.h in PluginAPI.hpp (#3571)
    - cleanup: Replace find() with C++20 starts_with(), ends_with()
	  and contains() (#3572)
    - config: mention force_default_wallpaper in default configs
    - config: restore configCurrenPath after sourcing file (#3339)
    - config: trim spaces in the rule field in windowrulev2
    - crashreporter: avoid using empty CACHE_HOME
    - dispatchers: support number as arg in changegroupactive
    - dwindle: Avoid rounding errors in window position (#3524)
    - events: don't focus new window if spawned behind fullscreen
    - events: set new window alpha to 0 if it's tiled behind
    - examples/readme: mention tearing
    - groups: create group and groupbar config sections (#3522)
    - groups: ensure consistency in dispatcher behavior with global
	  group lock (#3531)
    - hyprctl: avoid .pop_back() on empty string
    - hyprctl: log activelyTearing for monitors
    - input: avoid using the wrong surface in drag focus force
    - input: properly track mouse focus on drag operations
    - internal: Further unsafe state improvements (#3404)
    - internal: better versioning (#3543)
    - internal: include missing header (#3464)
    - internal: removed Herobrine
    - internal: use pragma once in version.h
    - layershell: avoid configure on unchanged size
    - layout: check for specialworkspace in floating toggle
    - layout: don't discard fullscreen on new tiling
    - log: log wlr errors regardless of env
    - meson: Sort input file list (#3550)
    - meson: use ln with force flag (#3568)
    - monitor: ensure vrr on workspace change
    - notifications: Schedule a frame on notification creation
    - pluginapi: remove starting newline in demangled func name
    - props: bump ver to v0.31.0
    - render: stop locking SWC on tearing
    - renderer: avoid spamming software cursor locks
    - renderer: extract solitary check into frame handler
    - renderer: lock software cursors while tearing
    - renderer: nuke multisample_edges in favor of a faster
    - renderer: optimize render pipeline when there is a solitary
    - renderer: remove old debug log
    - screencopy: enhance error logging
    - shaders: Remove redundant clamp of smoothsteps return value.
    - shaders: improve border rounding
    - tearing: cleanup vars and avoid rendering before drm is ready
    - watchdog: don't hang on exit
    - watchdog: initialize after config
    - watchdog: remove thread on destroy
    - wsrules: check for workspace ID matches on numbered workspaces
- Renamed 0002-fix-patched-wlroots-build.patch to
  0001-fixed-patchd-wlroots-build.patch simply due to git doing this

Sat Sep 23 08:11:28 UTC 2023 - Florian <>

- Update to version 0.30.0:
  + New Hyprland update guys wake up!
    Shoutout to the entire country of Romania and @fufexan, and the
    top Gs pumping out more MRs than I can physically review @memchr
    @Dickby @MightyPlaza @thejch and more :)
  + New features:
    - config: add wildcard handling in source= (#3276)
    - doc: Add a CoC (#3366)
    - dwindle: add proper movement for window move binds
    - feat: add a new movewindoworgroup dispatcher (#3006)
    - input/config: add button scroll lock (#3189)
    - layout: add direction parameter to onWindowCreated and friends
    - layout: add missing groupbar decoration to the window (#3235)
    - master: Add mfact dispatcher (#3298)
    - master: Add orientationcycle command on MasterLayout (#3128)
    - master: Add smart resizing option for master layout (#3210)
    - misc: add disable_hypr_chan option (#3343)
    - socket2: add renameWorkspace event
    - socket2: added "activespecial" IPC event (#3163)
    - varlist: move to a separate header, add join
    - windowrules: add % to resizeparams (#3246)
    - windowrules: add on-screen constraint to wrv2 'move' (#3247)
    - windowrules: add rule group to map windows grouped (#3279)
  + Fixes:
    - Vector2D: fix typo in include
    - config: fix relative path resolution (#3308)
    - dwindle: fix moving windows on special
    - dwindle: fix: don't merge groups when moving window (#3302)
    - fix(layout): remove focusWindow calls from
      onWindowCreatedTiling (#3233)
    - fix: focusWindow on hidden workspace triggers another
      focusWindow. (#3216)
    - fix: inconsistent behaviour where last workspace was not saved
    - hyprctl: fix missing comma in getopt -j
    - input: Various constraint handling fixes (#3381)
    - input: minor constraint fixes
    - internal: Fix wlr output management (#3234)
    - master: Fix the wrong resize speed in master layout center
      orientation (#3289)
    - master: partially revert 0e64dd2 and fix the animation (#3327)
    - refactor: fix missed middle() call in CKeybindManager
    - renderer: Fix blur for passes set to 0. (#3181)
    - renderer: fix missing dontRound check in renderSurface
    - windowrules: Monitor rule fix (#3157)
    - windowrules: fix workspace exec rule with special (#3316)
    - windowrules: fix workspace rule separation
  + Other:
    - animatedvariable: don't reset timers on duplicate setters
    - animationmgr: Optimize CAnimationManager::scheduleTick a bit.
    - animationmgr: guard monitor ptr in animationSlide
    - bezier: Optimize CBezierCurve::getYForPoint (#3321)
    - bezier: Remove Todo about N-Point bezier curves. (#3352)
    - build: use PCH to reduce compile time (#3095)
    - config/input: Improve fallback behavior for unset device
      config values (#3184)
    - config: Integrate HASCONFIG into
      CConfigManager::getConfigValueSafeDevice (#3195)
    - config: disable blur special by default
    - config: don't enable vrr 2 for maximized workspaces
    - config: loosen restrictions around animation keywords
    - hyprctl: Make device configs queryable (#3226)
    - hyprctl: print monitor IDs as int64
    - input: do not process mouse in unsafe state
    - input: don't refocus on switched workspace on the same monitor
    - input: don't warp region constraints
    - input: guard constraint in unconstrainMouse
    - input: lock focus to last surface on buttons held
    - input: simplify fullscreen workspace input calculations
    - internal: Make part of CCompositor::focusWindow a bit easier
      to read. (#3356)
    - internal: Remove all .c_str() calls when using std::vformat
    - keybinds: Do not suppress pass and mouse release (#3219)
    - keybinds: avoid onWindowRemoved & onWindowCreated when group
      has one member (#3286)
    - keybinds: focus last window on workspace change to another mon
    - keybinds: ignore conditions on special release
    - keybinds: ignore mods on release of special binds
    - keybinds: implement pushactivetobottom dispacher (#3217)
    - keybinds: movewindow to screen edge for floating windows
    - keybinds: simulate movement on empty focus after workspace
    - keybinds: track pressed special binds
    - keybinds: unify changeworkspace dispatcher (#3250)
    - keybinds: warp cursor to correct window in
      moveWindowOutOfGroup (#3290)
    - layout: Allow the layout to control how windows are raised in
      groups (#3275)
    - logging/format: use std::format_string to catch formatting
      string errors at compile time (#3377)
    - logging: implement std::formatter for some types (#3380)
    - master: respect the resizing animation option in master layout
    - monitor: ignore no-op workspace changes
    - monitor: minor adjustments
    - refactor: flatten nesting ifs in layout window creation method
    - refactor: manually resets singletons (#3395)
    - refactor: replace lambdas with CKeybindManager::switchToWindow
    - refactor: replace manual iteration of CWindow with existing
      methods (#3147)
    - refactor: utilize 'middle()' method for window/montior center
    - renderer: cleanup drm format selection
    - renderer: damage monitor on special workspace change
    - renderer: separate workspace window render logic
    - screencopy: log renderer_begin_with_buffer failures
    - socket2: emit lockgroups event (#3317)
    - varlist: cleanup unintuitive string splitting (#3369)
    - window: recalculate layout on swallow in map
    - wlroots: disable wlr vulkan support
    - xdgoutput: do not destroy resources on monitorRemoved
    - xwayland: adjust coord calculation
    - xwaylandmgr: find closest output in xwayland coord translation

Sun Sep  3 17:30:30 UTC 2023 - Florian <>

- Update to version 0.29.1:
  + New hyprland update :)
    Fixes some annoying wlroots bump related issues and adds some
    QoL stuff.
  + New features:
    - special: add misc:close_special_on_empty
  + Fixes:
    - fix: use-after-free of CWindow* in
      CHyprGroupBarDecoration::draw (#3146)
    - input: fix xwayland constraint calcs
    - keybinds: fixup global conditions
    - keybinds: fixup release conditions
    - refactor: raise SIGABRT instead of write to null address
    - renderer: fixup occlusion conditions
    - screencopy: fix region sharing
    - text-input-v1: Fix preedit styling in chromium (#3131)
  + Other:
    - compositor: remove wlr_scene refs
    - decos: groupbar mouse interaction (#3102)
    - globalshortcuts: allow empty appid
    - input: warp in unconstrainMouse
    - internal: Unsafe state reworks (#3114)
    - internal: workspace rule handling refactor (#3116)
    - keybinds: set special monitor id before recalc
    - keybinds: suppress up event if down was consumed
    - layout: always center floating xdg windows
    - meson: remove refs to ext-workspace-unstable-v1
    - opengl: cleanup framebuffer style
    - readme: refactor and update a bit
    - readme: remove wlr_ext workspace proto support mention
    - renderer: don't set enabled in applyMonitorRule
    - renderer: render IME popups in fullscreen
    - waylandResource: remove user data in markDefunct and not ~dtor
    - window: check for special id matching in close_special_on_empty
    - wlr-ext-workspace: remove protocol impl

Tue Aug 29 13:31:16 UTC 2023 - Florian <>

- Updated to version 0.29.0:
  + Plamene zore bude me iz sna.
    New Hyprland update brought to you by Yours Truly :)
  + Breaking changes
    - misc:suppress_portal_warnings has been yeeten (alongside the
  + New features:
    - animations: add slidefade and slidefadevert styles for
      workspaces (#3008)
    - background: add background color option (#2915)
    - config: add vrr per-display
    - feat(debug): add debug:suppress_errors to suppress errors.
    - hyprctl: add --instance
    - input: add transparent binds
    - internal: add a new monitor auto system
    - internal: add lock files and hyprctl instances
    - renderer: add decoration:blur:special
    - renderer: don't add workspace offset to pinned
    - rules: add layer and window xray rules
  + Fixes:
    - Close keymap files. Fixes #2904 (#2905)
    - compositor: fix auto positioning offset calcs
    - compositor: fix log types
    - compositor: fix missed raw throws
    - compositor: fix offset in auto arrangeMonitors
    - compositor: fix skipping iterators in arrangeMonitors
    - fix workspace change focus (#2891)
    - fix: improved focus behaviour on workspace switching for
      follow_mouse!=1 (#3041)
    - hyprctl: fix hyprpaper
    - hyprctl: fix old request methods
    - input: fix and unify client checking in mouseRequests
    - internal: Fix XDP multi-portal issues (#3077)
    - internal: Fix grouped windows not being properly focused on
      activation (#2925)
    - macros: fix missing include
    - master: fix always_center_master (#2961)
    - renderer: fix missing premultiplication for border
    - shaders: minor premultiplication fixes
    - toplevelexport: minor fixes to dmabuf
    - xwayland: fix incorrect VECINRECT usage
    - xwayland: fix use of xwayland coords in native spaces
  + Other:
    - animationmgr: avoid redundant ticks
    - compositor: don't apply offsets in renderer
    - compositor: log more in arrangeMonitors
    - compositor: log thrown runtime exceptions
    - compositor: minor cleanup
    - compositor: update window rules on workspace move
    - config: adjust default background color
    - deps: update wlroots
    - dwindle: disallow togglesplit on fullscreen
    - dwindle: use smart on display borders (#2897)
    - gestures: Swipe direction lock (#3052)
    - input: improved path handling; null check return value of
      fopen. (#3061)
    - input: notify idle about activity on mouse move regardless of
    - input: sanitize newlines in device names
    - input: unify constraint hint logic
    - internal: Wayland Protocol impl improvements (#2944)
    - internal: allow negative monitor offsets
    - internal: allow opening empty special workspaces
    - internal: cleanup headers in helpers/
    - internal: ioctl use /dev/tty instead of fd 0 for VT_GETSTATE
    - internal: move backtrace to specific func
    - keybinds: Keep aspect ratio (#2907)
    - keybinds: Only call fclose() when we have a valid file.
    - layers: set proper alpha to top grabbing surfaces
    - layout: Use refreshrate tick on all manual animations (#2988)
    - layout: allow changing float status of fullscreen windows
    - layout: allow drag on fullscreen windows
    - layout: use full box for visibility check of floating xdg
    - master: layout resize makes the wrong size changes (#3064)
    - props: bump ver to 0.29.0
    - remove shadow no_gaps_when_only (#2956)
    - remove shadow no_gaps_when_only master (#2958)
    - renderer: Border improvements (#2986)
    - renderer: don't blur special on disabled blur
    - renderer: fully switch to premultiplied alpha
    - renderer: make contrast and brightness adjustments before
    - renderer: remember extents before removing a window and use
      them for dt
    - renderer: track fade alpha for blur if ignore opacity is true
    - renderer: update alpha of layers only if active ws (#2994)
    - rules: center window improvements (#2935)
    - toplevel: patches group toplevel-activated (#2931)
    - xdgoutput: don't send all details in .get
    - xdgoutput: manually destroy manager resource
    - xdgoutput: mark resources defunct when monitor is unplugged
    - xdgoutput: separate logic for zero scaling positions
    - xdgshell: damage old popup coords after a reposition
    - xwayland: drop (#2884)
    - xwayland: use a completely separate coordinate system
    - xwayland: use logical pos in unmanaged geom requests

Fri Aug 11 14:37:54 UTC 2023 - Florian <>

- Updated to version 0.28.0:
  + Ayo new Hyprland update!
    The biggest performance update in Hyprland's history!
    - CPU idle reduced by half.
    - GPU usage reduced around 2-4 times.
  + Breaking Changes:
    -  All blur values have been moved to decoration:blur:.
  + New features:
    - Added git tag in json version command (#2821)
    - add config option to enable/disable new intuitive resizing
    - background: add option to force hypr chan
    - backgrounds: add hypr chan var 2
    - groups: add use_current_group_pos (#2759)
    - init: Request SCHED_RR using CAP_SYS_NICE (#2690)
    - input: add support for cursor-shape-v1
    - keybinds: add toggle to dpms
    - renderer: add canSkipBackBufferClear
    - renderer: add occlusion for back layers
    - renderer: Various Blur Improvements (#2877)
    - socket1: add a timeout for requests
    - tracy: add more opengl zones
    - windowrules: add workspace param
    - xwayland: Add temporary fix for #2808 by adding nullptr check.
  + Fixes:
    - Fix background occlusion ignoring monitor position (#2771)
    - init: Fix for issue #2797 (#2799)
    - input: Fix #2376 mouse movement bug in XWayland (#2776)
    - input: fix styling
    - opengl: fix warn
    - render: Border fixes (#2781)
    - renderer: fix rounding in renderSurface
    - toplevelexport: support dmabuf + various fixes
    - window: fix segfault in boundingbox
    - windowrules: fix opacity override
    - xwayland: Add temporary fix for #2808 by adding nullptr check.
  + Other:
    - animationmanager: optimize avar state
    - animationmgr: avoid looping over all avars in favor of only
      active ones
    - assets/ install new wallpapers
    - config: schedule frame for mons on reload
    - config: update default config for new blur changes
    - debug: add tracy
    - deps: update wlroots
    - forms: bring back auto labels
    - hyprctl: rerender on cursor_zoom_factor dynamic calls
    - internal: Wrap regions (#2750)
    - internal: Removed Herobrine
    - keybinds: Make moveintogroup locking check configurable
    - layout: no_border_when_only-improvements (#2791)
    - layout: use warp() instead of setValue()
    - opengl: adjust blend and reduce the usage of clear
    - props: bump version to 0.28.0
    - region: allow ctor from pixman_box32_t
    - render: avoid allocating mirrorfb for no reason
    - render: use primitive end() only when no screen shader is
    - renderer: adjust distribution of backgrounds
    - renderer: cleanup back buffer skip checks
    - renderer: cleanup old redundancies in CFramebuffer
    - renderer: disable init anim on disabled animations
    - renderer: don't occlude when pre-blur is queued
    - renderer: remove unused var
    - renderer: reset scissor after renderTexturePrimitive
    - renderer: scale box for occlusion
    - renderer: take workspace offset into account for occlusion
    - renderer: use primitive rendering for copying buffers
    - shaders: short-circuit rounding if radius <= 0
    - windowrules: implements nomaximizerequest (#2785)
    - windowrules: improve opacity

Wed Jul 19 13:12:44 UTC 2023 - Florian <>

- Updated to version 0.27.2:
  + Minor patch to fix nested sessions and screencopy crashes.
  + New features:
    - Add bringWindowToTop function to IHyprLayout (#2747)
  + Fixes:
    - no_xwayland: fix redef
  + Other:
    - keybinds: movegroupwindow-improvement (#2740)
    - render: set refresh to 0 for both wl and x11 backends
    - screencopy: guard region buffer values in frameDamage
    - screencopy: improve shm handling
    - screencopy: use wlr_buffer api for shm copies

Tue Jul 18 21:15:46 UTC 2023 - Florian "spirit" <>

- Updated to version 0.27.1:
  + Minor update to fix some crash issues and stuff
  + New features:
    - background: add mascot versions
    - build: add asan enable status flag
    - issues: add form templates
    - keybinds: add movegroupwindow
    - windowrules: add border size rule
  + Fixes:
    - fix: handle window change directions in fullscreen (#2728)
    - idle: fix reverse flag for new idle protocol
    - massive-fix (#2725)
  + Other:
    - Allow empty args in hyprctl dispatch (#2724)
    - Avoid connected monitor reusing unavailable ID (#2731)
    - Dwindle: Make resize more intuitive (#2681)
    - Make bind modmask case-insensitive (#2714)
    - deps: update wlroots (#2734)
    - idle: implement new protocol
    - internal: Protocol C++ Wraps + XDGOutput impl (#2733)
    - internal: Remove herobrine
    - layout: recalc window on dynamic rule update
    - layout: recalculate monitor instead of window in
    - monitor: disconnect bind on disconnect
    - monitor: unplug all callbacks in ~dtor
    - move/resize window (#2706)
    - only return 0 when using -h (#2738)
    - renderer: use correct wlr sample func
    - screencopy: nullcheck for empty buffer
    - update group decos (#2705)
    - xwayland: guard monitor validity in xwayland scale overriding

Fri Jul 14 16:38:11 UTC 2023 - Florian "sp1rit" <>

- Dropped 0001-meson-fix-hyprland.pc-install-location.patch. It
  turns out, /usr/share/pkgconfig was the right directory after all.
- Updated to version 0.27.0:
  + Sup y'all, new Hyprland update dropped :)
    Shoutout to grandma
  + New features:
    * Add support for smart splitting (#2676)
    * Allow setting alpha value for ignorezero layer rule (#2477)
    * feat: add ipc set title window event (#2419)
    * feat: add lockactivegroup dispatcher (#2478)
    * feat: add variable to customize locked group border color
    * gestures: add workspace_swipe_use_r
    * noxwl: add missing stubs
    * pluginapi: add configReloaded event
    * rules: add nodim
    * rules: add stayfocused
    * screenshader: add output uniform
    * xwayland: add force_zero_scaling
    * xwayland: add nearest neighbor filtering as an opt
  + Fixes:
    * Fix crash when screen size is 0x0 (#2523)
    * Fix fractional scale updates in some cases (#2447)
    * chore: fix typos (#2463)
    * config: fix floating rules with floating-by-rule windows
    * config: fix reading touchpad values to non-touchpad per-device
    * config: minor path handling fixes
    * configmgr: fix idiotic comparisons in device configs
    * fix updating revision in wlroots.wrap
    * format: fix hooksystem
    * gradient: fix warn
    * groupbar fixes (#2630)
    * groupbar: fix damage calcs
    * groupbar: fix vram leak
    * internal: minor style fixes
    * layout: minor style fixes
    * lockgroups fix (#2636)
    * main: fix segfault when -c is given with no other arguments
    * opengl: fix invalid tex references to tex-less shader
    * plugins: fix config value usage in init
    * screenshader: fix uniform variable checks (#2513)
    * screenshot fix (#2640)
    * swipe: fix mixup of r/m
    * texture: fix styling
    * xwayland: fix minor force_zero_scaling bugs
    * xwaylandmanager: fixup style
  + Other:
    * Avoid passing control unix socket descriptors to children
    * Cleanup compositor deadcode (#2657)
    * Close socket2 client descriptor on hangup (#2654)
    * Implement pass binds (#2503)
    * Keep new mapped layer's alpha zero if the workspace has a
      fullscreen window (#2686)
    * Make movetoworkspace register previous workspace (#2436)
    * Partial revert of Commit 302ec13: (#2539)
    * Reloads animated decoration values set on window rules (#2594)
    * Reloads dynamic window rules (#2585)
    * Reuse same ID when reconnecting monitor, otherwise use minimum
      available ID (#2666)
    * Update faq link to the wiki (#2424)
    * Xdg config home support (#2047)
    * [hyprctl] Expose the special workspace id and name of the
      monitor (#2392)
    * animationmgr: warp on equal start and goal
    * calculate zoom_center based on monitor scale (#2482)
    * compositor: don't set dim percent on disabled dim
    * compositor: move group members properly in
    * crashreporter: log tag
    * damage: account for popups in getFullWindowBoundingBox
    * eventmanager: drop obsoleted ignore events flag (#2660)
    * events: remove old comment
    * gamma: use wlr's new gamma manager event
    * hyprctl: recalc layout on setprop
    * includes: move workspace protocol header to includes
    * input: force focus on movefocus
    * input: remove old redundant code
    * input: schedule frame on mouse move
    * input: update surface input on changeworkspace
    * internal: damage window on change group
    * internal: make borderSize prop overridable
    * internal: properly set monitor props on special windows
    * keybinds: remove old todo
    * layout: improve time restraints in window drag
    * layout: set pseudo to float size in new window
    * layouts: make aware of borderSize prop
    * monitor desc default workspace (#2673)
    * monitor desc default workspace but working now (#2678)
    * monitor desc support (#2670)
    * props: bump ver to 0.27.0
    * render: move lastFrameDamage to CMonitor
    * render: resize subsurfaces with size resizes
    * renderer: damage decos on damageWindow
    * screencopy: send original damage, avoid extents
    * shader: init uniforms to -1
    * shader: remove useless comment
    * shadow: drop useless damageEntire()
    * toplevelexport: ignore defunct windows
    * window: recalc on deco remove
    * xwayland: disconnect events on destroy
    * xwayland: remove spaces from output names
    * xwayland: send zero scaling to xwayland if enabled
    * zoom: multiply by scale only on mouseZoomUseMouse (#2495)

Tue May 30 09:11:41 UTC 2023 - Florian "sp1rit" <>

- Added "devel" package required to build Hyprland plugins.
  + Added required tests:
    * 0001-meson-fix-hyprland.pc-install-location.patch
    * 0002-fix-patched-wlroots-build.patch
- Update to version 0.26.0:
    Anyways Hyprland update woooo
  + New features:
    * Add "next on monitor or empty" workspace parameter (#2198)
    * Add hyprland to waybar-hyprland path as fallback for hyprctl
    * Add split preselection (#2240)
    * decos: recalc on add
    * groupbars: add text color opt
    * groupbars: add title and gradient rendering
    * input: add custom accel profiles
    * input: only configure newly added touch devices
    * lock: add allow_session_lock_restore
    * pluginapi: add separate window render events
    * renderer,config: add custom DRM modeline support (#2254)
  + Fixes:
    * 1483: fix crash on last display disconnect (#2344)
    * Fix UAF in animation end callback if callback deletes the
      animation (#2389)
    * Fix broken pipe crash when event listener terminates (#2339)
    * Fix not finding function symbols for hooking (#2292)
    * Fixed wrong focus changes when moving background workspaces
    * bug fix (#2314)
    * configmanager: fix substr offset in default ws rule
    * examples: fix incorrect link in per-device config comments
    * focus: fix #1675 window not scrollable after movefocus (#2390)
    * groupbars: fix minor alignment issues
    * groupbars: fix reserved area on titles
    * hyprctl: fix cut-off json outputs (#2352)
    * includes: use libdrm prefix for include
    * keybinds: fix tryMoveFocusToMonitor with special
    * launchanim: fix #2291
    * layers: fix wonky focus on multimon
    * monitors: fix some bugs with re-plug
    * render: minor fixes to fullscreen rendering
    * touch: fix double offset in local
    * workspaces: minor fixes for multi-special
  + Other:
    * Issue template: request users to ping me for Nix
    * animationmgr: allow empty avars
    * compositor: disallow sending pinned to special
    * compositor: don't focus pointer in focusWindow
    * config: clear layer rules on reload
    * configmanager: deprecate bindws
    * configmanager: remove useless log from handleWorkspaceRule
    * configmanager: store workspace rules as a deque
    * don't swap workspaces if monitors are the same (#2322)
    * examples: update plugin headers
    * examples: update plugin makefile
    * focus: make cursor follow movewindow (#2374)
    * groupbar: make exclusive
    * groupbars: conserve VRAM by staticizing textures
    * groupbars: make gradients toggleable
    * hyprctl: recalc layout on dynamic workspace
    * includes: remove redundant from screencopy
    * input: check for matrix availability in touch config
    * input: don't move monitor focus on wp change (#2320)
    * input: don't refocus on closed window
    * input: reset cursor hide timer on tablet
    * internal: make CAnimatedVariable non-move non-copy
    * internal: remove check for negative exact vector args
    * internal: use i64 for workspaces in outofbounds
    * internal: removed Herobrine
    * layershell: don't enter on unmapped ls
    * layershell: focus if changed keyboard mode
    * layout: don't reset to floating size on drag tiled
    * layouts: ignore direction forces on non-map
    * master: guard monitor in recalc
    * meson & nix: install wlroots headers (#2287)
    * monitors: toggle special on changeworkspace with special
    * moveActiveToWorkspace: update last window of old ws
    * pluginenv: copy built wlr headers
    * quote hash for the GIT_COMMIT_HASH macro (#2227)
    * readme: update previews
    * varlist: allow using s for std::isspace
    * vector: restore cmath include after 438d063 (#2394)
    * vector: use c++ stdlib math functions instead of cmath
    * version: bump to 0.26.0
    * window: reveal current from group on toplevel activate
    * wlr_ext_workspaces: honor activate from client + format
    * workspacerules: overwrite on existing

Wed May  3 21:07:55 UTC 2023 - Florian "spirit" <>

- Update to version 0.25.0:
  + Small update brought to you by Yours Truly™ :)
  + New features:
    * Add activeworkspace hyprctl command (#2202)
    * Add ability to split master when only 1 additional window
    * Add follow mouse mode to avoid refocusing under cursor (#2135)
    * Add plugin configuration to home manager module
    * Add subdir for cmake as well (#2163)
    * Add warning about setting hyprland config with home manager
    * Add windowrule fakeFullScreen (#2043)
    * Added moveCursor dispatcher (#2100)
    * Added some workspace-specific rules (#1986)
    * Format: use %lx for all addresses
    * IHyprLayout: add missing static modifiers to config vars
    * Meson: add subdirs to pkg-config file
    * Render: add cursor_zoom
    * Renderer: add init animation
    * config: add missing header for libc++ after 3a631e4 (#2208)
    * events: add render event for plugins
    * internal: add tag to version, send hash in release ci
    * layouts: add missing static modifiers to config vars
    * pluginAPI: add note about API expansion
    * plugins: Add "tick" event (#2029)
    * renderer: add support for rendering workspaces
    * rules: add noinitialfocus
    * swallow: Add swallow_exception_regex (#2026)
  + Fixes:
    * Fix apps requesting fullscreen (#2099)
    * Fix dragging cursor being forced on fullscreen windows (#2115)
    * Fix possible usage of clamp with lo > hi in Vector2D (#2049)
    * Fixed a crash when waking up monitors in power-saving mode
    * Plugin header overhaul 2: fixes (Electric boogaloo) (#2201)
    * blur: fixup optimization bool
    * crashReporter: fix invalid format string
    * damage: fix damage on moves / workspace changes
    * dispatchers: fix missing log param
    * dispatchers: fix movetoworkspace with bound ws-es
    * dispatchers: fix named ws-es on changeworkspace
    * formats: fix endian ifdef
    * input: fix kb focus on top layers without interactive flag
    * input: fix ls focus in non-input area
    * internal: fix -Wsign-compare and -Wunused-variable warnings
    * keybinds: fix move to named
    * misc: fix a warning
    * renderer: fix fadingout render on fs
    * renderer: fix incorrect delta calc
    * renderer: fix incorrect shouldRenderWindow calcs
    * renderer: fix misused size -> transformed size
    * rules: fix monitor rule with names
    * swallow: fix invalid regexes with empty vals
    * workspaces: fixup workspaces not activating on workspace
    * xwayland: crude fix for qt dnds
  + Other:
    * Allow movefocus for empty workspaces (#2011)
    * Declarative plugin management (#2180)
    * Disable systemctl when built without systemd support (#2066)
    * Honor debug:enable_stdout_logs on startup (#2197)
    * Implement window move (#2018)
    * Keep fullscreen mode in moveWindowToWorkspaceSafe (#2191)
    * Plugin header overhaul (#2087)
    * Prefer bundled wlroots headers to system ones (#2204)
    * Remove wlr_output_damage.h (#2121)
    * Screencopy: unify frame and client between impls + event
    * Window resizing for pseudotiled windows (#2140)
    * args: print help on invalid arg
    * compositor: ignore contraints on warp in moveWorkspaceToMonitor
    * config: ignore invalid paths in configPaths
    * crashReporter: avoid segfault in deref plugin system
    * crashReporter: log on crash
    * fractional-scale: notify all surfaces on window move
    * hyprctl: allow spaces in cursor themes
    * hyprctl: don't assume output validity in hyprctl workspaces
    * input: don't refocus on dragging
    * input: improve mouse release conditions
    * input: make overlay layers precede constraints
    * input: release mouse buttons before refocuses
    * input: send null keycodes on focusSurface
    * internal: avoid buffer overflows with socket paths
    * internal: don't change ws on active swap
    * internal: don't iterate special workspaces in move
    * internal: don't sanity check workspaces on internal ws calls
    * internal: guarantee activeWindow event type
    * internal: improve fullscreen fade
    * internal: include headers from protocols/
    * internal: move workspace special check higher in changeWorkspace
    * internal: moveToWorkspace before setting ws
    * internal: prevent premature destroy in moveworkspace
    * internal: unhardcode sun_path size after a6cfe70 (#2137)
    * internal: update fullscreen fade on workspace move
    * internal: use setSpecialWorkspace on destroy in sanityCheck
    * internal: warp workspace on change only if old mon is last
    * internal: workspace manip handling rework
    * keybinds: avoid sending release on suppressed press
    * keybinds: minor adjustments to workspace
    * keybinds: more intelligent fallback on silent move
    * keybinds: only warp on different monitor ws
    * keybinds: refocus properly on silent move
    * keybinds: remove old comment
    * keybinds: send pass with a null keymap
    * keybinds: simulate workspace switch on focusWindow to another
    * listeners: more safety around change
    * make ext_workspace_unstable impl more atomic (#2023)
    * makefile: use -f in copies to avoid errors on running hl
    * misc: scan ppids in exec rules
    * monitor: recalc layout on switched ws
    * monitor: update fullscreen fade on workspace change
    * monitors: set special monitor ID on open
    * only ignore no_gaps_when_only when the workspace rule
      specifies a border (#2217)
    * opengl: don't use new optim with xray off on special tiled
    * opengl: keep current rendered workspace in renderData
    * pluginAPI: make symbols static
    * pluginenv: configure cmake to build protocols
    * popups: send scale info
    * renderer: improvements to layer render detection
    * renderer: more checks for background LS optimizations
    * renderer: reset renderModif on fullscreen render
    * renderer: skip rendering bottom layers on fullscreen opaque
    * renderer: workspace rendering improvements
    * screencopy: clamp damage to framebuffer
    * screencopy: implement dmabuf
    * screencopy: improve consistency of share indicator
    * tick: don't tick on invalid session
    * windows: check for fullscreen after rules
    * workspace: don't check LS-es in startAnim
    * workspace: don't lose monitor with refocus on no warps
    * workspaces: deactivate all on monitor switch
    * workspaces: restore monitor on re-plug
    * xwayland: allow initial focus to dialogs

Tue Apr 11 12:19:45 UTC 2023 - Florian "sp1rit" <>

- Updated _service to allow hyprland to be submitted to factory.

Tue Apr 11 10:49:36 UTC 2023 - Florian "sp1rit" <>

- Update to version 0.24.1:
  + A minor update to fix a serious VFR issue + add the GS impl.
  + Fixes:
    - renderer: fixup damage repaint
    - screencopy: fix crash in invalid format reads
  + Other:
    - GlobalShortcuts protocol impl (#1886)
    - hyprctl: sanity check icons in notify
    - socket2: receive bytes to avoid endless loops
    - textInput: don't double destroy TI

Sun Apr  9 06:49:43 UTC 2023 - Florian "sp1rit" <>

- Update to version 0.24.0:
  + A minor update with some small changes as usual. Brought to you
    by Yours Truly.
  + New features:
    * Feat: add initial class/title to hyprctl clients
    * LS: add blur and ignorezero rules
    * LS: support address: in layerrules
    * Meson: add rdynamic ld flag
    * config: add misc:suppress_portal_warnings
    * crashReporter: add hl ver
    * debug: added manual_crash
    * feat: add debug:enable_stdout_logs
    * feat: add forcergbx rule
    * feat: add pretty notifications
    * hyprctl: add notify
    * meson: add pango deps
    * notifs: add ICON_OK to icons
    * plugin api: add addNotificationV2
    * plugins: Add an API entry for finding functions by name
    * plugins: mark getFunctionAddressFromSignature deprecated
  + Fixes:
    * Fix crash in CConfigManager::parseKeyword (#1983)
    * Fix nix build options
    * Fix some typos (#1907)
    * Fix swiping onto a new workspace with multiple monitors. (#1971)
    * Input: fix always_follow_on_dnd
    * LS: fix support for legacy blurls
    * Misc FreeBSD fixes (#1926)
    * Renderer: fix dim easing
    * config: fix long variables being substrd
    * dpms: fix key_press_enables_dpms
    * dpms: fix keyboard dpms
    * fix: a fullscreen bug. (#1821) (#1831)
    * groups: fix moving between displays
    * input: fix click-to-refocus not working on loose
    * input: fix minor issue with holding focus
    * keybinds: allow code: prefix
    * monitors: fix segfault on non-unsafe remove
    * monitors: fixes to unsafe mode
    * popups: fix heap-use-after-free
    * screencopy: fix crash
    * screencopy: fix incorrect resource error post
    * screencopy: fix read on incorrect monitor render
    * screencopy: minor fixes for damage_ring
    * shaders: fix missing discardAlphaZero
  + Other:
    * Better and more secure argument parsing, and code reformatting (#1976)
    * Feat: Introduce render_ahead_of_time (#1863)
    * Focus: warp cursor on movewindow
    * Hyprland Screencopy impl (#1800)
    * LS: don't try to get rules on non-existent ls
    * compositor: adjust xdp error cases
    * config: default manual animations to false
    * config: default no direct scanout to true
    * config: improve ux on workspace and transform
    * config: make default config use hyphenated dev names
    * core: remove old redundant shutdown stuff
    * crashReporter: try $XDG_CACHE_HOME before $HOME (#1920)
    * dbus: don't update vars in nests
    * debug: allow manual crash from hyprctl
    * debug: minor improvements to manual crash
    * debug: unbreak debug builds
    * docs: update crash report dirs
    * docs: update issue guidelines for asan env
    * events: guard output in change
    * examples: pull correct wlr dirs in example plugin
    * hyprctl: ignore null output monitors
    * input: don't overset resize icons on drag
    * input: don't set icon on held buttons without a drag
    * input: hold focus on mouse buttons
    * input: ignore constraints on touch
    * internal: comply to nofocus on vectorToWindow
    * internal: don't remove x11 children on parent remove
    * internal: listen to output.damage events
    * internal: make togglefloat better visible on small size deltas
    * internal: migrate to damage_ring
    * internal: release buttons on unmap
    * internal: rename ensureDPMS to ensureMonitorStatus
    * internal: wrap wlr surfaces (#1822)
    * keybinds: allow MOD1 as an alias of ALT
    * keybinds: improve movefocus on fullscreen
    * keybinds: remember last workspace on focusmonitor
    * layer: allow focus on top/overlay surfaces without a window
    * log: Move stdout log disabling to the end of init
    * log: log wlr logs to stdout
    * logs: disable stdout after init
    * monitors: don't refocus on apply rule
    * monitors: guard output in damageSurface
    * monitors: guard output when read
    * monitors: guard scale in onConnect
    * monitors: more guards for safety
    * monitors: remove from monitors on unsafe
    * monitors: update surface outputs on recover from unsafe
    * notifs: use empty color for auto
    * output: handle needs_frame
    * plugins: use new lookups in example
    * render: plug missing software cursor unlocks
    * renderer: don't use simple rect on alphazero stencil
    * renderer: go back to rendering layers without reverse
    * screencopy: allow on legacy renderer
    * secret: removed Herobrine
    * subsurfaces: avoid reading destroyed surfaces
    * subsurfaces: guard node's surface
    * surface: set to nullptr after destroy()
    * swallow: move swallowed on workspace change
    * swipe: block on locked session
    * switches: do not fire on no change in toggle
    * toplevelExport: honor overlay_cursor
    * window: unassign surface on unmap
    * windowrules: allow monitor by str
    * windows: only connect unmap when mapped
    * workspaces: preserve pin on moves

Wed Mar 15 16:18:46 UTC 2023 - Florian "sp1rit" <>

- Update to version 0.23.0beta:
  + A minor update after a short wait as usual, brought to you by
    the one and only.
  + Notable changes
    * Your wrappers have been deprecated by the new env keyword.
    * A powerful plugin system has landed. See the wiki
    * zwp_text_input_v1 support has landed for supporting IME under
      electron wayland.
  + New features:
    * Add env to example cfgs
    * Add option to disable/enable mouse window dragging animations (#1658)
    * Added center orientation to master layout (#1642)
    * Added decoration reserved area
    * Added mouseButton event
    * Added mouseMove event
    * Added moveintogroup dispatcher
    * Added moveoutofgroup dispatcher
    * Dwindle: Added default_split_ratio
    * add desc: to getMonitorFromString
    * add env dbus opt
    * add env keyword to cfg
    * add log tail to crash reports
    * add mfact setting for master layout (#1666)
    * add mouse_left _right
    * add toggle group lock
    * added a lockgroups dispatcher
    * allow blurls by address
    * blurls: fix address substr length
    * config: add key_press_enables_dpms
    * fix mfact not applying to addmaster (#1715)
    * groups: add deco on moveIntoGroup
    * Plugin System (#1590)
  + Fixes:
    * Bezier: Fix incorrect binary search in bezier approx
    * Buffer overflow fix (#1707)
    * Compositor: fix crash on exit
    * Fix fatal aborts with X11 OR windows
    * Fix plugin argument-less hyprctl calls (#1723)
    * Fix plugin config breakage (#1687)
    * Mirrors: minor fixes
    * Opengl: Fix forcefully setting missing time prop to final shader
    * Plugin Hooks: fix calls to %rip offsets
    * Plugin Hooks: fix original bytes on %rip accesses
    * blurls: fix address substr length
    * fix bezier step approx
    * fix changegroupactive back
    * fix credentials of invalid surfaces
    * fix cursor image on drag not resize
    * fix cyclenext on empty focus
    * fix mfact not applying to addmaster (#1715)
    * fixup constraint snapping on no hint
    * groups: fix fullscreen behavior with groups
    * ime: fix panels overflowing on corners
    * input: minor fixes for tiv1
    * minor fixes to X11 configure/or handling
    * minor fixes to touch handling
    * tiv1: minor fixes for crashes
  + Other:
    * Allow decos to request interactivity
    * Allow environment in config
    * Conform to X11 OR surfaces wanting focus
    * Convert reverse iterators to ranges
    * Don't set surface cursors for overriden
    * Draw HyprError on the last monitor
    * Enable manual anims by default
    * Events: Avoid sending std::nullptr_t in keyboardFocus
    * Include unmapped and hidden windows in hyprctl clients
    * Initialize priority managers before server init
    * Mirrors: remove accidentally leftover logs
    * Move AnimationManager::tick() to an event loop
    * Nix: move dependency overrides inside wlroots-hyprland call
    * Optionally expose time to screen shaders (#1700)
    * Readme: update to mention plugins
    * Remove useless rax preserve across callq
    * Renderer: Nuke onWindowResize{start/end}
    * Reset cursor to pointer on focus on interactable deco
    * Resize on border icon bug (#1608)
    * Revert small incorrect change to dragging
    * Simplfy framebuffer erasing in cleanupFadingOut
    * Unload plugins on compositor cleanup (#1662)
    * Up the bezier bake count
    * Update the debug overlay
    * allow focus to grouped windows
    * bugifx: updated urls poiting to old wiki pages (#1738)
    * config: explicitly use environ(7) after b03c897 (#1708)
    * crashReporter: remove inconsistent log from crash reports
    * deny configure requests on drag
    * dispatchers: disallow togglesplit on fullscreen
    * dispatchers: remember named workspaces in prev
    * don't snap on empty hint
    * generate coredumps on sigabrt too
    * ime: account for text height in popup calcs
    * input: text-input-v1 support (#1778)
    * layoutmgr: don't reenable layout on unchanged layout
    * make window reserved area less stupid
    * master: better cycle
    * movefocus: Set new workspace as active when focusing new monitor (#1640)
    * nuke cursorSI due to crashes
    * nuke unmanagedx11 vector
    * opengl: use a passthru shader for final wlr copy
    * remove old unused animation cfgs
    * reset signal handlers in unrecoverable
    * systemd: expand sysd import env script
    * unblock pure wayland compiles
    * update dbus env on exec-once dispatches
    * update decos on anim values update
    * update license on main branch (#1604)
    * use .txt for crash reports
    * use XCURSOR_SIZE for internal cursor size
    * use corner cursors on resize (#1638)
    * use sans for fonts instead of noto sans
    * xwl: don't try to get unmanaged titles
  + What's Changed
    * update license on main branch by @o69mar in #1604
    * Resize on border icon bug by @horriblename in #1608
    * use corner cursors on resize by @fufexan in #1638
    * movefocus: Set new workspace as active when focusing new monitor by @RyanDwyer in #1640
    * Added center orientation to master layout by @sharkusk in #1642
    * [WIP] Plugin System by @vaxerski in #1590
    * Add option to disable/enable mouse window dragging animations by @DashieTM in #1658
    * Unload plugins on compositor cleanup by @Duckonaut in #1662
    * Fix plugin config breakage by @Duckonaut in #1687
    * Optionally expose time to screen shaders by @scorpion-26 in #1700
    * add mfact setting for master layout by @hillyu in #1666
    * Buffer over-read in removeBeginEndSpacesTabs() by @opsuu in #1707
    * config: unbreak on BSDs due to undeclared environ by @jbeich in #1708
    * fix mfact not applying to addmaster by @hillyu in #1715
    * Fix plugin argument-less hyprctl calls by @Duckonaut in #1723
    * bugifx: updated urls poiting to old wiki pages by @asbachb in #1738
    * [WIP] text-input-v1 support by @vaxerski in #1778
- Dropped: wlroots_fix_ia86.patch. Included upstream

Fri Feb 24 17:26:55 UTC 2023 - Florian "spirit" <>

- Added: wlroots_fix_ia86.patch. This allows compiling hyprland on
  ia86 again. Can be dropped once hyprland updates wlroots to any
  commit that has 59acc697 in it's history.

Tue Feb 21 00:13:30 UTC 2023 - Florian "spirit" <>

- Update to version 0.22.0beta:
  + A minor update after a short wait, brought to you by Yours Truly.
  + Breaking changes
    * ->
    * misc:no_vfr -> misc:vfr. bool, heavily recommended to leave at
      default on. Saves on CPU usage.
    * misc:vrr -> Adaptive sync of your monitor. 0 (off), 1 (on),
      2 (fullscreen only). Default 0 to avoid white flashes on
      select hardware.
  + New features:
    * Add vrr to hyprctl monitor (#1560)
    * Added a crash reporter
    * Added an Event Hook System (#1578)
    * Added execr
    * Added support for layoutmsg params and added the param
      'newfocus' for 'swapwithmaster' and 'focusmaster' (#1522)
    * add a minimize ipc event
    * add misc:mouse_move_focuses_monitor
    * add missing xwayland stub
    * add prev to getWorkspaceIDFromString
    * added activewindowv2
    * libinput: add tap_button_map (#1495)
    * move no_vfr to vfr and add vrr
  + Fixes:
    * Fix VRR JSON output in hyprctl monitors (#1562)
    * Fix some issues with a lost focus of the maximized window
      after using swapwithmaster in fullscreen mode (#1524)
    * fix compile for single_pixel_buffer_v1
    * fix crash with libc++ in appid
    * fix group data in hyprctl
    * fix json output in hyprctl animations
    * fix legacy system call to create hypr dir
    * fix quick start link
    * fix urgent hint order in code
    * fix warn
    * fix(hyprctl): allow dispatcher to have no args (#1464)
    * fixup LS scaling impl
    * fixup backtrace curpath
    * fixup stutter in rendering with toplevel_export
  + Other:
    * Allow to disable X11 backend separately from Xwayland after
      5a750b4 (#1445)
    * Generate symbol info in release for crash reports
    * Get active VT via ioctl instead of sysfs after e90c5c6 (#1448)
    * Group/Tab Rework (#1580)
    * Implement ext-session-lock-v1
    * Only use true/false in default config to reduce confusion
    * Resize on border (#1347)
    * Simulate mouse movement on unmap of popups and subsurfaces
    * Unbreak CrashReporter on FreeBSD (#1589)
    * Unbreak build with libc++ (#1457)
    * Update CMakeLists.txt (#1514)
    * Update blurriness of layersurfaces after hyprctl keyword
      blurls (#1493)
    * abort instead of exiting on sigsegv
    * adjust crash report paths
    * bring back dynamic ls geom updates
    * clear focus on failed unlock attempt
    * clear focus on lockscreen refocus
    * conform to unmanaged X11 activate requests
    * don't alter LS geom on unmap
    * don't loop border anim on disabled
    * enable UV calcs for all surfaces
    * enable single_pixel_buffer_v1
    * err on invalid transform in monitor cfg
    * explicit config path for autoreload config #1423 (#1494)
    * ext_workspace_unstable: send done after output_enter when
      wl_output is bound late (#1481)
    * ext_workspace_unstable: send output_enter when wl_output is
      bound late (#1480)
    * feat: border angle animations (#1469)
    * focusCurrentOrLast dispatcher (#1545)
    * force monitor focus on refocus
    * ignore VR headsets (#1555)
    * ignore damage on hidden windows in animationmanager
    * ignore hidden in allfloat
    * improve VRR state checking with updates to mosthz
    * make a null surface focus reset lastfocus
    * meson: build in release by default
    * minor adjustments to xwayland positioning
    * notify of fractional scale for LS-es
    * place sessionlock surfaces at correct coordinates
    * properly clamp size in dragging floating corners
    * properly meld groups together
    * properly rid of whitespace chars from cfg lines
    * refocus on monitor attach
    * remove constraint recheck log
    * render lockscreen in fullscreenworkspace
    * reset focus on lock surface destroy
    * reset layout-set render vars on floating
    * rethink visible flag in animmgr
    * scale the opaque region in blurring
    * simplify nullcheck in minimize
    * unset hidden at grouped remove
    * update issue guidelines for crash reports

Sat Jan 28 17:03:24 UTC 2023 - Florian "spirit" <>

- Update to version 0.21.0beta:
  + Minor update after a short while.
  + New features:
    * Add "on" and "off" for the bind of switch (#1342)
    * Add hyprctl animations
    * Add tablets calibration matrix for dynamic rotation with
      2-in1/tablet PC usage (#1319)
    * add an urgent event
    * add fakefullscreen prop to windows in hyprctl
    * add hyprctl setprop
    * added binds:focus_preferred_method
    * added hyprctl seterror
    * added layer rules
    * added make model and serial to hyprctl monitors
    * added misc:hide_cursor_on_touch
    * feat: add focus to urgent or last window (#1402)
    * feat: dispatcher, add workspace renaming (#1336)
    * fix destroying addon in fractional scale impl
  + Fixes:
    * fix clamp in monitor relative
    * fix cmake systemd header detection
    * fix color typo in hyprerror
    * fix cutting geometry on surfaces spilling out
    * fix deprecated-copy warn
    * fix destroying addon in fractional scale impl
    * fix dimaround with transformed displays
    * fix focus history on workspace jumps
    * fix font color in hyprerror
    * fix rounding exceeding max in single-line errors
    * fix up log types
    * fix: cursor changing on window move and resize (#1371)
    * fix: hyprland crashing wenn moving window -1 from first
      monitor (#1419)
  + Other:
    * better log wl socket adding and use auto if failed
    * Don't ignore previous maximise on defullscreen req (#1393)
    * Implement urgency hint for workspaces (#1379)
    * Pin dispatcher for a specific window (#1340)
    * allow preblur for opaque surfaces if alpha not 1
    * better error handling around getMonitorFromString
    * change placement of isSwitchingToPrevious (#1388)
    * damage monitor on moveactive
    * damage monitor on stack rotations
    * damage on border change
    * describe layers in hyprctl layers
    * don't set cursor when timeout reached
    * dump monitor data after setting rules
    * escape json strings in hyprctl binds
    * expand region twice in blur damage
    * handle fullscreen requests on maximized windows
    * ignore null ls-es in cleanup
    * make hyprerror follow fadein anim
    * master layout: remember size & pos of floating windows on
      fullscreen 1 (#1374)
    * move window to top if floating activate
    * recalculate layout on deco or border change
    * release mouse buttons on map from LS
    * remove restrictions from setprop for ints
    * repaint on dynamic decoration keywords
    * replace java envvar
    * reset dragged window on failed begin
    * scale hyprerror
    * send cursor updates on touch move
    * send enter for IME popups
    * small hyprerror revamp
    * update animated deco values after setprop
    * update wlroots dep
    * warp cursor on login to center
    * wp-fractional-scaling-v1 impl (#1373)

Sun Jan  8 18:04:51 UTC 2023 - Florian "spirit" <>

- Update to version 0.20.1beta:
  + Minor patch mostly to fix some crashes with overshot animations.
  + New features:
    * added hyprctl binds
  + Fixes:
    * fix crashes and bug wiki link (#1333)
    * fix crashes on monitor ls remove
    * minor fixes for fakefullscreen
    * remove color rassert to fix overshot beziers
  + Other:
    * Build: use props file for versioning
    * clamp a instead of asserting
    * removed Herobrine

- Changes from version 0.20.0beta:
  + A small update after a short wait brought to you by Yours Truly™
    et al; Fun stuff, as usual.
  + New features:
    * Add 'exact' option for 'splitratio' (#1245)
    * Add sane permissions for /tmp/hypr
    * Added clang format (#1239)
    * Added make configdebug
    * add auto scale
    * add disabling keyboards
    * add touchdevice to devicevalue
    * added dim_special
    * added dimaround
    * added fakefullscreen
    * added maximize windowrule
    * added workspace_swipe_numbered
  + Fixes:
    * Fix cycleprev bug introduced in 46891b1 (#1213) (#1242)
    * Fix focus not changing on (empty) workspace change (#1243)
    * fix blur damage spam on no blurred windows
    * fix damage issues with dimaround unmap
    * fix double remove in destroyKeyboard
    * fix dynamic monitor disables corrupting pmosthz
    * fix for gap in master layout orientation right #1171 (#1260)
    * fix group bar color calc
    * fix mouse resize on master orientations
    * fix restack in xwayland stubs
    * fix stupid typo
    * fix workspace special rules
    * minor xcursor and scale fixes
  + Other:
    * Allow floats in % rules
    * Drop Pango (unused) (#1251)
    * Drop X11 headers (unused) (#1252)
    * Make libinput tap-and-drag configurable (#1267)
    * Normalize color storage
    * Revert "Send initial focus to X11 type dialog"
    * Send initial focus to X11 type dialog
    * account for dimAround in fullboundingbox
    * adjust medium ppi values
    * allow binding tablets to outputs
    * clarify layout enum
    * clean draggedwindow in dragend
    * destroy LS-es on disconnected monitor
    * do not overwrite existing hyprland.desktop (#1228)
    * downgrade wlroots due to issues
    * get window under cursor in kill
    * ignore dim when pass popup
    * ignore focus to empty input region ls-es
    * ignore self in candidate floating
    * ignore silent workspace rules to same workspace
    * log more in group creation
    * mark blur dirty on dynamic blur keywords
    * move setActiveMonitor backup later in onDisconnect
    * normalize gradients and denormalize in groupbar
    * prevent moving to invalid workspaces
    * refocus on special move
    * remember master width on master close
    * remember pos and size across fullscreen moves
    * remember size and pos on fullscreen 1
    * remove damage_entire_on_snapshot
    * remove main_mod
    * remove useless log
    * render overlay layers in reverse
    * render pinned windows above floating separately
    * respect ls protocol by forcing kb focus to kb interactive top
      and overlay
    * s/pkgs.system/pkgs.hostPlatform.system/g
    * sanity check workspaces after enabling mirror
    * set created over fullscreen in movetotop
    * simplify workspace sanity checks
    * support gradients in dwindle group colors
    * touch up the clang format and format all files
    * update debug coredump instructions
    * update readme images
    * update wlroots dep
    * use auto scale in default cfgs
    * use auto scale in fallback rule
    * use curves for special dim anim
    * verify lastmon status on connect

- Added "jq" to builddepends, as it it now used to calculate the
  current version.

Mon Dec 12 19:06:36 UTC 2022 - Florian "spirit" <>

- Update to version 0.19.2beta:
  + New features:
    - Added toplevel handle sharing
    - add changefloatingmode event
    - add missing c_str in debug log
    - ensure mapped state in addViewCoords
  + Fixes:
    - fix drag resizing on special ws-es
    - fix memory safety in getWindowFromSurface
    - fix minor issues with move focus and follow mouse 0
    - fix sharing scaled windows
    - fix string escaping in CMakeLists.txt
    - fix up relative monitors
    - minor focus fixes with LS-es and moving windows
  + Other:
    - do not reject drags on visible windows over fullscreen
    - find a default workspace smarter
    - handle constraint cursor hints better
    - optimize m+- and e+- workspace opts
    - sort valid ws-es in relative
    - update hyprland-protocols
    - use anim callbacks and don't spam config resets in drag

Fri Dec  9 19:11:18 UTC 2022 - Florian "spirit" <>

- Update to version 0.19.1beta:
  + Minor changes including bumping the wlroots ver, fixing a memory
    leak and some issues with moving fullscreen windows.
  + New features:
    - add failsafe for dwindle windows
    - added nomaxsize rule
  + Fixes:
    - fix lost windows clogging up memory
    - fix up moving to special workspace
    - minor fixes to special workspace behavior
    - minor toplevel sharing fixups

Tue Dec  6 21:05:39 UTC 2022 - Florian "spirit" <>

- Update to version 0.19.0beta:
  + New features:
    - Add nofullscreen to windowrules (#1107)
    - Add option for retrieving first empty workspace (#1085)
    - Added handling more special workspaces
    - Added screen shaders
    - Fix incorrect layout positions in mirror re-add
    - add scroll_button libinput opt
    - added blur_xray
    - added border gradients
    - added hyprctl switchxkblayout
    - Implement window sharing with the hl toplevel export proto (#1179)
  + Fixes:
    - Fix a compiler warning (#1124)
    - Fix cmake error when using clang (#1009)
    - Fix incorrect layout positions in mirror re-add
    - Fix minor issues with mirrors
    - Fix swiping on the first workspace going to the last (#1067)
    - Fix wrong layout recalculate if statement (#1167)
    - fix AA on borders
    - fix border inner offset in shader
    - fix crash in blurls remove
    - fix crash in setActiveMonitor null
    - fix crash with invalid frag dynamic shaders
    - fix decorations missing after no_gaps_when_only toggle floating
    - fix events in changeworkspace with bound ws-es
    - fix fadeout with animated border
    - fix group border oversaturation
    - fix invisible windows on moving fullscreen out
    - fix master resizes all
    - fix minor issues with blur w/o new optim
    - fix minor issues with blur_new_optimize
    - fix shader destroy id unset
    - fix transformed border thickness
    - fix up the border shader
    - fix warning
    - minor fixes for mirrors & log more monitor events
    - minor monitor code fixups
    - monitor rule fixes
    - use highp for pixcoord to fix nvidia border issues
  + Other:
    - Render focused window at last (#1060)
    - Reset callbacks on remap
    - Setting wayland environment variables at startup (#1045)
    - Unify rounding shaders
    - Update wiki link in manpage (#1144)
    - Use internal device naming for Hyprctl devices (#1174)
    - allow 360 degrees of freedom in gradients
    - avoid duplicate device names
    - avoid header clashes in make all
    - avoid using wayland-0 as a socket name
    - better capability handling
    - block surface feedback on window sharing
    - blur xray for layers (#1158)
    - check for special workspace open in attemptDirectScanout
    - convert bordercolors to GradientValueData correctly (#1122)
    - damage monitor on group switch
    - damage windows after switch
    - default blur new optimizations to 1
    - don't attempt rendering on begin failure
    - don't change alpha on special anims
    - don't focus back after dnd on follow mouse 1
    - don't initial focus on LS keyboard grab
    - don't send motion events to lock constraints
    - don't set AS in onConnect
    - find base surface if no subsurface found in ls
    - find floating windows below closed one
    - ignore alpha when sharing window
    - improve constraint handling
    - make focus/swap master layoutmsgs two-way
    - minor changes to unsafe state handling
    - more memory safety around onDisconnect
    - optimize border shader
    - optimize data feeding to gradient renderer
    - override force opaque rule on keybind
    - recalculate layout only when needed on dynamic keywords
    - reload shader on dynamic shader keyword
    - remove global var
    - remove idiotic guard in processMouseDownNormal
    - remove redundant strval_empty checks
    - remove resize transitions
    - reset m_bEmptyFocusCursorSet on workspace switch
    - respect no_gaps_when_only in fullscreen 1
    - return full monitor box for fullscreen windows in idealBB
    - schedule frames and reloads on session re-activate
    - show groupings and swallowing in hyprctl (#1159)
    - skip covered windows on fullscreen workspaces in getWindowInDirection
    - unify setting of the active monitor
    - use gradients in default configs

Wed Nov 16 22:07:56 UTC 2022 - Florian "spirit" <>

- Updated to version 0.18.0beta:
  + New features:
    * Add an idleinhibit windowrule
    * Add bordercolor windowrule (#992)
    * Add focusmaster dispatcher (#942)
    * Add keyboard led update after keys/mod update
    * Added creating / destroying outputs on a multi-backend + headless backend
    * Added decoration:shadow_scale
    * Added direct scanout
    * Added exec rules
    * Added multiple master layoutmsgs
    * Added resize transitions
    * Added resizing individual master windows
    * add more wlroots flags for faster compile
    * add move cursor windowrule
    * added monitor cycling
    * added toggle for drm scanout flags
    * added unset rules
    * added workspace_swipe_forever
  + Fixes:
    * Fix crashes with DS and mirrors
    * Fix missing focusedmon event on focusmonitor dispatcher
    * Fix resize transitions on multimon + transformed
    * Minor fixes for virtual input devices
    * Multiple animation optimization and xwayland wine fixes
    * Nix HM: Fix invalid escapes
    * fix extents in shadow deco
    * fix fullscreen maximize size
    * fix invalid master slave pos calc on y != 0
    * fix issues with direct scanout's lack of surface frame feedback
    * fix master window finding on closed
    * fix missing stub for xwayland
    * fix ordering in mouse connect
    * fix passing input to constrained windows without relative
    * fix raw exec in configmanager
    * fix relative protocol paths
    * fix safety over ls outputs
    * fix shadow extent & offset calculations
    * fix slide calcs for windows outside the viewport
    * fix swipe on 2 detached workspaces
    * fix the damageBox in damageMonitor
    * fix trailing comma in hyprctl activewindow
    * fix unregistering avars on sethidden
    * minor fixes for follow_mouse 3
    * minor loose focus fixes
    * resize transition fixes + default transitions to false
  + Other:
    * Allow arguments to hyprctl dispatch exec commands. (#990)
    * Dispatcher to center floating window (#961)
    * Nix HM: prevent race condition between dbus and systemd
    * Revert "Set child stdout and stderr to /dev/null (#1000)"
    * Set child stdout and stderr to /dev/null (#1000)
    * apply some rules dynamically when state of window changes (#1020)
    * automatically update dbus environment on start
    * constraint focus simplifications
    * deprecate general:damage_tracking
    * don't update the env in session-less hl
    * guard empty str in isNumber
    * guard empty str in removeBeginEndSpacesTabs
    * guard header windows in layout messages
    * guard lastwindow in circlenext
    * handle transforming displays in outputMgr
    * helpers: implement getPPIDof on BSDs (#972)
    * ignore constraints on exclusiveClient create
    * include utility in defines
    * meson: explicitly specify path for find(1) (#971)
    * meson: use gl instead of GL
    * move no_direct_scanout to misc
    * notify idle on touch down
    * possible crash when current workspace does not exist (#1023)
    * prevent double-registering of avars
    * remove ensureFDsValid, legacy
    * remove old comments
    * remove redundant check in CShader
    * remove redundant includes
    * remove spammy ime logs
    * remove spammy logs for DS
    * render the debug overlay only on visible monitors
    * set cursor to hand1 when moving a window
    * streamline hypctl output of windows (#983)
    * update window values after map finish
    * use goal values in changeWindowFloatingMode
    * use lld instead of i in hyprctl getopt for accurate int reads

Sun Oct 30 14:38:58 UTC 2022 - Florian "spirit" <>

- Updated to version 0.17.0beta:
  + New features:
    * Add windowrules for noblur and noshadow (#884)
    * Added hyprctl cursorpos
    * add 10bit support to displays
    * add disabling pointer devices
    * added swipe create new
    * allow glob wildcard in addreserved
    * Allow 100%- for move rule
    * allow # escaping in config
  + Fixes:
    * Fix self-noding in changeWindowFloatingMode
    * fix animate_manual_resizes with moves
    * fix crash in event manager on hangup
    * fix debug nest black screen
    * fix default 0 in box passing test
    * fix maximized windows not hiding tiled
    * fix minor anim issue with swipe new
    * fix minor focus oopsie
    * fix refocus on last window
    * fix silent + size windowrules
    * fix swipe with fullscreen maximized
    * minor fix for swipes from empty workspaces
    * minor fix to silent ws rules
    * minor fixes for xwayland refocus
    * minor swipe on new fixes
    * minor workspace rule parsing fixes
  + Other:
    * CMakeLists.txt: use sh instead of bash
    * Improve hyprctl
    * No xwayland overhaul (#920)
    * Rework candidate finding on close window
    * Rework workspace rules
    * T1C: window dance compat
    * Transpose matrices on LEGACY_RENDERER
    * allow cyclenext on null focus
    * allow nofocus + workspace silent
    * always report sizes after a window unmap
    * avoid applying offset twice in onConnect
    * avoid creating bound WS-es in moveWorkspaceToMonitor
    * avoid layout changes when unnecessary in applyMonitorRule
    * bump xdg ver to 5
    * constrain mouse on focus change
    * default focus_on_activate to false
    * disable adaptive sync with no_vfr off
    * don't set custom mode in change
    * ensure VRR for current display only in onConnect
    * handle activate requests
    * ignore pointer constraints in touch
    * lower IME errors to WARNs
    *,CMakeLists.txt: use sh instead of bash
    * use sh instead of bash
    * meson: Fallback to 'opengl' when 'GL' is not found.
    * more safety around shutting down and mouse movements
    *  more safety for focus requests
    * properly find the constraint window
    * properly scan for subsurfaces in fullscreen input refocus
    * remove redundant check
    * render layer snapshot without blur
    * respect nofocus in candidate searching
    * respect wsbind in workspace silent rules
    * revert output smart layout reporting
    * set lastmonitor in onDisconnect
    * unify LS unmap focus
    * unrestrict hyprctl message size

Mon Oct 17 21:02:05 UTC 2022 - Florian "spirit" <>

- Updated to version 0.16.0beta:
  + Thanks Brodie Robertson for the coverage!
  + New features:
    * Add additionnal matrices and rename config var
    * Add debug coredump instructions (#812)
    * Add input:touchdevice:td_rotation config
    * Add input:touchdevice:transform config
    * Add support for rgba() and rgb() colors in the config
    * a bit more default config nice addons
    * add PKGBUILD to ignored files
    * add loose focus behavior
    * add maxsize window rule
    * add touch binding to output
    * added bringactivetotop dispatcher
    * fix invalid json output by adding a missing comma
  + Fixes:
    * Nix modules: fix environment variables
    * fix crash in renderWorkspaceWithFullscreenWindow
    * fix invalid json output by adding a missing comma
    * fix windowsOut disabled with fadeOut enabled
    * simplify shouldRenderWindow and fix one cond
  + Other:
    * check for same workspace in workspace rule
    * default & example config overhaul
    * don't recalc offset on monitor reload offset auto
    * ignore OR windows' size hints
    * remove old log
    * rename transform in DC to touch_transform
    * rework focus system to be more safe and faster
    * set XCURSOR_SIZE if not set in init
    * set workspace name in previous
    * unsetenv on no XWayland
    * use size hints when available in xwayland default geom
    * use static for transformation matrices

Tue Oct 11 10:20:17 UTC 2022 - Florian "spirit" <>

- Updated to version 0.15.3beta:
  + Very small update to fix black screens on some hardware.
  + Other:
    * Change matrixProjection function stop use matrixFlip180
    * Let openGL transpose the matrixes for us.
    * Replace $(nproc) with $(shell nproc).
    * Simplify matrix calculations
    * Update wlroots

Sun Oct  9 22:32:20 UTC 2022 - Florian "spirit" <>

- Updated to version 0.15.2beta:
  + Rather minor update, some bugfixes and minor features.
  + New features:
    * Added clipping support, clip windows on slide anim
    * add open/close layer events
  + Fixes:
    * fix a VRAM leak in destroyMonitorResources
    * Transform the box data send to texture shaders.
  + Other:
    * Check earlier if pixman regions are empty.
    * Check earlier if pixman_region is empty in some places.
    * better subsurface handling on unmaps
    * ensure texture safety in clearWithTex()
    * inverse_transform the box in renderRectWithDamage.
    * make swipe respect slidevert
    * offset floating windows out of bounds on ws anims
    * release all fbs in destroyMonitorResources
    * swallow improvements

Thu Oct  6 23:06:29 UTC 2022 - Florian "spirit" <>

- Updated to version 0.15.1beta:
  + Critical update: 0.15.0beta has a defect due to an issue with
    wlroots making the GPU suffer a lot!
  + New features:
    * Add accel profile and scroll method
    * Add input:touchpad:scroll_factor
    * Add switch device handling and binds
    * add desc: to monitor rules
    * add dpms per output
    * add dpms status info in hyprctl
    * add left_handed config for input
    * add minsize rule
    * added a noanim rule
    * additional logic for identical pid swallowing
  + Fixes:
    * Fix compiler warnig comparing signed and unsigned integers.
    * Fix compiler warnings.
    * Fix getDeviceInt string arg "input:left_handed"
    * Merge branch 'fix_rounding_in_size_changing_windows' into
    * Merge branch 'main' into fix_rounding_in_size_changing_windows
    * Merge branch 'make_TTY_unsigned' into fix_left_handed
    * fix naming when workspace back and forth
    * fix string corruption in hyprctl monitors -j
    * fix tty switch freeze
    * fix workspace previous with multi-mon ws moves
    * fixes to window swallowing with same pid
    * fixing your shit.
    * revert wlroots ver to fix critical gpu issue
  + Other:
    * Avoid 38 files to compile every time a shader is modified.
    * Compare PLASTWINDOW & PWINDOWTOCHANGETO m_iMonitorID's instead
      of PWINDOWTOCHANGETO->m_iMonitorID &
    * Cut the number of pixels that call length() in half.
    * Don't pass bottomRight to textureShaders compute it within.
    * Even less branching (taken more or less from the border
    * Make the rounding texture shaders smaller and more efficient.
    * Merge branch 'main' into rework_rounding_shader
    * Remove texcoord from QUADFRAGSRC.
    * Remove unused ignoreCorners variable from texture shaders.
    * Rework rounding shader
    * Send absolute screen coordinates to texture shaders.
    * focusedmon event check change
    * ignore VT switches to current vt
    * log GPU info for debugging
    * map touch to the correct output
    * monitor desc improvements
    * more checks in pid gathering
    * more monitor checks for shutdown:
    * reset sigmask on fork
    * return true on vt switch keysyms to avoid printing stuff
    * texcoord is unused in the rounding part of the textureshaders.
    * update wlroots dep
    * use goalv in clientsRequest
    * use vectorToWindowIdeal in mouse binds

Tue Oct  4 08:28:42 UTC 2022 - Florian "sp1rit" <>

- Update to version 0.15.0beta:
  + Enjoy your CPU usage when idle going down by as much as 95% in
    some cases and much more!
  + New features:
    * Add "highest" mode to Monitor for autoconfiguration.
    * Added window swallowing
    * add case for empty strings in isNumber
    * add fullscreen info to clients request
    * add refreshrate or resolution preference
    * added high to monitor resolution
  + Fixes:
    * Fix #711
    * It wasn't a problem with the bug i tried to fix.
    * Merge branch 'main' into fix_bordersize_again
    * Splash position fix
    * fix Hz Log
    * fix commas in free binds
    * fix crash
    * fix crash on dwindle splitratio alter on single group
    * fix custom rules on null modelist
    * fix ipc event missing on silent movetoworkspace
    * fix oopsies in rule code
    * fix silly mistakes
    * minor OR XWayland fixes
  + Other:
    * Change scaledBorderSize to int.
    * Replace clamp with max if there is no upper bound.
    * Scale border size in calculations of windows
    * Scale border size in window size pos calculation
    * Scale the border size, revert the window scaling according to
    * Scale the cairo matrix to fit the monitor dimensions.
    * Shift splash up if monitor has wider ratio than bgTexture.
    * Unify arg lists, allow for trailing spaces in args
    * Use double literals, don't cast a integer literal to double.
    * Use double literals, don't cast integer or float literals to
    * allow for pure workspace names in dispatchers
    * allow one less arg in bind
    * anchor to proper quad in floating resize
    * apply new node data to all group windows on close
    * change Preferred mode to use highest refreshrate
    * default pass_mouse_when_bound to 0
    * disallow pinning fullscreen
    * don't decorate on only no gaps
    * don't recalc pseudo on fullscreen
    * enter outputs for non-interactive ls-es too
    * focusable checks in nextWindow calls
    * guard event in maximize request
    * guard kb settings in xkb translation state
    * handle maximize toplevel request
    * include shaders only in opengl.cpp
    * optimize removing trailing spaces
    * optimize vector config value setting
    * overwrite wsbind rules on existing
    * remove empty line
    * remove more silly mistakes
    * remove polling from socket2, fully event based
    * remove redundant attrib setting
    * rewrite isNumber
    * scale border size in dwindle layout window sizes.
    * send a focusedmon event on focus change mon
    * support max in size rules
    * support more wlr_cursor events
    * update wlroots dep
    * use goalv in movetoworkspace
    * use the event data for determining maximize status in requests

Wed Sep 21 17:38:03 UTC 2022 - Florian "spirit" <>

- Update to version 0.14.0beta:
  + Breaking changes
    * main_mod has been deprecated.
      new syntax for mouse binds: (example)
  + New features:
    * Added monitor mirroring
    * add default speed to hyprctl devices mice
    * added misc:disable_autoreload
    * added window pinning
    * added wsbind
  + Fixes:
    * Various subsurface handling fixes
    * fix LS fading out on ws change
    * fix an unholy memory safety issue
    * fix animation issues with workspace silent
    * fix decos on pinned
    * fix fadeout on unmap fullscreen
    * fix focus follows mouse 0 event sending on wrong window
    * fix groupbar being wonk on scaled
    * fix groups with fullscreen
    * fix hyprland freeze when undocking from docking station
    * fix misc fullscreen issues
    * fix mouse binds being stuck
    * fix moving between fullscreen workspaces
    * fix pinned fade on fs
    * fix refocus on same workspace
    * fix special fullscreen
    * fix special workspace dispatcher logic
    * fix wonky focus on movetoworkspace
    * fix ws switching with LS opacity
    * minor code styling fixes
    * minor mouse bind handling fixes
    * minor swipe fixes
  + Other:
    * accept any case in binds
    * allow current in monitorfromstring
    * better cycling in fullscreen with pinned
    * better dwindle swapping with groups
    * disable enabling groups on fullscreen windows
    * disallow fullscreen pinned
    * disallow move/resize dispatchers on fullscreen windows
    * don't apply alpha to fadingOut on setWindowFullscreen
    * don't iterate over subsurfaces in unmap
    * export HYPRLAND_CMD for scripts
    * fade control for fullscreen action on windows
    * fullscreen animation en-nice-ment
    * guard invalid FB allocs
    * handle multi-ws swaps in layouts
    * handle touch devices internally as objects
    * hyprctl-nopoll
    * introduce new mouse binds in default and example cfgs
    * more forceRendering checks in shouldRenderWindow
    * mouse binds overhaul
    * only check for visible on xdg
    * prevent assert killing Hyprland after reenabling monitor
    * tick config after reload request
    * verify visibility of new geom in floating creation

Fri Sep  9 13:51:45 UTC 2022 - Florian "spirit" <>

- Update to version 0.13.1beta:
  + New features:
    * consistent output of window addresses
    * fix group decos on added windows
  + Fixes:
    * fix addreserved lag
    * fix group decos on added windows
    * guard drag in destroyDrag to fix a crash
  + Other:
    * more guarding in cleanup pid gathering
    * prevent missed surface size updates on fullscreen window close

Wed Sep  7 18:39:03 UTC 2022 - Florian "spirit" <>

- Update to version 0.13.0beta:
  + New features:
    * Added Xwayland and floating props to windowrulev2
    * Added windowrulev2
    * add lastwindow info to hyprctl workspaces
    * added a submap IPC event
    * added closewindow dispatcher
  + Fixes:
    * Fix some more crimes against humanity
    * fix a damage issue with transformed blur
    * fix a minor bug with no gaps when only and groups
    * fix blur on transformed displays
    * fix dwindle no gaps when only when dissolving a group
    * fix mouse focus not returning from a LS on follow mouse 0
    * fix no_gaps_when_only with a group
    * fix some minor crimes against humanity
    * fix splash positioning
    * fix transformed blur on new optimizations
    * fix up styling
    * fix wonky behavior with silent workspace rule
  + Other:
    * Update wlroots dep
    * damage drag on destroy
    * default rounding to 0
    * don't accumulate from virtual
    * escape json strings in workspaces lastwindow title
    * guard pFoundWindow in CInputManager under fullscreen
    * guard parent in X11TransientFor
    * guard psurface in activateSurface
    * guard unsafe state in unmap ls
    * optimize calls in toggleSpecialWorkspace
    * refocus on reserved area
    * remember last window on workspace
    * remove tiling node when invalid
    * sanity check on last window
    * send accumulated modifiers to surfaces
    * set last monitor and dont refocus in some cases
    * simplify code and update monitor on warp
    * simplify config monitor reloads and rearrange layers
    * unify monitor args
    * use activateSurface in unconstrainMouse
    * use lastMonitor in mapWindow
    * warp only on another monitor in changeworkspace
    * wrap lastwindow in quotes in hyprctl json

Tue Aug 30 19:23:22 UTC 2022 - Florian "spirit" <>

- Update to version 0.12.1beta:
  + New features:
    * Add HiDPI xwayland + wlroots patches (#591)
    * Added window dimming
  + Fixes:
    * finally fixed transformed snapshots
    * fix LS popup damage
    * fix dwindle groupbars
  + Other:
    * disable fullscreen and floating dispatchers on special
    * set last monitor on move focus dispatcher

Mon Aug 29 11:25:37 UTC 2022 - Florian "spirit" <>

- Update to version 0.12.0beta:
  + New features:
    * Add cleaninstall task
    * Nix: add nixConfig
    * add clean install for those who build from source
    * added a forceinput rule
    * added a specialWorkspace anim leaf
    * added a swapactiveworkspaces dispatcher
    * added an event for moving workspace
    * added swapnext
    * added swapnext and swapprev for master
  + Fixes:
    * fix device closing
    * fix fullscreen in moving ws
    * fix fullscreen on workspace rule silent
    * fix indents, change crit log to info
    * fix internal keybinds
    * fix logic in candidates on unmap
    * fix more indents, im sorry vaxry
    * fix parser in nested categories
    * fix segfault in inactive sessions
    * fix shadows on silent rule
    * fix silent workspaces with back and forth
    * fix styling in const ptrs
    * fix subsurface UV handling on oversized windows
    * fix window rules
    * fix xwayland config option for nix (#587)
    * fixes to swapnext logic on dwindle
    * minor damage fixes
    * minor fixes to the viewporter behavior
  + Other:
    * Allow passing the mouse as well in pass
    * Force wlroots to not send leave events in pass to XWayland
    * Multiple improvements to the shutdown procedure
    * Unfocus first on non-internal ws changes
    * Viewporter implementaion (#585)
    * allow specifying window for toggle floating
    * better find device cats
    * don't find a new candidate to refocus on unfocused unmap
    * don't focus silent windows
    * guard nullptr in unmap
    * ignore oversized popups' dims in global coords
    * implemented DRM leasing for VR headsets
    * modify exit behaviour a bit
    * move X11 transients to top on parent top
    * optimize options in dwindle
    * pass press and release events separately
    * ratelimit setting cursor
    * remove general:sensitivity from the default config
    * reset uv on invalid buffer source box

Tue Aug 23 21:43:17 UTC 2022 - Florian "spirit" <>

- Update to version 0.11.1beta:
  + New features:
    * added HYPRLAND_LOG_WLR envvar
    * added misc:float_switch_override_focus
  + Fixes:
    * IME Popup damage fixes
    * fix IME grab on multiple open native inputs
    * fix LS snapshot rendering logic
    * fix logic in fullscreen close candidates
    * fix minor refocus issue
    * fix oversized popup misalignment
    * fix up hyprctl dispatch
    * fix up keyword to accept spaced args
    * fix wlr logging
    * minor fix on unfocus on fullscreen workspace
    * minor fixes to candidate finding
  + Other:
    * always use /usr/share/ for wayland-sessions
    * clean up temp logic in snapshots
    * damage on force warp resize
    * destroy monitor resources on exit
    * doc: build man pages to repo
    * doc: install mapages
    * docs: install manpages with meson
    * don't refocus if candidate is last window
    * don't round popups
    * dropped deprecated gethostbyname check
    * fullscreen request only when mapped
    * gha: build man pages
    * improve compatability with older meson versions
    * move monitor damage to separate funcs
    * openSUSE patches
    * remove unintuitive candidate behavior
    * report sizes to all windows on fullscreen
    * use a custom logging func for wlr
- Dropped gethostbyname.patch, included upstream.
- Dropped old-meson.patch, included upstream.

Mon Aug 22 10:24:52 UTC 2022 - Florian "spirit" <>

- Update to version 0.11.0beta:
  + Breaking changes:
    * The SHIFT modifying behaviour in the config has been removed
        bind=SHIFT,exclam,movetoworkspace,1 # OLD
        bind=SHIFT,1,movetoworkspace,1 # NEW
      As an additional result of the above, for multi-layout users,
  + New features:
    * Add mapwindow, unmapwindow and movewindow IPC events
    * Add switching to previous workspace
    * add general:allow_workspace_cycles option
    * add general:workspace_back_and_forth option
    * add switching to previous workspace
  + Fixes:
    * fix a minor border issue
    * fix another edge case for fullscreen default windows
    * fix bug which allowed a switch to workspace ID -1.
    * fix crash
    * fix incorrect popup handling on oversized
    * fix retrieval of monitor
    * fix special workspace windows being xray with new optim
    * fix style conflicts and config + monitor retrieval
    * fix warn
    * minor activewindow and focus fixes
  + Other:
    * handle fullscreen pre-map
    * remove unused func
    * set new optimizations for blur in example configs
    * use a custom translation state in keybinds
    * warn about outdated keybind cfg

Sat Aug 20 22:27:43 UTC 2022 - Florian "spirit" <>

- Initial packaging
openSUSE Build Service is sponsored by