1(define-module (nmeum packages desktop)2 #:use-module (guix)3 #:use-module (guix gexp)4 #:use-module (guix git-download)5 #:use-module (guix build-system gnu)6 #:use-module (guix build-system trivial)7 #:use-module (guix build-system zig)8 #:use-module ((guix licenses) #:prefix license:)9 #:use-module (gnu packages)10 #:use-module (gnu packages audio)11 #:use-module (gnu packages bash)12 #:use-module (gnu packages fonts)13 #:use-module (gnu packages gawk)14 #:use-module (gnu packages zig)15 #:use-module (gnu packages zig-xyz)16 #:use-module (gnu packages freedesktop)17 #:use-module (gnu packages linux)18 #:use-module (gnu packages pkg-config)19 #:use-module (gnu packages fontutils)20 #:use-module (gnu packages textutils)21 #:use-module (gnu packages xdisorg))2223(define-public bemenu-emoji24 (package25 (name "bemenu-emoji")26 (version "16.0")27 (source #f)28 (build-system trivial-build-system)29 (arguments30 `(#:modules ((guix build utils))31 #:builder32 ,#~(begin33 (use-modules (guix build utils))34 (let* ((bindir (string-append #$output "/bin"))35 (script (string-append bindir "/bemenu-emoji")))36 (mkdir-p bindir)37 (with-output-to-file script38 (lambda _39 (format #t40 "#!~a4142emoji=$(~a -F '# ' '/fully-qualified/ { print $2 }' ~s | \\43 ~a -F 'E[0-9][0-9]*.[0-9][0-9]* ' '/E[0-9][0-9]*\\.[0-9][0-9]*/ { print $1 $2 }' | \\44 ~a -p emoji -l 15 \"$@\" | cut -d ' ' -f1)4546[ -n \"${emoji}\" ] || exit47exec ~a \"${emoji}\""48 (search-input-file %build-inputs "/bin/sh")49 (search-input-file %build-inputs (string-append "/bin/awk"))50 (assoc-ref %build-inputs "unicode")51 (search-input-file %build-inputs (string-append "/bin/awk"))52 (search-input-file %build-inputs (string-append "/bin/bemenu"))53 (search-input-file %build-inputs (string-append "/bin/wtype")))))54 (chmod script #o755)))))55 (inputs56 `(("bash-minimal" ,bash-minimal)57 ("bemenu" ,bemenu)58 ("gawk" ,gawk)59 ("wtype" ,wtype)60 ("unicode"61 ,(origin62 (method url-fetch)63 (uri (format #f "https://www.unicode.org/Public/emoji/~a/emoji-test.txt" version))64 (sha25665 (base3266 "15wn2f2yvk66576xs7lij8ip0gkawkqfhlv997i45wbcx0scbw14"))))))67 (synopsis "Provides a cc(1) symlink to gcc(1)")68 (description "")69 (home-page "https://github.com/nmeum/aports/blob/master/8pit/bemenu-emoji")70 (license license:public-domain)))7172(define-public creek73 (package74 (name "creek")75 (version "0.4.2")76 (source77 (origin78 (method git-fetch)79 (uri (git-reference80 (url "https://github.com/nmeum/creek")81 (commit (string-append "v" version))82 (recursive? #t)))83 (file-name (git-file-name name version))84 (sha25685 (base32 "0b1gpxgi207cqrls6qp0pd6749g60yfcrjii8nagm00c678bs3nx"))))86 (build-system zig-build-system)87 (arguments88 (list89 #:zig-release-type "safe"90 #:tests? #f))91 (native-inputs (list fcft92 pixman93 pkg-config94 zig-wayland95 zig-fcft96 zig-pixman))97 (home-page "https://github.com/nmeum/leeve")98 (synopsis99 "A minimalistic and malleable status bar for the River compositor.")100 (description "A fork of the creek status bar which intended to be101more mallable then the original version. For example,102supporting custom status bar information via stdin.")103 (license license:expat)))104105(define-public dam106 (let ((commit "e6eb713fb3239aad3c534502d8c0e42e4e514c8f")107 (revision "1"))108 (package109 (name "dam")110 (version (git-version "0" revision commit))111 (source112 (origin113 (method git-fetch)114 (uri (git-reference115 (url "https://codeberg.org/sewn/dam")116 (commit commit)))117 (file-name (git-file-name name version))118 (sha256119 (base32 "0ybhyvv3n1xdy5hb1xw7l2rzy73n5vhh8r60gfbf61crhggnzh8k"))))120 (build-system gnu-build-system)121 (arguments122 (list123 #:tests? #f124 #:make-flags #~(list (string-append "PREFIX=" #$output))125 #:phases #~(modify-phases %standard-phases126 (add-before 'configure 'set-cc-command127 (lambda _128 (setenv "CC" #$(cc-for-target))))129 (delete 'configure))))130 (inputs (list fcft pixman wayland wayland-protocols))131 (native-inputs (list pkg-config))132 (home-page "https://codeberg.org/sewn/dam")133 (synopsis "A itsy-bitsy dwm-esque bar for the river compositor")134 (description "")135 (license license:expat))))136137(define-public dumb-runtime-dir138 (package139 (name "dumb-runtime-dir")140 (version "1.0.4")141 (source142 (origin143 (method git-fetch)144 (uri (git-reference145 (url "https://github.com/ifreund/dumb_runtime_dir")146 (commit (string-append "v" version))))147 (file-name (git-file-name name version))148 (sha256149 (base32 "0nrxhvbh3bs4pi4f5h03zw1p1ys19qmmlx263ysly8302wkxk1m4"))))150 (build-system gnu-build-system)151 (arguments152 (list153 #:tests? #f154 #:make-flags #~(list (string-append "CC="155 #$(cc-for-target))156 (string-append "PREFIX=")157 (string-append "DESTDIR="158 #$output))159 #:phases #~(modify-phases %standard-phases160 (delete 'configure))))161 (inputs (list linux-pam))162 (native-inputs (list pkg-config))163 (home-page "https://github.com/ifreund/dumb_runtime_dir")164 (synopsis "Creates an XDG_RUNTIME_DIR via PAM")165 (description166 "Provides a acronym{PAM, Pluggable Authentication Module} for167creating a primitve @code{XDG_RUNTIME_DIR} that is never removed. This168is useful in conjuction with simple seat managers like @code{seatd}169which do not set @code{XDG_RUNTIME_DIR}.")170 (license license:bsd-0)))171172(define-public font-terminus-patched173 (package174 (inherit font-terminus)175 (name "font-terminus-patched")176 (arguments177 (substitute-keyword-arguments (package-arguments font-terminus)178 ((#:phases phases179 '%standard-phases)180 #~(modify-phases #$phases181 (add-after 'unpack 'patch-font182 (lambda _183 (invoke "patch" "-p0" "-i" "alt/td1.diff")184 (invoke "patch" "-p0" "-i" "alt/ll2.diff")))))))))185186(define-public ustatus187 (let ((commit "4032e2010de049472b7af57e85b7e4728fdde5e7")188 (revision "0"))189 (package190 (name "ustatus")191 (version (git-version "20190721" revision commit))192 (source193 (origin194 (method git-fetch)195 (uri (git-reference196 (url "https://github.com/nmeum/ustatus")197 (commit commit)))198 (file-name (git-file-name name version))199 (sha256200 (base32 "0a9pf51c2j68s7limdhw8ccqhyc1lk3q0iddfh1y65m18jh1vmn1"))))201 (build-system gnu-build-system)202 (arguments203 (list204 #:tests? #f205 #:make-flags206 #~(list (string-append "CC="207 #$(cc-for-target)))208 #:phases209 #~(modify-phases %standard-phases210 (replace 'configure211 (lambda _212 (with-output-to-file "config.h"213 (lambda _214 (display215 "static const int delay = 5;216 static const char *statsep = \" | \";217 static const char *timefmt = \"%a %d %b -- %H:%M:%S\";218 static const char *sysbat = \"/sys/class/power_supply/BAT0\";219 static const char *syscur = \"charge_now\";220 static const char *sysfull = \"charge_full_design\";221 static const unsigned int sndcrd = 0;222 static const char* swtchname = \"Master Playback Switch\";223 static const char* volumname = \"Master Playback Volume\";224225 static size_t batcapmay(char *dest, size_t n) {226 size_t ret;227 static int hasbat = -1;228229 if (hasbat == -1) {230 if (access(sysbat, F_OK)) {231 hasbat = 0;232 return 0;233 }234 hasbat = 1;235 } else if (!hasbat) {236 return 0;237 }238239 ret = batcap(dest, n);240 if (ret)241 ret += separator(&dest[ret], n - ret);242243 return ret;244 }245246 static size_t (* const sfuncs[])(char*, size_t) = {247 batcapmay,248 loadavg,249 separator,250 curtime,251 };252 ")))))253 (replace 'install254 (lambda* (#:key outputs #:allow-other-keys)255 (let* ((outdir (assoc-ref outputs "out"))256 (bindir (string-append outdir "/bin")))257 (mkdir-p bindir)258 (copy-file "ustatus"259 (string-append bindir "/ustatus"))))))))260 (inputs (list tinyalsa))261 (native-inputs (list pkg-config))262 (home-page "https://git.8pit.net/ustatus")263 (synopsis "Minimal status tool for dwm-like status bars")264 (description "")265 (license license:wtfpl2))))266267(define-public zig-fcft268 (package269 (name "zig-fcft")270 (version "1.1.0")271 (source272 (origin273 (method git-fetch)274 (uri (git-reference275 (url "https://git.sr.ht/~novakane/zig-fcft")276 (commit version)))277 (file-name (git-file-name name version))278 (sha256279 (base32 "0im0rdwww7xxvhmibfp3459h8wwdmihjb9m7vmzxkgqs4x77l114"))))280 (build-system zig-build-system)281 (arguments282 (list283 #:skip-build? #t284 #:tests? #f))285 (propagated-inputs (list zig-pixman fcft))286 (native-inputs (list pkg-config))287 (synopsis "Zig bindings for the fcft font library")288 (description "")289 (home-page "https://git.sr.ht/~novakane/zig-fcft")290 (license license:expat)))