diff options
author | lilac | 2023-08-21 20:19:11 +0800 |
---|---|---|
committer | lilac | 2023-08-21 20:19:11 +0800 |
commit | 8625cd5f63d5eac4f237f35d77e9f3270d0648f5 (patch) | |
tree | 7d05610390553062489a49a5d58beb02c298053e | |
parent | f3984798c81abdda54429e3d8ebf910eb374f6b3 (diff) | |
download | aur-8625cd5f63d5eac4f237f35d77e9f3270d0648f5.tar.gz |
[lilac] updated to 0.28.0.r75.63b2189c-1
-rw-r--r-- | .SRCINFO | 28 | ||||
-rw-r--r-- | 0001-xwayland-support-HiDPI-scale.patch (renamed from xwayland-support-HiDPI-scale.patch) | 37 | ||||
-rw-r--r-- | 0002-Fix-configure_notify-event.patch (renamed from fix-configure_notify-event.patch) | 10 | ||||
-rw-r--r-- | 0003-Fix-size-hints-under-Xwayland-scaling.patch | 54 | ||||
-rw-r--r-- | PKGBUILD | 71 |
5 files changed, 128 insertions, 72 deletions
@@ -1,9 +1,13 @@ pkgbase = hyprland-nvidia-hidpi-git pkgdesc = A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks. (NVIDIA + HiDPI patch) - pkgver = r3198.3f7f4207 + pkgver = 0.28.0.r75.63b2189c pkgrel = 1 url = https://github.com/hyprwm/Hyprland + arch = i686 arch = x86_64 + arch = arm + arch = armv6h + arch = armv7h arch = aarch64 arch = riscv64 license = BSD @@ -11,12 +15,10 @@ pkgbase = hyprland-nvidia-hidpi-git makedepends = cmake makedepends = ninja makedepends = gcc - makedepends = gdb makedepends = meson makedepends = vulkan-headers makedepends = wayland-protocols makedepends = xorgproto - depends = libdisplay-info.so depends = libxcb depends = xcb-proto depends = xcb-util @@ -32,6 +34,7 @@ pkgbase = hyprland-nvidia-hidpi-git depends = pango depends = polkit depends = glslang + depends = libdisplay-info depends = libinput depends = libxcb depends = libxkbcommon @@ -43,27 +46,26 @@ pkgbase = hyprland-nvidia-hidpi-git depends = xcb-util-wm depends = seatd depends = vulkan-icd-loader - depends = vulkan-validation-layers - depends = xorg-xwayland-lily - depends = libdisplay-info + depends = xorg-xwayland-hidpi-xprop + depends = libdisplay-info.so provides = hyprland conflicts = hyprland - options = !makeflags - options = !buildflags - options = !strip + options = debug source = hyprland::git+https://github.com/hyprwm/Hyprland.git source = git+https://gitlab.freedesktop.org/wlroots/wlroots.git source = git+https://github.com/hyprwm/hyprland-protocols.git source = git+https://github.com/canihavesomecoffee/udis86.git - source = xwayland-support-HiDPI-scale.patch - source = fix-configure_notify-event.patch + source = 0001-xwayland-support-HiDPI-scale.patch + source = 0002-Fix-configure_notify-event.patch + source = 0003-Fix-size-hints-under-Xwayland-scaling.patch source = nvidia.patch sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP sha256sums = SKIP - sha256sums = 497afb5e99cb069ed96a3c4a735ad23afe0d012ca845067aae3176e45e267ba5 - sha256sums = e7cf16e39db2bde4dbc9d7ec3b4753f7643b1bf198a3179e6802a9c603437fe9 + sha256sums = 2fd861a76fb7a6b0bba12e7d307ad655e40ec93a84c88dfc00571aac6e119e85 + sha256sums = 1314d0ee63a4249698791d86cce5e6cdb4f005b81bbb1c6a747578d2a9223795 + sha256sums = c08dd62a1786eeb7506f1839bfcbba791502360392c929e620244f70c8ca5b61 sha256sums = c200d341641ee20a13b1893e27a9d823e9ef5ac2378e3cdecd0efc55a713db1c pkgname = hyprland-nvidia-hidpi-git diff --git a/xwayland-support-HiDPI-scale.patch b/0001-xwayland-support-HiDPI-scale.patch index fcedac0abff7..43d76b413793 100644 --- a/xwayland-support-HiDPI-scale.patch +++ b/0001-xwayland-support-HiDPI-scale.patch @@ -1,16 +1,16 @@ -From fb2082439381722af1c2427d63eb2c505dbb5d00 Mon Sep 17 00:00:00 2001 +From 179258208d98fe3755b414749e9776e96d3b1dad Mon Sep 17 00:00:00 2001 From: lilydjwg <lilydjwg@gmail.com> Date: Wed, 17 Nov 2021 19:34:58 +0800 -Subject: [PATCH] xwayland: support HiDPI scale +Subject: [PATCH 1/3] xwayland: support HiDPI scale This supports the xorg-xwayland patch at https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/733 --- include/xwayland/xwm.h | 2 ++ - xwayland/xwm.c | 53 +++++++++++++++++++++++++++++++----------- - 2 files changed, 41 insertions(+), 14 deletions(-) + xwayland/xwm.c | 51 +++++++++++++++++++++++++++++++----------- + 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/include/xwayland/xwm.h b/include/xwayland/xwm.h -index 3d5405221..33ff1478b 100644 +index 3d540522..33ff1478 100644 --- a/include/xwayland/xwm.h +++ b/include/xwayland/xwm.h @@ -88,6 +88,7 @@ enum atom_name { @@ -30,7 +30,7 @@ index 3d5405221..33ff1478b 100644 xcb_atom_t atoms[ATOM_LAST]; xcb_connection_t *xcb_conn; diff --git a/xwayland/xwm.c b/xwayland/xwm.c -index 5f857f24f..f085ae7ab 100644 +index 0c30d8f6..59e9ce06 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -19,6 +19,14 @@ @@ -56,7 +56,7 @@ index 5f857f24f..f085ae7ab 100644 }; #define STARTUP_INFO_REMOVE_PREFIX "remove: ID=" -@@ -965,8 +974,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm, +@@ -962,8 +971,8 @@ static void xwm_handle_create_notify(struct wlr_xwm *xwm, return; } @@ -67,7 +67,7 @@ index 5f857f24f..f085ae7ab 100644 } static void xwm_handle_destroy_notify(struct wlr_xwm *xwm, -@@ -997,10 +1006,10 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm, +@@ -994,10 +1003,10 @@ static void xwm_handle_configure_request(struct wlr_xwm *xwm, struct wlr_xwayland_surface_configure_event wlr_event = { .surface = surface, @@ -82,7 +82,7 @@ index 5f857f24f..f085ae7ab 100644 .mask = mask, }; -@@ -1015,14 +1024,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm, +@@ -1012,14 +1021,14 @@ static void xwm_handle_configure_notify(struct wlr_xwm *xwm, } bool geometry_changed = @@ -103,7 +103,7 @@ index 5f857f24f..f085ae7ab 100644 } if (xsurface->override_redirect != ev->override_redirect) { -@@ -1132,7 +1141,22 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, +@@ -1136,7 +1145,22 @@ static void xwm_handle_unmap_notify(struct wlr_xwm *xwm, static void xwm_handle_property_notify(struct wlr_xwm *xwm, xcb_property_notify_event_t *ev) { struct wlr_xwayland_surface *xsurface = lookup_surface(xwm, ev->window); @@ -126,18 +126,7 @@ index 5f857f24f..f085ae7ab 100644 return; } -@@ -1759,17 +1783,17 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, - int16_t x, int16_t y, uint16_t width, uint16_t height) { - int old_w = xsurface->width; - int old_h = xsurface->height; -+ struct wlr_xwm *xwm = xsurface->xwm; - - xsurface->x = x; - xsurface->y = y; - xsurface->width = width; - xsurface->height = height; - -- struct wlr_xwm *xwm = xsurface->xwm; +@@ -1770,7 +1794,7 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, uint32_t mask = XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y | XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT | XCB_CONFIG_WINDOW_BORDER_WIDTH; @@ -146,7 +135,7 @@ index 5f857f24f..f085ae7ab 100644 xcb_configure_window(xwm->xcb_conn, xsurface->window_id, mask, values); // If the window size did not change, then we cannot rely on -@@ -2122,6 +2146,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) { +@@ -2123,6 +2147,7 @@ struct wlr_xwm *xwm_create(struct wlr_xwayland *xwayland, int wm_fd) { wl_list_init(&xwm->pending_startup_ids); xwm->ping_timeout = 10000; @@ -155,5 +144,5 @@ index 5f857f24f..f085ae7ab 100644 int rc = xcb_connection_has_error(xwm->xcb_conn); -- -GitLab +2.41.0 diff --git a/fix-configure_notify-event.patch b/0002-Fix-configure_notify-event.patch index c80f4795d8ea..6fdf60ff1704 100644 --- a/fix-configure_notify-event.patch +++ b/0002-Fix-configure_notify-event.patch @@ -1,17 +1,17 @@ -From 950808724d20d8daa1e26d7a0ae322eda14cd1cc Mon Sep 17 00:00:00 2001 +From c9315b2f8c84d5f1b0b14f863af6f73bc3ac95c5 Mon Sep 17 00:00:00 2001 From: q234rty <q23456yuiop@gmail.com> Date: Tue, 21 Feb 2023 23:56:26 +0800 -Subject: [PATCH 2/2] Fix configure_notify event +Subject: [PATCH 2/3] Fix configure_notify event --- xwayland/xwm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/xwayland/xwm.c b/xwayland/xwm.c -index 8449977e..2cce8a26 100644 +index 59e9ce06..295f4d49 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c -@@ -1809,10 +1809,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, +@@ -1807,10 +1807,10 @@ void wlr_xwayland_surface_configure(struct wlr_xwayland_surface *xsurface, .response_type = XCB_CONFIGURE_NOTIFY, .event = xsurface->window_id, .window = xsurface->window_id, @@ -27,5 +27,5 @@ index 8449977e..2cce8a26 100644 xcb_send_event(xwm->xcb_conn, 0, xsurface->window_id, -- -2.39.2 +2.41.0 diff --git a/0003-Fix-size-hints-under-Xwayland-scaling.patch b/0003-Fix-size-hints-under-Xwayland-scaling.patch new file mode 100644 index 000000000000..a63a619f1a6e --- /dev/null +++ b/0003-Fix-size-hints-under-Xwayland-scaling.patch @@ -0,0 +1,54 @@ +From 7220722f9173a90479d81f4b359cf91956f59f28 Mon Sep 17 00:00:00 2001 +From: Patrick Taibel <git@pmt97.com> +Date: Sat, 12 Aug 2023 16:05:28 +0800 +Subject: [PATCH 3/3] Fix size hints under Xwayland scaling + +--- + xwayland/xwm.c | 23 ++++++++++++++++++++--- + 1 file changed, 20 insertions(+), 3 deletions(-) + +diff --git a/xwayland/xwm.c b/xwayland/xwm.c +index 295f4d49..674a32e1 100644 +--- a/xwayland/xwm.c ++++ b/xwayland/xwm.c +@@ -729,17 +729,34 @@ static void read_surface_normal_hints(struct wlr_xwm *xwm, + xsurface->size_hints->base_width = -1; + xsurface->size_hints->base_height = -1; + } else if (!has_base_size_hints) { +- xsurface->size_hints->base_width = xsurface->size_hints->min_width; +- xsurface->size_hints->base_height = xsurface->size_hints->min_height; +- } else if (!has_min_size_hints) { ++ xsurface->size_hints->base_width = unscale(xwm, xsurface->size_hints->min_width); ++ xsurface->size_hints->base_height = unscale(xwm, xsurface->size_hints->min_height); + xsurface->size_hints->min_width = xsurface->size_hints->base_width; + xsurface->size_hints->min_height = xsurface->size_hints->base_height; ++ } else if (!has_min_size_hints) { ++ xsurface->size_hints->min_width = unscale(xwm, xsurface->size_hints->base_width); ++ xsurface->size_hints->min_height = unscale(xwm, xsurface->size_hints->base_height); ++ xsurface->size_hints->base_width = xsurface->size_hints->min_width; ++ xsurface->size_hints->base_height = xsurface->size_hints->min_height; ++ } else { ++ xsurface->size_hints->min_width = unscale(xwm, xsurface->size_hints->min_width); ++ xsurface->size_hints->min_height = unscale(xwm, xsurface->size_hints->min_height); ++ xsurface->size_hints->base_width = unscale(xwm, xsurface->size_hints->base_width); ++ xsurface->size_hints->base_height = unscale(xwm, xsurface->size_hints->base_height); + } + + if ((flags & XCB_ICCCM_SIZE_HINT_P_MAX_SIZE) == 0) { + xsurface->size_hints->max_width = -1; + xsurface->size_hints->max_height = -1; ++ } else { ++ xsurface->size_hints->max_width = unscale(xwm, xsurface->size_hints->max_width); ++ xsurface->size_hints->max_height = unscale(xwm, xsurface->size_hints->max_height); + } ++ ++ xsurface->size_hints->x = unscale(xwm, xsurface->size_hints->x); ++ xsurface->size_hints->y = unscale(xwm, xsurface->size_hints->y); ++ xsurface->size_hints->width = unscale(xwm, xsurface->size_hints->width); ++ xsurface->size_hints->height = unscale(xwm, xsurface->size_hints->height); + } + + #define MWM_HINTS_FLAGS_FIELD 0 +-- +2.41.0 + @@ -1,14 +1,18 @@ # Maintainer: Integral <integral@murena.io> +# Contributor: Aleksana QwQ <me@aleksana.moe> +# Contributor: q234 rty <q23456yuiop at gmail dot com> +# Contributor: ThatOneCalculator <kainoa@t1c.dev> +# Contributor: lilydjwg <lilydjwg@gmail.com> -_pkgname=hyprland +_pkgname="hyprland" pkgname="${_pkgname}-nvidia-hidpi-git" -pkgver=r3198.3f7f4207 +pkgver=0.28.0.r75.63b2189c pkgrel=1 pkgdesc="A dynamic tiling Wayland compositor based on wlroots that doesn't sacrifice on its looks. (NVIDIA + HiDPI patch)" -arch=('x86_64' 'aarch64' 'riscv64') +arch=("i686" "x86_64" "arm" "armv6h" "armv7h" "aarch64" "riscv64") url="https://github.com/hyprwm/Hyprland" license=('BSD') -depends=("libdisplay-info.so" +depends=( libxcb xcb-proto xcb-util @@ -24,6 +28,7 @@ depends=("libdisplay-info.so" pango polkit glslang + libdisplay-info libinput libxcb libxkbcommon @@ -35,15 +40,13 @@ depends=("libdisplay-info.so" xcb-util-wm seatd vulkan-icd-loader - vulkan-validation-layers - xorg-xwayland-lily - libdisplay-info) + xorg-xwayland-hidpi-xprop + libdisplay-info.so) makedepends=( git cmake ninja gcc - gdb meson vulkan-headers wayland-protocols @@ -52,8 +55,9 @@ source=("${_pkgname}::git+https://github.com/hyprwm/Hyprland.git" "git+https://gitlab.freedesktop.org/wlroots/wlroots.git" "git+https://github.com/hyprwm/hyprland-protocols.git" "git+https://github.com/canihavesomecoffee/udis86.git" - "xwayland-support-HiDPI-scale.patch" - "fix-configure_notify-event.patch" + "0001-xwayland-support-HiDPI-scale.patch" + "0002-Fix-configure_notify-event.patch" + "0003-Fix-size-hints-under-Xwayland-scaling.patch" "nvidia.patch") conflicts=("${_pkgname}") provides=(hyprland) @@ -61,18 +65,14 @@ sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' - '497afb5e99cb069ed96a3c4a735ad23afe0d012ca845067aae3176e45e267ba5' - 'e7cf16e39db2bde4dbc9d7ec3b4753f7643b1bf198a3179e6802a9c603437fe9' + '2fd861a76fb7a6b0bba12e7d307ad655e40ec93a84c88dfc00571aac6e119e85' + '1314d0ee63a4249698791d86cce5e6cdb4f005b81bbb1c6a747578d2a9223795' + 'c08dd62a1786eeb7506f1839bfcbba791502360392c929e620244f70c8ca5b61' 'c200d341641ee20a13b1893e27a9d823e9ef5ac2378e3cdecd0efc55a713db1c') -options=(!makeflags !buildflags !strip) +options=(debug) pkgver() { - cd "$_pkgname" - ( - set -o pipefail - git describe --long 2>/dev/null | sed 's/\([^-]*-g\)/r\1/;s/-/./g' || - printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" - ) + git -C "${_pkgname}" describe --long --tags | sed 's/^v//;s/\([^-]*-\)g/r\1/;s/-/./g' } prepare() { @@ -87,31 +87,42 @@ prepare() { git -c protocol.file.allow=always submodule update subprojects/udis86 cd subprojects/wlroots git revert -n 18595000f3a21502fd60bf213122859cc348f9af - patch --forward --strip=1 --input="${srcdir}"/xwayland-support-HiDPI-scale.patch - patch --forward --strip=1 --input="${srcdir}"/fix-configure_notify-event.patch + patch -Np1 -i "${srcdir}"/0001-xwayland-support-HiDPI-scale.patch + patch -Np1 -i "${srcdir}"/0002-Fix-configure_notify-event.patch + patch -Np1 -i "${srcdir}"/0003-Fix-size-hints-under-Xwayland-scaling.patch patch --forward --strip=0 --input="${srcdir}"/nvidia.patch + cd "${srcdir}/${_pkgname}" + make fixwlr } build() { -export CFLAGS+=-w cd "${srcdir}/${_pkgname}" - make fixwlr - cd "./subprojects/wlroots/" && meson build/ --prefix="${srcdir}/tmpwlr" --buildtype=release && ninja -C build/ && mkdir -p "${srcdir}/tmpwlr" && ninja -C build/ install && cd ../../ - cd "./subprojects/udis86/" && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -H./ -B./build -G Ninja && cmake --build ./build --config Release --target all -j$(shell nproc) && cd ../../ - make protocols - make release + cd "./subprojects/wlroots/" && meson setup build/ --prefix="${srcdir}/tmpwlr" --buildtype=plain && ninja -C build/ && mkdir -p "${srcdir}/tmpwlr" && ninja -C build/ install && cd ../.. + cd "./subprojects/udis86/" && cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=None -H./ -B./build -G Ninja && cmake --build ./build --target all && cd ../.. + mkdir -p build && cd build + cmake -G Ninja -DCMAKE_BUILD_TYPE=None -DCMAKE_SKIP_RPATH=ON -DCMAKE_INSTALL_PREFIX=/usr .. + ninja + cd "${srcdir}/${_pkgname}" cd ./hyprctl && make all && cd .. } package() { cd "${srcdir}/${_pkgname}" - mkdir -p "${pkgdir}/usr/share/wayland-sessions" - mkdir -p "${pkgdir}/usr/share/hyprland" install -Dm755 build/Hyprland -t "${pkgdir}/usr/bin" install -Dm755 hyprctl/hyprctl -t "${pkgdir}/usr/bin" install -Dm644 assets/*.png -t "${pkgdir}/usr/share/hyprland" install -Dm644 example/hyprland.desktop -t "${pkgdir}/usr/share/wayland-sessions" install -Dm644 example/hyprland.conf -t "${pkgdir}/usr/share/hyprland" - install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${_pkgname}" + install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -Dm644 subprojects/wlroots/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-wlroots" + install -Dm644 subprojects/udis86/LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE-udis86" + install -Dm644 docs/*.1 -t "${pkgdir}/usr/share/man/man1" install -Dm755 ../tmpwlr/lib/libwlroots.so.* -t "${pkgdir}/usr/lib" + install -d "${pkgdir}/usr/include/hyprland/protocols" + install -d "${pkgdir}/usr/include/hyprland/wlroots" + cp -R src ${pkgdir}/usr/include/hyprland/ + cp -R ../tmpwlr/include/* ${pkgdir}/usr/include/hyprland/wlroots/ + find ${pkgdir}/usr/include/hyprland/ -type f ! -name '*.h*' -delete + cp protocols/*-protocol.h ${pkgdir}/usr/include/hyprland/protocols + install -Dm644 build/hyprland.pc -t "${pkgdir}/usr/share/pkgconfig" } |