Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package hyprpicker for openSUSE:Factory checked in at 2026-07-23 23:13:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/hyprpicker (Old) and /work/SRC/openSUSE:Factory/.hyprpicker.new.2004 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "hyprpicker" Thu Jul 23 23:13:49 2026 rev:5 rq:1367365 version:0.4.7 Changes: -------- --- /work/SRC/openSUSE:Factory/hyprpicker/hyprpicker.changes 2026-04-04 19:07:26.205172632 +0200 +++ /work/SRC/openSUSE:Factory/.hyprpicker.new.2004/hyprpicker.changes 2026-07-23 23:15:43.707628868 +0200 @@ -1,0 +2,12 @@ +Thu Jul 16 09:13:13 UTC 2026 - Nassim Lhadj <[email protected]> + +- Update to version 0.4.7: + * Include <mutex> to make pickier compilers happy + * Input: Made Scroll Zooming More Natural + * Add missing include to main.cpp + * Input: include cursor in frozen preview + * Fix: clean up files on SIGTERM +- Remove 089dd8a448c12e1066486892de096590cddb4195.patch (boo#1260616) + as it's been merged in #148 + +------------------------------------------------------------------- Old: ---- 089dd8a448c12e1066486892de096590cddb4195.patch hyprpicker-0.4.6.obscpio New: ---- hyprpicker-0.4.7.obscpio ----------(Old B)---------- Old: * Fix: clean up files on SIGTERM - Remove 089dd8a448c12e1066486892de096590cddb4195.patch (boo#1260616) as it's been merged in #148 ----------(Old E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hyprpicker.spec ++++++ --- /var/tmp/diff_new_pack.YEgauv/_old 2026-07-23 23:15:44.247647858 +0200 +++ /var/tmp/diff_new_pack.YEgauv/_new 2026-07-23 23:15:44.251647999 +0200 @@ -17,13 +17,12 @@ Name: hyprpicker -Version: 0.4.6 +Version: 0.4.7 Release: 0 Summary: A wlroots-compatible Wayland color picker License: BSD-3-Clause URL: https://github.com/hyprwm/hyprpicker Source: %{name}-%{version}.tar.gz -Patch: https://github.com/hyprwm/hyprpicker/commit/089dd8a448c12e1066486892de096590cddb4195.patch BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: ninja ++++++ hyprpicker-0.4.6.obscpio -> hyprpicker-0.4.7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/VERSION new/hyprpicker-0.4.7/VERSION --- old/hyprpicker-0.4.6/VERSION 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/VERSION 2026-05-05 01:34:34.000000000 +0200 @@ -1 +1 @@ -0.4.6 +0.4.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/doc/hyprpicker.1 new/hyprpicker-0.4.7/doc/hyprpicker.1 --- old/hyprpicker-0.4.6/doc/hyprpicker.1 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/doc/hyprpicker.1 2026-05-05 01:34:34.000000000 +0200 @@ -6,7 +6,7 @@ .Nd wlroots-compatible wayland color picker .Sh SYNOPSIS .Nm -.Op Fl anh +.Op Fl acnh .Op Fl f Ar fmt .Sh DESCRIPTION The @@ -56,6 +56,8 @@ Default behavior is to color the output in the same color as the selected pixel. .It Fl h , Fl Fl help Display a help message and exit successfully from the program. +.It Fl c , Fl Fl cursor +Include the cursor in the frozen preview. .El .Sh ENVIRONMENT .Bl -tag -width NO_COLOR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/flake.lock new/hyprpicker-0.4.7/flake.lock --- old/hyprpicker-0.4.6/flake.lock 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/flake.lock 2026-05-05 01:34:34.000000000 +0200 @@ -10,11 +10,11 @@ ] }, "locked": { - "lastModified": 1749135356, - "narHash": "sha256-Q8mAKMDsFbCEuq7zoSlcTuxgbIBVhfIYpX0RjE32PS0=", + "lastModified": 1772459870, + "narHash": "sha256-xxkK2Cvqxpf/4UGcJ/TyCwrvmiNWsKsJfFzHMp2bxis=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "e36db00dfb3a3d3fdcc4069cb292ff60d2699ccb", + "rev": "e63f3a79334dec49f8eb1691f66f18115df04085", "type": "github" }, "original": { @@ -33,11 +33,11 @@ ] }, "locked": { - "lastModified": 1749145760, - "narHash": "sha256-IHaGWpGrv7seFWdw/1A+wHtTsPlOGIKMrk1TUIYJEFI=", + "lastModified": 1772459835, + "narHash": "sha256-978jRz/y/9TKmZb/qD4lEYHCQGHpEXGqy+8X2lFZsak=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "817918315ea016cc2d94004bfb3223b5fd9dfcc6", + "rev": "0a692d4a645165eebd65f109146b8861e3a925e7", "type": "github" }, "original": { @@ -48,11 +48,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1748929857, - "narHash": "sha256-lcZQ8RhsmhsK8u7LIFsJhsLh/pzR9yZ8yqpTzyGdj+Q=", + "lastModified": 1772433332, + "narHash": "sha256-izhTDFKsg6KeVBxJS9EblGeQ8y+O8eCa6RcW874vxEc=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c2a03962b8e24e669fb37b7df10e7c79531ff1a4", + "rev": "cf59864ef8aa2e178cccedbe2c178185b0365705", "type": "github" }, "original": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/flake.nix new/hyprpicker-0.4.7/flake.nix --- old/hyprpicker-0.4.6/flake.nix 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/flake.nix 2026-05-05 01:34:34.000000000 +0200 @@ -18,46 +18,32 @@ }; }; - outputs = { - self, - nixpkgs, - systems, - ... - } @ inputs: let - inherit (nixpkgs) lib; - eachSystem = lib.genAttrs (import systems); - pkgsFor = eachSystem (system: - import nixpkgs { - localSystem.system = system; - overlays = with self.overlays; [hyprpicker]; - }); - mkDate = longDate: (lib.concatStringsSep "-" [ - (builtins.substring 0 4 longDate) - (builtins.substring 4 2 longDate) - (builtins.substring 6 2 longDate) - ]); - version = lib.removeSuffix "\n" (builtins.readFile ./VERSION); - in { - overlays = { - default = self.overlays.hyprpicker; - hyprpicker = lib.composeManyExtensions [ - inputs.hyprutils.overlays.default - inputs.hyprwayland-scanner.overlays.default - (final: prev: { - hyprpicker = prev.callPackage ./nix/default.nix { - stdenv = prev.gcc15Stdenv; - version = version + "+date=" + (mkDate (self.lastModifiedDate or "19700101")) + "_" + (self.shortRev or "dirty"); - }; - hyprpicker-debug = final.hyprpicker.override {debug = true;}; - }) - ]; - }; + outputs = + { + self, + nixpkgs, + systems, + ... + }@inputs: + let + inherit (nixpkgs) lib; + eachSystem = lib.genAttrs (import systems); + pkgsFor = eachSystem ( + system: + import nixpkgs { + localSystem.system = system; + overlays = with self.overlays; [ hyprpicker-with-deps ]; + } + ); + in + { + overlays = import ./nix/overlays.nix { inherit inputs lib self; }; - packages = eachSystem (system: { - default = self.packages.${system}.hyprpicker; - inherit (pkgsFor.${system}) hyprpicker hyprpicker-debug; - }); + packages = eachSystem (system: { + default = self.packages.${system}.hyprpicker; + inherit (pkgsFor.${system}) hyprpicker hyprpicker-debug; + }); - formatter = eachSystem (system: pkgsFor.${system}.alejandra); - }; + formatter = eachSystem (system: pkgsFor.${system}.nixfmt-tree); + }; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/nix/default.nix new/hyprpicker-0.4.7/nix/default.nix --- old/hyprpicker-0.4.6/nix/default.nix 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/nix/default.nix 2026-05-05 01:34:34.000000000 +0200 @@ -13,6 +13,7 @@ libselinux, libsepol, libthai, + libXdmcp, libxkbcommon, pango, pcre, @@ -21,7 +22,6 @@ wayland, wayland-protocols, wayland-scanner, - xorg, debug ? false, version ? "git", }: @@ -31,10 +31,7 @@ src = ../.; - cmakeBuildType = - if debug - then "Debug" - else "Release"; + cmakeBuildType = if debug then "Debug" else "Release"; nativeBuildInputs = [ cmake @@ -52,6 +49,7 @@ libselinux libsepol libthai + libXdmcp libxkbcommon pango pcre @@ -60,7 +58,6 @@ wayland wayland-protocols wayland-scanner - xorg.libXdmcp ]; outputs = [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/nix/overlays.nix new/hyprpicker-0.4.7/nix/overlays.nix --- old/hyprpicker-0.4.6/nix/overlays.nix 1970-01-01 01:00:00.000000000 +0100 +++ new/hyprpicker-0.4.7/nix/overlays.nix 2026-05-05 01:34:34.000000000 +0200 @@ -0,0 +1,37 @@ +{ + lib, + inputs, + self, + ... +}: +let + mkDate = + longDate: + (lib.concatStringsSep "-" [ + (builtins.substring 0 4 longDate) + (builtins.substring 4 2 longDate) + (builtins.substring 6 2 longDate) + ]); + version = lib.removeSuffix "\n" (builtins.readFile ../VERSION); +in +{ + default = self.overlays.hyprpicker; + hyprpicker-with-deps = lib.composeManyExtensions [ + inputs.hyprutils.overlays.default + inputs.hyprwayland-scanner.overlays.default + self.overlays.hyprpicker + ]; + + hyprpicker = final: prev: { + hyprpicker = prev.callPackage ./default.nix { + stdenv = prev.gcc15Stdenv; + version = + version + + "+date=" + + (mkDate (self.lastModifiedDate or "19700101")) + + "_" + + (self.shortRev or "dirty"); + }; + hyprpicker-debug = final.hyprpicker.override { debug = true; }; + }; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/src/hyprpicker.cpp new/hyprpicker-0.4.7/src/hyprpicker.cpp --- old/hyprpicker-0.4.6/src/hyprpicker.cpp 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/src/hyprpicker.cpp 2026-05-05 01:34:34.000000000 +0200 @@ -1,18 +1,19 @@ #include "hyprpicker.hpp" #include "src/debug/Log.hpp" #include "src/notify/Notify.hpp" +#include <cmath> #include <csignal> #include <cstddef> #include <cstdio> #include <format> +#include <mutex> #include <hyprutils/math/Vector2D.hpp> #include <wayland-client-protocol.h> #include <xkbcommon/xkbcommon-keysyms.h> #include <xkbcommon/xkbcommon.h> static void sigHandler(int sig) { - g_pHyprpicker->m_vLayerSurfaces.clear(); - exit(0); + g_pHyprpicker->m_bRunning.store(false); } void CHyprpicker::init() { @@ -111,7 +112,7 @@ m_pLastSurface = m_vLayerSurfaces.back().get(); - m->pSCFrame = makeShared<CCZwlrScreencopyFrameV1>(m_pScreencopyMgr->sendCaptureOutput(false, m->output->resource())); + m->pSCFrame = makeShared<CCZwlrScreencopyFrameV1>(m_pScreencopyMgr->sendCaptureOutput(m_bIncludeCursor, m->output->resource())); m->pLS = m_vLayerSurfaces.back().get(); m->initSCFrame(); } @@ -121,11 +122,7 @@ while (m_bRunning && wl_display_dispatch(m_pWLDisplay) != -1) { //renderSurface(m_pLastSurface); } - - if (m_pWLDisplay) { - wl_display_disconnect(m_pWLDisplay); - m_pWLDisplay = nullptr; - } + finish(1); } void CHyprpicker::finish(int code) { @@ -786,10 +783,19 @@ double delta = wl_fixed_to_double(value); - if (delta < 0) - m_fZoomScale = std::min(m_fZoomScale + 1.0, 100.0); + double velocity = std::pow(M_E, m_fZoomScale * 0.01) - 1.; + + delta *= velocity; + + if (delta > 0) + delta = std::min(delta, 1.); + else + delta = std::max(delta, -1.); + + if (delta > 0) + m_fZoomScale = std::max(m_fZoomScale - delta, 1.); else - m_fZoomScale = std::max(m_fZoomScale - 1.0, 1.0); + m_fZoomScale = std::min(m_fZoomScale - delta, 100.); markDirty(); }); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/src/hyprpicker.hpp new/hyprpicker-0.4.7/src/hyprpicker.hpp --- old/hyprpicker-0.4.6/src/hyprpicker.hpp 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/src/hyprpicker.hpp 2026-05-05 01:34:34.000000000 +0200 @@ -1,5 +1,6 @@ #pragma once +#include <mutex> #include "defines.hpp" #include "helpers/LayerSurface.hpp" #include "helpers/PoolBuffer.hpp" @@ -51,8 +52,9 @@ bool m_bNoFractional = false; bool m_bDisablePreview = false; bool m_bUseLowerCase = false; + bool m_bIncludeCursor = false; - bool m_bRunning = true; + volatile std::atomic<bool> m_bRunning = true; float m_fZoomScale = 10.0; int m_iCircleRadius = 100; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/hyprpicker-0.4.6/src/main.cpp new/hyprpicker-0.4.7/src/main.cpp --- old/hyprpicker-0.4.6/src/main.cpp 2026-02-10 16:09:41.000000000 +0100 +++ new/hyprpicker-0.4.7/src/main.cpp 2026-05-05 01:34:34.000000000 +0200 @@ -1,6 +1,7 @@ #include <cstdint> #include <format> #include <regex> +#include <charconv> #include <strings.h> #include <iostream> @@ -22,6 +23,7 @@ << " -v | --verbose | Enable more logs\n" << " -t | --no-fractional | Disable fractional scaling support\n" << " -d | --disable-preview | Disable live preview of color\n" + << " -c | --cursor | Include cursor in the frozen preview\n" << " -l | --lowercase-hex | Outputs the hexcode in lowercase\n" << " -s | --scale=scale | Set the zoom scale (between 1 and 10)\n" << " -u | --radius=radius | Set the circle radius (between 1 and 1000)\n" @@ -45,13 +47,14 @@ {"quiet", no_argument, nullptr, 'q'}, {"verbose", no_argument, nullptr, 'v'}, {"disable-preview", no_argument, nullptr, 'd'}, + {"cursor", no_argument, nullptr, 'c'}, {"lowercase-hex", no_argument, nullptr, 'l'}, {"version", no_argument, nullptr, 'V'}, {"scale", required_argument, nullptr, 's'}, {"radius", required_argument, nullptr, 'u'}, {nullptr, 0, nullptr, 0}}; - int c = getopt_long(argc, argv, ":f:o:hnbarzqvtdlVs:u:", long_options, &option_index); + int c = getopt_long(argc, argv, ":f:o:hnbarzqvtdlcVs:u:", long_options, &option_index); if (c == -1) break; @@ -83,6 +86,7 @@ case 'q': Debug::quiet = true; break; case 'v': Debug::verbose = true; break; case 'd': g_pHyprpicker->m_bDisablePreview = true; break; + case 'c': g_pHyprpicker->m_bIncludeCursor = true; break; case 'l': g_pHyprpicker->m_bUseLowerCase = true; break; case 'V': { std::cout << "hyprpicker v" << HYPRPICKER_VERSION << "\n"; ++++++ hyprpicker.obsinfo ++++++ --- /var/tmp/diff_new_pack.YEgauv/_old 2026-07-23 23:15:44.487656298 +0200 +++ /var/tmp/diff_new_pack.YEgauv/_new 2026-07-23 23:15:44.491656439 +0200 @@ -1,5 +1,5 @@ name: hyprpicker -version: 0.4.6 -mtime: 1770736181 -commit: 345eab2d704ee47a6c277cbfb2aeabaa620d9dbc +version: 0.4.7 +mtime: 1777937674 +commit: 8c163ce9b8a40f85babe4dd6e23a238787351164
