commit 59d1c400ce7e6b003984e84f8afc1aaaaa1cf98a493052a762dc1243e67250d4 Author: Florian Date: Sun Sep 8 23:30:31 2024 +0000 Update to version 0.43.0 OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/hyprland?expand=0&rev=89 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_service b/_service new file mode 100644 index 0000000..60f9368 --- /dev/null +++ b/_service @@ -0,0 +1,18 @@ + + + + https://github.com/hyprwm/Hyprland.git + git + hyprland + @PARENT_TAG@ + v(.*) + @PARENT_TAG@ + enable + + + + *.tar + xz + + + diff --git a/hyprland-0.41.2.tar.xz b/hyprland-0.41.2.tar.xz new file mode 100644 index 0000000..6c93a88 --- /dev/null +++ b/hyprland-0.41.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbf31acef7031076888e8b0891cbcf6093c6a08f9399735aecbbdd45ee3bb0ee +size 51587912 diff --git a/hyprland-0.42.0.tar.xz b/hyprland-0.42.0.tar.xz new file mode 100644 index 0000000..fcf1c6d --- /dev/null +++ b/hyprland-0.42.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ef6a30f5a68cea1171dd69e8bbe84a773c6a83b5d70e101c8318320a758b003 +size 51160524 diff --git a/hyprland-0.43.0.tar.xz b/hyprland-0.43.0.tar.xz new file mode 100644 index 0000000..b155d2f --- /dev/null +++ b/hyprland-0.43.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa2166f6e8d42f12674eec4698649113294ea3da41d2d9ddebf8a31adc833049 +size 51317448 diff --git a/hyprland.changes b/hyprland.changes new file mode 100644 index 0000000..faa388b --- /dev/null +++ b/hyprland.changes @@ -0,0 +1,4069 @@ +------------------------------------------------------------------- +Sun Sep 8 23:12:21 UTC 2024 - Florian "sp1rit" + +- Update to version 0.43.0: + + A new, big update brought to you by Yours Truly. + Many bugfixes, and new features, as always. + + New features: + - IPC: Add config descriptions (#7377) + - animations: add workspace in/out configs + - config: Add a variable to prevent groups from merging after + being dragged (#7650) + - config: Add a window rule to render while unfocused (#7582) + - config: Added default button mapping for xf86 keys (#7672) + - config: add exec-shutdown for running commands on shutdown + (#7683) + - core: add option to control which window to focus on close + (#7368) + - cursormgr: add a new setting to sync gsettings (#7253) + - env: Add HYPRLAND_NO_SD_VARS env condition (#7358) + - hyprctl: add active and all to switchxkblayout + - logs: Add file path to asset ERR log (#7336) + - windowrules: add fullscreenstate field (#7466) + - xwayland: add option to enable/disable xwayland (#7633) + + Fixes: + - Fix crash reports having execute permission + - Fix missing include needed by clang + - build: Fix NO_XWAYLAND compilation (#7538) + - config: add missing header for libc++ after 92744b5 (#7403) + - config: fix explicit sync option warning (#7293) + - config: fix uninitialized values with mode parsing + - core: fix crash on monitor removed with gammaControl (#7601) + - core: fix data race and a unsigned int rollover (#7278) + - cursormgr: fix cursor gsettings on session change (#7295) + - data-device: Fix selection mismatch when wlr resets primary + selection (#7598) + - decorations: fix manual resize not recalculating decos (#7323) + - example/config: fix typo in default config (#7446) + - gamma-control: fix crash on monitor disconnect (#7353) + - helpers: fix: revert to signed arithmetic for cycling through + workspaces (#7339) + - hyprpm: Fix checking dependencies (#7504) + - input: Fix disabling tap-to-click (#7304) + - input: Fix modifier keys getting stuck if depressed during + config reload (#7486) + - install: Prepend ${DESTDIR} when creating hyprland symbolic + link (fixes #7280). (#7281) + - keybinds: Fix fullscreenState toggling behaviour (#7288) + - keybinds: Fix syncFullscreen inconsistent with state when set + by fullscreenState (#7343) + - keybinds: fixup misused kb state + - misc: fix some minor typos (#7530) + - pointermgr: fix initial cursorwarp (#7286) + - presentation-feedback: minor fixups + - protocol: fix logm template checks + - render: fixup format mismatch after leaving DS + - renderer: minor direct scanout fixes (#7594) + - screencopy: fix 10b format r/b flip + - screencopy: fixup 10-bit sharing via shm on nvidia + - sessionLock: fix misc:allow_session_lock_restore (#7511) + - textinput: fix ime activation in some edge cases (#7660) + - workspacerules: fix on-created-empty window focus (#7657) + + Other: + - README: Change image sources from vaxerski/Hyprland to + hyprwm/Hyprland (#7315) + - Revert "syncobj: wait for deadline instead of available" + - compositor: update suspendstate on window move (#7396) + - core: Include cstring whenever strncpy is used (#7267) + - core: Move to C++26 and use native_handle to CLOEXEC the debug + fd (#7219) + - core: Preserve existing XDG_CURRENT_DESKTOP (#7347) + - core: make most for loops use const references (#7527) + - cursor: make inactive_timeout setting a float (#7268) + - data-device: send dndFinished when dnd offer is destroyed while + unfinished + - eventloop: don't dispatch in enterLoop + - examples: more systemd examples (#7409) + - headers: set correct paths to header files (#7245) + - hyprctl: avoid parsing string::npos on invalid cmd (#7544) + - hyprpm, hyprctl: update shell completions + - hyprpm, hyprctl: remove Makefiles + - input: don't emit idle activity when calling + simulateMouseMovement (#7649) + - input: kb focus mouse focused window if unset (#7666) + - input: move idle notify to input handlers (#7659) + - input: try to refocus a focusable window when seat grabs are + reset (#7669) + - internal: introduce new types to avoid unsigned int rollover + and signed int overflow (#7216) + - internal: removed Herobrine + - keybinds: refactor dispatchers to be better (#7331) + - keybinds: release mods after sendshortcut (#7581) + - layersurface: don't unref from monitor until dtor + - layersurface: dont rollover on size_t (#7451) + - layersurface: remove layer on destroy from monitor (#7457) + - linux-dmabuf: allow on split-node systems + - logs: don't get timezone every time logging (#7550) + - meson: explicitly specify path for find(1) (#7590) + - misc: Rename all instances of "emtpy" to "empty" (#7522) + - misc: constify the remaining for loops (#7534) + - monitor: avoid dangling references to old monitors being + undestroyed + - monitors: avoid crash on wayland output removal + - output: dont cast enum out of range (#7448) + - protocols: avoid crashing in drmlease (#7290) + - protocols: destroy new xdgDialog protocol at right time (#7600) + - protocols: refactor protocol logging to a macro (#7324) + - renderbuffer: ensure framebuffer gets deleted (#7363) + - renderer: better lockscreen dead behavior (#7574) + - renderer: fade out windows on silent moves + - renderer: pass custom modelines to aq + - screencopy: nuke unused stuff + - sessionLock: ensure sls focus in some edge cases (#7647) + - shm: align size to stride (#7383) + - syncobj: wait for deadline instead of available + - textinput: don't deactivate ime if another ti is focused + (#7617) + - textinput: send deactivate to ime on destory ti (#7614) + - window/xwayland: minor property cleanup + - window: don't focus on activate if window isn't mapped yet + - windows: support size with pseudo tiled + - xcursor: handle file errors when loading xcursor themes (#7326) + - xcursormgr: dont apply scale on gsettings (#7316) + - xdg-dialog: implement new protocol + - xwayland: deactivate xwayland focus if wayland is focused + (#7458) + - xwayland: update overrideRedirect on map and configure (#7575) + - xwaylandmgr: minor refactor to activateSurface + - xwm: don't mark selection events as succeeded + - xwm: read atom name from xcb (#7546) + +------------------------------------------------------------------- +Thu Aug 8 07:43:20 UTC 2024 - Florian "sp1rit" + +- Update to version 0.42.0: + + At last, a very large update 0.42.0 has finally dropped! + + Notable changes: + - Wlroots has been dropped, and is no longer a dependency. + - Explicit sync support has been added and will be automatically + turned on/off depending on your setup. For some select nvidia + users, this might cause glitches. In such cases, disable it + with render:explicit_sync = false + - Old protocol implementations redone in our newer, more + memory-safe impl style. + - In-house XCursor implementation for legacy themes + - Tons and tons of fixes and performance improvements! + + Breaking changes: + - misc:no_direct_scanout -> render:direct_scanout + - fakefullscreen has been dropped in favor of the new + fullscreenstate dispatcher + + New features: + - config: add option to exit window while retaining fullscreen + (#516) (#6880) + - core: Add missing header for libc++ after e989a0b (#7158) + - core: add a destructor to CHyprOpenglImpl and avoid + wl_container_of undefined behaviour (#7101) + - crashreporter: add date and flags to crash report (#7028) + - debug: add Nvidia driver info (#6715) + - hyprpm: add short error code explanations + - internal: Add functions to hyprctl header (#6745) + - keybinds: add bindp and noshortcutsinhibit (#7017) + - keybinds: add safeguard to mousebinds (#7034) + - pluginapi: Add force reload of config at the end of plugin + initialization (#7099) + - pointer: change min cursor padding to 0 (#6027) + - socket2: Add windowtitlev2 event which includes the window + address (#6856) + - touch: add touch swipe invert config (#6940) + + Fixes: + - border: fixup infinite recursion + - compositor: fix general:extend_border_grab_area (#7214) + - compositor: fix log typos (#7111) + - configmgr: fix warning + - core/surface/buffer: Buffer lock/release fixes (#7110) + - core/surface: fixup a few pointer handling edge cases + - core: Fix crash on opening chromium (#6932) + - core: fix a few ubsan issues reported at exit of hyprland + (#6699) + - decorations: fix infinite recursion on no_gaps when only (#7169) + - drm-syncobj: fixup fd leak with timelines + - hyprctl: increase hyprctl timeout to 5s to fix #6801 (#7152) + - ime-relay: fix crash on nullptr surface focus + - input: Fix hyprctl switchxkblayout not actually changing layout + (#7070) + - input: fix capabilities enum types passed + - input: fix invalid usage of dev in setTouchDeviceConfigs + - input: fix keyboard leds with multiple keyboards (#7079) + - input: fix leds on kb creation (#7206) + - internal: fix fullscreen typos (#7134) + - keybinds: fix NoSymbol keybinds (#7199) + - keybinds: fix movewindow float to 0 (#6777) + - layersurface: fixup focus issues in onUnmap + - layout: fix dynamic rules not updating after setting fullscreen + (#7129) + - meson: fix wlroots-hyprland dep checks (for libliftoff patch to + work) (#6736) + - output: minor tearing fixes + - pointer: fix buffer crash (#7131) + - presentation-feedback: fix invalid values sent after aq merge + - renderer: Explicit sync fixes (#7151) + - renderer: fix a few xray regressions (#6855) + - renderer: fixup crashes on inaccessible files for bg + - renderer: fixup nvidia driver version checks + - renderer: partially revert previous xray fix (#6868) + - session: fix activate events being always treated as on (#6696) + - sessionLock: fix the check for locking a locked session (#6843) + - shortcutsInhibit: fix crash + - style: fix clang-format + - surface: fix zero_scaling xwayland damage + - surface: fixup logical damage size calculations + - toplevelexport: fix flipped r/b channels when sharing windows + (#6861) + - touch: fix touch swipe invert config (#7014) + - virtual-pointer: fixup virtual pointer warp events + - wayland/compositor: fixup buffer damage tracking for + wl_shm buffers + - wayland/compositor: fixup double buffer releases + - wayland/surface: fixup self-owning surface roles + - xdg-shell: fix xdg-positioner y-flip (#7094) + - xdg-shell: fixup unassigned wl surfaces to xdg surfaces + - xwayland: fix high cpu idle usage + - xwayland: fix setting title prop (#6809) + - xwayland: fixup WM_SIZE_HINTS handling according to ICCCM + - xwm: Fix xwayland black window bug after losing focus (#6966) + + Other: + - Meson: replace props.json with VERSION + - Meson: install config and wallpapers to DATADIR/hypr + - Completions: use only awk (#6763) + - Core: Move to aquamarine (#6608) + - compositor: ignore setting surface scanout if DS is disabled + - compositor: implement wayland socket handover (#6930) + - compositor: minor cleanups for fading out layers + - compositor: simplify getWindowFromSurface + - config: avoid using initial ws tracking for exec-once + - config: don't crash when getenv HOME returns null + - config: use hyprutils helper (#6891) + - core/surface: drop map/unmap events in member funcs + - core: Improve handling of window properties (#6776) + - core: Properly shutdown wl display (#7018) + - core: avoid locking 2 wayland sockets (#6971) + - core: emit unmap event after unmap in surface destroy + - core: move to steady_clock where applicable + - cursor: Better xcursor implementation (#7178) + - cursormgr: avoid scanning ill formed inherit (#7211) + - cursormgr: implement inheriting themes for xcursor (#7197) + - debug: dont manually unlock the lock_guard (#7210) + - debug: get rid of useless 1s in logs (#6969) + - egl: attempt a 3.2 egl context first + - egl: avoid setting debug mode and handle legacyrenderer + - egl: require gles 3.0 only + - egl: support getting the device via platform_device + - ext-foreign-toplevel: Send done after title and class (#6857) + - hyprctl completions: Use only awk rather than grep + awk + - hyprctl: link to much less libraries (#7212) + - hyprerror: minor stylistic changes + - hyprpm: execute all git commands regardless of fails + - hyprpm: init submodules after resets + - input: Emulate discrete scrolling from v120 events (#6881) + - input: don't simulate mouse movement on focus change in + follow_mouse = 2/3 if no_warps is false (#7015) + - input: refocus last window on keyboard unfocusable surfaces + - input: unify removing currentlyDraggedWindow (#7071) + - inputmgr: ensure we dont divide by zero (#6713) + - internal: refactor fullscreen states (#7104) + - internal: some minor fd/socket cleanups and make logging thread + safe (#7123) + - keybinds: allow toggling fullscreenstate (#7128) + - keybinds: handle monitor change in moveWindowIntoGroup (#7030) + - keybinds: handle null monitor in pinActive (#7122) + - keybinds: improve fullscreenstate toggling (#7174) + - keybinds: never switch to another monitor with per_monitor + (#6665) + - keybinds: remove toggleopaque (#7024) + - keyboard: properly update keymap state and fd on keymap changes + - keyboard: update xkb state after key event + - layer-shell: avoid crashes on unmap (#7092) + - layer-shell: properly map and unmap surface and propagate unmap + events + - layer-shell: validate exclusiveEdge and don't set it as top by + default (#7006) + - layershell: don't throw misaligned error on exclusive edge 0 + - layersurface: null check for surface validity before unmap() + - layout: update workspace rules on layout change (#6878) + - meson: install wayland.hpp header + - opengl: destroy cairo image surface after use + - output: submit damage to kms + - pointer-constraint: set lifetime correctly + - pointer/hw: extend cursor swapchain to 3 + - pointer: round position when rendering software cursors + - pointer: update geometry after unplug events + - pointer: use preMonitorCommit for resetting render state + - protocols: Move globalshortcuts impl (#7102) + - protocols: move screencopy and toplevel export to + hyprwayland-scanner (#7065) + - protocols: move text-input-v1 to hyprwayland-scanner (#7096) + - renderer/layer-shell: use explicitly set exclusiveEdge (#6984) + - renderer: Make shader time always count from zero (#6903) + - renderer: don't skip back background on preBlurQueued + - renderer: don't use the surface counter in popup iterations + - renderer: drastically optimize bg texture creation + - renderer: drop redundant spammy trace log + - renderer: guard layer in renderLayer + - renderer: untransform textures matching display transform + - renderer: use session lock alpha for rendering lacking locks + - seat: don't send keyboard data without a keyboard cap (#6697) + - session-lock: send locked after the lock screen is properly + rendered (#6850) + - sessionLock: don't sendLocked when session lock has already + been destoyed (#7150) + - sessionLock: focus lock on creation based on mouse position + (#6658) + - surface: avoid crashes on fading out layers + - surface: emit unmap before unmapping and releasing the buffers + - tablet: Send .frame() on .proximity_out() (#6761) + - touch: set lastInputTouch on every event + - virtualptr: allow binding to output + - virtualptr: map to entire screen if no output is provided + - wayland/compositor: drop pending buffer ref if synchronous + - wayland/compositor: release buffers on unmap + - wayland/output: avoid sending events to dead outputs + - window/ls: reset core signals after destroy + - window: drop ack requirement for applying pending reported size + - window: override noMaximize if new window takes over fullscreen + (#6812) (#6870) + - wl_seat: avoid sending events to objects without caps + - workspaces: don't try to reopen special workspaces (#6802) + - xcursor: rework bootleg xcursor (#7140) + - xdg-shell: completely rewrite xdg-positioner (#7067) + - xdg-shell: make xdg-positioner flip target greatest available + space (#7209) + - xwayland: avoid unfocusing on OR child focuses + - xwayland: break cyclic loop of parents (#6722) + - xwm: drop invalid case for clearing X focus + +------------------------------------------------------------------- +Wed Jun 26 07:58:46 UTC 2024 - Florian "spirit" + +- Update to version 0.41.2: + + Hi all! 0.41.2 bringing even more fixes on top of 0.41.1. Enjoy! + + New features: + - core: add ability to select previous workspace per monitor + (#6598) + - hyprctl: added --follow option to rolliglog (#6325) + - hyprpm: add --no-shallow + - input: add cursor:warp_on_changeworkspace (#6480) + - keybinds: add custom event dispatcher + - vrr: add option to fix mouse breaking vrr (#6483) + - window: expose pseudotiled state and add param to dispatcher + (#6583) + + Fixes: + - animations: fix overriding direction for slide + - core: fix a few small memory leaks on exit (#6470) + - data-device: minor fixes + - egl: fixup format modifier lookups with implicit modifiers + - foreign-toplevel-wlr: fix out-of-range for missing monitor + resources + - format: fix flipped r/b channels on legacy_renderer + - hyprctl: add a newline after log() + - hyprctl: fix zsh completion (#6467) + - keybinds: fix mouse pass (#6652) + - output: fix cursors disappearing after dpms (#6659) + - subcompositor/renderer: fixup handling of subsurfaces below the + main one + - surface: add virtual destructor to surfacerole to avoid + undefined behaviour (#6620) + - vrr: add option to fix mouse breaking vrr (#6483) + - xdg-shell: fixup xdg-positioner's pointForAnchor with + non-corner points + - xwayland: fixup unfocus atom conditions + + Other: + - compositor: bump nofile rlimits on launch + - constraints: Lock surface region when region is empty (#6627) + - core: Move to hyprutils for Math + - core: avoid bumping hard rlimits, restore on fork + - damageRing: move to hyprland impl + - data-device: abort drag on unaccepted offers + - data-device: properly abort drag on missing device + - dbus: import PATH XDG_DATA_DIRS variables into systemd and dbus + session + - format: include macros for unreachable + - helpers: make shm_open() portable after 8bcccf9 (#6471) + - hyprctl: avoid using select() + - hyprctl: make recv timeout bigger and give error message if it + does timeout (#6621) + - hyprland.conf: update master section (#6537) + - keybinds: ignore missing keysyms if no other methods match + - master: refine master layout new window handling (#6479) + - math: include cstring for memset + - misc: a few compiler level performance optimisations (#6559) + - output: avoid crashes when binding a defunct wl_output global + - pointer: use software rendering when monitor is mirrored + (#6587) + - renderer: shrink occlusion rect if blur is used + - seat/dnd: unfocus pointer from surfaces on dnd start + - seat: track pressed pointer buttons + - window: improve swallowing functionality + - window: use effective damage for tearing re-schedules + - wl-compositor: don't send enter to defunct output globals + - wl_data_device: send drop_performed in completeDrag + - wl_seat: accomodate for apps late-binding seat resources + - wl_seat: send repeat data from current keyboard on bind + - xdg-shell: Continue transform of popup until size fits (#6521) + - xdg-shell: properly check for resource version for TILED and + SUSPENDED states + - xwayland: do not set a new data source if it has no MIMEs + - xwayland: drop some spammy logs to trace + - xwayland: force default plain mime atoms on known types + - xwayland: use safeRemove for removing files + +------------------------------------------------------------------- +Fri Jun 14 21:51:19 UTC 2024 - Florian "spirit" + +- Added support for loading plugins using "hyprpm" + + Added "opensuse-hyprpm-use-hyprland-devel-subpkg.patch" needed + for this purpose + +------------------------------------------------------------------- +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 + (#6411) + - 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 + (#6434) + +------------------------------------------------------------------- +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) + (#6111) + - gestures: Add gestures:workspace_swipe_min_fingers option + (#6342) + - 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 + (#5866) + - 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 + (#6010) + - core: fix a few asan reported issues and a coredump on exit + (#6285) + - 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 + unref + - build: ProtocolManager missing header LIstener.hpp (#6391) + - build: include missing header: "debug/Log.hpp" in Format.cpp + (#6365) + - build: update meson, cmake setup + - compositor: change monitor focus when no_warps is enabled + (#6260) + - 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() + (#6083) + - 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 + (#5894) + - 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 + (#6283) + - 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 + (#6103) + - seat: discrete round away from zero + high res scrolling + (#6317) + - 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 + client + - 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 + $XDG_RUNTIME_DIR/hypr. + + 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 + (#5623) + - 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 + (#5725) + - internal: fix a few asan reported leaks on exit of hyprland + (#5852) + - 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. + (#5826) + - 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 + moveWindowToWorkspaceSafe + - config: Allow more sensible input options for enabling + animations. (#5659) + - config: Default unconfigured monitors to open to the right + (#5741) + - config: Expand on window matching (#5518) + - config: merge all rules set for the same workspace selection + (#5656) + - 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 + client + - 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 + (#5838) + - managers: Add a TokenManager + - output-management: move to new impl + - pluginAPI/hooks: Remove dependency on cc from the hooksystem + (#5801) + - 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 + manually + - 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 + (#5599) + + Other: + - CI: unshallow on checkout before sourcing the tarball + - cursor: add hyprcursor loggers + - build: Unbreak build on FreeBSD by adjusting dependencies + (#5595) + - hyprpm: checkout branch and rev separately + - hyprpm: err out on missing runtime deps + - input: send an empty relative event after constraint motion + events + - window: remove input ref on unmap + +- Dropped "bash-completion-install-dir.patch" as it has been included + upstream. + +------------------------------------------------------------------- +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 + CWindow + - 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 + (#5534) + - 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 + (#5465) + - 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 + generateVersion + - 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 + (#5533) + +- 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 + (#5240) + - 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 + (#5343) + - renderer/animations: Fix various inaccurate damage tracking + issues and offsets (#5297) + - renderer: Fix layer and window damage sometimes missing 1 frame + (#5370) + - 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 + (#5340) + - 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 + (#5219) + - 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 + (#5138) + - 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 + (#5249) + - 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 + (#4932) + - 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 + more. + * 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 + (#4851) + - 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 + (#4660) + - keybinds: fix focuswindow for fullscreen (#4840) + - keybinds: fix keys without keysyms triggering random binds + (#4739) + - 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 + buffer_age + - renderer: fixup damage_ring rotation + - renderer: minor fixes for introspection detection + - screencopy: fix invalid damage being used for final copy in + dma + - 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 + processMouseRequest + - 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 + (#4707) + - 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 + (#4780) + - 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 + focus + - 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 + fixes. + 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 + (#4577) + + Other: + - HookSystem: rename PAGESIZE_VAR from PAGESIZE to avoid conflict + (#4321) + - 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 + (#4406) + - groupbar: Drag single window instead of destroying group + (#4327) + - 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 + recompile + - 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 + update + - 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 + layouts + - 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 + clears + - 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 + events + - 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 + (#4539) +- 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 + (#3730) + - pluginapi: add touch event hooks (#3836) + - renderer: Adding an option to disable first launch animation + #3933) + - 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 + (#4010) + - 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. + (#3891) + + 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. + (#3873) + - 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 + renderWorkspaceWindows + - 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 + renderWorkspaceWindows + - 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 + ignore_window + - 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 + (#3650) + - 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 + (#3734) + - 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 + window + - layout: fix missed setWindowSize in no_gaps_when_only node + apply + - 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 + (#3591) + - 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 + surfaces + - 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 + border + - input: properly track xdg surfaces' geometry in + vectorToSurfaceLocal + - 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 + window + - 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 + end + - 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 + renderSurface + - 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 + independently + - 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: + https://wiki.hyprland.org/Configuring/Variables/#group + - 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 + (#3465) + - 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 + (#3520) + - 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 + solitary + - 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 + (#3329) + - 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 + fullscreen + - 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 + (#3556) + - pluginapi: remove starting newline in demangled func name + (#3502) + - 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 + algorithm + - renderer: optimize render pipeline when there is a solitary + client + - renderer: remove old debug log + - screencopy: enhance error logging + - shaders: Remove redundant clamp of smoothsteps return value. + (#3456) + - 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 + (#3269) + - 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 + (#3261) + - 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. + (#3172) + - 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 + (#3198) + - 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 + (#3245) + - keybinds: simulate movement on empty focus after workspace + change + - 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 + (#3300) + - monitor: ignore no-op workspace changes + - monitor: minor adjustments + - refactor: flatten nesting ifs in layout window creation method + (#3294) + - refactor: manually resets singletons (#3395) + - refactor: replace lambdas with CKeybindManager::switchToWindow + (#3229) + - refactor: replace manual iteration of CWindow with existing + methods (#3147) + - refactor: utilize 'middle()' method for window/montior center + (#3253) + - 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 + (#3124) + - 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 + warning) + + 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. + (#3032) + - 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 + multisampling + - 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 + focus + - 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 + (#2989) + - internal: move backtrace to specific func + - keybinds: Keep aspect ratio (#2907) + - keybinds: Only call fclose() when we have a valid file. + (#2908) + - 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 + rendering + - 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 wlr_xwayland_surface.events.set_pid (#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 + (#2774) + - 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. + (#2829) + + 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. + (#2829) + + Other: + - animationmanager: optimize avar state + - animationmgr: avoid looping over all avars in favor of only + active ones + - assets/meson.build: 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 + (#2796) + - 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 + present + - 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 + updateDynamicRules + - 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 + (#2507) + * 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 + cfgs + * 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 + (#2470) + * 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 + (#2656) + * 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 ISSUE_GUIDELINES.md 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 + moveWindowToWorkspaceSafe + * 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: + + WHY DID MY ENTIRE RELEASE GET WIPED REEEE + 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 + (#2258) + * bug fix (#2314) + * configmanager: fix substr offset in default ws rule + * examples: fix incorrect link in per-device config comments + (#2353) + * 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 + (#2025) + * 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 + (#2139) + * 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 + switch + * 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 + ws + * 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 + * dwindle:col.group... -> general:col.group... + * 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 + (#1517) + * 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 + * meson.build,CMakeLists.txt: use sh instead of bash + * meson.build: 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 + everywhere. + * 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 + rework_rounding_shader + * 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 & + g_pCompositor->m_pLastMonitor->ID + * 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 + shader). + * 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 + border + * 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 + double. + * 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) + bindm=SUPER,mouse:272,movewindow + bindm=SUPER,mouse:273,resizewindow + + 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 + (changeworkspace) + * 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 + example: + bind=SHIFT,exclam,movetoworkspace,1 # OLD + bind=SHIFT,1,movetoworkspace,1 # NEW + As an additional result of the above, for multi-layout users, + see + https://wiki.hyprland.org/Configuring/Uncommon-tips--tricks/ + + 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 diff --git a/hyprland.rpmlintrc b/hyprland.rpmlintrc new file mode 100644 index 0000000..aaa0795 --- /dev/null +++ b/hyprland.rpmlintrc @@ -0,0 +1,2 @@ +# not a comment +addFilter("macro-in-comment") diff --git a/hyprland.spec b/hyprland.spec new file mode 100644 index 0000000..52e7c21 --- /dev/null +++ b/hyprland.spec @@ -0,0 +1,212 @@ +# +# spec file for package hyprland +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2022-24 Florian "sp1rit" +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%bcond_without devel + +%define shortname hypr + +Name: hyprland +Version: 0.43.0 +Release: 0 +Summary: Dynamic tiling Wayland compositor +License: BSD-3-Clause +URL: https://hyprland.org/ +Source0: %{name}-%{version}.tar.xz +Source99: %{name}.rpmlintrc +Patch100: opensuse-hyprpm-use-hyprland-devel-subpkg.patch +BuildRequires: cmake +BuildRequires: gcc-c++ >= 14 +BuildRequires: git +BuildRequires: glslang-devel +BuildRequires: meson +BuildRequires: pkgconfig +BuildRequires: pkgconfig(aquamarine) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(gbm) >= 17.1.0 +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(hyprcursor) >= 0.1.9 +BuildRequires: pkgconfig(hyprlang) >= 0.3.2 +BuildRequires: pkgconfig(hyprutils) >= 0.2.1 +BuildRequires: pkgconfig(hyprwayland-scanner) >= 0.3.8 +BuildRequires: pkgconfig(libdrm) >= 2.4.118 +BuildRequires: pkgconfig(libinput) >= 1.14.0 +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(pango) +BuildRequires: pkgconfig(pangocairo) +BuildRequires: pkgconfig(pixman-1) >= 0.42.0 +BuildRequires: pkgconfig(tomlplusplus) +BuildRequires: pkgconfig(uuid) +BuildRequires: pkgconfig(vulkan) >= 1.2.182 +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-protocols) >= 1.26 +BuildRequires: pkgconfig(wayland-scanner) +BuildRequires: pkgconfig(wayland-server) >= 1.22 +BuildRequires: pkgconfig(xcb) +BuildRequires: pkgconfig(xcb-icccm) +BuildRequires: pkgconfig(xcb-renderutil) +BuildRequires: pkgconfig(xcursor) +BuildRequires: pkgconfig(xkbcommon) +BuildRequires: pkgconfig(xwayland) +%if 0%{?suse_version} +BuildRequires: Mesa-libGLESv3-devel +%bcond_without xcb_errors +%else +%bcond_with xcb_errors +%endif +%if %{with xcb_errors} +BuildRequires: pkgconfig(xcb-errors) +%endif +Recommends: %{name}-wallpapers +%if %{with devel} +Suggests: %{name}-devel +%endif + +%description +Hyprland is a dynamic tiling Wayland compositor based on wlroots +that doesn't sacrifice on its looks. + +It supports multiple layouts, fancy effects, has a very flexible IPC +model allowing for a lot of customization, and more. + +%package wallpapers +Summary: Hyprland wallpapers +BuildArch: noarch + +%description wallpapers +Additional wallpapers for hyprland. + +%if %{with devel} +%package devel +Summary: Files required to build Hyprland plugins +Requires: %{name} +BuildArch: noarch + +%description devel +This package contains the neccessary files that are required to +build plugins for hyprland. +%endif + +%package bash-completion +Summary: Bash Completion for %{name} +Group: System/Shells +Requires: %{name} +Requires: awk +Requires: bash-completion +Supplements: (%{name} and bash-completion) +BuildArch: noarch + +%description bash-completion +The official bash completion script for %{name}. + +%package fish-completion +Summary: Fish Completion for %{name} +Group: System/Shells +Requires: %{name} +Requires: awk +Requires: fish +Supplements: (%{name} and fish) +BuildArch: noarch + +%description fish-completion +The official fish completion script for %{name}. + +%package zsh-completion +Summary: ZSH Completion for %{name} +Group: System/Shells +Requires: %{name} +Requires: awk +Requires: zsh +Supplements: (%{name} and zsh) +BuildArch: noarch + +%description zsh-completion +The official zsh completion script for %{name}. + +%prep +%autosetup -p1 +# at this point of time we do not have repository information anymore +# don't attemt to generate version.h from git, use our own. +sed -i '/version_h/d' meson.build +cat > src/version.h << EOF +#pragma once +#define GIT_COMMIT_HASH "0000000000000000000000000000000000000000" +#define GIT_BRANCH "openSUSE" +#define GIT_COMMIT_MESSAGE "Built for %_host" +#define GIT_COMMIT_DATE "Thu Jan 01 00:00:00 1970" +#define GIT_DIRTY "" +#define GIT_TAG "%{version}" +#define GIT_COMMITS "-1" +EOF +sed -i 's;REPLACE_ME_WITH_PREFIX;%{_prefix};' hyprpm/src/core/DataState.cpp + +%build +%meson \ + -Dwlroots-hyprland:xcb-errors=%{?with_xcb_errors:enabled}%{!?with_xcb_errors:disabled} +%meson_build + +%install +%meson_install --tags runtime,man%{?with_devel:,devel} + +%files +%license LICENSE +%doc README.md +%{_bindir}/Hyprland +%{_bindir}/hyprctl +%{_bindir}/hyprpm +%dir %{_datadir}/%{shortname} +%{_datadir}/%{shortname}/hyprland.conf +%{_datadir}/%{shortname}/lockdead.png +%{_datadir}/%{shortname}/lockdead2.png +%dir %{_datadir}/wayland-sessions/ +%{_datadir}/wayland-sessions/%{name}.desktop +%dir %{_datadir}/xdg-desktop-portal +%{_datadir}/xdg-desktop-portal/%{name}-portals.conf +%{_mandir}/man1/Hyprland.* +%{_mandir}/man1/hyprctl.* + +%files wallpapers +%{_datadir}/%{shortname}/wall* + +%if %{with devel} +%files devel +%{_includedir}/%{name} +%{_datadir}/pkgconfig/%{name}.pc +%endif + +%files bash-completion +%dir %{_datadir}/bash-completion/ +%dir %{_datadir}/bash-completion/completions/ +%{_datadir}/bash-completion/completions/hyprctl +%{_datadir}/bash-completion/completions/hyprpm + +%files fish-completion +%dir %{_datadir}/fish/ +%dir %{_datadir}/fish/vendor_completions.d/ +%{_datadir}/fish/vendor_completions.d/hyprctl.fish +%{_datadir}/fish/vendor_completions.d/hyprpm.fish + +%files zsh-completion +%dir %{_datadir}/zsh/ +%dir %{_datadir}/zsh/site-functions/ +%{_datadir}/zsh/site-functions/_hyprctl +%{_datadir}/zsh/site-functions/_hyprpm + +%changelog diff --git a/opensuse-hyprpm-use-hyprland-devel-subpkg.patch b/opensuse-hyprpm-use-hyprland-devel-subpkg.patch new file mode 100644 index 0000000..e2fe8bb --- /dev/null +++ b/opensuse-hyprpm-use-hyprland-devel-subpkg.patch @@ -0,0 +1,219 @@ +From c34dc954cc6388e9bc9ea608152ae4fc3f201bb1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20sp1rit=E2=80=8B?= +Date: Fri, 14 Jun 2024 23:43:46 +0200 +Subject: [PATCH] openSUSE: Use hyprland-devel instead of downloading from + upstream +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The plugin manager needs headers in order to build plugins for hyprland. +This patch removes the ability of hyprpm to download another copy of +hyprland upstream and instead forces hyprpm to use the headers already +installed from the hyprland-devel subpackage. + +It also adds a new check to ensure that the subpackage is instealled. + +Signed-off-by: Florian "sp1rit"​ +--- + hyprpm/src/core/DataState.cpp | 2 +- + hyprpm/src/core/PluginManager.cpp | 140 +++++------------------------- + 2 files changed, 21 insertions(+), 121 deletions(-) + +diff --git a/hyprpm/src/core/DataState.cpp b/hyprpm/src/core/DataState.cpp +index 61ad336..99dbadd 100644 +--- a/hyprpm/src/core/DataState.cpp ++++ b/hyprpm/src/core/DataState.cpp +@@ -21,7 +21,7 @@ std::string DataState::getDataStatePath() { + } + + std::string DataState::getHeadersPath() { +- return getDataStatePath() + "/headersRoot"; ++ return "REPLACE_ME_WITH_PREFIX/"; + } + + void DataState::ensureStateStoreExists() { +diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp +index 6988547..036c705 100644 +--- a/hyprpm/src/core/PluginManager.cpp ++++ b/hyprpm/src/core/PluginManager.cpp +@@ -14,6 +14,7 @@ + + #include + #include ++#include + #include + #include + +@@ -406,134 +407,20 @@ bool CPluginManager::updateHeaders(bool force) { + const auto HLVER = getHyprlandVersion(); + + if (!hasDeps()) { +- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not update. Dependencies not satisfied. Hyprpm requires: cmake, meson, cpio\n"; ++ std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not update. Dependencies not satisfied. Hyprpm requires: hyprland-devel, cmake, meson, cpio\n"; + return false; + } +- +- if (!std::filesystem::exists("/tmp/hyprpm")) { +- std::filesystem::create_directory("/tmp/hyprpm"); +- std::filesystem::permissions("/tmp/hyprpm", std::filesystem::perms::all, std::filesystem::perm_options::replace); +- } +- +- if (!force && headersValid() == HEADERS_OK) { +- std::cout << "\n" << std::string{Colors::GREEN} + "✔" + Colors::RESET + " Headers up to date.\n"; +- return true; +- } +- ++ + CProgressBar progress; +- progress.m_iMaxSteps = 5; ++ progress.m_iMaxSteps = 1; + progress.m_iSteps = 0; +- progress.m_szCurrentMessage = "Cloning the hyprland repository"; +- progress.print(); +- +- const std::string USERNAME = getpwuid(getuid())->pw_name; +- const auto WORKINGDIR = "/tmp/hyprpm/hyprland-" + USERNAME; +- +- if (!createSafeDirectory(WORKINGDIR)) { +- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not prepare working dir for hl\n"; +- return false; +- } +- +- progress.printMessageAbove(std::string{Colors::YELLOW} + "!" + Colors::RESET + " Cloning https://github.com/hyprwm/hyprland, this might take a moment."); +- +- const bool bShallow = (HLVER.branch == "main" || HLVER.branch == "") && !m_bNoShallow; +- +- // let us give a bit of leg-room for shallowing +- // due to timezones, etc. +- const std::string SHALLOW_DATE = +- trim(HLVER.date).empty() ? "" : execAndGet("LC_TIME=\"en_US.UTF-8\" date --date='" + HLVER.date + " - 1 weeks' '+\%a \%b \%d \%H:\%M:\%S \%Y'"); +- +- if (m_bVerbose && bShallow) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "will shallow since: " + SHALLOW_DATE); +- +- std::string ret = +- execAndGet("cd /tmp/hyprpm && git clone --recursive https://github.com/hyprwm/hyprland hyprland-" + USERNAME + (bShallow ? " --shallow-since='" + SHALLOW_DATE + "'" : "")); +- +- if (!std::filesystem::exists(WORKINGDIR)) { +- progress.printMessageAbove(std::string{Colors::RED} + "✖" + Colors::RESET + " Clone failed. Retrying without shallow."); +- ret = execAndGet("cd /tmp/hyprpm && git clone --recursive https://github.com/hyprwm/hyprland hyprland-" + USERNAME); +- } +- +- if (!std::filesystem::exists(WORKINGDIR + "/.git")) { +- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not clone the hyprland repository. shell returned:\n" << ret << "\n"; +- return false; +- } +- +- progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " cloned"); +- progress.m_iSteps = 2; +- progress.m_szCurrentMessage = "Checking out sources"; +- progress.print(); +- +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "will run: " + "cd " + WORKINGDIR + " && git checkout " + HLVER.hash + " 2>&1"); +- +- ret = execAndGet("cd " + WORKINGDIR + " && git checkout " + HLVER.hash + " 2>&1"); +- +- if (ret.contains("fatal: unable to read tree")) { +- std::cerr << "\n" +- << Colors::RED << "✖" << Colors::RESET +- << " Could not checkout the running Hyprland commit. If you are on -git, try updating.\nYou can also try re-running hyprpm update with --no-shallow.\n"; +- return false; +- } +- +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "git returned (co): " + ret); +- +- ret = execAndGet("cd " + WORKINGDIR + " ; git rm subprojects/tracy ; git submodule update --init 2>&1 ; git reset --hard --recurse-submodules " + HLVER.hash); +- +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "git returned (rs): " + ret); +- +- progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " checked out to running ver"); +- progress.m_iSteps = 3; +- progress.m_szCurrentMessage = "Building Hyprland"; +- progress.print(); +- +- progress.printMessageAbove(std::string{Colors::YELLOW} + "!" + Colors::RESET + " configuring Hyprland"); +- +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "setting PREFIX for cmake to " + DataState::getHeadersPath()); +- +- ret = execAndGet(std::format("cd {} && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:STRING=\"{}\" -S . -B ./build -G Ninja", WORKINGDIR, +- DataState::getHeadersPath())); +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "cmake returned: " + ret); +- +- if (ret.contains("CMake Error at")) { +- // missing deps, let the user know. +- std::string missing = ret.substr(ret.find("CMake Error at")); +- missing = ret.substr(ret.find_first_of('\n') + 1); +- missing = missing.substr(0, missing.find("-- Configuring incomplete")); +- missing = missing.substr(0, missing.find_last_of('\n')); +- +- std::cerr << "\n" +- << Colors::RED << "✖" << Colors::RESET << " Could not configure the hyprland source, cmake complained:\n" +- << missing << "\n\nThis likely means that you are missing the above dependencies or they are out of date.\n"; +- return false; +- } +- +- progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " configured Hyprland"); +- progress.m_iSteps = 4; +- progress.m_szCurrentMessage = "Installing sources"; ++ progress.m_szCurrentMessage = "Checking headers"; + progress.print(); + +- std::string cmd = +- std::format("sed -i -e \"s#PREFIX = /usr/local#PREFIX = {}#\" {}/Makefile && cd {} && make installheaders", DataState::getHeadersPath(), WORKINGDIR, WORKINGDIR); +- if (m_bVerbose) +- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "installation will run: " + cmd); +- +- ret = execAndGet(cmd); +- +- if (m_bVerbose) +- std::cout << Colors::BLUE << "[v] " << Colors::RESET << "installer returned: " << ret << "\n"; +- +- // remove build files +- std::filesystem::remove_all(WORKINGDIR); +- + auto HEADERSVALID = headersValid(); + if (HEADERSVALID == HEADERS_OK) { + progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " installed headers"); +- progress.m_iSteps = 5; ++ progress.m_iSteps = 1; + progress.m_szCurrentMessage = "Done!"; + progress.print(); + +@@ -541,7 +428,7 @@ bool CPluginManager::updateHeaders(bool force) { + } else { + progress.printMessageAbove(std::string{Colors::RED} + "✖" + Colors::RESET + " failed to install headers with error code " + std::to_string((int)HEADERSVALID) + " (" + + headerErrorShort(HEADERSVALID) + ")"); +- progress.m_iSteps = 5; ++ progress.m_iSteps = 1; + progress.m_szCurrentMessage = "Failed"; + progress.print(); + +@@ -904,6 +791,19 @@ std::string CPluginManager::headerErrorShort(const eHeadersErrors err) { + } + + bool CPluginManager::hasDeps() { ++ pid_t pid = fork(); ++ if (pid == 0) { ++ close(STDOUT_FILENO); ++ execlp("rpm", "rpm", "-q", "hyprland-devel", NULL); ++ exit(1); ++ } ++ int status; ++ pid = waitpid(pid, &status, 0); ++ if (pid < 0) ++ return false; ++ if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) ++ return false; ++ + std::vector deps = {"meson", "cpio", "cmake", "pkg-config"}; + for (auto const& d : deps) { + if (!execAndGet("command -v " + d).contains("/")) +-- +2.45.2 +