diff options
Diffstat (limited to 'px/packages/desktop-tools.scm')
-rw-r--r-- | px/packages/desktop-tools.scm | 426 |
1 files changed, 426 insertions, 0 deletions
diff --git a/px/packages/desktop-tools.scm b/px/packages/desktop-tools.scm new file mode 100644 index 0000000..e534c0f --- /dev/null +++ b/px/packages/desktop-tools.scm @@ -0,0 +1,426 @@ +;;; PantherX Desktop Packages and Tools +;;; Author: Reza Alizadeh Majd (r.majd@pantherx.org) +;;; +;;; Note: This module is exported from (px packages desktop) to prevent +;;; circular import problem. +;;; + +(define-module (px packages desktop-tools) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix build-system cmake) + #:use-module (guix build-system qt) + #:use-module (guix build-system copy) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix utils) + #:use-module (gnu packages boost) + #:use-module (gnu packages bash) + #:use-module (gnu packages check) + #:use-module (gnu packages cups) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gnome) + #:use-module (gnu packages gnuzilla) + #:use-module (gnu packages lxqt) + #:use-module (gnu packages mate) + #:use-module (gnu packages maths) + #:use-module (gnu packages pdf) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) + #:use-module (gnu packages qt) + #:use-module (gnu packages search) + #:use-module (gnu packages video) + #:use-module (gnu packages xfce) + #:use-module (gnu packages xorg) + #:use-module (gnu packages kde-frameworks) + #:use-module (px packages images) + #:use-module (srfi srfi-1)) + + +(define-public px-recoll + (package + (inherit recoll) + (name "px-recoll") + (arguments + '(#:tests? #f + #:configure-flags '("--disable-webkit" ; no qtwebkit yet + "--with-inotify" + "--enable-recollq" + "QMAKEPATH=") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-icon + (lambda _ + ;;Update icon + (substitute* '("desktop/recoll-searchgui.desktop") + (("Icon=recoll") + "Icon=preferences-desktop-search")) + (substitute* '("qtgui/main.cpp") + (("app.setWindowIcon\\(icon\\)") + "app.setWindowIcon(QIcon::fromTheme(\"preferences-desktop-search\"))")) + (substitute* '("qtgui/rclmain_w.cpp") + (("QIcon\\(QString\\(\":/images/recoll.png\"\\)\\)") + "QIcon::fromTheme(\"preferences-desktop-search\")")) + ;;Enable show tray icon + (substitute* '("qtgui/guiutils.cpp") + (("showTrayIcon\", Bool, false") "showTrayIcon\", Bool, true")) + ;;Enable show close to tray + (substitute* '("qtgui/guiutils.cpp") + (("closeToTray\", Bool, false") "closeToTray\", Bool, true")) + ;;Enable desktop notification + (substitute* '("qtgui/guiutils.cpp"); + (("trayMessages\", Bool, false") "trayMessages\", Bool, true")) + ;;Rename Recoll to Advanced Search + (substitute* '("desktop/recoll-searchgui.desktop"); + (("Name=Recoll") "Name=Advanced Search")) + ;;Update category to Settings + (substitute* '("desktop/recoll-searchgui.desktop"); + (("Categories=Qt;Utility;Filesystem;Database;") "Categories=Settings;")) + #t))))))) + +(define-public albert-launcher + (package + (name "albert-launcher") + (version "v0.16.1-0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/albertlauncher/albert") + (commit "579d063b8e90fd854fd4738480c2d8dc833f908e") + (recursive? #t))) + (sha256 + (base32 "1cqh4nsvxwarxm7v0fyzabph3c2ff3ap0q2xi2h4c0s2snrk4qh4")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (arguments + '(#:tests? #f + #:configure-flags '("-DBUILD_VIRTUALBOX=OFF" "-DCMAKE_INSTALL_LIBDIR=libs") + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-cmakelists + (lambda _ + ;; path-main-cpp-add-plugin-dirs + (substitute* '("src/app/main.cpp") + (("QStringList dirs = \\{") (string-append "QStringList dirs = {\"" %output "/libs\", " ))) + ;; Adding X11Extras to target_link_libraries of widgetboxmodel plugin + (substitute* '("plugins/widgetboxmodel/CMakeLists.txt") + (("COMPONENTS Widgets") "COMPONENTS Widgets X11Extras")) + (substitute* '("plugins/widgetboxmodel/CMakeLists.txt") + (("Qt5::Widgets") "Qt5::Widgets Qt5::X11Extras X11")) + ;; Adding X11Extras to target_link_libraries of qmlboxmodel plugin + (substitute* '("plugins/qmlboxmodel/CMakeLists.txt") + (("COMPONENTS Widgets") "COMPONENTS Widgets X11Extras")) + (substitute* '("plugins/qmlboxmodel/CMakeLists.txt") + (("Qt5::Widgets") "Qt5::Widgets Qt5::X11Extras X11")) + #t))))) + (native-inputs `( + ("libx11" ,libx11) + ("muparser" ,muparser) + ("pkg-config" ,pkg-config) + ("python3" ,python) + ("qtbase" ,qtbase-5) + ("qtcharts" ,qtcharts) + ("qtdeclarative" ,qtdeclarative-5) + ("qtsvg" ,qtsvg-5) + ("qtx11extras" ,qtx11extras))) + (home-page "https://albertlauncher.github.io/") + (synopsis "Albert is a unified and efficient access to your machine.") + (description "Albert is a desktop agnostic launcher. Its goals are usability and beauty, performance and extensibility. It is written in C++ and based on the Qt framework.") + (license license:gpl3+))) + + +(define-public px-file-archiver + (package + (inherit lxqt-archiver) + (name "px-file-archiver") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url (string-append "https://github.com/lxqt/lxqt-archiver.git")) + (commit version))) + (file-name (git-file-name "lxqt-archiver" version)) + (sha256 + (base32 "0qz3j0qby78ngck60rv7kgwygya8cr1v4kn575wrsg3w287v33qb")))) + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-app-name + (lambda _ + (substitute* (find-files "src/translations" "\\.desktop.yaml") + (("LXQt File Archiver") "File Archiver")) + #t))))))) + + +(define-public px-image-viewer + (package + (inherit qimgv) + (name "px-image-viewer") + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-menu-item + (lambda _ + (substitute* '("qimgv/distrib/qimgv.desktop") + (("Name=qimgv") "Name=Pictures")) + #t))))))) + +(define-public px-terminal + (package + (inherit qterminal) + (name "px-terminal") + (arguments + '(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-menu-item + (lambda _ + (substitute* (find-files "src/translations" "\\.desktop.yaml") + (("QTerminal") "Terminal")) + (substitute* (find-files "src/translations" "\\.desktop.yaml") + (("Qterminal") "Terminal")) + (substitute* '("CMakeLists.txt") + (("qterminal-drop.desktop.in") "")) + #t))))))) + +(define-public qlipper + (package + (name "qlipper") + (version "5.1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/pvanek/qlipper/archive/" version ".tar.gz")) + (sha256 + (base32 + "0vbhiyn56qwlssavim02kp0y5rxj6gdffchyigkhpg8qza64afch")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list qtbase-5 qttools-5)) + (home-page "https://github.com/pvanek/qlipper") + (synopsis "Lightweight and cross-platform clipboard history applet.") + (description "Lightweight and cross-platform clipboard history applet.") + (license license:gpl2+))) + + +(define-public px-network-manager-applet + (package + (inherit network-manager-applet) + (name "px-network-manager-applet") + (arguments + (substitute-keyword-arguments (package-arguments network-manager-applet) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'unpack 'patch-menu-item + (lambda _ + (substitute* '("nm-connection-editor.desktop.in") + (("Name=Advanced Network Configuration") "Name=Network")) + #t)))))))) + +(define-public cpputilities + (package + (name "cpputilities") + (version "5.22.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Martchus/cpp-utilities/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "18mbzw8w0a4l5r0w1fr200m4v8ww65r838618z19v1ymz6aahs7a")))) + (build-system cmake-build-system) + (inputs + `(("gcc" ,gcc-11))) + (arguments + `(#:tests? #f + #:configure-flags '("-DCMAKE_VERBOSE_MAKEFILE=ON" "-DBUILD_VIRTUALBOX=OFF" "-DCMAKE_INSTALL_LIBDIR=libs") + )) + (home-page "https://github.com/Martchus/cpp-utilities/") + (synopsis "Useful C++ classes and routines") + (description "Useful C++ classes and routines such as +argument parser, IO and conversion utilities.") + (license license:gpl2+))) + +(define-public qtutilities + (package + (name "qtutilities") + (version "6.12.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Martchus/qtutilities/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0b58i66hhfg18d9bzbkzx8m34x070af5k3dankz5q69dr1lbrf6k")))) + (build-system cmake-build-system) + (native-inputs + (list cpputilities qtbase-5 qttools-5)) + (arguments + `(#:tests? #f + )) + (home-page "https://github.com/Martchus/qtutilities") + (synopsis "Common Qt related C++ classes and routines") + (description "Common Qt related C++ classes and routines") + (license license:gpl2+))) + +(define-public fork-awesome + (package + (name "fork-awesome") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/ForkAwesome/Fork-Awesome/archive/refs/tags/" version ".tar.gz")) + (sha256 + (base32 + "1cxxbyklk139cj7hw9jiq51cmmqgn74z8ysl9i0y017jj7qsbyr3")))) + (build-system copy-build-system) + (arguments + '(#:install-plan + '(("fonts" "share/") + ("src" "share/")))) + (home-page "https://github.com/ForkAwesome/Fork-Awesome") + (synopsis "A fork of the iconic font and CSS toolkit ") + (description "Fork Awesome is a suite of 796 pictographic and +brand icons for easy, scalable vector graphics on websites and beyond.") + (license license:expat))) + +(define-public qtforkawesome + (package + (name "qtforkawesome") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Martchus/qtforkawesome/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0pj4w93vrsmgqlgihwz6s2jdazmfsdw3lxns7wk9908l4ilcqw9d")))) + (build-system cmake-build-system) + (native-inputs + (list gcc-11 qtutilities cpputilities qtbase-5 qtquickcontrols-5 qtquickcontrols2-5 qtdeclarative-5 perl perl-yaml fork-awesome)) + (arguments + `(#:tests? #f + #:configure-flags + ,#~(list (string-append "-DFORK_AWESOME_FONT_FILE=" + #$(this-package-native-input "fork-awesome") "/share/fonts/forkawesome-webfont.woff2") + (string-append "-DFORK_AWESOME_ICON_DEFINITIONS=" + #$(this-package-native-input "fork-awesome") "/share/src/icons/icons.yml")))) + (home-page "https://github.com/Martchus/qtforkawesome/") + (synopsis "Useful C++ classes and routines such as argument parser, IO and conversion utilities.") + (description "Useful C++ classes and routines such as argument parser, IO and conversion utilities.") + (license license:gpl2+))) + +(define-public qxkb + (package + (name "qxkb") + (version "0.5.2") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/thegala/qxkb/archive/refs/tags/" name "-" version ".tar.gz")) + (sha256 + (base32 + "1nprswfdnqmy6xs6pdkzy6c3xkzh79zifdvy4vpw4l41gnqrl94s")))) + (build-system qt-build-system) + (inputs + (list libxkbfile + qtbase-5 + qtsvg-5 + qtx11extras)) + (native-inputs + (list qttools-5)) + (arguments (list #:tests? #f)) ; no upstream tests + (home-page "https://github.com/thegala/qxkb") + (synopsis "Keyboard layout switcher") + (description "Keyboard layout switcher") + (license license:gpl2+))) + +(define-public syncthingtray + (package + (name "syncthingtray") + (version "1.4.1") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/Martchus/syncthingtray/archive/refs/tags/v" version ".tar.gz")) + (sha256 + (base32 + "0cyimd018bknvip6jxz83w0va05kgfcix53jryqdka665p4048ba")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda _ + (invoke "make" "-j" "1") + #t)) + (add-after 'install 'wrap + ;; The program fails to find the QtWebEngineProcess program, + ;; so we set QTWEBENGINEPROCESS_PATH to help it. + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + (qtwebengineprocess (string-append + (assoc-ref inputs "qtwebengine") + "/lib/qt5/libexec/QtWebEngineProcess"))) + (for-each (lambda (program) + (wrap-program program + `("QTWEBENGINEPROCESS_PATH" = + (,qtwebengineprocess)))) + (find-files bin ".*"))) + #t))))) + (native-inputs + (list extra-cmake-modules qttools-5 gcc-11)) + (inputs `( + ("qtbase" ,qtbase-5) + ("qtquickcontrols2" ,qtquickcontrols2-5) + ("qtutilities" ,qtutilities) + ("boost", boost) + ("gcc" ,gcc-11) + ("qtdeclarative" ,qtdeclarative-5) + ("qtsvg" ,qtsvg-5) + ("qtwebchannel-5" ,qtwebchannel-5) + ("qtwebengine" ,qtwebengine-5) + ("plasma-framework" ,plasma-framework) + ("kwindowsystem" ,kwindowsystem) + ("kio" ,kio) + ("cppunit" ,cppunit) + ("cpputilities" ,cpputilities) + ("qtforkawesome" ,qtforkawesome) + ("bash-minimal" ,bash-minimal))) + (home-page "https://github.com/Martchus/syncthingtray") + (synopsis "Qt-based tray application") + (description "Qt-based tray application") + (license license:gpl2+))) + +(define-public px-about + (package + (inherit lxqt-about) + (name "px-about") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://source.pantherx.org/" name"_" version ".tgz")) + (sha256 + (base32 + "12cnydcw8rhbwh21j8ayj2x47nvr5zicnqfp6r13dapy1nss5rd4")))))) + |