Compare commits

..

52 Commits

Author SHA1 Message Date
3825381f8d
Updated Makefile 2024-11-28 13:04:58 +00:00
720bf602fa
Added libjxl-devel for hyprpaper 2024-11-28 13:03:06 +00:00
dc8dd8f935
Updated requirements.sh 2024-11-28 13:02:55 +00:00
9d85fd9ad4
Added libjxl for hyprpaper 2024-11-28 12:58:31 +00:00
6600aeaa88
Updated Makefile
Changed how new content is pulled
2024-11-28 12:58:07 +00:00
eb3868260a
Updated hyprsolusctl
If check command ran in terminal, pidof string is discarded and the notify-send message is echoed.
2024-11-28 12:57:11 +00:00
649b52a5db
Updated Makefile 2024-11-17 19:48:11 +00:00
f0795a981d
Added hyprutils as dependency of hyprlang 2024-11-17 18:47:31 +00:00
9c3b2d6a4b
Moved variables for targets to the top 2024-11-17 18:45:18 +00:00
cd25a35ac5
Changed order of recipe for hyprlang 2024-11-17 18:40:25 +00:00
1db390c8b5
Updated hyprsolusctl 2024-11-17 18:20:13 +00:00
e6d95fb6b6
Updated Makefile 2024-11-17 18:14:09 +00:00
0632c9f345
Added sdbus-cpp for Hyprland 0.45.0 2024-11-17 17:35:08 +00:00
1aed62283d
Updated Makefile 2024-11-17 17:09:45 +00:00
d4e1774779
Updated hyprsolusctl 2024-11-17 14:17:41 +00:00
5c1b6e779c
Updated hyprsolusctl
Upgrade does not clean unless told to. Added call to Updating module components...
git submodule foreach \
	'git pull origin $(git rev-parse --abbrev-ref HEAD)'
