From 68b6a5ab2311c67a6193110343c60c8bc8ebba75 Mon Sep 17 00:00:00 2001 From: Kaley Fischer Date: Wed, 27 Dec 2023 18:39:20 +0100 Subject: [PATCH] update: added some new commits --- .github/workflows/ci.yaml | 2 +- .github/workflows/nix-build.yml | 1 - .gitmodules | 3 +- CMakeLists.txt | 6 +- Makefile | 6 +- example/hyprland.conf | 10 +- flake.lock | 20 +- flake.nix | 3 +- hyprctl/main.cpp | 29 ++ nix/default.nix | 22 +- nix/hm-module.nix | 9 +- nix/module.nix | 16 +- nix/overlays.nix | 7 +- nix/patches/wlroots-nvidia.patch | 41 -- nix/wlroots.nix | 25 +- props.json | 2 +- src/Compositor.cpp | 160 +++---- src/Compositor.hpp | 6 +- src/Window.cpp | 6 + src/config/ConfigManager.cpp | 62 +-- src/config/ConfigManager.hpp | 29 +- src/config/defaultConfig.hpp | 11 +- src/debug/HyprCtl.cpp | 14 +- src/debug/Log.hpp | 4 + src/debug/TracyDefines.hpp | 9 - src/events/Events.hpp | 6 +- src/events/Layers.cpp | 2 + src/events/Misc.cpp | 14 - src/events/Windows.cpp | 10 +- src/helpers/MiscFunctions.cpp | 10 + src/helpers/MiscFunctions.hpp | 1 + src/helpers/Monitor.cpp | 13 + src/helpers/Monitor.hpp | 47 +- src/helpers/Region.cpp | 14 + src/helpers/Region.hpp | 3 + src/helpers/Splashes.hpp | 9 +- src/helpers/WLClasses.cpp | 8 + src/helpers/WLClasses.hpp | 1 + src/helpers/WLSurface.cpp | 2 +- src/includes.hpp | 4 +- src/layout/MasterLayout.cpp | 16 +- src/main.cpp | 14 +- src/managers/KeybindManager.cpp | 11 +- src/managers/XWaylandManager.cpp | 14 +- src/managers/input/InputManager.cpp | 34 +- src/managers/input/Touch.cpp | 4 +- src/plugins/HookSystem.cpp | 10 +- src/protocols/Screencopy.cpp | 94 +++- src/protocols/ToplevelExport.cpp | 78 ++-- src/protocols/ToplevelExportWlrFuncs.hpp | 293 +++++------- src/render/Framebuffer.cpp | 26 +- src/render/Framebuffer.hpp | 1 + src/render/OpenGL.cpp | 417 +++++++++++++----- src/render/OpenGL.hpp | 129 +++--- src/render/Renderbuffer.cpp | 84 ++++ src/render/Renderbuffer.hpp | 25 ++ src/render/Renderer.cpp | 295 ++++++++++--- src/render/Renderer.hpp | 67 ++- .../decorations/CHyprDropShadowDecoration.cpp | 1 + .../decorations/CHyprGroupBarDecoration.cpp | 35 +- .../decorations/CHyprGroupBarDecoration.hpp | 4 +- .../packagefiles/wlroots-meson-build.patch | 4 +- subprojects/wlroots.wrap | 2 +- 63 files changed, 1431 insertions(+), 874 deletions(-) delete mode 100644 nix/patches/wlroots-nvidia.patch create mode 100644 src/render/Renderbuffer.cpp create mode 100644 src/render/Renderbuffer.hpp diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b8093491..a78b7522 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -40,7 +40,7 @@ jobs: cp ./LICENSE hyprland/ cp build/Hyprland hyprland/ cp build/hyprctl/hyprctl hyprland/ - cp subprojects/wlroots/build/libwlroots.so.12032 hyprland/ + cp subprojects/wlroots/build/libwlroots.so.13032 hyprland/ cp build/Hyprland hyprland/ cp -r example/ hyprland/ cp -r assets/ hyprland/ diff --git a/.github/workflows/nix-build.yml b/.github/workflows/nix-build.yml index fb98f099..a1ea0f24 100644 --- a/.github/workflows/nix-build.yml +++ b/.github/workflows/nix-build.yml @@ -10,7 +10,6 @@ jobs: matrix: package: - hyprland - - hyprland-nvidia - xdg-desktop-portal-hyprland runs-on: ubuntu-latest diff --git a/.gitmodules b/.gitmodules index 01ed4242..c62f5b53 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,7 +1,6 @@ [submodule "wlroots"] path = subprojects/wlroots - url = https://github.com/DRAGONTOS/wlroots.git - branch = 0.17.0-dev + url = https://gitlab.freedesktop.org/wlroots/wlroots.git [submodule "subprojects/hyprland-protocols"] path = subprojects/hyprland-protocols url = https://github.com/hyprwm/hyprland-protocols diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cc941c2..6f52c554 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,12 +57,12 @@ ExternalProject_Add( wlroots PREFIX ${CMAKE_SOURCE_DIR}/subprojects/wlroots SOURCE_DIR ${CMAKE_SOURCE_DIR}/subprojects/wlroots - PATCH_COMMAND sed -E -i -e "s/(soversion = 12)([^032]|$$)/soversion = 12032/g" meson.build + PATCH_COMMAND sed -E -i -e "s/(soversion = 13)([^032]|$$)/soversion = 13032/g" meson.build CONFIGURE_COMMAND meson setup build --buildtype=${BUILDTYPE_LOWER} -Dwerror=false -Dexamples=false -Drenderers=gles2 $,-Db_sanitize=address,-Db_sanitize=none> && meson setup build --buildtype=${BUILDTYPE_LOWER} -Dwerror=false -Dexamples=false -Drenderers=gles2 $,-Db_sanitize=address,-Db_sanitize=none> --reconfigure BUILD_COMMAND ninja -C build BUILD_ALWAYS true BUILD_IN_SOURCE true - BUILD_BYPRODUCTS ${CMAKE_SOURCE_DIR}/subprojects/wlroots/build/libwlroots.so.12032 + BUILD_BYPRODUCTS ${CMAKE_SOURCE_DIR}/subprojects/wlroots/build/libwlroots.so.13032 INSTALL_COMMAND echo "wlroots: install not needed" ) @@ -221,7 +221,7 @@ function(protocol protoPath protoName external) endfunction() target_link_libraries(Hyprland - ${CMAKE_SOURCE_DIR}/subprojects/wlroots/build/libwlroots.so.12032 # wlroots is provided by us + ${CMAKE_SOURCE_DIR}/subprojects/wlroots/build/libwlroots.so.13032 # wlroots is provided by us OpenGL::EGL OpenGL::GL Threads::Threads diff --git a/Makefile b/Makefile index dc7f7329..6213102e 100644 --- a/Makefile +++ b/Makefile @@ -50,7 +50,7 @@ install: install -m644 ./docs/*.1 ${PREFIX}/share/man/man1 mkdir -p ${PREFIX}/lib/ - cp ./subprojects/wlroots/build/libwlroots.so.12032 ${PREFIX}/lib/ + cp ./subprojects/wlroots/build/libwlroots.so.13032 ${PREFIX}/lib/ $(MAKE) installheaders @@ -58,7 +58,7 @@ uninstall: rm -f ${PREFIX}/share/wayland-sessions/hyprland.desktop rm -f ${PREFIX}/bin/Hyprland rm -f ${PREFIX}/bin/hyprctl - rm -f ${PREFIX}/lib/libwlroots.so.12032 + rm -f ${PREFIX}/lib/libwlroots.so.13032 rm -rf ${PREFIX}/share/hyprland rm -f ${PREFIX}/share/man/man1/Hyprland.1 rm -f ${PREFIX}/share/man/man1/hyprctl.1 @@ -68,7 +68,7 @@ pluginenv: @exit 1 installheaders: - @if [ ! -f ./build/Hyprland ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi + @if [ ! -f ./src/version.h ]; then echo -en "You need to run $(MAKE) all first.\n" && exit 1; fi mkdir -p ${PREFIX}/include/hyprland mkdir -p ${PREFIX}/include/hyprland/protocols diff --git a/example/hyprland.conf b/example/hyprland.conf index 7560fefe..e6c2a641 100644 --- a/example/hyprland.conf +++ b/example/hyprland.conf @@ -19,6 +19,10 @@ monitor=,preferred,auto,auto # Source a file (multi-file configs) # source = ~/.config/hypr/myColors.conf +# Set programs that you use +$terminal = kitty +$fileManager = dolphin +$menu = wofi --show drun # Some default env vars. env = XCURSOR_SIZE,24 @@ -127,12 +131,12 @@ windowrulev2 = nomaximizerequest, class:.* # You'll probably like this. $mainMod = SUPER # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more -bind = $mainMod, Q, exec, kitty +bind = $mainMod, Q, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, M, exit, -bind = $mainMod, E, exec, dolphin +bind = $mainMod, E, exec, $fileManager bind = $mainMod, V, togglefloating, -bind = $mainMod, R, exec, wofi --show drun +bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, J, togglesplit, # dwindle diff --git a/flake.lock b/flake.lock index fcb03328..a7743fd0 100644 --- a/flake.lock +++ b/flake.lock @@ -25,11 +25,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1698134075, - "narHash": "sha256-foCD+nuKzfh49bIoiCBur4+Fx1nozo+4C/6k8BYk4sg=", + "lastModified": 1700612854, + "narHash": "sha256-yrQ8osMD+vDLGFX7pcwsY/Qr5PUd6OmDMYJZzZi0+zc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "8efd5d1e283604f75a808a20e6cde0ef313d07d4", + "rev": "19cbff58383a4ae384dea4d1d0c823d72b49d614", "type": "github" }, "original": { @@ -67,18 +67,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1699292815, - "narHash": "sha256-HXu98PyBMKEWLqiTb8viuLDznud/SdkdJsx5A5CWx7I=", + "lastModified": 1701368958, + "narHash": "sha256-7kvyoA91etzVEl9mkA/EJfB6z/PltxX7Xc4gcr7/xlo=", "owner": "wlroots", "repo": "wlroots", - "rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1", + "rev": "5d639394f3e83b01596dcd166a44a9a1a2583350", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1", + "rev": "5d639394f3e83b01596dcd166a44a9a1a2583350", "type": "gitlab" } }, @@ -95,11 +95,11 @@ ] }, "locked": { - "lastModified": 1697981233, - "narHash": "sha256-y8q4XUwx+gVK7i2eLjfR32lVo7TYvEslyzrmzYEaPZU=", + "lastModified": 1700508250, + "narHash": "sha256-X4o/mifI7Nhu0UKYlxx53wIC+gYDo3pVM9L2u3PE2bE=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "22e7a65ff9633e1dedfa5317fdffc49f68de2ff2", + "rev": "eb120ff25265ecacd0fc13d7dab12131b60d0f47", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index f2602105..a6d723f2 100644 --- a/flake.nix +++ b/flake.nix @@ -12,7 +12,7 @@ host = "gitlab.freedesktop.org"; owner = "wlroots"; repo = "wlroots"; - rev = "5de9e1a99d6642c2d09d589aa37ff0a8945dcee1"; + rev = "5d639394f3e83b01596dcd166a44a9a1a2583350"; flake = false; }; @@ -65,7 +65,6 @@ hyprland hyprland-unwrapped hyprland-debug - hyprland-nvidia # hyprland-extras xdg-desktop-portal-hyprland # dependencies diff --git a/hyprctl/main.cpp b/hyprctl/main.cpp index d3eadb13..23c620f2 100644 --- a/hyprctl/main.cpp +++ b/hyprctl/main.cpp @@ -25,35 +25,64 @@ const std::string USAGE = R"#(usage: hyprctl [flags] [ [args]] hyprctl --batch { [args] ; [args] ; ...} +commands: LISTING COMMANDS: + monitors monitors: List outputs + workspaces workspaces: List all workspaces + activeworkspace activeworkspace: Get currently active workspace + workspacerules clients: List clients (e.g. windows) + clients activewindow: Get currently active window + activewindow layers: List layers + layers animations: List animations and bezier curves in use + devices devices: List devices + binds binds: List registered binds + dispatch instances: List running Hyprland instances + keyword layouts: List layouts + version globalshortcuts: List global shortcuts + kill version: Print hyprland version + splash CONFIGURATION COMMANDS: + hyprpaper keyword [args]: Execute a keyword + reload getoption