diff options
Diffstat (limited to 'gnu/packages/xdisorg.scm')
-rw-r--r-- | gnu/packages/xdisorg.scm | 340 |
1 files changed, 266 insertions, 74 deletions
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 9b45d51637..8364a72955 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -56,6 +56,7 @@ ;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com> ;;; Copyright © 2022 Derek Chuank <derekchuank@outlook.com> ;;; Copyright © 2022 Wamm K. D. <jaft.r@outlook.com> +;;; Copyright © 2022 Tobias Kortkamp <tobias.kortkamp@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -96,6 +97,7 @@ #:use-module (gnu packages build-tools) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages datastructures) #:use-module (gnu packages documentation) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) @@ -111,6 +113,8 @@ #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) + #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages libbsd) #:use-module (gnu packages libevent) #:use-module (gnu packages linux) @@ -208,14 +212,14 @@ command line, without displaying a keyboard at all.") (define-public arandr (package (name "arandr") - (version "0.1.10") + (version "0.1.11") (source (origin (method url-fetch) (uri (string-append "https://christian.amsuess.com/tools/arandr" "/files/arandr-" version ".tar.gz")) (sha256 (base32 - "135q0llvm077jil2fr92ssw3p095m4r8jfj0lc5rr3m71n4srj6v")) + "00mfhaqjxx4m3y0ml44infpbp500prs031vhawwjp0dvk0vbxjz4")) (modules '((guix build utils))) (snippet '(begin @@ -223,8 +227,7 @@ command line, without displaying a keyboard at all.") ;; pages (this is equivalent to 'gzip --no-name'.) (substitute* "setup.py" (("gzip\\.open\\(gzfile, 'w', 9\\)") - "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")) - #t)))) + "gzip.GzipFile('', 'wb', 9, open(gzfile, 'wb'), 0.)")))))) (build-system python-build-system) (arguments `(#:phases @@ -233,22 +236,16 @@ command line, without displaying a keyboard at all.") (lambda* (#:key inputs #:allow-other-keys) (substitute* "screenlayout/xrandr.py" (("\"xrandr\"") (string-append "\"" (assoc-ref inputs "xrandr") - "/bin/xrandr\""))) - #t)) + "/bin/xrandr\""))))) (add-after 'install 'wrap-gi-typelib (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program (string-append out "/bin/arandr") - `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) - #t))) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))))) #:tests? #f)) ;no tests - (inputs `(("gtk+" ,gtk+) - ("pycairo" ,python-pycairo) - ("pygobject" ,python-pygobject) - ("xrandr" ,xrandr))) - (native-inputs `(("gettext" ,gettext-minimal) - ("python-docutils" ,python-docutils))) + (inputs (list gtk+ python-pycairo python-pygobject xrandr)) + (native-inputs (list gettext-minimal python-docutils)) (home-page "https://christian.amsuess.com/tools/arandr/") (synopsis "Another RandR graphical user interface") ;; TRANSLATORS: "X11 resize-and-rotate" should not be translated. @@ -313,7 +310,7 @@ used to further tweak the behaviour of the different profiles.") (define-public bemenu (package (name "bemenu") - (version "0.6.4") + (version "0.6.13") (source (origin (method git-fetch) @@ -322,27 +319,28 @@ used to further tweak the behaviour of the different profiles.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "18vplvnymgc6576sdh84lm5rlwyb9d038plqpjs638hzskf4q577")))) + (base32 "0pjlm3gl85k7yhj594pmvfg6xfr1r3rmb68bb7212r4mxhj80rk0")))) (build-system gnu-build-system) (arguments - `(#:tests? #f - #:make-flags (list ,(string-append "CC=" (cc-for-target)) - "CFLAGS=-O2 -fPIC" - (string-append "LDFLAGS=-Wl,-rpath=" - (assoc-ref %outputs "out") "/lib") - (string-append "PREFIX=" (assoc-ref %outputs "out"))) - #:phases - (modify-phases %standard-phases - (delete 'configure)))) ; no configure script + (list + #:tests? #f + #:make-flags + #~(list (string-append "CC=" #$(cc-for-target)) + "CFLAGS=-O2 -fPIC" + (string-append "LDFLAGS=-Wl,-rpath=" #$output "/lib") + (string-append "PREFIX=" #$output)) + #:phases + #~(modify-phases %standard-phases + (delete 'configure)))) ; no configure script (inputs - `(("cairo" ,cairo) - ("libx11" ,libx11) - ("libxkbcomon" ,libxkbcommon) - ("libxinerama" ,libxinerama) - ("ncurses" ,ncurses) - ("pango" ,pango) - ("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols))) + (list cairo + libx11 + libxkbcommon + libxinerama + ncurses + pango + wayland + wayland-protocols)) (native-inputs (list doxygen pkg-config)) (home-page "https://github.com/Cloudef/bemenu") @@ -357,7 +355,7 @@ with X11 or Wayland, or in a text terminal with ncurses.") (define-public copyq (package (name "copyq") - (version "3.9.3") + (version "6.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -366,13 +364,23 @@ with X11 or Wayland, or in a text terminal with ncurses.") (file-name (git-file-name name version)) (sha256 (base32 - "0wlwq9xg8rzsbj0b29z358k4mbrqy04iraa8x0p26pa95yskgcma")))) + "0qdf7lr6bdmsnz1k5nnzmbv4h0xj8jqg92x6089qdaz5s87x7vqr")))) (build-system cmake-build-system) (arguments - `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") - #:tests? #f)) ; Test suite is a rather manual process. + (list + #:configure-flags #~(list "-DCMAKE_BUILD_TYPE=Release") + #:tests? #f)) ; Test suite is a rather manual process. (inputs - (list qtbase-5 qtscript qtsvg-5 qtx11extras)) + (list qtbase-5 + qtscript + qtsvg-5 + qtx11extras + qtdeclarative-5 + qtwayland-5 + wayland + knotifications)) + (native-inputs + (list extra-cmake-modules qttools-5)) (synopsis "Clipboard manager with advanced features") (description "CopyQ is clipboard manager with editing and scripting features. CopyQ monitors system clipboard and saves its content in customized @@ -503,7 +511,12 @@ avoiding password prompts when X11 forwarding has already been setup.") wayland-protocols xkeyboard-config)) (native-inputs - (list bison doxygen pkg-config python)) + (append (list bison doxygen pkg-config python) + (if (%current-target-system) + ;; wayland-scanner is required at build time. + ;; TODO: Remove this conditional on core-updates. + (list pkg-config-for-build wayland) + '()))) (arguments (list #:configure-flags #~(list (string-append "-Dxkb-config-root=" @@ -1127,19 +1140,19 @@ transparent text on your screen.") (define-public wob (package (name "wob") - (version "0.13") + (version "0.14.2") (source (origin (method url-fetch) (uri (string-append "https://github.com/francma/wob/releases/download/" version "/wob-" version ".tar.gz")) (sha256 - (base32 "0i8y6kq37qcgdq85ll4rapisjl7zw6aa11yx2f2xw2d3j93kdxh8")))) + (base32 "12s9pc0dhqgawq6jiqhamj1zq9753kgpswny1rcsdx1lkpzrgaq1")))) (build-system meson-build-system) (native-inputs (list pkg-config scdoc)) (inputs - (list libseccomp wayland wayland-protocols)) + (list libinih libseccomp wayland wayland-protocols)) (home-page "https://github.com/francma/wob") (synopsis "Lightweight overlay bar for Wayland") (description @@ -1809,7 +1822,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (define-public rofi (package (name "rofi") - (version "1.7.3") + (version "1.7.5") (source (origin (method url-fetch) (uri (string-append "https://github.com/davatorium/rofi/" @@ -1817,7 +1830,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") version "/rofi-" version ".tar.xz")) (sha256 (base32 - "0yxn9pmn9zp0k5ygnjqbj1pmp73g53wa47r145a8qcwqzxl8p1i5")))) + "138c4bl60p7namsb2pk8q5cdlxbdkli7zny192vk5jv5s5kczzya")))) (build-system gnu-build-system) (native-inputs (list bison @@ -1852,7 +1865,7 @@ connectivity of the X server running on a particular @code{DISPLAY}.") (substitute* '("test/helper-expand.c") (("~root") "/root") (("~") "") - (("g_get_home_dir \\(\\)") "\"/\""))))))) + (("g_get_home_dir\\(\\)") "\"/\""))))))) (home-page "https://github.com/davatorium/rofi") (synopsis "Application launcher") (description "Rofi is a minimalist application launcher. It memorizes which @@ -1860,6 +1873,30 @@ applications you regularly use and also allows you to search for an application by name.") (license license:expat))) +(define-public rofi-wayland + (let ((base rofi)) + (package + (inherit rofi) + (name "rofi-wayland") + (version "1.7.5+wayland1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/lbonn/rofi" + "/releases/download/" version + "/rofi-" version ".tar.xz")) + (sha256 + (base32 + "09n71wv3nxpzpjmvqmxlxk0zfln3x2l8admfq571781p9hw0w6wp")))) + (build-system meson-build-system) + (inputs + (modify-inputs (package-inputs base) + (append wayland wayland-protocols))) + (description + (string-append + (package-description base) + " This package, @code{rofi-wayland}, provides additional wayland +support."))))) + (define-public rofi-calc (package (name "rofi-calc") @@ -1914,6 +1951,7 @@ natural language input and provide results.") (uri (git-reference (url (string-append "https://gitlab.com/o9000/" name "/")) (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 "123apmgs6x2zfv1q57dyl4mwqf0vsw5ndh5jsg6p3fvhr66l1aja")))) @@ -2434,10 +2472,52 @@ binary to setuid-binaries: @end example") (license license:asl2.0))) +(define-public wl-color-picker + (package + (name "wl-color-picker") + (version "1.3") + (home-page "https://github.com/jgmdev/wl-color-picker") + (source (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0h5b8qfwri7a1invk8dran3436ac37x6r8fic3l5cxqj5rgnky4n")))) + (build-system copy-build-system) + (arguments + `(#:install-plan '(("wl-color-picker.sh" "bin/wl-color-picker") + ("wl-color-picker.png" "share/pixmaps/") + ("wl-color-picker.svg" + "share/icons/hicolor/scalable/apps/") + ("wl-color-picker.desktop" "share/applications/")) + #:phases (modify-phases %standard-phases + (add-after 'install 'wrap-script + (lambda* (#:key outputs #:allow-other-keys) + (wrap-program (string-append (assoc-ref outputs "out") + "/bin/wl-color-picker") + `("PATH" = + (,(getenv "PATH"))))))))) + (inputs (list coreutils-minimal + bash-minimal + grim + hicolor-icon-theme + imagemagick + slurp + wl-clipboard + zenity)) + (synopsis "Wayland color picker") + (description + "@command{wl-color-picker} is a script that provides color picker for +Wayland and @code{wlroots} by leveraging @command{grim} and @command{slurp}.") + (license license:expat))) + (define-public wl-clipboard (package (name "wl-clipboard") - (version "2.0.0") + (version "2.1.0") (source (origin (method git-fetch) @@ -2446,20 +2526,25 @@ binary to setuid-binaries: (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d")))) + (base32 "1g6hcsn4klapvz3bw0k8syixwyyi4cl1c7vbc6f1a2hjpcf4pawn")))) (build-system meson-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'patch-file-names - (lambda* (#:key inputs #:allow-other-keys) - (substitute* (find-files "src" "\\.c$") - (("\"(cat|rm)\"" _ command) - (string-append "\"" (assoc-ref inputs "coreutils") - "/bin/" command "\"")) - (("\"xdg-mime\"") - (string-append "\"" (assoc-ref inputs "xdg-utils") - "/bin/xdg-mime\"")))))))) + (list #:configure-flags + #~(list (string-append "-Dzshcompletiondir=" #$output + "/share/zsh/site-functions") + (string-append "-Dfishcompletiondir=" #$output + "/share/fish/completions")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-file-names + (lambda* (#:key inputs #:allow-other-keys) + (substitute* (find-files "src" "\\.c$") + (("\"(cat|rm)\"" _ command) + (string-append "\"" (assoc-ref inputs "coreutils") + "/bin/" command "\"")) + (("\"xdg-mime\"") + (string-append "\"" (assoc-ref inputs "xdg-utils") + "/bin/xdg-mime\"")))))))) (native-inputs (list pkg-config)) (inputs @@ -2540,7 +2625,7 @@ The cutbuffer and clipboard selection are always synchronized.") (define-public jgmenu (package (name "jgmenu") - (version "4.4.0") + (version "4.4.1") (source (origin (method git-fetch) @@ -2549,7 +2634,7 @@ The cutbuffer and clipboard selection are always synchronized.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "08dyygclayyipa0p2qsxqa3fsfyflkrkhpi25dkc3ybkicvynk24")))) + (base32 "1a9irlrpa3mi3101cn9hi1ch5k1v4p0h83ni5j63qmlc5g7pcbsh")))) (build-system gnu-build-system) (native-inputs (list cppcheck perl pkg-config)) @@ -2569,8 +2654,7 @@ The cutbuffer and clipboard selection are always synchronized.") (lambda* (#:key outputs #:allow-other-keys) (setenv "CC" ,(cc-for-target)) (invoke "./configure" - (string-append "--prefix=" (assoc-ref outputs "out"))) - #t))))) + (string-append "--prefix=" (assoc-ref outputs "out")))))))) (synopsis "Simple X11 menu") (description "This is a simple menu for X11 designed for scripting and tweaking. It @@ -2914,10 +2998,46 @@ using @command{dmenu}.") (home-page "https://github.com/enkore/j4-dmenu-desktop") (license license:gpl3+))) +(define-public fuzzel + (package + (name "fuzzel") + (version "1.8.2") + (home-page "https://codeberg.org/dnkl/fuzzel") + (source (origin + (method git-fetch) + (uri (git-reference (url home-page) (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1d6xy4q5s8p5ckvd9wy3zzj9gh7nh9v1qhn3938b1wfhfzjdzrg6")))) + (build-system meson-build-system) + (arguments + (list #:build-type "release" + #:configure-flags #~(list "-Denable-cairo=enabled" + "-Dpng-backend=libpng" + "-Dsvg-backend=librsvg"))) + (native-inputs (list pkg-config scdoc tllist)) + (inputs (list cairo + fcft + fontconfig + libpng + libxkbcommon + librsvg ;if librsvg is not used, bundled nanosvg is used + pixman + wayland + wayland-protocols)) + (synopsis "Wayland-native application launcher") + (description + "@command{fuzzel} is a Wayland-native application launcher, similar to +rofi's drun mode. It has Emacs key bindings and remembers frequently launched +applications. The font and colors can be configured.") + (license (list license:expat ;fuzzel + license:zlib)))) ;; bundled nanosvg + (define-public wofi (package (name "wofi") - (version "1.2.4") + (version "1.3") (source (origin (method hg-fetch) (uri (hg-reference @@ -2926,15 +3046,14 @@ using @command{dmenu}.") (file-name (git-file-name name version)) (sha256 (base32 - "1bnf078fg1kwslzwm1mjxwcqqq3bhk1dzymwfw9gk3brqbxrl75c")))) + "1k6b46n0vwdqrr6rfps0n8hghcgivnc42gc7z61phhjgf08j64qv")))) (build-system meson-build-system) (arguments - `(#:glib-or-gtk? #t)) + (list #:glib-or-gtk? #t)) (native-inputs (list pkg-config)) (inputs - `(("gtk3" ,gtk+) - ("wayland" ,wayland))) + (list gtk+ wayland)) (synopsis "Launcher/menu program for wayland") (description "Wofi is a launcher/menu program for wlroots based wayland compositors @@ -3087,14 +3206,16 @@ if there's more than one.") (define-public xkbset (package (name "xkbset") - (version "0.6") + (version "0.8") (source (origin - (method url-fetch) - (uri (string-append "https://faculty.missouri.edu/~stephen/software/" - name "/" name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/stephenmontgomerysmith/xkbset") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "199mlm127zk1lr8nrq22n68l2l8cjwc4cgwd67rg1i6497n2y0xc")))) + (base32 "1xa6sgvnwynl2qrjnsppvb2vg4p5v1pisrfhrmnlymw1fzhh6s9p")))) (build-system gnu-build-system) (inputs (list libx11 perl perl-tk)) @@ -3127,7 +3248,7 @@ if there's more than one.") (string-append (assoc-ref outputs "out") "/share/doc/" ,name "-" ,version)) #t))))) - (home-page "https://faculty.missouri.edu/~stephen/software/") + (home-page "https://stephenmontgomerysmith.github.io/software/#xkbset") (synopsis "User-preference utility for XKB extensions for X") (description "This is a program to help manage many of the XKB features of the X Window @@ -3158,8 +3279,79 @@ MouseKeys-acceleration management.") (synopsis "Day/night gamma adjustments for Wayland compositors") (home-page "https://sr.ht/~kennylevinsen/wlsunset/") (description - "wlunset adjusts gamma based on day-night cycles on Wayland compositors + "Wlsunset adjusts gamma based on day-night cycles on Wayland compositors that support @samp{wlr-gamma-control-unstable-v1}. It is also known as a blue light filter or night light.") (license license:expat))) +(define-public ydotool + (package + (name "ydotool") + (version "1.0.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ReimuNotMoe/ydotool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1h19dh7kai0iikssr7sq0wfkh0sb18dylyfg7c3dkwc158cdg9cr")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no tests + (native-inputs (list scdoc)) + (home-page "https://github.com/ReimuNotMoe/ydotool") + (synopsis "Generic Linux command-line automation tool (no X!)") + (description "@code{ydotool} is a Linux command-line tool that simulates +keyboard input, mouse actions, etc. programmatically or manually.") + (license license:agpl3+))) + +(define-public wvkbd + (package + (name "wvkbd") + (version "0.12") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.sr.ht/~proycon/wvkbd") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "05zl6jhw7pj7w2cd02m3i0zzn1z99kzwh2mlg9h96j5aw1x1lvp6")))) + (build-system gnu-build-system) + (arguments + (list #:tests? #f ;no tests + #:make-flags #~(list (string-append "CC=" + #$(cc-for-target)) + (string-append "PREFIX=" + #$output)) + #:phases #~(modify-phases %standard-phases + (add-after 'unpack 'fix-cross-compile + (lambda _ + (substitute* "Makefile" + (("pkg-config") + #$(pkg-config-for-target))))) + (delete 'configure)))) + (native-inputs (list wayland ;for wayland-scanner + pkg-config)) + (inputs (list libxkbcommon cairo pango harfbuzz wayland)) + (home-page "https://git.sr.ht/~proycon/wvkbd") + (synopsis "On-screen keyboard for wlroots compositors") + (description + "This package provides on-screen keyboard for wlroots compositors with +the following features: + +@itemize +@item Typing, modifier locking, layout switching +@item Positive visual feedback on key presses +@item On-the-fly layout and keymap switching +@item Custom color schemes +@item International layouts (cyrillic, arabic) +@item Emoji support +@item Compose key for character variants (e.g. diacritics) +@item Show/hide keyboard on signals (SIGUSR1 = hide, SIGUSR2 = show, SIGRTMIN = toggle) +@item Automatic portrait/landscape detection and subsequent layout switching +@end itemize") + (license (list license:expat ;3 files under Expat license (see 'LICENSE') + license:gpl3+)))) ;the rest is GPLv3+ |