Entering 'Hyprland'
Updating 6ae89940..af83c825
Fast-forward
 .github/workflows/ci.yaml                          |   2 +-
 .github/workflows/man-update.yaml                  |   4 +-
 .github/workflows/nix-update-inputs.yml            |   4 +-
 .github/workflows/release.yaml                     |   2 +-
 .github/workflows/security-checks.yml              |   2 +-
 .github/workflows/stale.yml                        |   2 +-
 CMakeLists.txt                                     |  16 +-
 Makefile                                           |   7 +-
 README.md                                          |   2 +-
 VERSION                                            |   2 +-
 docs/ISSUE_GUIDELINES.md                           |   2 +-
 example/hyprland-session.service                   |  14 -
 example/hyprland-systemd.desktop                   |   5 -
 example/hyprland.conf                              |  54 +++-
 example/hyprland.desktop                           |   4 +-
 flake.lock                                         |  42 +--
 hyprctl/Strings.hpp                                |   2 +
 hyprctl/main.cpp                                   |  37 +--
 hyprpm/CMakeLists.txt                              |   2 +-
 hyprpm/src/core/DataState.cpp                      |   6 +-
 hyprpm/src/core/PluginManager.cpp                  | 289 +++++++++----------
 hyprpm/src/core/PluginManager.hpp                  |   3 +-
 hyprpm/src/helpers/StringUtils.hpp                 |  32 +++
 hyprpm/src/main.cpp                                |  44 +--
 hyprpm/src/progress/CProgressBar.cpp               |  16 +-
 hyprpm/src/progress/CProgressBar.hpp               |   2 +-
 meson.build                                        |  13 +-
 meson_options.txt                                  |   1 +
 nix/default.nix                                    |   6 +-
 nix/overlays.nix                                   |  10 +-
 src/Compositor.cpp                                 | 300 +++++++++++---------
 src/Compositor.hpp                                 |  42 +--
 src/config/ConfigDescriptions.hpp                  |  92 ++++--
 src/config/ConfigManager.cpp                       | 116 +++++---
 src/config/ConfigManager.hpp                       |   8 +-
 src/config/defaultConfig.hpp                       |  54 +++-
 src/debug/HyprCtl.cpp                              | 262 +++++++++--------
 src/debug/HyprCtl.hpp                              |   1 +
 src/debug/HyprDebugOverlay.cpp                     |  18 +-
 src/debug/HyprDebugOverlay.hpp                     |  24 +-
 src/debug/HyprNotificationOverlay.cpp              |   8 +-
 src/debug/HyprNotificationOverlay.hpp              |   8 +-
 src/debug/Log.cpp                                  |   4 +-
 src/desktop/DesktopTypes.hpp                       |   6 +
 src/desktop/LayerSurface.cpp                       |  55 ++--
 src/desktop/LayerSurface.hpp                       |   5 +-
 src/desktop/Popup.cpp                              |  16 +-
 src/desktop/Popup.hpp                              |   2 +-
 src/desktop/Window.cpp                             |  78 +++---
 src/desktop/Window.hpp                             |  25 +-
 src/desktop/Workspace.cpp                          |  30 +-
 src/desktop/Workspace.hpp                          |  11 +-
 src/devices/IHID.hpp                               |   2 +-
 src/devices/IKeyboard.hpp                          |   1 -
 src/devices/IPointer.hpp                           |   1 -
 src/devices/ITouch.hpp                             |   1 -
 src/devices/Tablet.cpp                             |   2 +-
 src/devices/Tablet.hpp                             |   8 +-
 src/devices/VirtualPointer.cpp                     |   2 +-
 src/events/Events.hpp                              |   8 -
 src/events/Monitors.cpp                            | 105 -------
 src/events/Windows.cpp                             | 143 ++++++----
 src/helpers/MiscFunctions.cpp                      |  33 ++-
 src/helpers/MiscFunctions.hpp                      |   1 +
 src/helpers/Monitor.cpp                            | 213 +++++++++-----
 src/helpers/Monitor.hpp                            |  11 +-
 src/helpers/Timer.cpp                              |   5 +-
 src/helpers/Timer.hpp                              |   2 +-
 src/helpers/WLClasses.hpp                          |  20 +-
 src/hyprerror/HyprError.cpp                        |   4 +-
 src/layout/DwindleLayout.cpp                       |  68 ++---
 src/layout/IHyprLayout.cpp                         | 271 ++++++++++++++----
 src/layout/IHyprLayout.hpp                         |  18 +-
 src/layout/MasterLayout.cpp                        | 103 +++----
 src/macros.hpp                                     |   2 +
 src/main.cpp                                       |  81 ++----
 src/managers/AnimationManager.cpp                  |  12 +-
 src/managers/CursorManager.cpp                     |   2 +-
 src/managers/KeybindManager.cpp                    | 200 ++++++++++---
 src/managers/KeybindManager.hpp                    |   8 +-
 src/managers/PointerManager.cpp                    | 312 +++++++++++----------
 src/managers/PointerManager.hpp                    |  31 +-
 src/managers/ProtocolManager.cpp                   |   7 +-
 src/managers/ProtocolManager.hpp                   |   2 +-
 src/managers/SeatManager.hpp                       |   3 +
 src/managers/SessionLockManager.cpp                |   6 +-
 src/managers/TokenManager.cpp                      |   4 +-
 src/managers/XCursorManager.cpp                    |  16 +-
 src/managers/XCursorManager.hpp                    |  24 +-
 src/managers/XWaylandManager.cpp                   | 116 ++++----
 src/managers/eventLoop/EventLoopManager.cpp        |   2 +-
 src/managers/input/InputManager.cpp                | 148 +++++-----
 src/managers/input/InputManager.hpp                |   3 +-
 src/managers/input/InputMethodPopup.cpp            |   8 +-
 src/managers/input/Swipe.cpp                       |  13 +-
 src/managers/input/Tablets.cpp                     |  10 +-
 src/managers/input/Touch.cpp                       |   7 +-
 src/protocols/CTMControl.cpp                       |   2 +-
 src/protocols/CTMControl.hpp                       |   2 +-
 src/protocols/DRMLease.cpp                         |  34 ++-
 src/protocols/DRMLease.hpp                         |  13 +-
 src/protocols/DRMSyncobj.cpp                       |   8 +
 src/protocols/DataDeviceWlr.cpp                    |   4 +-
 src/protocols/ForeignToplevel.cpp                  |  29 +-
 src/protocols/ForeignToplevel.hpp                  |   1 +
 src/protocols/ForeignToplevelWlr.cpp               |  34 ++-
 src/protocols/ForeignToplevelWlr.hpp               |   3 +-
 src/protocols/GammaControl.cpp                     |  15 +-
 src/protocols/GammaControl.hpp                     |  10 +-
 src/protocols/LayerShell.cpp                       |   6 +-
 src/protocols/LayerShell.hpp                       |   2 +-
 src/protocols/LinuxDMABUF.cpp                      |  26 +-
 src/protocols/LinuxDMABUF.hpp                      |  12 +-
 src/protocols/OutputManagement.cpp                 |  24 +-
 src/protocols/OutputManagement.hpp                 |  26 +-
 src/protocols/OutputPower.cpp                      |   6 +-
 src/protocols/OutputPower.hpp                      |   4 +-
 src/protocols/PresentationTime.cpp                 |   8 +-
 src/protocols/PresentationTime.hpp                 |   6 +-
 src/protocols/PrimarySelection.cpp                 |   2 +-
 src/protocols/Screencopy.cpp                       |  20 +-
 src/protocols/Screencopy.hpp                       |   6 +-
 src/protocols/SecurityContext.cpp                  |  12 +-
 src/protocols/SecurityContext.hpp                  |  12 +-
 src/protocols/SessionLock.cpp                      |   8 +-
 src/protocols/SessionLock.hpp                      |   6 +-
 src/protocols/ToplevelExport.cpp                   |  12 +-
 src/protocols/ToplevelExport.hpp                   |   2 +-
 src/protocols/VirtualPointer.cpp                   |   4 +-
 src/protocols/VirtualPointer.hpp                   |  12 +-
 src/protocols/XDGOutput.cpp                        |   2 +-
 src/protocols/XDGOutput.hpp                        |   4 +-
 src/protocols/core/Compositor.cpp                  |  47 +++-
 src/protocols/core/Compositor.hpp                  |  14 +-
 src/protocols/core/DataDevice.cpp                  |   2 +-
 src/protocols/core/DataDevice.hpp                  |   2 +-
 src/protocols/core/Output.cpp                      |  25 +-
 src/protocols/core/Output.hpp                      |   8 +-
 src/protocols/core/Seat.cpp                        |  24 +-
 src/protocols/core/Seat.hpp                        |   4 +
 src/render/Framebuffer.cpp                         |  40 ++-
 src/render/Framebuffer.hpp                         |  12 +-
 src/render/OpenGL.cpp                              | 264 ++++++++++-------
 src/render/OpenGL.hpp                              |  58 ++--
 src/render/Renderer.cpp                            | 266 +++++++++---------
 src/render/Renderer.hpp                            |  62 ++--
 src/render/Texture.cpp                             |  21 +-
 src/render/Texture.hpp                             |  34 ++-
 src/render/decorations/CHyprBorderDecoration.cpp   |   4 +-
 src/render/decorations/CHyprBorderDecoration.hpp   |   2 +-
 .../decorations/CHyprDropShadowDecoration.cpp      |  40 ++-
 .../decorations/CHyprDropShadowDecoration.hpp      |   4 +-
 src/render/decorations/CHyprGroupBarDecoration.cpp |  22 +-
 src/render/decorations/CHyprGroupBarDecoration.hpp |   2 +-
 src/render/decorations/DecorationPositioner.cpp    |  47 ++--
 src/render/decorations/IHyprWindowDecoration.hpp   |   2 +-
 src/render/shaders/Border.hpp                      |  10 +-
 src/render/shaders/SharedValues.hpp                |   3 +
 src/render/shaders/Textures.hpp                    |  15 +-
 src/xwayland/Server.cpp                            |  25 +-
 src/xwayland/XWM.cpp                               |  10 +
 systemd/hyprland-uwsm.desktop                      |   6 +
 systemd/meson.build                                |   7 +
 163 files changed, 3070 insertions(+), 2220 deletions(-)
 delete mode 100644 example/hyprland-session.service
 delete mode 100644 example/hyprland-systemd.desktop
 create mode 100644 hyprpm/src/helpers/StringUtils.hpp
 delete mode 100644 src/events/Monitors.cpp
 create mode 100644 src/render/shaders/SharedValues.hpp
 create mode 100644 systemd/hyprland-uwsm.desktop
 create mode 100644 systemd/meson.build
