1(define-module (nmeum packages misc)2 #:use-module (nmeum packages)3 #:use-module (guix)4 #:use-module (guix build-system cargo)5 #:use-module (guix build-system copy)6 #:use-module (guix build-system gnu)7 #:use-module (guix build-system go)8 #:use-module (guix git-download)9 #:use-module ((guix licenses) #:prefix license:)10 #:use-module (gnu packages base)11 #:use-module (gnu packages bash)12 #:use-module (gnu packages gnupg)13 #:use-module (gnu packages golang-xyz)14 #:use-module (gnu packages mail)15 #:use-module (gnu packages perl)16 #:use-module (gnu packages pkg-config)17 #:use-module (gnu packages shells)18 #:use-module (gnu packages sqlite)19 #:use-module (gnu packages version-control)20 #:use-module (srfi srfi-26))2122;; TODO: This cannot be properly used with Guix right now because23;; gnu/system/keyboard.scm unconditionally generates the keyboard24;; console-keymap from xkeyboard-config.25(define-public neo-layout26 (let ((commit "97cfdd486dcd278833b80dc396e00a1c3503e6d6")27 (revision "1"))28 (package29 (name "neo-layout")30 (version (git-version "20220410" revision commit))31 (source32 (origin33 (method git-fetch)34 (uri (git-reference35 (url "https://git.neo-layout.org/neo/neo-layout.git")36 (commit commit)))37 (file-name (git-file-name name version))38 (sha25639 (base32 "0xg3n808rphn9jlpvgc4y1pz8kdjv916xshg64lkp4hakip1p45j"))))40 (build-system copy-build-system)41 (arguments42 `(#:install-plan43 '(("linux/console/neo.map" "usr/share/keymaps/legacy/i386/qwertz/neo.map"))))44 (home-page "https://neo-layout.org")45 (synopsis "Keyboard layout optimized for the German language")46 (description "This provides the original handwritten version of the47neo-layout for kbd's @code{loadkeys(1)}. Contrary to the version generated48from xkeyboard-config, layer 4 actually works.")49 (license license:gpl3))))5051(define-public mblaze-ui52 (package53 (name "mblaze-ui")54 (version "0.0.0-20250423085554-54f778f3d6a8")55 (source56 (origin57 (method git-fetch)58 (uri (git-reference59 (url "https://git.8pit.net/mblaze-ui.git")60 (commit (go-version->git-ref version))))61 (file-name (git-file-name name version))62 (sha25663 (base32 "104fjj7da2cp2f6g8h4y6ycs68ml8smiq11clx3dc07y191mnzf1"))))64 (build-system go-build-system)65 (arguments66 (list67 #:install-source? #f68 #:import-path "github.com/nmeum/mblaze-ui"))69 (native-inputs (list mblaze70 go-github-com-mattn-go-runewidth71 go-github-com-gdamore-tcell-v2))72 (home-page "https://github.com/nmeum/mblaze-ui")73 (synopsis "mblaze-ui")74 (description "")75 (license license:gpl3+)))7677(define-public git-shuffle78 (let ((commit "06ac27513a275c979aa57cd8c932b90c8cb689eb")79 (revision "1"))80 (package81 (name "git-shuffle")82 (version (git-version "20251025" revision commit))83 (source84 (origin85 (method git-fetch)86 (uri (git-reference87 (url "https://git.8pit.net/git-shuffle.git")88 (commit commit)))89 (file-name (git-file-name name version))90 (sha25691 (base32 "1say9ap60l04i3lj4gbf0dn6zbf457cf5fdvlwdh4y7rfi8hq3m0"))))92 (build-system gnu-build-system)93 (arguments94 (list95 #:tests? #f96 #:make-flags97 #~(list "CFLAGS=-O2"98 "PREFIX=/"99 (string-append "DESTDIR=" #$output)100 (string-append "CC=" #$(cc-for-target)))101 #:phases102 #~(modify-phases %standard-phases103 (delete 'configure))))104 (inputs (list pkg-config))105 (native-inputs (list libgit2))106 (home-page "https://git.8pit.net/git-shuffle")107 (synopsis "Randomize timestamps associated with Git commits to enhance privacy")108 (description "")109 (license license:gpl3))))110111;; TODO: Use package-with-extra-patches somehow, however, we need to change112;; the package name somehow as loksh would otherwise be ambiguous and not113;; sure how do that on a package returned by package-with-extra-patches.114(define-public loksh-8pit115 (package116 (inherit loksh)117 (name "loksh-8pit")118 (source119 (origin120 (inherit (package-source loksh))121 (patches (nmeum-patches122 "loksh-bracketed-paste-mode.patch"123 "loksh-kshbasename.patch"))))))124125(define-public tpm126 (package127 (name "tpm")128 (version "1.3.3")129 (source130 (origin131 (method git-fetch)132 (uri (git-reference133 (url "https://git.8pit.net/tpm.git")134 (commit version)))135 (file-name (git-file-name name version))136 (sha256137 (base32 "109q5ag4cbrxbr2slnb3ii9zkjnim5yxfb3j34yf3r32yd6kmjlg"))))138 (build-system gnu-build-system)139 (arguments140 (list141 #:tests? #f142 #:make-flags143 #~(list "PREFIX=/"144 (string-append "DESTDIR=" #$output))145 #:phases146 #~(modify-phases %standard-phases147 (add-after 'unpack 'fix-paths148 (lambda* (#:key inputs outputs #:allow-other-keys)149 (substitute* "tpm"150 (("gpg2")151 (search-input-file inputs "/bin/gpg")))))152 (delete 'configure))))153 (inputs (list gnupg))154 (native-inputs (list perl))155 (home-page "https://git.8pit.net/tpm")156 (synopsis "Tiny password manager")157 (description158 "Tiny shell script which is heavily inspired and largely159compatible with @code{pass}. Just like pass it uses @code{gnupg} to securely160store your passwords, the major difference between pass and tpm is that the161latter is a lot more minimal.")162 (license license:gpl3)))163164(define-public pimsync165 (package166 (name "pimsync")167 (version "0.5.2")168 (source169 (origin170 (method git-fetch)171 (uri (git-reference172 (url "https://git.sr.ht/~whynothugo/pimsync")173 (commit (string-append "v" version))))174 (file-name (git-file-name name version))175 (sha256176 (base32 "0r8ph1gra5d9wb06c8khcz0rpjak2dcpvkvdm7aj55gdvcnx4v9d"))))177 (build-system cargo-build-system)178 (arguments179 (list #:install-source? #f180 #:phases181 #~(modify-phases %standard-phases182 ;; XXX: Forcefully disable experimental jmap support as it183 ;; introduces a dependency on jmap-tools which does not compile184 ;; with rustc-1.85.1 due to utilization of unstable rustc185 ;; features. Can be removed once we upgrade to rustc-1.86.X.186 (add-after 'unpack 'disable-jmap187 (lambda _188 (substitute* "Cargo.toml"189 ((".*jmap.*") ""))))190 (add-after 'unpack 'setup-environment191 (lambda _192 (setenv "PIMSYNC_VERSION" #$version)))193 (add-after 'install 'install-man-pages194 (lambda _195 (let ((man (string-append #$output "/share/man/man")))196 (install-file "pimsync.1" (string-append man "1"))197 (install-file "pimsync.conf.5" (string-append man "5"))198 (install-file "pimsync-migration.7" (string-append man "7"))))))))199 (inputs (cons* sqlite (cargo-inputs 'pimsync #:module '(nmeum packages rust-crates))))200 (synopsis "Synchronize calendars and contacts using CalDAV, CardDAV and others")201 (description "pimsync synchronizes your calendars and contacts between two202storage locations. The most popular purpose is to synchronize a CalDAV or203CardDAV server with a local folder or file.")204 (home-page "https://pimsync.whynothugo.nl/")205 (license license:eupl1.2)))206207(define-public go-webdav208 (package/inherit go-github-com-emersion-go-webdav209 (name "go-webdav")210 (arguments211 (substitute-keyword-arguments212 (package-arguments go-github-com-emersion-go-webdav)213 ((#:tests? _ #t) #f)214 ((#:install-source? _ #t) #f)215 ((#:import-path _ "github.com/emersion/go-webdav") "github.com/emersion/go-webdav/cmd/webdav-server")216 ((#:unpack-path _ "") "github.com/emersion/go-webdav")))217 (native-inputs (package-propagated-inputs go-github-com-emersion-go-webdav))218 (propagated-inputs '())219 (inputs '())))220221(define-public archive-mail222 (package223 (name "archive-mail")224 (version "v0.0.0-20260103100740-0b0c03251191")225 (source226 (origin227 (method git-fetch)228 (uri (git-reference229 (url "https://git.8pit.net/archive-mail.git")230 (commit (go-version->git-ref version))))231 (file-name (git-file-name name version))232 (sha256233 (base32 "1fdwf2xyy8gkvagq6ivsd0kvfxx9xl3fvd81v54agwmlszxa8jc6"))))234 (build-system go-build-system)235 (arguments236 (list237 #:install-source? #f238 #:import-path "github.com/nmeum/archive-mail"239 #:phases240 #~(modify-phases %standard-phases241 (replace 'check242 (lambda* (#:key tests? import-path #:allow-other-keys)243 (when tests?244 (with-directory-excursion (string-append "src/" import-path "/tests")245 (setenv "ARCHIVE_MAIL" (in-vicinity (getenv "GOBIN") "archive-mail"))246 (invoke "./run_tests.sh"))))))))247 (inputs (list bash-minimal diffutils))248 (home-page "https://git.8pit.net/archive-logs")249 (synopsis "archive-mail")250 (description "")251 (license license:gpl3+)))252253(define-public archive-logs254 (let ((commit "faaf2e85ee419c7b0a3c4dd0f5932834d2fb9d60")255 (revision "0"))256 (package257 (name "archive-logs")258 (version (git-version "20211124" revision commit))259 (source260 (origin261 (method git-fetch)262 (uri (git-reference263 (url "https://git.8pit.net/archive-logs.git")264 (commit commit)))265 (file-name (git-file-name name version))266 (sha256267 (base32 "0d9fxbrajzjnb6cvaw8x363583gvdplw0yfbk7qgzzrsyfdqa52d"))))268 (build-system gnu-build-system)269 (arguments270 (list271 #:test-target "check"272 #:make-flags273 #~(list "CFLAGS=-O2"274 "HAVE_SENDFILE=1"275 "PREFIX=/"276 (string-append "DESTDIR=" #$output)277 (string-append "CC=" #$(cc-for-target)))278 #:phases279 #~(modify-phases %standard-phases280 (delete 'configure))))281 (inputs (list bash-minimal))282 (home-page "https://git.8pit.net/archive-logs")283 (synopsis "Iteratively archive newline separated log files")284 (description "")285 (license license:gpl3))))