Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hyprland-protocols for openSUSE:Factory checked in at 2024-07-10 16:49:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyprland-protocols (Old) and /work/SRC/openSUSE:Factory/.hyprland-protocols.new.2080 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "hyprland-protocols" Wed Jul 10 16:49:53 2024 rev:2 rq:1186485 version:0.3.0 Changes: -------- --- /work/SRC/openSUSE:Factory/hyprland-protocols/hyprland-protocols.changes 2024-02-26 19:45:28.138078177 +0100 +++ /work/SRC/openSUSE:Factory/.hyprland-protocols.new.2080/hyprland-protocols.changes 2024-07-10 16:49:59.896681624 +0200 @@ -1,0 +2,6 @@ +Tue Jul 9 23:38:23 UTC 2024 - Soc Virnyl Estela <obs@uncomfyhalomacro.pl> + +- Update to version 0.3.0: + * Add hyprland_focus_grab_v1 + +------------------------------------------------------------------- Old: ---- hyprland-protocols-0.2.tar.gz New: ---- hyprland-protocols-0.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyprland-protocols.spec ++++++ --- /var/tmp/diff_new_pack.3TZSxG/_old 2024-07-10 16:50:00.852716728 +0200 +++ /var/tmp/diff_new_pack.3TZSxG/_new 2024-07-10 16:50:00.856716875 +0200 @@ -20,9 +20,9 @@ Summary: Wayland extension protocol for Hyprland Group: Development/Libraries/Other License: BSD-3-Clause -Version: 0.2 +Version: 0.3.0 Release: 0 -Url: https://github.com/hyprwm/hyprland-protocols +URL: https://github.com/hyprwm/hyprland-protocols Source0: https://github.com/hyprwm/hyprland-protocols/archive/refs/tags/v%{version}.tar.gz#/hyprland-protocols-%{version}.tar.gz BuildRequires: meson BuildRequires: pkgconfig ++++++ hyprland-protocols-0.2.tar.gz -> hyprland-protocols-0.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprland-protocols-0.2/README.md new/hyprland-protocols-0.3.0/README.md --- old/hyprland-protocols-0.2/README.md 2023-04-09 20:41:37.000000000 +0200 +++ new/hyprland-protocols-0.3.0/README.md 2024-06-18 23:31:54.000000000 +0200 @@ -7,10 +7,8 @@ # Finished protocols - `hyprland_toplevel_export` -> for exporting toplevel buffers (aka. windows) for screensharing - -# Planned protocols - `hyprland_global_keybindings` -> for managing global keybinds via D-Bus. -- `hyprland_window_management` -> for custom window managers / layouts. +- `hyprland_focus_grab` -> for grabbing input focus, primarily for complex context menus. # Contributing Adding new protocols is *discouraged*. If the protocol has a good reason to be, and you have an impl ready, feel free to make a PR. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprland-protocols-0.2/flake.lock new/hyprland-protocols-0.3.0/flake.lock --- old/hyprland-protocols-0.2/flake.lock 2023-04-09 20:41:37.000000000 +0200 +++ new/hyprland-protocols-0.3.0/flake.lock 2024-06-18 23:31:54.000000000 +0200 @@ -2,11 +2,11 @@ "nodes": { "nixpkgs": { "locked": { - "lastModified": 1669969257, - "narHash": "sha256-mOS13sK3v+kfgP+1Mh56ohiG8uVhLHAo7m/q9kqAehc=", + "lastModified": 1683014792, + "narHash": "sha256-6Va9iVtmmsw4raBc3QKvQT2KT/NGRWlvUlJj46zN8B8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b72b8b94cf0c012b0252a9100a636cad69696666", + "rev": "1a411f23ba299db155a5b45d5e145b85a7aafc42", "type": "github" }, "original": { @@ -18,7 +18,23 @@ }, "root": { "inputs": { - "nixpkgs": "nixpkgs" + "nixpkgs": "nixpkgs", + "systems": "systems" + } + }, + "systems": { + "locked": { + "lastModified": 1689347949, + "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", + "owner": "nix-systems", + "repo": "default-linux", + "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default-linux", + "type": "github" } } }, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprland-protocols-0.2/flake.nix new/hyprland-protocols-0.3.0/flake.nix --- old/hyprland-protocols-0.2/flake.nix 2023-04-09 20:41:37.000000000 +0200 +++ new/hyprland-protocols-0.3.0/flake.nix 2024-06-18 23:31:54.000000000 +0200 @@ -1,19 +1,25 @@ { description = "Hyprland Protocols"; - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + # <https://github.com/nix-systems/nix-systems> + systems.url = "github:nix-systems/default-linux"; + }; outputs = { self, nixpkgs, + systems, ... }: let inherit (nixpkgs) lib; - genSystems = lib.genAttrs [ - "aarch64-linux" - "x86_64-linux" - ]; - pkgsFor = nixpkgs.legacyPackages; + eachSystem = lib.genAttrs (import systems); + pkgsFor = eachSystem (system: + import nixpkgs { + localSystem = system; + overlays = [self.overlays.hyprland-protocols]; + }); mkDate = longDate: (lib.concatStringsSep "-" [ (builtins.substring 0 4 longDate) (builtins.substring 4 2 longDate) @@ -21,14 +27,18 @@ ]); version = "0.1" + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty"); in { - overlays.default = _: prev: { - hyprland-protocols = prev.callPackage ./nix/default.nix {inherit version;}; + overlays = { + hyprland-protocols = final: prev: { + hyprland-protocols = final.callPackage ./nix/default.nix {inherit version;}; + }; + default = self.overlays.hyprland-protocols; }; - packages = genSystems (system: - (self.overlays.default null pkgsFor.${system}) - // {default = self.packages.${system}.hyprland-protocols;}); + packages = eachSystem (system: { + inherit (pkgsFor.${system}) hyprland-protocols; + default = self.packages.${system}.hyprland-protocols; + }); - formatter = genSystems (system: pkgsFor.${system}.alejandra); + formatter = eachSystem (system: nixpkgs.legacyPackages.${system}.alejandra); }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprland-protocols-0.2/meson.build new/hyprland-protocols-0.3.0/meson.build --- old/hyprland-protocols-0.2/meson.build 2023-04-09 20:41:37.000000000 +0200 +++ new/hyprland-protocols-0.3.0/meson.build 2024-06-18 23:31:54.000000000 +0200 @@ -1,5 +1,5 @@ project('hyprland-protocols', - version: '0.2', + version: '0.3.0', meson_version: '>= 0.55.0', ) @@ -9,7 +9,8 @@ protocols = { 'hyprland-toplevel-export': ['v1'], - 'hyprland-global-shortcuts': ['v1'] + 'hyprland-global-shortcuts': ['v1'], + 'hyprland-focus-grab': ['v1'], } protocol_files = [] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprland-protocols-0.2/protocols/hyprland-focus-grab-v1.xml new/hyprland-protocols-0.3.0/protocols/hyprland-focus-grab-v1.xml --- old/hyprland-protocols-0.2/protocols/hyprland-focus-grab-v1.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/hyprland-protocols-0.3.0/protocols/hyprland-focus-grab-v1.xml 2024-06-18 23:31:54.000000000 +0200 @@ -0,0 +1,128 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="hyprland_focus_grab_v1"> + <copyright> + Copyright © 2024 outfoxxed + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + </copyright> + + <description summary="limit input focus to a set of surfaces"> + This protocol allows clients to limit input focus to a specific set + of surfaces and receive a notification when the limiter is removed as + detailed below. + </description> + + <interface name="hyprland_focus_grab_manager_v1" version="1"> + <description summary="manager for focus grab objects"> + This interface allows a client to create surface grab objects. + </description> + + <request name="create_grab"> + <description summary="create a focus grab object"> + Create a surface grab object. + </description> + + <arg name="grab" type="new_id" interface="hyprland_focus_grab_v1"/> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy the focus grab manager"> + Destroy the focus grab manager. + This doesn't destroy existing focus grab objects. + </description> + </request> + </interface> + + <interface name="hyprland_focus_grab_v1" version="1"> + <description summary="input focus limiter"> + This interface restricts input focus to a specified whitelist of + surfaces as long as the focus grab object exists and has at least + one comitted surface. + + Mouse and touch events inside a whitelisted surface will be passed + to the surface normally, while events outside of a whitelisted surface + will clear the grab object. Keyboard events will be passed to the client + and a compositor-picked surface in the whitelist will receive a + wl_keyboard::enter event if a whitelisted surface is not already entered. + + Upon meeting implementation-defined criteria usually meaning a mouse or + touch input outside of any whitelisted surfaces, the compositor will + clear the whitelist, rendering the grab inert and sending the cleared + event. The same will happen if another focus grab or similar action + is started at the compositor's discretion. + </description> + + <request name="add_surface"> + <description summary="add a surface to the focus whitelist"> + Add a surface to the whitelist. Destroying the surface is treated the + same as an explicit call to remove_surface and duplicate additions are + ignored. + + Does not take effect until commit is called. + </description> + + <arg name="surface" type="object" interface="wl_surface"/> + </request> + + <request name="remove_surface"> + <description summary="remove a surface from the focus whitelist"> + Remove a surface from the whitelist. Destroying the surface is treated + the same as an explicit call to this function. + + If the grab was active and the removed surface was entered by the + keyboard, another surface will be entered on commit. + + Does not take effect until commit is called. + </description> + + <arg name="surface" type="object" interface="wl_surface"/> + </request> + + <request name="commit"> + <description summary="commit the focus whitelist"> + Commit pending changes to the surface whitelist. + + If the list previously had no entries and now has at least one, the grab + will start. If it previously had entries and now has none, the grab will + become inert. + </description> + </request> + + <request name="destroy" type="destructor"> + <description summary="destroy the focus grab"> + Destroy the grab object and remove the grab if active. + </description> + </request> + + <event name="cleared"> + <description summary="the focus grab was cleared"> + Sent when an active grab is cancelled by the compositor, + regardless of cause. + </description> + </event> + </interface> +</protocol>