Entering 'aquamarine'
Updating 65dd97b..b31a6a4
Fast-forward
 CMakeLists.txt                             |   2 +-
 VERSION                                    |   2 +-
 include/aquamarine/allocator/Allocator.hpp |   1 +
 include/aquamarine/allocator/DRMDumb.hpp   |  68 ++++++++++++
 include/aquamarine/backend/Backend.hpp     |  25 ++---
 include/aquamarine/backend/DRM.hpp         |  48 +++++----
 include/aquamarine/backend/Headless.hpp    |  30 +++---
 include/aquamarine/backend/Wayland.hpp     |  29 +++---
 include/aquamarine/output/Output.hpp       |   6 +-
 nix/default.nix                            |  95 +++++++++--------
 src/allocator/DRMDumb.cpp                  | 159 +++++++++++++++++++++++++++++
 src/backend/Headless.cpp                   |   4 +
 src/backend/Wayland.cpp                    |   4 +
 src/backend/drm/DRM.cpp                    |  68 ++++++++----
 src/output/Output.cpp                      |   5 +-
 15 files changed, 413 insertions(+), 133 deletions(-)
 create mode 100644 include/aquamarine/allocator/DRMDumb.hpp
 create mode 100644 src/allocator/DRMDumb.cpp
Entering 'hyprcursor'
Updating 70fb494..0264e69
Fast-forward
 libhyprcursor/meta.cpp | 76 ++++++++++++++++++++++++++++----------------------
 1 file changed, 42 insertions(+), 34 deletions(-)
Entering 'hyprlang'
Already up to date.
Entering 'hyprlock'
Updating eb63207..b9cf515
Fast-forward
 CMakeLists.txt                              |   3 +-
 README.md                                   |   3 +-
 VERSION                                     |   2 +-
 flake.lock                                  |  18 +-
 nix/default.nix                             |   4 +
 nix/overlays.nix                            |  14 ++
 src/config/ConfigDataValues.hpp             | 116 +++++++++++++
 src/config/ConfigManager.cpp                | 164 ++++++++++++++++--
 src/core/Fingerprint.cpp                    | 243 ++++++++++++++++++++++++++
 src/core/Fingerprint.hpp                    |  50 ++++++
 src/core/LockSurface.cpp                    |   2 +-
 src/core/LockSurface.hpp                    |   2 +-
 src/core/Output.hpp                         |   2 +-
 src/core/hyprlock.cpp                       |  72 ++++++--
 src/core/hyprlock.hpp                       |  13 +-
 src/helpers/Box.cpp                         | 101 -----------
 src/helpers/Box.hpp                         |  68 --------
 src/helpers/Color.cpp                       |   4 +-
 src/helpers/Color.hpp                       |   5 +-
 src/helpers/Log.hpp                         |   3 +-
 src/helpers/Math.cpp                        |  23 +++
 src/helpers/Math.hpp                        |  12 ++
 src/helpers/MiscFunctions.cpp               |  82 +++++++++
 src/helpers/MiscFunctions.hpp               |   3 +
 src/helpers/Vector2D.cpp                    |  57 -------
 src/helpers/Vector2D.hpp                    | 159 -----------------
 src/renderer/Framebuffer.cpp                |   2 +-
 src/renderer/Framebuffer.hpp                |   2 +-
 src/renderer/Renderer.cpp                   |  97 +++++++----
 src/renderer/Renderer.hpp                   |  14 +-
 src/renderer/Shaders.hpp                    | 135 ++++++++++++++-
 src/renderer/Texture.hpp                    |   2 +-
 src/renderer/widgets/Background.cpp         |   8 +-
 src/renderer/widgets/Background.hpp         |   2 +-
 src/renderer/widgets/IWidget.cpp            |  87 ++++++----
 src/renderer/widgets/IWidget.hpp            |   2 +-
 src/renderer/widgets/Image.cpp              |  39 +++--
 src/renderer/widgets/Image.hpp              |   5 +-
 src/renderer/widgets/Label.cpp              |  43 +++--
 src/renderer/widgets/Label.hpp              |   2 +-
 src/renderer/widgets/PasswordInputField.cpp | 253 +++++++++++++++++-----------
 src/renderer/widgets/PasswordInputField.hpp |  58 ++++---
 src/renderer/widgets/Shadowable.cpp         |   3 +-
 src/renderer/widgets/Shadowable.hpp         |   1 +
 src/renderer/widgets/Shape.cpp              |  38 +++--
 src/renderer/widgets/Shape.hpp              |  34 ++--
 46 files changed, 1334 insertions(+), 718 deletions(-)
 create mode 100644 src/config/ConfigDataValues.hpp
 create mode 100644 src/core/Fingerprint.cpp
 create mode 100644 src/core/Fingerprint.hpp
 delete mode 100644 src/helpers/Box.cpp
 delete mode 100644 src/helpers/Box.hpp
 create mode 100644 src/helpers/Math.cpp
 create mode 100644 src/helpers/Math.hpp
 delete mode 100644 src/helpers/Vector2D.cpp
 delete mode 100644 src/helpers/Vector2D.hpp
