Skip to content

Releases: hyprwm/Hyprland

v0.30.0

22 Sep 23:17
Compare
Choose a tag to compare

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:

  • Nix: fix xdph build
  • 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:

  • CI: add reusable actions
  • CI: don't run wlroots update in PRs
  • Nix CI: use DetSys' install & cache actions
  • Nix: remove hidpi patches
  • Nix: use gcc13Stdenv
  • 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: Formatter rework (#3186)
  • 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
  • nix: update patches for meson changes
  • 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

Special Thanks

Special thanks as always to those people for donating!

  • pulsar256
  • alukortti
  • Ferreo
  • mechgyver
  • dieg0sec
  • bara
  • LilleCarl
  • falkaer
  • VDawg
  • Kyle
  • Drace
  • k1f0
  • KarlTheCarpenter
  • DashieTM

MRs

A real chonker!

  • Monitor rule fix by @MightyPlaza in #3157
  • "activespecial" IPC event by @MightyPlaza in #3163
  • refactor: replace manual iteration of CWindow with existing methods by @memchr in #3147
  • Add orientationcycle command on MasterLayout by @shadowmax31 in #3128
  • build: use PCH to reduce compile time by @memchr in #3095
  • Optimize CAnimationManager::scheduleTick a bit. by @Dickby in #3172
  • Fix blur for passes set to 0. by @Dickby in #3181
  • Formatter rework by @vaxerski in #3186
  • add scroll button lock option for input by @unrealhoang in #3189
  • Improve fallback behavior for unset device config values by @pdamianik in #3184
  • Integrate HASCONFIG into CConfigManager::getConfigValueSafeDevice by @pdamianik in #3195
  • Remove all .c_str() calls when using std::vformat by @pdamianik in #3198
  • fix: focusWindow on hidden workspace triggers another focusWindow by @memchr in #3216
  • Do not suppress pass and mouse release by @shadowmax31 in #3219
  • Make device configs queryable by @pdamianik in #3226
  • refactor: replace lambdas with CKeybindManager::switchToWindow by @memchr in #3229
  • fix(layout): remove focusWindow calls from onWindowCreatedTiling by @memchr in #3233
  • Fix wlr_output_management_unstable_v1 protocol by @pdamianik in #3234
  • Add smart resizing option for master layout by @thejch in #3210
  • fix: add missing groupbar decoration to the window by @memchr in #3235
  • add % to resizeparams by @alaricljs in #3246
  • feat: add a new dispatcher that can move windows in and out of groups, or swap windows by @memchr in #3006
  • refactor: utilize 'middle()' method for window/montior center by @memchr in #3253
  • movewindow to screen edge for floating windows by @alaricljs in #3245
  • refactor: unify changeworkspace dispatcher by @memchr in #3250
  • fix: inconsistent behaviour where last workspace was not saved by @memchr in #3261
  • CI: add reusable actions by @fufexan in #2951
  • add on-screen constraint to wrv2 'move' by @alaricljs in #3247
  • feat(config): allow glob in source= clause by @memchr in #3276
  • Allow the layout to control how windows are raised in groups by @outfoxxed in #3275
  • layout: add direction parameter to onWindowCreated and friends by @memchr in #3269
  • refactor(binds): avoid onWindowRemoved & onWindowCreated when group has one member by @memchr in #3286
  • Fix the wrong resize speed in master layout center orientation and remove duplicate code by @thejch in #3289
  • fix: moveWindowOutOfGroup moves cursor to wrong window by @memchr in #3290
  • flake.lock: update nixpkgs and xdph by @fufexan in https://github.com/hyp...
Read more

v0.29.1

03 Sep 11:42
Compare
Choose a tag to compare

New hyprland update :)

Fixes some annoying wlroots bump related issues and adds some QoL stuff.

https://www.youtube.com/watch?v=SoPE3Mcd-HU

Notable changes

  • support for the ext_workspace_v1 protocol has been dropped, meaning waybar's wlr/workspaces and alike will not work anymore (for waybar I recommend just switching to hyprland/workspaces)

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/cmake: 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

Special Thanks

Special thanks to these chads for donating some $$$:

  • Lipt0nas
  • speedboat
  • pulsar256
  • ThatOneLutenist
  • alukortti
  • weitcis
  • pltanton
  • xioren
  • Andrej Benz
  • Richard Ivánek
  • istasi
  • mechgyver

MRs

Full Changelog: v0.29.0...v0.29.1

v0.29.0

