Compare commits
No commits in common. "factory" and "factory" have entirely different histories.
@ -1,28 +0,0 @@
|
||||
From 4fcb3f028a8ca15a553faba77f262a3cb75d4a71 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20=22sp1rit=22=E2=80=8B?= <sp1ritCS@protonmail.com>
|
||||
Date: Mon, 27 Jan 2025 18:41:45 +0100
|
||||
Subject: [PATCH] disable donation nag popup
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Florian "sp1rit" <sp1ritCS@protonmail.com>
|
||||
---
|
||||
src/managers/DonationNagManager.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/managers/DonationNagManager.cpp b/src/managers/DonationNagManager.cpp
|
||||
index d7eab9a..4fc8dc9 100644
|
||||
--- a/src/managers/DonationNagManager.cpp
|
||||
+++ b/src/managers/DonationNagManager.cpp
|
||||
@@ -34,6 +34,7 @@ const std::vector<SNagDatePoint> NAG_DATE_POINTS = {
|
||||
// clang-format on
|
||||
|
||||
CDonationNagManager::CDonationNagManager() {
|
||||
+ return;
|
||||
static auto PNONAG = CConfigValue<Hyprlang::INT>("ecosystem:no_donation_nag");
|
||||
|
||||
if (g_pVersionKeeperMgr->fired() || *PNONAG)
|
||||
--
|
||||
2.48.1
|
||||
|
3
hyprland-0.43.0.tar.xz
Normal file
3
hyprland-0.43.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fa2166f6e8d42f12674eec4698649113294ea3da41d2d9ddebf8a31adc833049
|
||||
size 51317448
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f5927f06faba5fcc5ae719a24efa15f363e53be07ef869804b617bab943cdf5b
|
||||
size 51370696
|
696
hyprland.changes
696
hyprland.changes
@ -1,698 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Sun Feb 2 17:44:00 UTC 2025 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.47.2:
|
||||
+ A minor update on top of 0.47.1 with some additional fixes and
|
||||
patches.
|
||||
+ Fixes backported
|
||||
- xwayland: handle window coords correctly (#9238)
|
||||
- monitor: preferred mode now tries first 3 modes if it fails
|
||||
before erroring (#9246)
|
||||
- xwayland: prevent invalid window configurations for X11 apps
|
||||
(#9253)
|
||||
- desktop: fix segfault when destroying a partially created ls
|
||||
(#9247)
|
||||
- configWatcher: watch both symlinks and canonical paths (#9219)
|
||||
- xwayland: correct pointer coordinate mismatch in X11 windows
|
||||
(#9259)
|
||||
- animation: don't immediately disconnect active vars during tick
|
||||
(#9272)
|
||||
- desktop: move popup and subsurface ctors to factories
|
||||
- popup: take xdg geometry into account in input calcs
|
||||
- desktop: move popups to UPs and fix missing subsurface resource
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 30 09:08:11 UTC 2025 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.47.1:
|
||||
+ 0.47.1 comes with, as usual, a few fixes backported from main.
|
||||
Some crashes, odd behavior, flickers, etc.
|
||||
+ Fixes backported:
|
||||
* xwayland: send synthetic configure events (#9193)
|
||||
* deps: add libinotify-kqueue on BSDs (#9197)
|
||||
* xwayland: respect window size set by configure requests (#9190)
|
||||
* ikeyboard: free xkbSymState in clearManuallyAllocd
|
||||
* configmgr: properly free glob memory
|
||||
* presentation: log a fixme when there is a feedback leak
|
||||
* renderer: calculate UV using both pixel and monitor dimensions
|
||||
* pass/rect: fix bounding / opaque regions
|
||||
* config/hyprctl: fix keyword not updating autoreload
|
||||
* monitor: round refresh rates in sorting modes
|
||||
* popup: stop refocusing at unmap
|
||||
* subsurface: fix invalid parent typo
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 27 17:15:02 UTC 2025 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.47.0:
|
||||
+ New year, new Hyprland release brought to you by Yours Truly.
|
||||
This update is quite large, so you might want to read these patch
|
||||
notes.
|
||||
There have been quite a bunch of internal rewrites, mostly around
|
||||
memory safety, the renderer, and animation system. Although
|
||||
performance shouldn't change much, it should improve stability in
|
||||
edge cases. Please do report any regressions you might find, if
|
||||
they aren't reported already.
|
||||
+ Breaking changes:
|
||||
- master:always_center_master has been replaced with a more
|
||||
flexible master:slave_count_for_center_master
|
||||
+ New features:
|
||||
- config: add exec(-onec) with rules and execr(-once) (#8953)
|
||||
- core/renderer: Add GPU hotplug support (#8980)
|
||||
- core: Add render:allow_early_buffer_release to make buffer
|
||||
release configurable (#9019)
|
||||
- core: Add support for HDR and color management protocols
|
||||
(#8715)
|
||||
- core: add --verify-config to verify the config with Hyprland
|
||||
- ctm: add an internal fade animation to ctm transitions
|
||||
- debug: add debug:pass for debugging the render pass
|
||||
- hyprpm: add an option to force reload all plugins (#8883)
|
||||
- hyprpm: add glaze dependency FetchContent fallback (#8899)
|
||||
- keybinds: add new window destruction dispatchers (#8962)
|
||||
- keybinds: add visible arg for cyclenext (#9045)
|
||||
- master: add option to show slaves on left in center orientation
|
||||
(#8940)
|
||||
- pluginAPI: add register dispatcher v2
|
||||
- protocols: add hyprland_lock_notify_v1 implementation (#9092)
|
||||
- protocols: add hyprland_surface_v1 implementation (#8877)
|
||||
- protocols: add hyprland_surface_v1.set_visible_region
|
||||
implementation (#9120)
|
||||
- renderer: Add supercircular window corners (#8943)
|
||||
- selectors: add a tag: to for matching window tag(s) by regex
|
||||
(#8985)
|
||||
- socket2: add focusedmonv2 event (#8921)
|
||||
- windowrules: add negative: prefix for negating a regex
|
||||
+ Fixes:
|
||||
- animation: fixup adding animvars during ::tick (#9030)
|
||||
- animations: fix XWayland cursor glitch and refactor skill
|
||||
issues (#9033)
|
||||
- animations: fix borderangle once (#9149)
|
||||
- compositor: fix incorrect cast, use lambda capture instead
|
||||
(#9161)
|
||||
- config: fix animations requiring all args
|
||||
- config: fix float animation speeds < 0 (#9123)
|
||||
- config/ConfigWatcher.cpp: add missing include needed for clang
|
||||
(#9166)
|
||||
- configmgr: fix crash on very early plugin loads
|
||||
- core/compositor: fix too early buffer release (#8966)
|
||||
- core: fix custom resolutions (#8897)
|
||||
- core: fix possible crash on null active workspace
|
||||
- data-device: fix edge case crash on null xwm
|
||||
- debug: fix ISDEBUG checking (#8823)
|
||||
- debug: fix overlay not rendering
|
||||
- desktop/DesktopTypes.hpp: fix include (#9104)
|
||||
- dwindle: fix possible crash on null ws
|
||||
- functionHooks: wait for hyprland pages before returning addr
|
||||
for trampo
|
||||
- helpers/Monitor.cpp: fix include path (#9039)
|
||||
- hyprctl: Fix hyprctl batch JSON command (#8749)
|
||||
- hyprctl: fix hyprctl --batch not working with exec rules
|
||||
(#8952)
|
||||
- hyprpm: fix hyrpm sometimes returning 0 despite errors occurring
|
||||
(#8761)
|
||||
- keybinds: fix movefocus fallback for special workspaces (#9040)
|
||||
- keybinds: fix nullptr deref in forcekillactive (#9021)
|
||||
- keybinds: fix previous_per_monitor logic (#9010)
|
||||
- logging: fix Gpu info (#8764)
|
||||
- pass: fixup debug mode rendering of input boxes
|
||||
- protocols: fix alpha-modifier noncompliance (#8929)
|
||||
- protocols: fix compilation error (#8988)
|
||||
- renderer: fix CRendererHintsPassElement reset duplication issue
|
||||
(#8928)
|
||||
- renderer: fix fullscreen hdr check (#9076)
|
||||
- renderer: fix oversized blur precalcs not blurring at all
|
||||
- renderer: fix rare case when a tiled window would be rendered
|
||||
over fs
|
||||
- shaders: fix blank windows when using corner rounding (#8969)
|
||||
(#8971)
|
||||
- window: fixup fade out animation on silent moves
|
||||
- xwayland: fix clipboard mime name and atom mismatch (#9137)
|
||||
- xwayland: fix compile with no xwayland
|
||||
- xwayland: fix crash when trying to initialize without Xwayland
|
||||
installed (#9077)
|
||||
- xwayland: fix dnd including xwayland
|
||||
- xwayland: fix pointer mismatches with multiple monitors (#9179)
|
||||
- xwayland: fix sending large clipboard data (#9134)
|
||||
- xwayland: various window handling fixes
|
||||
- xwm: fixup targets in selection requests
|
||||
+ Other:
|
||||
- properly install 'hyprland' symlink (#9091)
|
||||
- Renderer: rewrite render scheduling (#8683)
|
||||
- animation: avoid crashes in ::tick() on mutations
|
||||
- animationmgr: don't warp based on POINTY value (#9000)
|
||||
- binds: cycle within group on single monitor if no window found
|
||||
in the argument direction. (#8714)
|
||||
- config: avoid querying the fs every tick
|
||||
- config: disable borderangle by default (#9165)
|
||||
- config: update animation even if disabled
|
||||
- config/ConfigManager.cpp: add instruction to edit config
|
||||
(#9130)
|
||||
- core: add LIKELY and UNLIKELY macros
|
||||
- core: always use goal size to send to clients
|
||||
- core: avoid activating toplevel-less surfaces
|
||||
- core: cleanup header includes (#9088)
|
||||
- core: fade in windows when they are brought from invisible
|
||||
workspaces
|
||||
- core: guard workspace and monitor in moveWorkspaceToMonitor
|
||||
- core: make persistent workspaces always follow the config
|
||||
- core: move all shared_ptrs from the STL to hyprutils (#9143)
|
||||
- core: move parts of the animation system to hyprutils (#8868)
|
||||
- core: move sendWindowSize off of xwaylandmgr
|
||||
- core: move to inotify for monitoring the config files
|
||||
- core: refactor/improve monitor mode selection (#8804)
|
||||
- core: reserve vector sizes as much as we can (#9118)
|
||||
- core: update groups on movewindow (#9183)
|
||||
- core: use cpu-buffer hw cursors on nvidia by default
|
||||
- core: use readFileAsString instead of cat for os-release
|
||||
- ctm: disable fade animation by default on nvidia
|
||||
- datadevice: do the unfocus surface stuff before dndActive is
|
||||
true (#9157)
|
||||
- datadevice: guard XWayland server against crashes
|
||||
- desktop: move desktop types to memory-safe pointers
|
||||
- dnd/seat: avoid sending button events during a dnd op
|
||||
- foreign-toplevel: update active on null window focus (#8860)
|
||||
- fractional-scale: avoid redundant and duplicate scale events
|
||||
- groupbar: unify title rendering
|
||||
- groups: honor group lock window rule (#8782)
|
||||
- hooksystem: avoid huge include for HANDLE
|
||||
- hyprpm: use glaze to parse hyprctl plugin list (#8812)
|
||||
- input: abord dnd op on escape pressed
|
||||
- input: pass touch events to lock screens (#9129)
|
||||
- internal: Make static analysis more happy (#8767)
|
||||
- internal: added reference to CTimer class in KeybindManager
|
||||
(#8836)
|
||||
- internal: few small monitor improvements (#8890)
|
||||
- internal: update window position/size after changing
|
||||
fullscreenstate (#8865)
|
||||
- keybinds: attempt to wrap around if fallback is allowed in
|
||||
movefocus
|
||||
- layershell: check if layer is valid (#9156)
|
||||
- layershell: return focus to a valid ls on close if possible
|
||||
- layout: apply group rules after window creation (#8779)
|
||||
- layout: damage window properly on float mode changes
|
||||
- layout: force full damage on toggling floating mode
|
||||
- layout: set window size after toggling floating
|
||||
- logging: get broader GPUINFO (#8753)
|
||||
- master: make loop around optional when cycling (#8926)
|
||||
- master: replace always_center_master with
|
||||
slave_count_for_center_master (#8871)
|
||||
- monitor: avoid crashes on no good modes
|
||||
- monitor: bring back old description behavior
|
||||
- opengl: only allocate offMainFB on demand
|
||||
- opengl: use uv to avoid rendering the entire blurbox
|
||||
- pass: allow removing all pass elements of a given type
|
||||
- pass: ignore empty rectangles queued
|
||||
- pass: improve blur region detection
|
||||
- pass: improve pass debug mode
|
||||
- pass: improve pass debugging
|
||||
- pass: mark crucial elements as undiscardable
|
||||
- pass: scale blur region in ::render
|
||||
- pass: scale blur regions properly
|
||||
- pointer: always scale the cpu cursor to the right size
|
||||
- protocols: allow hyprland-toplevel-export to capture hidden
|
||||
windows (#9041)
|
||||
- protocols: do not capture cursor in toplevel without pointer
|
||||
focus (#9042)
|
||||
- protocols: do not destroy screencopy resources before client
|
||||
request (#9048)
|
||||
- protocols: immediately copy toplevel content when ignoreDamage
|
||||
set (#9049)
|
||||
- regex: log an error if regex parsing fails
|
||||
- renderer/internal: stop using box pointers
|
||||
- renderer: Auto enable wide color gamut in HDR mode (#9090)
|
||||
- renderer: Do not set hdr metadata unless needed (#9014)
|
||||
- renderer: allow plugins to know what window was rendered in
|
||||
post
|
||||
- renderer: don't access hdrMetadata optional if it has no value
|
||||
(#8987)
|
||||
- renderer: unload background texture if it's disabled
|
||||
- renderer: use a render pass for render modif in client render
|
||||
- renderer: use cairo for cpu buffer rendering (#9071)
|
||||
- shadow: avoid drawing empty shadows
|
||||
- snap: don't snap to any windows if workspace has a fullscreen
|
||||
window (#8870)
|
||||
- snap: give edge snapping precedence over corner snapping
|
||||
(#8873)
|
||||
- snap: revert #8659, use bounds checking instead of bit mask
|
||||
(#8872)
|
||||
- subsurface: damage the entire parent on size change
|
||||
- tablet: send motions on tip events (#9132)
|
||||
- window: only set m_iMonitorMovedFrom, when moving to a
|
||||
different monitor (#9160)
|
||||
- windowrules: precompute regexes for window/layer rules
|
||||
- windows: honor xdg_toplevel_set_fullscreen output hint (#8965)
|
||||
- windows: minor initial workspace improvements
|
||||
- xwayland: avoid sending value of real size to xwayland
|
||||
- xwayland: don't create an abstract unix domain socket on linux
|
||||
(#8874)
|
||||
- xwayland: don't define atoms on no_xwayland builds
|
||||
- xwayland: support sending clipboard change notification on
|
||||
focus (#9111)
|
||||
- Added "disable-donation-nag-popup.patch" to prevent the donation
|
||||
nag popup from spawning.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Dec 20 07:58:25 UTC 2024 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.46.2:
|
||||
+ Fixes backported:
|
||||
- windowrules: fixup duplicate rule enum tags
|
||||
- hyprctl: fix hyprctl batch json command (#8749)
|
||||
- core: avoid activating toplevel-less surfaces
|
||||
- xwayland: fixes to no_xwayland builds
|
||||
- xwm: fixup targets in selection requests
|
||||
- core: unbreak build on FreeBSD (#8762)
|
||||
- hyprpm: fix hyprpm sometimes returning 0 despite errors
|
||||
occurring (#8761)
|
||||
- core: fix possible crash on null workspace
|
||||
- layout: apply groups after window creation (#8779)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 17 19:35:11 UTC 2024 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.46.1:
|
||||
+ A minor release with a patch backported from main.
|
||||
+ Fixes backported:
|
||||
- windowrules: fixup duplicate rule enum tags
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Dec 17 11:20:07 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.46.0:
|
||||
+ The Hyprland overlord (also known as Santa in December) is
|
||||
proudly bringing you 0.46.0.
|
||||
Merry Hypr Christmas!
|
||||
+ Breaking changes
|
||||
- window/layer rule regexes now require a full match (not any
|
||||
match) to trigger.
|
||||
- cursor:dumb_copy is gone in favor of cursor:use_cpu_buffer.
|
||||
This should allow no-downsides Nvidia hardware cursors. Please
|
||||
note it's experimental.
|
||||
+ New features:
|
||||
- binds: add option to allow fullscreening a pinned window
|
||||
(#8526)
|
||||
- config: add 'force' option for
|
||||
'cursor:warp_on_change_workspace' (#8681)
|
||||
- core: Add support for hyprqtutils' update screen (#8651)
|
||||
- core: add a few festive splashes
|
||||
- core: move colorspace handling to oklab (#8635)
|
||||
- dispatchers: Add an option to prioritize focus change within
|
||||
groups with movefocus (#8601)
|
||||
- hooks: add pre connected/disconnected monitor events (#8503)
|
||||
- hyprctl: add an inhibitingIdle field to windows
|
||||
- hyprctl: add directScanout to hyprctl monitors
|
||||
- hyprctl: add json output on hyprctl -j plugins list (#8480)
|
||||
- input: add warp_back_after_non_mouse_input
|
||||
- logging: Add some context to config error logs (#8326)
|
||||
- pointer: add drm dumb buffers for cursors (#8399)
|
||||
- renderer: add lockdead_screen_delay (#8467)
|
||||
- renderer: add option to blur IME popups (#8521)
|
||||
- version: add link versions for other utils (#8619)
|
||||
- windowrules: add rules for mouse and touchpad scroll factors
|
||||
(#8655)
|
||||
- xwayland: Support cross DnD from Wayland (#8708)
|
||||
+ Fixes:
|
||||
- animationmgr: fixup stack-use-after-return
|
||||
- compositor: fix monitor arrangement with mixed auto directions
|
||||
- core/data-device: expand damage region to fix minor px errors
|
||||
- core: Fix workspace selector parsing (#8687)
|
||||
- data-device: fixup wrong box expansion
|
||||
- defaultConfig: fixup smart gaps rules
|
||||
- hyprpm: fix incomplete unmet dependencies message
|
||||
- internal: fix changeWindowZOrder reordering incorrectly (#8494)
|
||||
- internal: fix some misused configStringToInt conversions
|
||||
- internal: fixup some missed updateColorsOk() calls
|
||||
- layerrules: fix ignorezero not working
|
||||
- monitor: fix default focus when switching to a fs workspace
|
||||
- opengl: fixup invalid ogl uniform reads
|
||||
- opengl: fixup missed /4 in oklab parsing
|
||||
- renderer: fix incorrect early return (#8590)
|
||||
- renderer: fixup blur optimization considitons
|
||||
- seat: fix double scrolling in some applications (#8583)
|
||||
- shm: fix shm fd size check before creating or resizing shm_pool
|
||||
(#8572)
|
||||
- windowrules: fix prop rules with boolean values
|
||||
- workspace: fix missing name via focusworkspaceoncurrentmonitor
|
||||
(#8484)
|
||||
+ Other:
|
||||
- bezier: optimize setup of bezier curves (#8528)
|
||||
- bind: new long press option (#8302)
|
||||
- cleanup: remove leftover var in ThreadManager.cpp (#8611)
|
||||
- config: Changed the default value of
|
||||
decoration:blur:ignore_opacity to true (#8418)
|
||||
- config: don't overwrite errors in gradients
|
||||
- config: throw an error explicitly when parsing colors in
|
||||
gradients
|
||||
- config: update the configStringToInt implementation (#8476)
|
||||
- constraints: don't warp pointer position on release (#8491)
|
||||
- core/data: Use pointer focus for DnD operations (#8707)
|
||||
- core/output: don't send enter too aggresively
|
||||
- core: Move regex from stdlib to re2 (#8736)
|
||||
- core: Optimize window/layer rule application and scanning
|
||||
(#8735)
|
||||
- core: drop using deques in favor of vectors
|
||||
- core: feeling a bit quirky today.
|
||||
- core: guard pmonitor in focuswindow
|
||||
- core: move to os/Process from hyprutils
|
||||
- core: move version include to hyprctl
|
||||
- core: removed Herobrine
|
||||
- core: workspace-related function cleanup / refactor
|
||||
- crashreporter: avoid clang warning
|
||||
- debug: clean up fetching of the contents of /proc/device-tree
|
||||
(#8413)
|
||||
- debug: clean up opening of files in HyprCtl (#8401)
|
||||
- descriptions: change allow_pin_fullscreen value to false
|
||||
(#8592)
|
||||
- drm: enable explit out fence in AQ (#8431)
|
||||
- hyprctl: avoid crash on null pwuid
|
||||
- hyprctl: verify runtime dir exists in instances()
|
||||
- hyprland-uwsm.desktop: Just reference plain entry (#8553)
|
||||
- hyprpm: move temp files to XDG_RUNTIME_DIR
|
||||
- hyprpm: target installed instead of running version (#8634)
|
||||
- internal: minor cleanups for color results
|
||||
- keybinds: actually suppress internal keybinds instead of
|
||||
passing them along (#8538)
|
||||
- keybinds: allow repeating multiple binds (#8290)
|
||||
- keybinds: don't animate fullscreen size/pos changes coming in
|
||||
- keybinds: move to managed pointers
|
||||
- layersurface: use lastMonitor and not monitor from cursor for
|
||||
new ls
|
||||
- master: make center ignore reserved areas (#8625)
|
||||
- meson: autodetect systemd
|
||||
- miscfunctions: move configStringToInt to std::expected
|
||||
- pointer: map devices across all outputs by default (#8352)
|
||||
- protocols: mark primarySelection as not privileged
|
||||
- rename hyprland-systemd.desktop and remove
|
||||
hyprland-session.service
|
||||
- renderer: don't render unmapped popups
|
||||
- renderer: drop requesting OUT_FENCE_PTR
|
||||
- renderer: restore discard mode after IME render pass
|
||||
- renderer: scaled surfaces could have zero area (#8423)
|
||||
- renderer: simplify blur enabling logic
|
||||
- shell: don't use fgrep, prefer grep -F
|
||||
- shell: propagate new machanism from hyprctl to miscfunctions
|
||||
- snap: account for position of multiple monitors (#8543)
|
||||
- snap: bias reserved area when its size is greater than zero
|
||||
(#8694)
|
||||
- snap: check which corner is being grabbed for monitor snapping
|
||||
(#8637)
|
||||
- snap: use the bit mask to check if snapping occurred (#8659)
|
||||
- systemd: hyprland-systemd.desktop -> hyprland-uwsm.desktop
|
||||
- versionkeeper: init version to 0.0.0 if no file is present
|
||||
- windows/xdg: minor cleanup of min/max size calculations
|
||||
- windows: allow replacing existing fullscreen (#8566)
|
||||
- workspace: update hasFullscreenWindow in updateWindows
|
||||
- workspacerules: Do not check 'on-created-empty' if using a
|
||||
workspace windowrule (#8486)
|
||||
- xcursors: store themes in a std:set to order it (#8474)
|
||||
- xdg-shell: don't report invalid min/max sizes on unset
|
||||
- xdg-shell: even more robust layout min/max size
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Nov 20 13:55:57 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.45.2:
|
||||
+ Another minor release with 2 patches backported on top of 0.45.1.
|
||||
+ Fixes backported
|
||||
- internal: fix changeWindowZOrder reordering incorrectly (#8494)
|
||||
- xdg-shell: don't report invalid min/max sizes on unset
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 18 21:31:16 UTC 2024 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.45.1:
|
||||
+ A minor update with a few fixes backported from main.
|
||||
+ Fixes:
|
||||
- defaultConfig: fixup smart gaps rules
|
||||
- hyprpm: fix format crash
|
||||
- workspace: fix missing name via focusworkspaceoncurrentmonitor
|
||||
(#8484)
|
||||
- constraints: don't warp pointer position on release (#8491)
|
||||
- core: guard pmonitor in focuswindow
|
||||
- protocols: mark primarySelection as not privileged
|
||||
- renderer: don't render unmapped popups
|
||||
- renderer: scaled surfaces could have zero area (#8423)
|
||||
- shell: don't use fgrep, prefer grep -F
|
||||
- windows/xdg: minor cleanup of min/max size calculations
|
||||
- workspacerules: Do not check 'on-created-empty' if using a
|
||||
workspace windowrule (#8486)
|
||||
- xcursors: store themes in a std:set to order it (#8474)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 9 16:26:26 UTC 2024 - Florian "spirit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.45.0:
|
||||
+ A big update, with tons of fixes, improvements and new stuff!
|
||||
+ Breaking changes
|
||||
- no_gaps_when_only has been removed. See the wiki for equivalent
|
||||
workspace rules.
|
||||
- decoration:shadow_ variables have moved. See the wiki for the
|
||||
new names.
|
||||
+ New features:
|
||||
- feat: add a custom made treewide formatter (#7992)
|
||||
- groups: add group_on_movetoworkspace (#8159)
|
||||
- groups: add merge_groups_on_groupbar (#8362)
|
||||
- hyprctl: add caps/num lock state for keyboards (#8145)
|
||||
- hyprctl: add mirrorOf to hyprctl monitors
|
||||
- hyprpm: Add option to notify on fail and keep original notify
|
||||
(#8167)
|
||||
- input: add snapping to floating windows (#8088)
|
||||
- layout: add drag_into_group to control merging dragging windows
|
||||
(#8004)
|
||||
- layout: add merge_floated_into_tiled_on_groupbar (#8042)
|
||||
- pointer: add default auto for no_hw_cursors
|
||||
- protocols: Add support for hyprland-ctm-control-v1 (#8023)
|
||||
- renderer: Add a missing texture asset and a user check
|
||||
- renderer: add expand_undersized_textures
|
||||
- shadow: add sharp and refactor options
|
||||
- snap: add option border_overlap and other improvements (#8289)
|
||||
+ Fixes:
|
||||
- IME: Fixup IME popup candidate windows position when scale is
|
||||
not 1.0 (#8117)
|
||||
- Makefile: fix legacyrendererdebug typo (#8214)
|
||||
- Systemd fixes
|
||||
- config: fix generateConfig loop (#8164)
|
||||
- core: fix group members disappearing when you move the group to
|
||||
another monitor (#8237)
|
||||
- drm-lease: fix crashes and implementation (#8116)
|
||||
- drm-syncobj: fix crash on missing timelines
|
||||
- drm-timeline: Add check for conflicting acquire and release
|
||||
points (#8083)
|
||||
- group: fix moveWindowIntoGroup (#8297)
|
||||
- groups: fix swallowing (#8223)
|
||||
- hyprerror: fix height calc with bottom bar (#8043)
|
||||
- hyprpm: Fix crashes due to misplaced fmt argument(s) (#8140)
|
||||
- input: Fix VRR for constrained cursors (#6877)
|
||||
- internal: cleanup CMonitor usage and fix a few ref hogs
|
||||
- keybinds: fixup xkb_states for resolve_by_sym
|
||||
- layersurface: fixup brace style
|
||||
- layout: fix auto group when opening a new window in a
|
||||
non-focused workspace using window rules (#8006)
|
||||
- layout: window snapping cleanup + fixes
|
||||
- misc: Fix bad links to wiki (#8240)
|
||||
- monitors: fix vrr breaking monitor disconnect (#8314)
|
||||
- notif-overlay: add a bit of padding for icons
|
||||
- renderer: fix floating window damage (#8182)
|
||||
- renderer: minor fixup to window rendering logic (#8359)
|
||||
- screencopy: fix build with legacyrenderer
|
||||
- screencopy: fix screencopy frames not being cleaned up (#8017)
|
||||
- shaders: fixup jagged edges in texture rounded corners
|
||||
- shadow: fix double premultiplication
|
||||
- xwayland: minor cleanups and fixes (#8076)
|
||||
- xwayland: minor fixups for stability (#8323)
|
||||
+ Other:
|
||||
- Build with hyprland-session.service (#8251)
|
||||
- config/example: add optional smart gaps to the default config
|
||||
- defaultConfig: add a nofocus rule for weird X windows
|
||||
- Improve hyprland-session.service (#8225)
|
||||
- compositor: make sure we don't ret early on no surface
|
||||
- config/layout: nuke no_gaps_when_only (#8072)
|
||||
- config: give simple help for super+q not working
|
||||
- core: move internal structures to monitor pointers (#8266)
|
||||
- default/config: improve default animations
|
||||
- defaultConfig: improve smart gaps
|
||||
- defaultConfig: update default config values for shadows (#8360)
|
||||
- dispatchers: allow leading whitespace in window parameter
|
||||
(#8016)
|
||||
- example: update desktop file to include DesktopNames
|
||||
- example/hyprland-session.service: add support for xdg autostart
|
||||
(#8230)
|
||||
- foreign-toplevel-wlr: don't send updates to X11 OR windows
|
||||
- foreign-toplevel: don't send updates to X11 OR windows
|
||||
- gammactrl: guard pMonitor in setGamma
|
||||
- groupbar: set locked color when groups are globally locked
|
||||
(#8257)
|
||||
- hyprctl: convert std::cout and std::cerr to std::println()
|
||||
- hyprctl: move setprop into dispatchers (#8275)
|
||||
- hyprctl: reload windowrules on reloadAll
|
||||
- hyprerror: make hyprerror reserve space (#8040)
|
||||
- hyprland-systemd.desktop improvements (#8318)
|
||||
- hyprland-systemd.desktop: change name back to Hyprland (#8351)
|
||||
- hyprland: convert std::cout and std::cerr to std::println()
|
||||
- hyprpm: convert std::cout and std::cerr to std::println()
|
||||
- hyprpm: disallow shallow on unknown branch
|
||||
- input: Refocus window on scrolling if follows mouse (#8361)
|
||||
- input: cleanup device naming logic
|
||||
- input: ignore non-kb ls-es in refocusLastWindow
|
||||
- internal: Move CMonitor to SP (#8178)
|
||||
- internal: Remove some unused lambda captures (#8218)
|
||||
- internal: check size limit in layouts (#8298)
|
||||
- internal: few more marginal optimisations from profiling
|
||||
(#8271)
|
||||
- internal: improve version query and define HYPRLAND_VERSION
|
||||
(#8034)
|
||||
- internal: more profiling less calls and local copies (#8300)
|
||||
- internal: optimize cursor move a bit (#8264)
|
||||
- internal: use clampWindowSize to unify min/maxsize handling
|
||||
(#8014)
|
||||
- keyboard: update group state on change for the sym resolve
|
||||
state
|
||||
- layershell: check if workspace is valid in onMap
|
||||
- layershell: minor cleanups and improvements to focus
|
||||
- layersurface: round geom in arrangeLayerArray
|
||||
- layout: deny auto-grouping a new floating window into a tiled
|
||||
group (#8108)
|
||||
- layout: don't snap to self and allow same-pid snaps
|
||||
- layout: enable group rules for new floating windows (#8122)
|
||||
- layout: move applyGroupRules() to onWindowCreated() (#8139)
|
||||
- layout: remove unnecessary check after 45e8219 (#8037)
|
||||
- layout: simplify the conditions to autogroup (#8120)
|
||||
- layout: slight adjustments to snapping logic (#8273)
|
||||
- misc: refactor version command (#8027)
|
||||
- monitor: avoid crash on released buffer in surf
|
||||
- monitor: modernize/refactor last legacy-handled events
|
||||
- output/xdg-output: avoid sending events to released globals
|
||||
- output: send enter events on late wl_output binds
|
||||
- output: update state even if no owner exists (#8044)
|
||||
- pointer: expand sw cursor damage box
|
||||
- renderer: don't rely on datarootdir for local share
|
||||
- renderer: improve api around new framebuffer changes
|
||||
- renderer: reserve space for error at the bottom if that's set
|
||||
- renderer: safeguard against non-sampleable currentFB in
|
||||
blurMainFb
|
||||
- seat: avoid sending pointless 'keymap' and 'repeat_info' events
|
||||
(#8276)
|
||||
- security-context: avoid UB in C macro (#8229)
|
||||
- security-context: close client fds after disconnect
|
||||
- security-context: implement protocol
|
||||
- session-lock: reset seat grab on a new session lock (#8147)
|
||||
- shaders: improve corner AA in borders shader
|
||||
- swallow: check if swallow_regex doesn't exist (#8265)
|
||||
- tablet: use inputMgr unified naming scheme
|
||||
- window: properly break cycles in X11TransientFor
|
||||
- windowrules: allow specifying max size in size window rule
|
||||
(#8021)
|
||||
- xcursor: don't crash on broken permissions in X themes
|
||||
- xwm: avoid infinite parent lookup loop in lookupParentExists
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 9 15:11:23 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.44.1:
|
||||
+ A minor patch release with a few patches backported from main to
|
||||
0.44.0.
|
||||
+ Fixes backported
|
||||
- output/xdg-output: avoid sending events to released globals
|
||||
- keyboard: update group state on change for the sym resolve
|
||||
state
|
||||
- defaultConfig: add a nofocus rule for weird X windows
|
||||
- pointer: expand sw cursor damage box
|
||||
- keybinds: fixup xkb_states for resolve_by_sym
|
||||
- config: give simple help for super+q not working
|
||||
- screencopy: fix screencopy frames not being cleaned up
|
||||
- layout: fix auto group when opening a new window in a
|
||||
non-focused workspace
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Oct 6 11:41:04 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
|
||||
- Update to version 0.44.0:
|
||||
+ An update full of bugfixes and new niceties has landed upon us :)
|
||||
+ New features:
|
||||
- args: add --version to binary args
|
||||
- config: add descriptions for dwindle and master layout options
|
||||
(#7933)
|
||||
- config: add order rule for layers (#7697)
|
||||
- core: add HYPRLAND_CONFIG environment variable (#7851)
|
||||
- core: add a --systeminfo parameter to gather systeminfo without
|
||||
running
|
||||
- dwindle: add config option split_bias (#7920)
|
||||
- dwindle: add movetoroot method to layout messages (#7903)
|
||||
- hyprctl: add defaultName to workspacerules
|
||||
- hyprctl: add solitary field to hyprctl monitors
|
||||
- hyprctl: add submap request
|
||||
- layout: add auto_group to control default grouping (#7883)
|
||||
- userchecks: add an xdg_current_desktop check
|
||||
+ Fixes:
|
||||
- Meson: fix protocols, clean up
|
||||
- Meson: add tracy dependency
|
||||
- byteoperations: add missing header
|
||||
- core: Fix Musl builds (#7934)
|
||||
- dispatchers: fixup dpms toggle (#7875)
|
||||
- gammactrl: fix potential crash on monitor removed (#7828)
|
||||
- internal: Fix change group current fullscreen state query
|
||||
(#7802)
|
||||
- internal: fix initial cursor warping (#7793)
|
||||
- internal: fix missing include directive (#7984)
|
||||
- layout: fix dragging a window into a group (#7976)
|
||||
- man: Fixed the man page to show the new information (#7713)
|
||||
- protocol: fix missing include
|
||||
- renderer: Fix resize artifacts (stretching, bumps) (#7499)
|
||||
- renderer: fix uvBR calculation (#7975)
|
||||
- textinput: fix tiv3 leave (#7761)
|
||||
- tiv1: fix deleting first character (#7716)
|
||||
+ Other:
|
||||
- Internal: move to Mat3x3 from hyprutils (#7902)
|
||||
- Meson: pass AQUAMARINE_VERSION argument
|
||||
- Meson: try to find udis86 through pkgconfig, fallback to
|
||||
subproject
|
||||
- assets: Remove execute permission from lockdead.png (#7715)
|
||||
- build: Set cmake_minimum_required to version 3.30 (#7709)
|
||||
- compositor/wayland: up the max buffer size to avoid disconnects
|
||||
when app hangs
|
||||
- compositor: update all xdg outputs on arrange
|
||||
- config: Limit max volume to 100%
|
||||
- config: include XF86Audio* key bindings to default cfg (#7695)
|
||||
- data-device: conform to reported source actions
|
||||
- data-device: don't send default action of move
|
||||
- data-device: send clock time in motion events
|
||||
- dispatchers: allow moveintogroup when floating (#7818)
|
||||
- dmabuffer: attempt importing failed dmabufs as implicit
|
||||
- eventloop: dispatch pending in session on start
|
||||
- github: encourage usage of --systeminfo if Hyprland won't
|
||||
launch
|
||||
- hyprctl: allow parsing empty value
|
||||
- hyprctl: use the getMonitorData helper everywhere
|
||||
- input: move dmps activation to input listeners (#7721)
|
||||
- internal: removed Herobrine
|
||||
- internal: Delay monitor events/hooks (#7797)
|
||||
- internal: move to hyprutils' scopeguard
|
||||
- internal: nuke wlsignal and related
|
||||
- monitor: arrange monitors on connect and disconnect
|
||||
- monitor: cleanup and modernize scheduleDone
|
||||
- monitor: use a scope guard for disconnect events
|
||||
- opengl: use GL_CLAMP_TO_EDGE instead of GL_CLAMP
|
||||
- pointermgr: Hide hardware cursor on leave (#7806)
|
||||
- pointermgr: avoid derefing null outputs
|
||||
- pointermgr: avoid hogging CMonitor refs
|
||||
- protocolmgr: don't expose the fallback output
|
||||
- shm: send a static list of shm formats
|
||||
- single-pixel-buffer: new protocol impl
|
||||
- single-pixel: set buffer size to 1,1
|
||||
- textinput: don't reset if ti isn't enabled (#7798)
|
||||
- textinput: handle IME resetting (#7731)
|
||||
- version: log build aquamarine version
|
||||
- wayland/output: send geometry in updateState
|
||||
- wlr-output-configuration: Improve output configuration (#7571)
|
||||
- wlr-output-management: accept 0 refresh rates
|
||||
- xdg-output: minor cleanups
|
||||
- xwayland: Some readability improvements (#7807)
|
||||
- xwayland: remove extra x11 deactivation (#7755)
|
||||
- xwayland: use proper path for the XWayland sockets (#7852)
|
||||
- xwm: Minor cleanup, add wrappers for basic types (#7856)
|
||||
- Added "meson-missing-wayland-include.patch" required to build
|
||||
hyprland. See message body of the patch for more details.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sun Sep 8 23:12:21 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
|
||||
@ -1808,6 +1113,7 @@ Sat Mar 16 19:50:56 UTC 2024 - Florian "sp1rit" <sp1rit@disroot.org>
|
||||
- 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
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package hyprland
|
||||
#
|
||||
# Copyright (c) 2025 SUSE LLC
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2022-24 Florian "sp1rit" <packaging@sp1rit.anonaddy.me>
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
@ -22,33 +22,29 @@
|
||||
%define shortname hypr
|
||||
|
||||
Name: hyprland
|
||||
Version: 0.47.2
|
||||
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
|
||||
Patch1: meson-missing-wayland-include.patch
|
||||
Patch2: disable-donation-nag-popup.patch
|
||||
Patch100: opensuse-hyprpm-use-hyprland-devel-subpkg.patch
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++ >= 14
|
||||
BuildRequires: git
|
||||
BuildRequires: glaze-devel
|
||||
BuildRequires: glslang-devel
|
||||
BuildRequires: meson
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: pkgconfig(aquamarine) >= 0.7.0
|
||||
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(hyprgraphics) >= 0.1.1
|
||||
BuildRequires: pkgconfig(hyprlang) >= 0.3.2
|
||||
BuildRequires: pkgconfig(hyprutils) >= 0.3.1
|
||||
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
|
||||
@ -56,8 +52,6 @@ BuildRequires: pkgconfig(libudev)
|
||||
BuildRequires: pkgconfig(pango)
|
||||
BuildRequires: pkgconfig(pangocairo)
|
||||
BuildRequires: pkgconfig(pixman-1) >= 0.42.0
|
||||
BuildRequires: pkgconfig(re2)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
BuildRequires: pkgconfig(tomlplusplus)
|
||||
BuildRequires: pkgconfig(uuid)
|
||||
BuildRequires: pkgconfig(vulkan) >= 1.2.182
|
||||
@ -165,7 +159,6 @@ sed -i 's;REPLACE_ME_WITH_PREFIX;%{_prefix};' hyprpm/src/core/DataState.cpp
|
||||
|
||||
%build
|
||||
%meson \
|
||||
-Duwsm=disabled \
|
||||
-Dwlroots-hyprland:xcb-errors=%{?with_xcb_errors:enabled}%{!?with_xcb_errors:disabled}
|
||||
%meson_build
|
||||
|
||||
@ -176,7 +169,6 @@ sed -i 's;REPLACE_ME_WITH_PREFIX;%{_prefix};' hyprpm/src/core/DataState.cpp
|
||||
%license LICENSE
|
||||
%doc README.md
|
||||
%{_bindir}/Hyprland
|
||||
%{_bindir}/hyprland
|
||||
%{_bindir}/hyprctl
|
||||
%{_bindir}/hyprpm
|
||||
%dir %{_datadir}/%{shortname}
|
||||
|
@ -1,36 +0,0 @@
|
||||
From d037427e96b75d66d73fac73eda659b6fcaf33c5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20=22sp1rit=22=E2=80=8B?= <sp1rit@disroot.org>
|
||||
Date: Sun, 6 Oct 2024 14:46:19 +0200
|
||||
Subject: [PATCH] protocols/meson: fix missing wayland header
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Compilation of wlr-foreign-toplevel-management-unstable-v1.cpp fails due
|
||||
to its header including <wayland-server.h>. This change adds the
|
||||
required dependency to the static library.
|
||||
|
||||
Signed-off-by: Florian "sp1rit" <sp1rit@disroot.org>
|
||||
---
|
||||
protocols/meson.build | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/protocols/meson.build b/protocols/meson.build
|
||||
index 6990b5a..d28aefd 100644
|
||||
--- a/protocols/meson.build
|
||||
+++ b/protocols/meson.build
|
||||
@@ -92,9 +92,11 @@ wayland_protocol = custom_target(
|
||||
command: [hyprwayland_scanner, '--wayland-enums', '@INPUT@', '@OUTDIR@'],
|
||||
)
|
||||
|
||||
+wayland_server_dep = dependency('wayland-server', version: '>=1.20.0')
|
||||
lib_server_protos = static_library(
|
||||
'server_protos',
|
||||
wl_protocols + wayland_protocol,
|
||||
+ dependencies: wayland_server_dep.partial_dependency(compile_args: true),
|
||||
)
|
||||
|
||||
server_protos = declare_dependency(
|
||||
--
|
||||
2.46.0
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 1046bd52a4725819fd0ab00391b29adeb0d1eeef Mon Sep 17 00:00:00 2001
|
||||
From c34dc954cc6388e9bc9ea608152ae4fc3f201bb1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Florian=20sp1rit=E2=80=8B?= <sp1rit@disroot.org>
|
||||
Date: Fri, 14 Jun 2024 23:43:46 +0200
|
||||
Subject: [PATCH] openSUSE: Use hyprland-devel instead of downloading from
|
||||
@ -17,23 +17,27 @@ It also adds a new check to ensure that the subpackage is instealled.
|
||||
Signed-off-by: Florian "sp1rit" <sp1rit@disroot.org>
|
||||
---
|
||||
hyprpm/src/core/DataState.cpp | 2 +-
|
||||
hyprpm/src/core/PluginManager.cpp | 138 ++++--------------------------
|
||||
2 files changed, 20 insertions(+), 120 deletions(-)
|
||||
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 fb8679d..a1c7026 100644
|
||||
index 61ad336..99dbadd 100644
|
||||
--- a/hyprpm/src/core/DataState.cpp
|
||||
+++ b/hyprpm/src/core/DataState.cpp
|
||||
@@ -22,3 +22,3 @@ std::string DataState::getHeadersPath() {
|
||||
@@ -21,7 +21,7 @@ std::string DataState::getDataStatePath() {
|
||||
}
|
||||
|
||||
std::string DataState::getHeadersPath() {
|
||||
- return getDataStatePath() / "headersRoot";
|
||||
- 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 48b108c..b0f590b 100644
|
||||
index 6988547..036c705 100644
|
||||
--- a/hyprpm/src/core/PluginManager.cpp
|
||||
+++ b/hyprpm/src/core/PluginManager.cpp
|
||||
@@ -15,6 +15,7 @@
|
||||
@@ -14,6 +14,7 @@
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
@ -41,25 +45,26 @@ index 48b108c..b0f590b 100644
|
||||
#include <pwd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
@@ -435,141 +436,27 @@ bool CPluginManager::updateHeaders(bool force) {
|
||||
const auto HLVER = getHyprlandVersion(false);
|
||||
@@ -406,134 +407,20 @@ bool CPluginManager::updateHeaders(bool force) {
|
||||
const auto HLVER = getHyprlandVersion();
|
||||
|
||||
if (!hasDeps()) {
|
||||
- std::println("\n{}", failureString("Could not update. Dependencies not satisfied. Hyprpm requires: cmake, meson, cpio, pkg-config"));
|
||||
+ std::println("\n{}", failureString("Could not update. Dependencies not satisfied. Hyprpm requires: hyprland-devel, cmake, meson, cpio, pkg-config"));
|
||||
- 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(getTempRoot())) {
|
||||
- std::filesystem::create_directory(getTempRoot());
|
||||
- std::filesystem::permissions(getTempRoot(), std::filesystem::perms::owner_all, std::filesystem::perm_options::replace);
|
||||
-
|
||||
- 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::println("\n{}", successString("Headers up to date."));
|
||||
- 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;
|
||||
@ -68,76 +73,77 @@ index 48b108c..b0f590b 100644
|
||||
- progress.print();
|
||||
-
|
||||
- const std::string USERNAME = getpwuid(getuid())->pw_name;
|
||||
- const auto WORKINGDIR = getTempRoot() + "hyprland-" + USERNAME;
|
||||
- const auto WORKINGDIR = "/tmp/hyprpm/hyprland-" + USERNAME;
|
||||
-
|
||||
- if (!createSafeDirectory(WORKINGDIR)) {
|
||||
- std::println("\n{}", failureString("Could not prepare working dir for hl"));
|
||||
- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not prepare working dir for hl\n";
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- progress.printMessageAbove(statusString("!", Colors::YELLOW, "Cloning https://github.com/hyprwm/Hyprland, this might take a moment."));
|
||||
- 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") && !m_bNoShallow;
|
||||
- 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'");
|
||||
- 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(verboseString("will shallow since: {}", SHALLOW_DATE));
|
||||
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "will shallow since: " + SHALLOW_DATE);
|
||||
-
|
||||
- std::string ret = execAndGet(std::format("cd {} && git clone --recursive https://github.com/hyprwm/Hyprland hyprland-{}{}", getTempRoot(), USERNAME,
|
||||
- (bShallow ? " --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(failureString("Clone failed. Retrying without shallow."));
|
||||
- ret = execAndGet(std::format("cd {} && git clone --recursive https://github.com/hyprwm/hyprland hyprland-{}", getTempRoot(), USERNAME));
|
||||
- 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::println(stderr, "\n{}", failureString("Could not clone the Hyprland repository. shell returned:\n{}", ret));
|
||||
- std::cerr << "\n" << Colors::RED << "✖" << Colors::RESET << " Could not clone the hyprland repository. shell returned:\n" << ret << "\n";
|
||||
- return false;
|
||||
- }
|
||||
-
|
||||
- progress.printMessageAbove(successString("Hyprland cloned"));
|
||||
- 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(verboseString("will run: cd {} && git checkout {} 2>&1", WORKINGDIR, HLVER.hash));
|
||||
- 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::println(stderr, "\n{}",
|
||||
- failureString("Could not checkout the running Hyprland commit. If you are on -git, try updating.\n"
|
||||
- "You can also try re-running hyprpm update with --no-shallow."));
|
||||
- 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(verboseString("git returned (co): {}", ret));
|
||||
- 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(verboseString("git returned (rs): {}", ret));
|
||||
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "git returned (rs): " + ret);
|
||||
-
|
||||
- progress.printMessageAbove(successString("checked out to running ver"));
|
||||
- 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(statusString("!", Colors::YELLOW, "configuring Hyprland"));
|
||||
- progress.printMessageAbove(std::string{Colors::YELLOW} + "!" + Colors::RESET + " configuring Hyprland");
|
||||
-
|
||||
- if (m_bVerbose)
|
||||
- progress.printMessageAbove(verboseString("setting PREFIX for cmake to {}", DataState::getHeadersPath()));
|
||||
- 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(verboseString("cmake returned: {}", ret));
|
||||
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "cmake returned: " + ret);
|
||||
-
|
||||
- if (ret.contains("CMake Error at")) {
|
||||
- // missing deps, let the user know.
|
||||
@ -146,49 +152,49 @@ index 48b108c..b0f590b 100644
|
||||
- missing = missing.substr(0, missing.find("-- Configuring incomplete"));
|
||||
- missing = missing.substr(0, missing.find_last_of('\n'));
|
||||
-
|
||||
- std::println(stderr, "\n{}",
|
||||
- failureString("Could not configure the hyprland source, cmake complained:\n{}\n\n"
|
||||
- "This likely means that you are missing the above dependencies or they are out of date.",
|
||||
- missing));
|
||||
- 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(successString("configured Hyprland"));
|
||||
- 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();
|
||||
|
||||
- const std::string& cmd =
|
||||
- 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(verboseString("installation will run: {}", cmd));
|
||||
- progress.printMessageAbove(std::string{Colors::BLUE} + "[v] " + Colors::RESET + "installation will run: " + cmd);
|
||||
-
|
||||
- ret = execAndGet(cmd);
|
||||
-
|
||||
- if (m_bVerbose)
|
||||
- std::println("{}", verboseString("installer returned: {}", ret));
|
||||
- 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(successString("installed headers"));
|
||||
progress.printMessageAbove(std::string{Colors::GREEN} + "✔" + Colors::RESET + " installed headers");
|
||||
- progress.m_iSteps = 5;
|
||||
+ progress.m_iSteps = 1;
|
||||
progress.m_szCurrentMessage = "Done!";
|
||||
progress.print();
|
||||
|
||||
std::print("\n");
|
||||
@@ -541,7 +428,7 @@ bool CPluginManager::updateHeaders(bool force) {
|
||||
} else {
|
||||
progress.printMessageAbove(failureString("failed to install headers with error code {} ({})", (int)HEADERSVALID, headerErrorShort(HEADERSVALID)));
|
||||
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();
|
||||
|
||||
@@ -945,6 +832,19 @@ std::string CPluginManager::headerErrorShort(const eHeadersErrors err) {
|
||||
@@ -904,6 +791,19 @@ std::string CPluginManager::headerErrorShort(const eHeadersErrors err) {
|
||||
}
|
||||
|
||||
bool CPluginManager::hasDeps() {
|
||||
@ -209,5 +215,5 @@ index 48b108c..b0f590b 100644
|
||||
for (auto const& d : deps) {
|
||||
if (!execAndGet("command -v " + d).contains("/"))
|
||||
--
|
||||
2.47.0
|
||||
2.45.2
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user