Entering 'hyprpaper'
Updating 1c18ad6..3f8cc92
Fast-forward
 CMakeLists.txt               |  5 +++++
 README.md                    |  4 ++--
 src/Hyprpaper.cpp            | 11 +++++++++--
 src/Hyprpaper.hpp            |  1 +
 src/config/ConfigManager.cpp | 16 ++++++++++++++--
 src/main.cpp                 |  2 +-
 systemd/hyprpaper.service.in | 16 ++++++++++++++++
 7 files changed, 48 insertions(+), 7 deletions(-)
 create mode 100644 systemd/hyprpaper.service.in
Entering 'hyprutils'
Updating 3f52934..e911361
Fast-forward
 CMakeLists.txt                   |   8 ++
 VERSION                          |   2 +-
 include/hyprutils/os/Process.hpp |  32 ++++++
 nix/default.nix                  |  55 ++++++----
 src/os/Process.cpp               | 223 +++++++++++++++++++++++++++++++++++++++
 tests/os.cpp                     |  19 ++++
 6 files changed, 317 insertions(+), 22 deletions(-)
 create mode 100644 include/hyprutils/os/Process.hpp
 create mode 100644 src/os/Process.cpp
 create mode 100644 tests/os.cpp
Entering 'hyprwayland-scanner'
Already up to date.
Entering 'wl-clipboard'
Already up to date.
# In case these libraries haven't been pulled yet, ignore the exit code
cd tomlplusplus && git pull origin $(git rev-parse --abbrev-ref HEAD)
cd libxcb-errors && git pull origin $(git rev-parse --abbrev-ref HEAD)
Please note that if tomlplusplus or libxcb-errors throw an error 	for not being found, this is defined behaviour since these libraries 	are cloned into the project later. You can safely ignore this.
cd Hyprland && git fetch origin --tags && git checkout $(git tag --list | sort -V | tail -n1) && git pull origin $(git rev-parse --abbrev-ref HEAD)
M	subprojects/hyprland-protocols
Updating a425fbeb..af83c825
Fast-forward
 CMakeLists.txt                      |  21 ++--
 Makefile                            |   3 +
 example/hyprland.conf               |   9 +-
 flake.lock                          |  30 +++---
 hyprpm/CMakeLists.txt               |   2 +-
 hyprpm/src/core/PluginManager.cpp   |  19 ++--
 meson.build                         |  10 +-
 meson_options.txt                   |   1 +
 nix/default.nix                     |   2 +-
 src/Compositor.cpp                  |   4 +-
 src/config/ConfigDescriptions.hpp   |  16 ++-
 src/config/ConfigManager.cpp        |  35 ++++---
 src/config/defaultConfig.hpp        |   9 +-
 src/debug/HyprCtl.cpp               |  88 +++++++++++++---
 src/devices/Tablet.hpp              |   3 +-
 src/devices/VirtualPointer.cpp      |   2 +-
 src/events/Windows.cpp              |   2 +-
 src/helpers/MiscFunctions.cpp       |  20 ++--
 src/managers/KeybindManager.cpp     |  52 +++++++++-
 src/managers/KeybindManager.hpp     |   5 +-
 src/managers/PointerManager.cpp     | 198 ++++++++++++++++++++----------------
 src/managers/ProtocolManager.cpp    |   1 +
 src/managers/XCursorManager.cpp     |   8 +-
 src/managers/XCursorManager.hpp     |  24 ++---
 src/managers/input/InputManager.cpp |   3 +
 src/protocols/core/Compositor.cpp   |  26 +++--
 src/protocols/core/Compositor.hpp   |   2 +-
 src/render/Renderer.cpp             |  15 +--
 src/render/Texture.cpp              |  21 +++-
 src/render/Texture.hpp              |  34 ++++---
 systemd/hyprland-session.service.in |  16 ---
 systemd/hyprland-systemd.desktop    |   7 --
 systemd/hyprland-uwsm.desktop       |   6 ++
 systemd/meson.build                 |  24 ++---
 34 files changed, 434 insertions(+), 284 deletions(-)
 delete mode 100644 systemd/hyprland-session.service.in
 delete mode 100644 systemd/hyprland-systemd.desktop
 create mode 100644 systemd/hyprland-uwsm.desktop to pull the latest changes.