28 Aug 21:42
Compare
Choose a tag to compare

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:

  • Nix: add deprecation messages for removed/renamed flags
  • 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
  • makefile: fix build failure with some PREFIX (#3099)
  • master: fix always_center_master (#2961)
  • Nix/module: final fix
  • Nix/module: fix package option
  • Nix/module: fix system when config.allowAlias is false
  • Nix: fix nvidia patch for dual gpu system
  • nix module: Fix attempted workaround for option name change
  • 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
  • internal: removed Herobrine
  • 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)
  • Nix: corrections for overlays, overrideable systems (#2929)
  • Nix: deprecate waybar-hyprland
  • Nix: disable nixpkgs module in ours
  • Nix: don't warn against xdpw and xdph being present
  • Nix: enable systemd only when it's available on hostPlatform
  • Nix: remove HiDPI patches
  • Nix: remove hidpi from modules
  • Nix: remove waybar completely
  • 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

Special Thanks

Special thanks as usual to these chads for donating:

  • VDawg (<3)
  • Lipt0nas
  • speedboat
  • pulsar256
  • ThatOneLutenist
  • alukortti
  • Adam Szegedi
  • Zeta
  • deej81
  • FabianM
  • Oscar Tairiku
  • Rajeev

Notes for packagers

  • New install file added, hyprland-portal.conf for the new xdp spec. See the makefile.

MRs

New Contributors

Full Changelog: v0.28.0...v0.29.0

v0.28.0

03 Aug 16:08
Compare
Choose a tag to compare

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 and add Python to nix dev shell (#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:

  • CI: update scripts
  • Nix/HM module: solve conflict with upstream HM module
  • Nix: bump nixpkgs
  • Nix: bump wlroots
  • Nix: move patches to subdir
  • Nix: move wayland-scanner to nativeBuildInputs (#2816)
  • NixOS module: check system version for fonts
  • Renamed deprecated value in nix config
  • animationmanager: optimize avar state
  • animationmgr: avoid looping over all avars in favor of only active ones
  • assets/meson.build: install new wallpapers
  • cmakelists: move tracy to debug section
  • 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()
  • nix: use final.hyprland instead of prev.hyprland in waybar-hyprland
  • 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

Special Thanks

Special thanks as always to those gigachads for donating some moolah to me:

  • Lipt0nas
  • speedboat
  • pulsar256
  • ThatOneLutenist
  • System64
  • Richard Ivánek
  • joe
  • Elliot
  • spikespaz
  • Honkdaloonga

MRs

New Contributors

Full Changelog: v0.27.2...v0.28.0

v0.27.2

19 Jul 11:42
Compare
Choose a tag to compare

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

Special Thanks

Special thanks as usual to those gigachads for donating:

  • ThatOneLutenist
  • Lipt0nas
  • speedboat
  • pulsar256
  • alukortti
  • garypippi

MRs

Full Changelog: v0.27.1...v0.27.2

v0.27.1

18 Jul 19:52
Compare
Choose a tag to compare

Minor update to fix some crash issues and stuff

Shoutout to grandma, without you this wouldn't have been possible!

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

Special Thanks

Special thanks as usual to those based individuals for donating:

  • Lipt0nas
  • speedboat
  • pulsar256
  • alukortti
  • garypippi

MRs

New Contributors

Full Changelog: v0.27.0...v0.27.1

v0.27.0

12 Jul 11:30
Compare
Choose a tag to compare

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)
  • Nix CI: fix typo
  • 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)
  • Nix CI: split inputs and wlroots updating
  • Nix/portals.patch: conditionally check portals
  • Nix: patch portals search dir
  • 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
  • flake.lock: update nixpkgs
  • flake.lock: update nixpkgs
  • 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
  • typo (#2643)
  • 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)

Special Thanks

Special thanks as usual to those chads for donating me some moolah:

  • Lipt0nas
  • speedboat
  • pulsar256
  • Sinkerine
  • hi im brown
  • jsw
  • meeri
  • Ary Kleinerman
  • Guido Panebianco
  • Spearhead
  • Amadeus
  • spikespaz
  • sbatial
  • kamui
  • Neo
  • dano

MRs

New Contributors

Full Changelog: v0.26.0...v0.27.0

v0.26.0

29 May 17:28
Compare
Choose a tag to compare

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
  • Nix: expose/use flake's own hyprland-protocols in overlays.default (#2235)
  • 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

Special thanks

Special thanks to these chads for donating moolah to keep me shakin' my ass on this keyboard :)

  • Speedboat
  • Lipt0nas
  • HauntedCoffeePot
  • pulsar256
  • Lunics
  • Mathis
  • Roger
  • taigrr
  • Bosko
  • Psy
  • Denis Keksel
  • jo
  • Bjoern Sonnenschein

MRs

New Contributors

Full Changelog: v0.25.0...v0.26.0

v0.25.0

03 May 16:28
Compare
Choose a tag to compare

Small update brought to you by Yours Truly™ :)

Note for packagers: source v0.25.0-2 fixes build issues.

"I don't know my top one, maybe when things stabilize a little bit and you're not making changes every single hour" - Brodie Robertson

Meanwhile me:

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)
  • Nix: fix recursion in package overlays (#2210)
  • 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
  • Unbreak CMake build on FreeBSD (#2209)
  • Window resizing for pseudotiled windows (#2140)
  • args: print help on invalid arg
  • cmake: ignore format-truncation
  • cmake: sync pkg-config --cflags with meson (#2181)
  • 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: put pkg-config file in the default dir
  • 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
  • nix/*module: use mdDoc for documentation
  • nix: update xdph
  • 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

Special Thanks

Special thanks to these gigachads for donating $$$ to keep this thing going

  • speedboat
  • pulsar256
  • Lipt0nas
  • HauntedCoffeePot
  • StayBlue
  • Mushtario Pepperoni
  • Guido Panebianco
  • pbo
  • Scott
  • YinAqu
  • Adam Szegedi
  • Hubro
  • Travis Semczyszyn
  • vertiKarl
  • proycon

New Contributors

Full Changelog: v0.24.1...v0.25.0

v0.24.1

09 Apr 17:11
Compare
Choose a tag to compare

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

Special Thanks

Special thanks to these hyprchads for donating me some moolah to keep this project goin':

  • speedboat
  • Murderburger_
  • pulsar256
  • HauntedCoffeePot
  • Lipt0nas
  • StayBlue
  • notoh
  • David N
  • Mathis
  • Zephan
  • HeadTriXz
  • Bill Nye
  • nehrbash
  • basstitan
  • jsw
  • Taylor Coffelt
  • System64
  • Sepi
  • Kulayb
  • TlasT

Full Changelog: v0.24.0...v0.24.1