2024-11-17 14:04:34 +00:00
503d0686a6
Changed target dependencies and order 2024-11-17 12:50:38 +00:00
13e8733cc7
Updated install.sh 2024-11-17 12:15:58 +00:00
3a3a61e56e
Updated install.sh 2024-11-17 12:11:45 +00:00
d9688b8f2a
Updated requirements.sh 2024-11-17 11:57:58 +00:00
0870f0f18e
Updated install.sh 2024-11-17 11:42:22 +00:00
1e7fa6205b
Updated install.sh 2024-11-17 11:38:20 +00:00
f174b489ee
Updated install.sh 2024-11-17 11:35:44 +00:00
efe62cff3d
Updated install.sh
Added check to mkdir if /usr/local/bin does not already exist.
2024-11-17 11:30:12 +00:00
29d87242e4
Updated install.sh
Removed sudo command as script requires sudo privileges. Fixed systemd pathspec.
2024-11-17 11:14:24 +00:00
cbf75a8195
Added upgrade implementation. Fixed pathspec. 2024-11-17 11:07:36 +00:00
a7c2136a60
Added hyprlock build back 2024-11-17 11:05:52 +00:00
b15c039a4b
Moved systemd unit scripts to patch pathspec 2024-11-17 11:04:29 +00:00
3e3fa6f80b
Updated hyprsolusctl
Added version
2024-10-09 19:11:37 +01:00
355cf7dc27
Updated hyprsolusctl
Allow for update to not check for package updates unless explicitly told. Fixed bugs
2024-10-09 18:43:00 +01:00
9ca1f80ad5
Updated hyprsolusctl 2024-10-09 18:35:27 +01:00
8f8c88da63
Updated hyprsolusctl 2024-10-09 18:29:31 +01:00
5a7753b99d
Updated hyprsolusctl 2024-10-09 18:26:03 +01:00
d3731b61f9
Updated hyprsolusctl 2024-10-09 18:22:45 +01:00
090f4dc78c
Updated install.sh
Fixed /home/ethan to use logname.
2024-10-09 18:11:21 +01:00
8e8ba68bc7
Updated install.sh
Fixed ethan to now be logname.
2024-10-09 18:08:54 +01:00
f9391030c5
Updated install.sh
Fixed systemctl command
2024-10-09 18:04:19 +01:00
f061f37b9a
Updated install.sh
Fixed systemctl command
2024-10-09 17:52:27 +01:00
b4e78af0e8
Updated install.sh 2024-10-09 17:46:04 +01:00
bc22cc40e0
Updated hyprsolusctl 2024-10-09 17:20:07 +01:00
dab6392d04
Added hyprsolusctl
Added hyprsolusctl which is a control script for managing hyprsolus.
Features include:
  - checking for new updates. This provides the ability to know when a
    newer version of Hyprland has been release. Note that this works
    based off the tags of Hyprland, which are the releases.
  - provide info of the latest changes. The changelog provided by
    Hyprland is saved locally under $HOME/.cached and can be viewed any
    time. If a newer version of Hyprland is available the changelog will
    be this.
  - update hyprsolus. The ability to update hyprsolus itself.
  - upgrading the system (WIP). The system is prepared and upgraded with
    the latest versions of libraries, components provided by hyprsolus
    and importantly Hyprland itself.
2024-10-09 16:26:03 +01:00
2a77d230cc
Updated requirements.txt 2024-10-09 16:01:57 +01:00
7e51e14548
Added install script
An installation script to download hyprsolus to the system.
2024-10-09 16:01:13 +01:00
eefae516b2
Updated requirements.txt
Uses depends.txt for dep packages
2024-10-09 15:29:50 +01:00
15cabe4532
Added depends.txt
Text-file containing list of Solus packages which are dependencies
2024-10-09 15:27:31 +01:00
9a89a05fed
Added systemd units for hyprsolusctl 2024-10-09 15:24:44 +01:00
7d59666d90
Merge pull request 'Updated to v0.44.0' (#3) from v0.44.0 into main
Reviewed-on: #3
2024-10-09 15:22:42 +01:00
23adec7b08
Updated to v0.44.0
Updated submodules for Hyprland 0.44.0

.gitignore file for ignoring libraries not part of submodules and cloned
seperately.
2024-10-09 15:13:40 +01:00
3f78dd2cdc
Updated Makefile 2024-10-08 19:05:31 +01:00
b79e853222 Created Hyprland v0.41.2 branch
This branch contains the latest commits for libraries and add-ons, and
checks out Hyprland tag v0.41.2.
2024-09-02 13:42:31 +01:00
f03cba46de Removed wlr-randr 2024-09-02 13:42:31 +01:00
aaff576774
Updated Makefile 2024-07-31 16:43:23 +01:00
16 changed files with 319 additions and 48 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
libxcb-errors/
tomlplusplus/

@ -1 +1 @@
Subproject commit 918d8340afd652b011b937d29d5eea0be08467f5
Subproject commit 6ae89940c761d4ed4317df0af29e8df41d472091

View File

@ -10,6 +10,19 @@ COMPONENTS=hyprcursor hyprlang hyprlock hyprpaper hyprutils wl-clipboard \
# Set the default target to build
.DEFAULT_GOAL := all
### Makefile variable definitions for targets ###
__Hyprlang = $(INCLUDE_SYS_PATH)/hyprlang.hpp
__Hyprcursor = $(INCLUDE_SYS_PATH)/hyprcursor
__Hyprutils = $(INCLUDE_SYS_PATH)/hyprutils
__Hyprwayland-scanner = /usr/lib64/cmake/hyprwayland-scanner
__Libxcb-errors = /usr/lib/pkgconfig/xcb-errors.pc
__Aquamarine = $(INCLUDE_SYS_PATH)/aquamarine
__Hyprland = Hyprland/build/Hyprland
__Hyprlock = hyprlock/build/hyprlock
__Hyprpaper = hyprpaper/build/hyprpaper
__Wl_clipboard = wl-clipboard/build/src
### Makefile targets for hyprwm libraries ###
# Build and install tomlplusplus if it's not on the system
@ -22,21 +35,9 @@ $(__Tomlplusplus): tomlplusplus
ninja -C tomlplusplus/build
sudo $(MESON) install -C tomlplusplus/build
# Build hyprcursor if the .hpp file is not installed (required hyprlang)
# Library for hyprwm
__Hyprcursor = $(INCLUDE_SYS_PATH)/hyprcursor/
$(__Hyprcursor): $(__Tomlplusplus) $(__Hyprlang)
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr -S ./hyprcursor -B ./hyprcursor/build
$(CMAKE) --build ./hyprcursor/build --config Release --target all \
-j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
@echo "Installing library hyprcursor..."
sudo $(CMAKE) --install hyprcursor/build
# Build hyprutils if the .hpp file is not installed
# Library for hyprwm
__Hyprutils = $(INCLUDE_SYS_PATH)/hyprutils
$(__Hyprutils):
$(__Hyprutils): hyprutils
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr -S ./hyprutils -B ./hyprutils/build
$(CMAKE) --build ./hyprutils/build --config Release --target all \
@ -45,8 +46,7 @@ $(__Hyprutils):
# Build hyprlang if the .hpp file is not installed
# Library for hyprwm
__Hyprlang = $(INCLUDE_SYS_PATH)/hyprlang.hpp
$(__Hyprlang): $(__Hyprutils) $(__Hyprwayland-scanner)
$(__Hyprlang): $(__Hyprutils) hyprlang
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr -S ./hyprlang -B ./hyprlang/build
$(CMAKE) --build ./hyprlang/build --config Release --target hyprlang \
@ -55,8 +55,17 @@ $(__Hyprlang): $(__Hyprutils) $(__Hyprwayland-scanner)
@echo "Installing library hyprlang..."
sudo $(CMAKE) --install ./hyprlang/build
__Hyprwayland-scanner = /usr/lib64/cmake/hyprwayland-scanner
$(__Hyprwayland-scanner):
# Build hyprcursor if the .hpp file is not installed (required hyprlang)
# Library for hyprwm
$(__Hyprcursor): $(__Tomlplusplus) $(__Hyprlang) hyprcursor
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
-DCMAKE_INSTALL_PREFIX:PATH=/usr -S ./hyprcursor -B ./hyprcursor/build
$(CMAKE) --build ./hyprcursor/build --config Release --target all \
-j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
@echo "Installing library hyprcursor..."
sudo $(CMAKE) --install hyprcursor/build
$(__Hyprwayland-scanner): hyprwayland-scanner
$(CMAKE) -DCMAKE_INSTALL_PREFIX=/usr -S ./hyprwayland-scanner \
-B hyprwayland-scanner/build
$(CMAKE) --build ./hyprwayland-scanner/build -j \
@ -66,17 +75,15 @@ $(__Hyprwayland-scanner):
libxcb-errors:
git clone https://gitlab.freedesktop.org/xorg/lib/libxcb-errors.git
__Libxcb-errors = /usr/lib/pkgconfig/xcb-errors.pc
$(__Libxcb-errors): libxcb-errors
@echo "Building and installing library libxcb-errors..."
cd libxcb-errors && { \
git submodule update --init ; \
/bin/sh autogen.sh ; \
/bin/sh configure --prefix=/usr ; \
make && sudo make install ; }
/bin/sh autogen.sh || /bin/sh autogen.sh ; \
/bin/sh configure --prefix=/usr ; }
make -C libxcb-errors && sudo make -C libxcb-errors install
__Aquamarine = $(INCLUDE_SYS_PATH)/aquamarine
$(__Aquamarine): $(__Hyprwayland-scanner)
$(__Aquamarine): $(__Hyprwayland-scanner) $(__Hyprutils) aquamarine
$(CMAKE) -DCMAKE_INSTALL_PREFIX=/usr -S ./aquamarine \
-B aquamarine/build
$(CMAKE) --build ./aquamarine/build -j \
@ -87,14 +94,12 @@ $(__Aquamarine): $(__Hyprwayland-scanner)
### Makefile targets for hyprwm apps ###
# Build Hyprland if it's not installed on the system
__Hyprland = Hyprland/build/Hyprland
$(__Hyprland): $(__Hyprlang) $(__Hyprcursor) $(__Hyprwayland-scanner) \
$(__Libxcb-errors) $(__Aquamarine)
$(__Hyprland): $(__Hyprcursor) $(__Libxcb-errors) $(__Aquamarine)
@echo "Building Hyprland..."
sudo $(MAKE) -C Hyprland all
sudo chown -R $$USER:$$USER Hyprland/build
# Build hyprlock if it's not installed on the system
__Hyprlock = hyprlock/build/hyprlock
$(__Hyprlock): $(__Hyprlang)
@echo "Building hyprlock..."
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
@ -103,7 +108,6 @@ $(__Hyprlock): $(__Hyprlang)
-j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
# Build hyprpaper if it's not installed on the system
__Hyprpaper = hyprpaper/build/hyprpaper
$(__Hyprpaper): $(__Hyprlang)
@echo "Building hyprpaper..."
$(CMAKE) --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release \
@ -112,7 +116,6 @@ $(__Hyprpaper): $(__Hyprlang)
-j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`
# Build wl-clipboard if it's not installed on the system
__Wl_clipboard = wl-clipboard/build/src
$(__Wl_clipboard)/wl-copy $(__Wl_clipboard)/wl-paste &:
cd wl-clipboard && $(MESON) setup --prefix=/usr build
ninja -C wl-clipboard/build
@ -126,7 +129,7 @@ submodule update --init --recursive" ; exit 1 ;\
@cd Hyprland/subprojects && git submodule update --init
$(MAKE) build
build: $(__Hyprlock) $(__Hyprpaper) $(__Wl_clipboard)/wl-copy $(__Hyprland)
build: $(__Hyprland) $(__Wl_clipboard)/wl-copy $(__Hyprlock) $(__Hyprpaper)
install: build
@echo "Installing hyprlock..."
@ -140,14 +143,17 @@ install: build
update:
@echo "Updating module components..."
git submodule foreach \
'git pull origin $$(git rev-parse --abbrev-ref HEAD)'
-git submodule foreach \
'[[ $$(basename $$(git rev-parse --show-toplevel)) != Hyprland ]] && git pull origin $$(git rev-parse --abbrev-ref HEAD)'
-cd Hyprland && git fetch origin --no-all --tags
# In case these libraries haven't been pulled yet, ignore the exit code
-cd tomlplusplus && git pull origin $$(git rev-parse --abbrev-ref HEAD)
-cd libxcb-error && git pull origin $$(git rev-parse --abbrev-ref HEAD)
-cd libxcb-errors && git pull origin $$(git rev-parse --abbrev-ref HEAD)
@echo "Please note that if tomlplusplus or libxcb-errors throw an error \
for not being found, this is defined behaviour since these libraries \
are cloned into the project later. You can safely ignore this."
-cd Hyprland && git fetch origin --tags && git checkout $$(git tag --list \
| sort -V | tail -n1) && git pull origin $$(git rev-parse --abbrev-ref HEAD)
test: build
@echo "Be real, you don't want to do this, so we'll abort."

@ -1 +1 @@
Subproject commit 7c3565f9bedc7cb601cc0baa14792247e4dc1d5a
Subproject commit 65dd97b5d21e917295159bbef1d52e06963f4eb0

23
depends.txt Normal file
View File

@ -0,0 +1,23 @@
libcairo-devel
file-devel
libdrm-devel
libglvnd-devel
libjpeg-turbo-devel
librsvg-devel
libwebp-devel
libzip-devel
mesalib-devel
pam-devel
pango-devel
waybar
wayland-devel
wayland-protocols-devel
wlroots-devel
libxkbcommon-devel
pugixml-devel
util-macros
xcb-proto
xcb-util-devel
libxcursor-devel
sdbus-cpp-devel
libjxl-devel

@ -1 +1 @@
Subproject commit 5a95d8512b3eda15a92e8cb932aa4049ec73dd55
Subproject commit 70fb494aa6672133354eef8442cd686313630039

@ -1 +1 @@
Subproject commit adbefbf49664a6c2c8bf36b6487fd31e3eb68086
Subproject commit f054f2e44d6a0b74607a6bc0f52dba337a3db38e

@ -1 +1 @@
Subproject commit 8a89181e6994ae330f9281ebdbbea1f0560baefc
Subproject commit eb63207ef051c62fa2ab010b3f89da263a397329

@ -1 +1 @@
Subproject commit f1f7fc60f5ae2609a369964aeb7ddbf6f9277de7
Subproject commit 1c18ad65032adb891b341292a1edf9e13adf4751

176
hyprsolusctl Normal file
View File

@ -0,0 +1,176 @@
#!/usr/bin/env bash
if [[ $(id -u) -eq 0 ]]
then
echo "Please don't run script with root privilages."
exit 1
fi
HYPRSOLUS_PATH="/usr/src/hyprsolus"
[[ ! -d "$HYPRSOLUS_PATH" ]] && exit 1
# create cache folder for Hyprland metadata
cache="$HOME/.cache/hyprsolus"
[[ ! -d "$cache" ]] && mkdir -p "$cache" >/dev/null
check () {
>&2 echo "Checking for Hyprland upgrades..."
# ensure that Hyprland is even running
if ! pidof hyprland >/dev/null
then
>&2 echo "Could not find Hyprland process. Is it even running?"
exit 255
fi
# get the releases from the origin
origin=$(curl -sL \
https://api.github.com/repos/hyprwm/Hyprland/releases)
exit_code=$?
# check if the cURL was successful
if [[ $exit_code -ne 0 ]]
then
>&2 echo "Failed to contact GitHub API. Check Internet connection and \
try again."
exit 254
fi
# latest tag release in origin and current Hyprland version
origin_vers=$(echo "$origin" | jq -r ".[0].tag_name")
hyprland_vers=$(hyprctl version | sed -nr 's/Tag: (.*),.*/\1/p')
[[ ! -e "$cache/metadata.json" ]] && echo "$origin" \
| jq -r ".[] | select(.tag_name == \"$hyprland_vers\")" \
>"$cache/metadata.json"
if [[ "$origin_vers" != "$hyprland_vers" ]]
then
echo "$origin" | jq -r ".[0]" >"$cache/release-metadata.json"
notify-send -a "Hyprsolus" "Hyprland Update Available" \
"A new version of Hyprland is available ($origin_vers)."
[[ -t 0 ]] && echo "A new version of Hyprland is available \
($origin_vers)."
else
>&2 echo "No upgrade available. Ensuring most recent metadata..."
[[ -f "$cache/release-metadata.json" ]] && \
mv "$cache/release-metadata.json" "$cache/metadata.json"
fi
}
info () {
while test $# -ne 0
do
case $1 in
--local) shift ; release=0 ;;
--json) shift ; json=0 ;;
--) shift ; glow_args="$*" ; break ;;
*) echo "Ignoring argument $1" ;;
esac
done
# Initialise defaults if no flags given
release=${release:-1}
json=${json:-1}
if [[ -e "$cache/release-metadata.json" && $release -eq 1 ]]
then
[[ ! -s "$cache/release-metadata.json" ]] && exit 2
[[ $json -eq 0 ]] && cat "$cache/release-metadata.json" && exit 0
jq -r ".body" < "$cache/release-metadata.json" | glow "$glow_args" -
elif [[ -e "$cache/metadata.json" ]]
then
[[ ! -s "$cache/metadata.json" ]] && exit 2
[[ $json -eq 0 ]] && cat "$cache/metadata.json" && exit 0
jq -r ".body" "$cache/metadata.json" | glow "$glow_args" -
else
exit 1
fi
}
update () {
while test $# -ne 0
do
case $1 in
--ensure-deps-latest) shift ; deps_update=0 ;;
*) echo "Ignoring argument $1" ; shift ;;
esac
done
deps_update=${deps_update:-1}
cd "$HYPRSOLUS_PATH"
git restore .
# Fetch new content from remote
git fetch --all
git pull origin main
echo "(hyprsolus) Updating additional scripts if needed."
sudo cp -u "${HYPRSOLUS_PATH}/hyprsolusctl" "/usr/local/bin"
sudo cp -ru "${HYPRSOLUS_PATH}/systemd" "$HOME/.config"
systemctl --user daemon-reload
echo "(hyprsolus) Updating the dependencies if needed."
if [[ $deps_update -eq 0 ]]
then
sudo sh "${HYPRSOLUS_PATH}/requirements.sh"
fi
}
upgrade () {
while test $# -ne 0
do
case $1 in
--ensure-integrity) shift ; eopkg_check=0 ;;
--clean-all) shift ; clean_all=0 ;;
*) echo "Ignoring argument $1" ; shift ;;
esac
done
clean_all=${clean_all:-1}
echo "Upgrading Hyprland and components with hyprsolus."
eopkg_check=${eopkg_check:-1}
if [[ $eopkg_check -eq 0 ]]
then
echo -n "Check package intergity..."
while read -r line
do
check=$(eopkg check --no-color "$line" | grep -o "OK")
if [[ $check != OK ]]
then
>&2 echo -e "failed.\n[FATAL] The following package is corrupt: $line."\
"Aborting upgrade."
exit 3
fi
done < <(cat "${HYPRSOLUS_PATH}/depends.txt")
echo "ok."
fi
# quick check for submodule initialisation
if git -C "$HYPRSOLUS_PATH" submodule status | grep --quiet '^-'
then
if ! git -C "$HYPRSOLUS_PATH" submodule update --init --recursive
then
>&2 echo "[FATAL] Git was not able to initialise submoules."
exit 4
fi
fi
cd "$HYPRSOLUS_PATH"
[[ $clean_all -eq 0 ]] && make clean
make update && make
exit_code=$?
if [[ $exit_code -ne 0 ]]
then
>&2 echo "[FATAL] Something went wrong trying to upgrade. See above."
exit 5
fi
sudo make install
}
case $1 in
check) check ;;
update) shift ; update "$@" ;;
upgrade) shift ; upgrade "$@" ;;
info) shift ; info "$@" ;;
version) echo "hyprsolus v0.1.1" ;;
*) exit 1 ;;
esac
exit 0

@ -1 +1 @@
Subproject commit 5dcbbc1e3de40b2cecfd2007434d86e924468f1f
Subproject commit 3f5293432b6dc6a99f26aca2eba3876d2660665c

@ -1 +1 @@
Subproject commit a048a6cb015340bd82f97c1f40a4b595ca85cc30
Subproject commit 500c81a9e1a76760371049a8d99e008ea77aa59e

45
install.sh Normal file
View File

@ -0,0 +1,45 @@
#!/usr/bin/env bash
user="$(logname)"
home="/home/$user"
HYPRSOLUS_PATH="/usr/src/hyprsolus"
HYPRSOLUSCTL_PATH="/usr/local/bin"
HYPRSOLUS_SYSTEMD="$home/.config"
if [[ $(id -u) -ne 0 ]]
then
echo "Please run script with root privilages."
exit 1
fi
if [[ -d "$HYPRSOLUS_PATH" ]]
then
echo "hyprsolus already installed on system. If you wish to update hyprsolus,"\
" then please run: hyprsolusctl update."
exit 0
fi
[[ ! -d "$HYPRSOLUS_SYSTEMD" ]] && mkdir -p "$HYPRSOLUS_SYSTEMD"
echo "(hyprsolus) Installing hyprsolus to system."
git clone --depth=1 https://git.closedless.xyz/TheOnePath/hyprsolus.git \
"$HYPRSOLUS_PATH"
exit_code=$?
[[ $exit_code -ne 0 ]] && exit 1
chown -R "$user:$user" "$HYPRSOLUS_PATH"
echo "(hyprsolus) Moving additional scripts to system."
[[ ! -d "$HYPRSOLUSCTL_PATH" ]] && mkdir -p "$HYPRSOLUSCTL_PATH"
cp -u "${HYPRSOLUS_PATH}/hyprsolusctl" "$HYPRSOLUSCTL_PATH"
# Make the file executable
chmod 755 "${HYPRSOLUS_PATH}/hyprsolusctl"
cp -ru "${HYPRSOLUS_PATH}/systemd" "$HYPRSOLUS_SYSTEMD"
chown -R "$user:$user" "$HYPRSOLUS_SYSTEMD/systemd"
echo "(hyprsolus) Setting up systemd units."
systemctl --user -M "$user"@ enable --now \
"${HYPRSOLUS_SYSTEMD}/systemd/user/hyprsolus-check.timer"
echo "(hyprsolus) Installing the dependencies to system."
sh "${HYPRSOLUS_PATH}/requirements.sh"

View File

@ -1,9 +1,4 @@
#!/usr/bin/env bash
# Install the Solus system development package and other libraries
sudo eopkg it -yc system.devel
sudo eopkg it -y libcairo-devel file-devel libdrm-devel libglvnd-devel \
libjpeg-turbo-devel librsvg-devel libwebp-devel libzip-devel \
mesalib-devel pam-devel pango-devel waybar wayland-devel \
wayland-protocols-devel wlroots-devel libxkbcommon-devel pugixml-devel \
util-macros xcb-proto xcb-util-devel libxcursor-devel
sudo eopkg it -yc system.devel $(cat "/usr/src/hyprsolus/depends.txt")

View File

@ -0,0 +1,13 @@
[Unit]
Description=check for newly released Hyprland version every week
After=network.target
Wants=hyprsolus-check.timer
[Service]
ExecStart=/bin/bash /usr/local/bin/hyprsolusctl check
Type=simple
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=default.target

View File

@ -0,0 +1,11 @@
[Unit]
Description=check for new release of Hyprland, weekly
Requires=hyprsolus-check.service
[Timer]
Unit=hyprsolus-check.service
OnCalendar=weekly
Persistent=true
[Install]
WantedBy=timers.target