diff options
Diffstat (limited to 'modules/freya')
-rw-r--r-- | modules/freya/packages/audio.scm | 79 | ||||
-rw-r--r-- | modules/freya/packages/certs.scm | 51 | ||||
-rw-r--r-- | modules/freya/packages/gnome-xyz.scm | 65 | ||||
-rw-r--r-- | modules/freya/packages/golang.scm | 833 | ||||
-rw-r--r-- | modules/freya/packages/mozillia.scm | 59 | ||||
-rw-r--r-- | modules/freya/packages/shells.scm | 45 | ||||
-rw-r--r-- | modules/freya/packages/vim.scm | 50 | ||||
-rw-r--r-- | modules/freya/packages/virtualization.scm | 47 | ||||
-rw-r--r-- | modules/freya/packages/wm.scm | 277 | ||||
-rw-r--r-- | modules/freya/services/pipewire.scm | 99 | ||||
-rw-r--r-- | modules/freya/system.scm | 227 |
11 files changed, 1832 insertions, 0 deletions
diff --git a/modules/freya/packages/audio.scm b/modules/freya/packages/audio.scm new file mode 100644 index 0000000..beae55e --- /dev/null +++ b/modules/freya/packages/audio.scm @@ -0,0 +1,79 @@ +(define-module (freya packages audio) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (guix build-system meson) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (gnu packages) + #:use-module (gnu packages glib) + #:use-module (gnu packages audio) + #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages gtk) + #:use-module (gnu packages xiph) + #:use-module (gnu packages tbb) + #:use-module (gnu packages gettext) + #:use-module (gnu packages gnome) + #:use-module (gnu packages pretty-print) + #:use-module (gnu packages algebra) + #:use-module (gnu packages cpp) + #:use-module (gnu packages linux) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages cmake) + #:use-module (gnu packages maths) + #:use-module (gnu packages pkg-config)) + +(define-public easyeffects + (package + (name "easyeffects") + (version "7.0.1") + (arguments + (list + #:modules + '((guix build utils) + (guix build meson-build-system)) + #:imported-modules + (append %meson-build-system-modules) + #:tests? #f)) + (native-inputs (list gettext-minimal + itstool + desktop-file-utils + `(,glib "bin") + `(,gtk+ "bin") + pkg-config + cmake + appstream-glib)) + (inputs (list zita-convolver + rnnoise + tbb + fftwf + lilv + fmt + rubberband + speexdsp + nlohmann-json + pipewire + libadwaita + libsigc++ + libbs2b + libsndfile + libsamplerate + libebur128 + libportal + gsl + speex + `(,util-linux "lib"))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/wwmm/easyeffects/archive/refs/tags/v" version + ".tar.gz")) + (sha256 + (base32 + "05j52fy51zjai7n0j23chydfgkfq9n82h2ih806z3b47zhk2h2j2")))) + (build-system meson-build-system) + (synopsis "Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications") + (description "This package provides @code{easyeffects}, which is an audio application for use atop of @code{pipewire} + that allows effects that modify sound sources and sinks. This cannot be updated to the latest version (7.0.8) because + the packaged version of @code{gtk} is too old.") + (home-page "https://github.com/wwmm/easyeffects") + (license license:gpl3+))) diff --git a/modules/freya/packages/certs.scm b/modules/freya/packages/certs.scm new file mode 100644 index 0000000..6a39608 --- /dev/null +++ b/modules/freya/packages/certs.scm @@ -0,0 +1,51 @@ +(define-module (freya packages certs) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (guix build-system trivial) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages tls) + #:use-module (gnu packages linux) + #:use-module (gnu packages base)) + +(define-public freya-ca-certs + (package + (name "freya-ca-certs") + (version "1") + (source (local-file "../../../certs" + #:recursive? #t)) + (build-system trivial-build-system) + (license license:mpl2.0) + (home-page "https://freya.cat") + (arguments + `(#:modules + ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 ftw)) + (let* ((ca-certificates (assoc-ref %build-inputs "source")) + (crt-suffix ".crt") + (is-certificate? (cut string-suffix? crt-suffix <>)) + (certificates (filter is-certificate? + (scandir ca-certificates))) + (out (assoc-ref %outputs "out")) + (certificate-directory (string-append out "/etc/ssl/certs")) + (openssl (string-append (assoc-ref %build-inputs "openssl") "/bin/openssl"))) + (mkdir-p certificate-directory) + (for-each + (lambda (cert) + (invoke + openssl "x509" + "-in" (string-append ca-certificates "/" cert) + "-outform" "PEM" + "-out" (string-append certificate-directory "/" cert ".pem"))) + certificates) + #t)))) + (native-inputs + (list openssl)) + (synopsis "freya ca certs") + (description synopsis))) diff --git a/modules/freya/packages/gnome-xyz.scm b/modules/freya/packages/gnome-xyz.scm new file mode 100644 index 0000000..d05abf1 --- /dev/null +++ b/modules/freya/packages/gnome-xyz.scm @@ -0,0 +1,65 @@ +(define-module (freya packages gnome-xyz) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (gnu packages base) + #:use-module (gnu packages version-control) + #:use-module (gnu packages web) + #:use-module (gnu packages bash) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix download) + #:use-module (guix build-system trivial) + #:use-module (guix utils)) + +(define-public lavanda-gtk-theme + (let ((commit "44c74ad34d272e07b91f779e62e63b6ef8645655")) + (package + (name "lavanda-gtk-theme") + (version (git-version "" "0" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vinceliuice/Lavanda-gtk-theme.git") + (commit commit))) + (sha256 + (base32 + "1q253kl5lw9dpbmwaf715brdjka7b3s3kpl4i6s262dji84pp3dc")) + (file-name (git-file-name name version)))) + (build-system trivial-build-system) + (inputs + `(("sassc" ,sassc) + ("coreutils" ,coreutils) + ("sed" ,sed) + ("bash" ,bash))) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/share/themes")) + (bash (string-append + (assoc-ref %build-inputs "bash") + "/bin/sh")) + (coreutils (string-append + (assoc-ref %build-inputs "coreutils") + "/bin")) + (sed (string-append + (assoc-ref %build-inputs "sed") + "/bin")) + (sassc (string-append + (assoc-ref %build-inputs "sassc") + "/bin")) + (source (assoc-ref %build-inputs "source"))) + (copy-recursively source (getcwd)) + (setenv "PATH" (string-append (getenv "PATH") ":" coreutils ":" sed ":" sassc)) + (mkdir-p bin) + (invoke bash "build.sh") + (invoke bash "install.sh" "-d" bin))))) + (home-page "https://github.com/vinceliuice/Lavanda-gtk-theme") + (synopsis "Lavanda gtk theme for linux desktops") + (description "Lavanda gtk theme for linux desktops") + (license license:gpl3)))) + diff --git a/modules/freya/packages/golang.scm b/modules/freya/packages/golang.scm new file mode 100644 index 0000000..f626ade --- /dev/null +++ b/modules/freya/packages/golang.scm @@ -0,0 +1,833 @@ +(define-module (freya packages golang) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix gexp) + #:use-module (gnu packages base) + #:use-module (gnu packages version-control) + #:use-module (gnu packages package-management) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (guix git-download) + #:use-module (guix download) + #:use-module (gnu packages golang) + #:use-module (guix build-system go) + #:use-module (guix build-system trivial) + #:use-module (guix build utils) + #:use-module (guix utils)) + +(define (go-package name version url hash path inputs) + (package + (name name) + (version version) + (source (origin + (method git-fetch) + (uri (git-reference + (url url) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))) + (build-system go-build-system) + (propagated-inputs inputs) + (arguments + `(#:go ,go-1.20 + #:import-path ,path + #:phases %standard-phases + #:install-source? #t + #:tests? #f)) + (synopsis (string-append name " go package")) + (description (string-append name " go package")) + (home-page url) + (license license:expat))) + +(define (go-version-go-package name version url hash path inputs) + (package + (inherit (go-package name version url hash path inputs)) + (source (origin + (method git-fetch) + (uri (git-reference + (url url) + (commit (go-version->git-ref version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + hash)))))) + +(define (commit-go-package name comm url hash path inputs) + (package + (inherit (go-package name comm url hash path inputs)) + (source (origin + (method git-fetch) + (uri (git-reference + (url url) + (commit comm))) + (file-name (git-file-name name comm)) + (sha256 + (base32 + hash)))))) + + +(define (source-only gopackage) + (package + (inherit gopackage) + (arguments + (substitute-keyword-arguments (package-arguments gopackage) + ((#:phases phases) + #~(modify-phases #$phases + (delete 'build))))))) + +(define (set-go gopackage gover) + (package + (inherit gopackage) + (arguments + (substitute-keyword-arguments (package-arguments gopackage) + ((#:go _) gover))))) + +(define (set-unpack gopackage unpack) + (package + (inherit gopackage) + (arguments + (substitute-keyword-arguments (package-arguments gopackage) + ((#:unpack-path _) unpack))))) + +(define (set-inputs gopackage inputs) + (package + (inherit gopackage) + (native-inputs inputs))) + + +(define go-github-com-matttproud-golang-protobuf-extensions + (source-only (go-package + "go-github-com-matttproud-golang-protobuf-extensions" + "2.0.0" + "https://github.com/matttproud/golang_protobuf_extensions" + "0jw4vjycwx0a82yvixmp25805krdyqd960y8lnyggllb6br0vh41" + "github.com/matttproud/golang_protobuf_extensions" + (list)))) + +(define go-github-com-beorn7-perks + (source-only (go-package + "go-github-com-beorn7-perks" + "1.0.1" + "https://github.com/beorn7/perks" + "17n4yygjxa6p499dj3yaqzfww2g7528165cl13haj97hlx94dgl7" + "github.com/beorn7/perks" + (list)))) + +(define go-github-com-golang-protobuf + (source-only (go-package + "go-github-com-golang-protobuf" ; name + "1.5.3" ; version + "https://github.com/golang/protobuf" ; url + "03f1w2cd4s8a3xhl61x7yjx81kbzlrjpvnnwmbhqnz814yi7h43i" ; hash + "github.com/golang/protobuf" ; path + (list)))) ; inputs + +(define go-go-uber-org-multierr + (go-package + "go-go-uber-org-multierr" + "1.11.0" + "https://github.com/uber-go/multierr" + "1s6skad93nbsq4b0sy5dsgacrdh2kzg0p8wjlhvff49vasqsi3qx" + "go.uber.org/multierr" + (list))) + +(define go-go-uber-org-zap + (go-package + "go-go-uber-org-zap" + "1.26.0" + "https://github.com/uber-go/zap" + "1aw7zba4f06835vm6l6j1y1jaz2p92gi2nv52hfn1a62gixj8nq4" + "go.uber.org/zap" + (list go-go-uber-org-multierr))) + +(define go-github-com-cespare-xxhash + (go-package + "go-github-com-cespare-xxhash" + "2.2.0" + "https://github.com/cespare/xxhash" + "055xvgyv78xl6bdj8kgy0105n9cq33w4rb0sg84lp9r85i9qx2l5" + "github.com/cespare/xxhash" + (list))) + +(define go-golang-org-x-exp + (source-only (go-version-go-package + "go-golang-org-x-exp" ; name + "v0.0.0-20230310171629-522b1b587ee0" ; version + "https://go.googlesource.com/exp" ; url + "054hbk826n3kprk75m19ik89mnicbshq6kdiwd60xxfczdjf88rn" ; hash + "golang.org/x/exp" ; path + (list)))) ; inputs + +(define go-golang-org-x-sync + (source-only (go-package + "go-golang-org-x-text" ; namie + "0.3.0" ; version + "https://go.googlesource.com/sync" ; url + "0jmkqah45db9nz6yjdd8vvanpjfzb5lsv6bxf0d1dih4zhp4l8kc" ; hash + "golang.org/x/sync" ; path + (list)))) ; inputs + +(define go-golang-org-x-text + (source-only (go-package + "go-golang-org-x-text" ; namie + "0.11.0" ; version + "https://go.googlesource.com/text" ; url + "1a0d6f9qqzd9njd8xb59mjrfv5jrz8130crcxbqaiy7lk434nq1k" ; hash + "golang.org/x/text" ; path + (list)))) ; inputs + +(define go-golang-org-x-term + (source-only (go-package + "go-golang-org-x-term" ; namie + "0.10.0" ; version + "https://go.googlesource.com/term" ; url + "19abybnsqix924d9ak4p93bgq1312zp1yk11bilrrmsjplhbrzqf" ; hash + "golang.org/x/term" ; path + (list)))) ; inputs + +(define go-golang-org-x-net + (source-only (go-package + "go-golang-org-x-net" ; name + "0.14.0" ; version + "https://go.googlesource.com/net" ; url + "0pk9pfd5n5hlg5zx1ab3gfzi6lfcs41dfds6fyn661g5xs00l9s1" ; hash + "golang.org/x/net" ; path + (list)))) ; inputs + + +(define go-golang-org-x-crypto + (source-only (go-package + "go-golang-org-x-crypto" ; name + "0.12.0" ; version + "https://go.googlesource.com/crypto" ; url + "00cg67w0n01a64fc4kqg5j7r47fx5y9vyqlanwb60513dv6lzacs" ; hash + "golang.org/x/crypto" ; path + (list)))) ; inputs + +(define go-golang-org-x-sys + (source-only (go-package + "go-golang-org-x-sys" ; name + "0.11.0" ; version + "https://go.googlesource.com/sys" ; url + "1pp0479l9w92kr6p97d19s8y0hj16gblg4hvdqqzcrf3d9mr4cs3" ; hash + "golang.org/x/sys" ; path + (list)))) ; inputs + +(define go-github-com-quic-go-qtls-go1-20 + (go-package + "go-github-com-quic-go-qtls-go1-20" ; name + "0.3.4" ; version + "https://github.com/quic-go/qtls-go1-20" ; url + "0fl3yv1w8cygag3lav45vvzb4k9i72p92x13wcq0xn13wxirzirn" ; hash + "github.com/quic-go/qtls-go1-20" ; path + (list go-golang-org-x-crypto ; inputs + go-golang-org-x-sys))) + +(define go-github-com-google-go-cmp + (source-only (go-package + "go-github-com-google-go-cmp" + "0.5.9" + "https://github.com/google/go-cmp" + "0a13m7l1jrysa7mrlmra8y7n83zcnb23yjyg3a609p8i9lxkh1wm" + "github.com/google/go-cmp/go" + (list)))) + +(define go-github-com-hashicorp-go-uuid + (go-package + "go-github-com-hashicorp-go-uuid" + "1.0.3" + "https://github.com/hashicorp/go-uuid" + "0wd4maaq20alxwcvfhr52rzfnwwpmc2a698ihyr0vfns2sl7gkzk" + "github.com/hashicorp/go-uuid" + (list))) + +(define go-github-com-google-uuid + (go-package + "go-github-com-google-uuid" + "1.3.1" + "https://github.com/google/uuid" + "1pd1lkl50prswl91dpwml66s2ildjqipnsqi9a7m25lv3l008417" + "github.com/google/uuid" + (list))) + +(define go-github-com-marten-seemann-qtls-go1-19 + (set-go (go-package + "go-github-com-marten-seemann-qtls-go1-19" + "0.3.3" + "https://github.com/quic-go/qtls-go1-19" + "07i56533033cd0kn67fvyyvwbmfwfdk3y5x5wl4y00zplyhhys9q" + "github.com/marten-seemann/qtls-go1-19" + (list go-golang-org-x-sys + go-golang-org-x-crypto)) + go-1.19)) + +(define go-github-com-lucas-clemente-quic-go + (set-go (go-package + "go-github-com-lucas-clemente-quic-go" + "0.31.1" + "https://github.com/quic-go/quic-go" + "1vn72wlcyb4j2lw3pfqfvhb3pz7r61j3sddj4r1sf32vc3csis97" + "github.com/lucas-clemente/quic-go" + (list go-golang-org-x-crypto + go-golang-org-x-net + go-golang-org-x-exp + go-golang-org-x-sys + go-github-com-marten-seemann-qtls-go1-19)) + go-1.19)) + +(define go-github-com-quic-go-quic-go + (go-package + "go-github-com-quic-go-quic-go" ; name + "0.39.0" ; version + "https://github.com/quic-go/quic-go" ; url + "0jiwh97xpvswrbq5glnafc2jc3ybpl17ffa0cg9x3f03raa2q8vg" ; hash + "github.com/quic-go/quic-go" ; path + (list go-golang-org-x-crypto ; inputs + go-golang-org-x-exp + go-golang-org-x-net + go-golang-org-x-sys + go-github-com-quic-go-qtls-go1-20))) + +(define go-github-com-prometheus-procfs + (go-package + "go-github-com-prometheus-procfs" ; name + "0.8.0" ; version + "https://github.com/prometheus/procfs" ; url + "0k2d27pm6q6im42x8ikwz0d4sb31wn6rvfs9wlf51d9gldncmpqz" ; hash + "github.com/prometheus/procfs" ; path + (list go-golang-org-x-sys))) ; inputs + +(define go-github-com-prometheus-client-model + (source-only (go-package + "go-github-com-prometheus-client-model" ; name + "0.4.0" ; version + "https://github.com/prometheus/client_model" ; url + "0w3hxsc0qmb5vdm8lyhsvkm0g9yk81vrpcyf31haysvid8yjrzg0" ; hash + "github.com/prometheus/client_model" ; path + (list go-github-com-golang-protobuf)))) ; inputs + +(define go-github-com-prometheus-common + (source-only (go-package + "go-github-com-prometheus-common" ; name + "0.37.0" ; version + "https://github.com/prometheus/common" ; url + "161ayg76ag1h21kaf0qycpy7cizvy3xrm0dn598hj91n44v4z0hf" ; hash + "github.com/prometheus/common" ; path + (list go-github-com-golang-protobuf ; inputs + go-github-com-matttproud-golang-protobuf-extensions + go-github-com-prometheus-client-model)))) + +(define go-github-com-prometheus-client-golang + (source-only (go-package + "go-github-com-prometheus-client-golang" ; name + "1.14.0" ; version + "https://github.com/prometheus/client_golang" ; url + "041br6n309bajwdv871f69fwy1yq3vk46rmzxnkr1ldpq1bhd63n" ; hash + "github.com/prometheus/client_golang" ; path + (list go-github-com-prometheus-client-model ; inputs + go-github-com-prometheus-procfs + go-github-com-prometheus-common)))) + +(define go-github-com-klauspost-cpuid-v2 + (go-package + "go-github-com-klauspost-cpuid-v2" ; name + "2.2.5" ; version + "https://github.com/klauspost/cpuid" ; url + "127jlppxs226lnq499rjnjyzgmp849xlxhq7380w2ypdkhvafni1" ; hash + "github.com/klauspost/cpuid/v2" ; path + (list))) ; inputs + +(define go-github-com-libdns-libdns + (go-package + "go-github-com-libdns-libdns" ; name + "0.2.1" ; version + "https://github.com/libdns/libdns" ; url + "1ix668h4n2n9iph4xiznzdfw7hy0ijy906mvnys4kq9f0v9ih4bg" ; hash + "github.com/libdns/libdns" ; path + (list))) ; inputs + +(define go-github-com-mholt-acmez + (go-package + "go-github-com-mholt-acmez" ; name + "1.2.0" ; version + "https://github.com/mholt/acmez" ; url + "1wzkgbgnp23vbcz4nc3c8x7vi1lkqp36485f7g05zbshc7hzby6d" ; hash + "github.com/mholt/acmez" ; path + (list go-go-uber-org-zap ; inputs + go-golang-org-x-crypto + go-golang-org-x-text + go-golang-org-x-net))) + +(define go-github-com-miekg-dns + (go-package + "go-github-com-miekg-dns" ; name + "1.1.50" ; version + "https://github.com/miekg/dns" ; url + "1svvx9qamy3hy0ms8iwbisqjmfkbza0zljmds6091siq150ggmws" ; hash + "github.com/miekg/dns" ; path + (list go-golang-org-x-net ; inputs + go-golang-org-x-sys))) + +(define go-github-com-zeebo-blake3 + (go-package + "go-github-com-zeebo-blake3" ; name + "0.2.3" ; version + "https://github.com/zeebo/blake3" ; url + "1pkk97d1jwfcg3hs9g09zbwn31l96icx1vk4d9l2rhcvfw0aw0fc" ; hash + "github.com/zeebo/blake3" ; path + (list go-github-com-klauspost-cpuid-v2))) ; inputs + +(define go-github-com-caddy-certmagic + (go-package + "go-github-com-caddy-certmagic" ; name + "0.19.2" ; version + "https://github.com/caddyserver/certmagic" ; url + "07a1xiynbbaqm7qzg0q1xhvab99x8mvzr2rw68npxws4dshgdv5f" ; hash + "github.com/caddyserver/certmagic" ; path + (list go-github-com-klauspost-cpuid-v2 ; inputs + go-github-com-libdns-libdns + go-go-uber-org-zap + go-golang-org-x-crypto + go-github-com-mholt-acmez + go-github-com-zeebo-blake3 + go-github-com-miekg-dns + go-golang-org-x-sys + go-golang-org-x-net + go-golang-org-x-text))) + +(define go-github-com-quic-go-qpack + (go-package + "go-github-com-quic-go-qpack" ; name + "0.4.0" ; version + "https://github.com/quic-go/qpack" ; url + "00mjz445hhx4yar5l8p21bpp4d06jyg2ajw0ax7bh64d37l4kx39" ; hash + "github.com/quic-go/qpack" ; path + (list go-golang-org-x-net))) ; inputs + +(define go-google-golang-org-protobuf + (source-only (go-package + "go-google-golang-org-protobuf" ; name + "1.31.0" ; version + "https://go.googlesource.com/protobuf" ; url + "1xf18kzz96hgfy1vlbnydrizzpxkqj2iamfdbj3dx5a1zz5mi8n0" ; hash + "google.golang.org/protobuf" ; path + (list go-github-com-google-go-cmp ; inputs + go-github-com-golang-protobuf)))) + +(define go-github-com-google-cel-go + (source-only (go-package + "go-github-com-google-cel-go" + "0.18.1" + "https://github.com/google/cel-go" + "07jp5n266jyk74zaj1n1g15apn2nw1lr6v5zmi13fhir91k6sybr" + "github.com/google/cel-go" + (list)))) + +(define go-github-com-klauspost-compress + (go-package + "go-github-com-klauspost-compress" + "1.17.0" + "https://github.com/klauspost/compress" + "1fjch04mz11lyikzw1xmm541wc5fkvxk18a9wgzxvdvszs84xfjn" + "github.com/klauspost/compress" + (list))) + +(define go-github-com-rs-xid + (go-package + "go-github-com-rs-xid" + "1.2.1" + "https://github.com/rs/xid" + "1vgw1dikqw273awcci6pzifs7shkl5ah4l88j1zjbnpgbiwzlx9j" + "github.com/rs/xid" + (list))) + +(define go-github-com-micromdm-scep + (source-only (go-package + "go-github-com-micromdm-scep" + "2.1.0" + "https://github.com/micromdm/scep" + "1a3knshfmh8lniz098ir0rl7ixb2a0zwvdlwy22a6q8fsicfk40q" + "github.com/micromdm/scep" + (list)))) + +(define go-github-com-smallstep-certificates + (source-only (go-package + "go-github-com-smallstep-certificates" + "0.25.0" + "https://github.com/smallstep/certificates" + "1f7ignpnsj5q1qfdn040hjh9gzix4bg88wspjzx0qms9s9c42n1g" + "github.com/smallstep/certificates" + (list go-github-com-rs-xid + go-github-com-micromdm-scep)))) + +(define go-github-com-smallstep-truststore + (source-only (go-package + "go-github-com-smallstep-truststore" + "0.12.1" + "https://github.com/smallstep/truststore" + "06a73r4h69q3626x14xcc4rkiparyvhwbn19g22y2r9pgvxirfi9" + "github.com/smallstep/truststore" + (list)))) + +(define gopkg-in-square-go-jose-v2 + (go-package + "gopkg-in-square-go-jose-v2" + "2.6.0" + "https://github.com/square/go-jose" + "1b1nhqxfmhzwrfk7pkvp2w3z3d0pf5ir00vizmy2d4xdbnldn70r" + "gopkg.in/square/go-jose.v2" + (list go-golang-org-x-crypto))) + +(define go-filippo-io-edwards25519 + (go-package + "go-filippo-io-edwards25519" + "1.0.0" + "https://github.com/FiloSottile/edwards25519" + "01m8hpaj0cwp250f7b0din09cf8j6j5y631grx67qfhvfrmwr1zr" + "filippo.io/edwards25519" + (list))) + +(define go-github-com-masterminds-goutils + (go-package + "go-github-com-masterminds-goutils" + "1.1.1" + "https://github.com/Masterminds/goutils" + "09m4mbcdlv9ng3xcrmjlxi0niavby52y9nl2jhjnbx1xxpjw0jrh" + "github.com/Masterminds/goutils" + (list))) + +(define go-github-com-shopspring-decimal + (go-package + "go-github-com-shopspring-decimal" + "1.3.1" + "https://github.com/shopspring/decimal" + "1w1wjv2aqyqp22s8gc2nxp8gk4h0dxvp15xsn5lblghaqjcd239h" + "github.com/shopspring/decimal" + (list))) + +(define go-github-com-imdario-mergo + (go-package + "go-github-com-imdario-mergo" + "1.0.0" + "https://github.com/imdario/mergo" + "037k2bd97vnbyhn2sczxk0j6ijmv06n1282f76i3ky73s3qmqnlf" + "github.com/imdario/mergo" + (list))) + +(define go-github-com-huandu-xstrings + (go-package + "go-github-com-huandu-xstrings" + "1.4.0" + "https://github.com/huandu/xstrings" + "0y6afn5yp5pw1gjc4a6gxxkj753w2aaw46nwbi7scnqdqlb2l3cp" + "github.com/huandu/xstrings" + (list))) + +(define go-github-com-mitchellh-reflectwalk + (go-package + "go-github-com-mitchellh-reflectwalk" + "1.0.2" + "https://github.com/mitchellh/reflectwalk" + "1nxgb4gskzv045539vb312n0a443308dvh1akz7vi6x1l0z46zsm" + "github.com/mitchellh/reflectwalk" + (list))) + +(define go-github-com-mitchellh-copystructure + (go-package + "go-github-com-mitchellh-copystructure" + "1.2.0" + "https://github.com/mitchellh/copystructure" + "1izw243b3r03nvgnnxvk706l3s3v3q7k69kq3n4asnzjkcymq7sm" + "github.com/mitchellh/copystructure" + (list go-github-com-mitchellh-reflectwalk))) + +(define go-github-com-spf13-cast + (go-package + "go-github-com-spf13-cast" + "1.5.1" + "https://github.com/spf13/cast" + "05ahl8kicdhz95rxraavqsfsb8bvj03abpk8zclypy1gchc0vm7y" + "github.com/spf13/cast" + (list))) + +(define go-github-com-masterminds-semver + (go-package + "go-github-com-masterminds-semver" + "3.2.1" + "https://github.com/Masterminds/semver" + "1h4c647dgq6k5q78j3m98ccdrzd7kbcq4ahdy25j72rbxjmci8al" + "github.com/Masterminds/semver" + (list))) + +(define go-github-com-masterminds-sprig + (go-package + "go-github-com-masterminds-sprig" + "3.2.2" + "https://github.com/Masterminds/sprig" + "0wfbzhmv971si9gx9c77gz89b9va2y03bhdmds9hzal4i7cccw2x" + "github.com/Masterminds/sprig" + (list go-github-com-masterminds-goutils + go-github-com-masterminds-semver + go-github-com-google-uuid + go-golang-org-x-crypto + go-github-com-shopspring-decimal + go-github-com-huandu-xstrings + go-github-com-imdario-mergo + go-github-com-spf13-cast + go-github-com-mitchellh-copystructure))) + +(define go-step-sm-crypto + (source-only (go-package + "go-step-sm-crypto" + "0.35.1" + "https://github.com/smallstep/crypto" + "0fb77246iyxhw91d52ph6b3bl32182xs3cw1fzhs884km9wary8v" + "go.step.sm/crypto" + (list gopkg-in-square-go-jose-v2 + go-filippo-io-edwards25519 + go-github-com-masterminds-sprig)))) + +(define go-step-sm-cli-utils + (source-only (go-package + "go-step-sm-cli-utils" + "0.8.0" + "https://github.com/smallstep/cli-utils" + "1239ivvmjvmmy5jkv6n7zg9qpk5wlnsb4prw4k3fx3nycx8nd3pa" + "go.step.sm/cli-utils" + (list)))) + +(define go-github-com-go-logr-logr + (go-package + "go-github-com-go-logr-logr" + "1.2.4" + "https://github.com/go-logr/logr" + "1ara5lacbzwqw8m6800837jgf5gbcfj6namm0zwzb45xqgfl64c0" + "github.com/go-logr/logr" + (list))) + +(define go-github-com-go-logr-stdr + (go-package + "go-github-com-go-logr-stdr" + "1.2.2" + "https://github.com/go-logr/stdr" + "1dl2rzvjacwqlnvw7azrxqbh4jvzaq8v399f6drs146l39ss21c1" + "github.com/go-logr/stdr" + (list go-github-com-go-logr-logr))) + +(define go-github-com-grpc-ecosystem-grpc-gateway + (source-only (go-package + "go-github-com-grpc-ecosystem-grpc-gateway" + "2.18.0" + "https://github.com/grpc-ecosystem/grpc-gateway" + "0rkymxrwm4bk2sizawnrmn54jjkiwlzh2mxrsz435lhrzk3zfmhm" + "github.com/grpc-ecosystem/grpc-gateway" + (list)))) + +(define go-google-golang-org-genproto + (source-only (commit-go-package + "go-google-golang-org-genproto" + "e6e6cdab5c137738d2c1bc9d66183cfbd9f440d1" + "https://github.com/googleapis/go-genproto" + "1c7dm3iwc0k25ynxqnzfqf9mn47fw5sy4sbgm5v4akg1klzkvkpg" + "google.golang.org/genproto" + (list)))) + +(define go-google-golang-org-grpc + (go-package + "go-google-golang-org-grpc" + "1.58.2" + "https://github.com/grpc/grpc-go" + "1qchzb1kv03mjd5k4j5lcr3arwvlridgfmsdlv9grmnpx7caw8sf" + "google.golang.org/grpc" + (list go-google-golang-org-protobuf + go-golang-org-x-sys + go-golang-org-x-net + go-golang-org-x-text + go-google-golang-org-genproto))) + +(define go-opentelemetry-io-proto-otlp + (source-only (set-unpack (go-package + "go-opentelemetry-io-proto-otlp" + "1.0.0" + "https://github.com/open-telemetry/opentelemetry-proto-go" + "0w69grih4qv8pw6ywpa9f675mixrxhqzcqafrp6ibrd7z3mdzfyq" + "go.opentelemetry.io/proto" + (list go-github-com-grpc-ecosystem-grpc-gateway)) + "go.opentelemetry.io/proto/otlp"))) + +(define go-opentelemetry-io-otel + (go-package + "go-opentelemetry-io-otel" + "1.19.0" + "https://github.com/open-telemetry/opentelemetry-go" + "06lmf7pnxp9b5ciy5yv7qwzph8k7w2m48g7p72fl5y3g57lh8v7w" + "go.opentelemetry.io/otel" + (list go-github-com-go-logr-stdr + go-opentelemetry-io-proto-otlp + go-google-golang-org-grpc))) + +(define go-github-com-yuin-goldmark + (go-package + "go-github-com-yuin-goldmark" + "1.5.5" + "https://github.com/yuin/goldmark" + "0kziqic2rgnb0fyng9rmlg8akk4bv07qhscy4n6z45f235r1l955" + "github.com/yuin/goldmark" + (list))) + +(define go-github-com-dlclark-regexp2 + (go-package + "go-github-com-dlclark-regexp2" + "1.10.0" + "https://github.com/dlclark/regexp2" + "137jrvg6w6ivc0qm4zgk3hjf06kfl900m8730hbd5xnhxzyf6717" + "github.com/dlclark/regexp2" + (list))) + +(define go-github-com-alecthomas-chroma + (go-package + "go-github-com-alecthomas-chroma" + "2.7.0" + "https://github.com/alecthomas/chroma" + "0i4ck23gn0v7x6r8wa2k7qiwhxpxqqnaknb9iy9rz8pjcj14ai75" + "github.com/alecthomas/chroma/v2" + (list go-github-com-dlclark-regexp2))) + +(define go-github-com-yuin-goldmark-highlighting + (set-go (set-inputs (go-version-go-package + "go-github-com-yuin-goldmark-highlighting" + "v2.0.0-20230729083705-37449abec8cc" + "https://github.com/yuin/goldmark-highlighting" + "163jbi8si9qxcabzni39qypj495y48rabkkchc03ay68p19v160y" + "github.com/yuin/goldmark-highlighting/v2" + (list)) + (list (set-go (go-package + "go-github-com-yuin-goldmark" + "1.4.15" + "https://github.com/yuin/goldmark" + "0qs08hy288zdr0xpd49rp8h1048s1n7frmzcmb8diqpcv5hvbmgm" + "github.com/yuin/goldmark" + (list)) + go-1.14) + (set-go (go-package + "go-github-com-alecthomas-chroma" + "2.2.0" + "https://github.com/alecthomas/chroma" + "0rxsi4kdf363p6ysvxvgndbvcb0a5zgm0iaxkkqllj3m8nfwmzlk" + "github.com/alecthomas/chroma/v2" + (list go-std-1.17 go-github-com-dlclark-regexp2)) + go-1.14))) + go-1.14)) + +(define go-github-com-mitchellh-go-ps + (go-package + "go-github-com-mitchellh-go-ps" + "1.0.0" + "https://github.com/mitchellh/go-ps" + "0ipcbz66x7q8xczi7cyfq06y7n7v0syvkp730vn9jrn7s8f5ag0z" + "github.com/mitchellh/go-ps" + (list))) + +(define go-github-com-tailscale-tscert + (commit-go-package + "go-github-com-tailscale-tscert" + "28a91b69a0467442178b62e2cfb9ab272ed3b64c" + "https://github.com/tailscale/tscert" + "0zzpkff4nrknh345nqiaz88hvlc5pynhzyws02f3rlcyjh7kj2sh" + "github.com/tailscale/tscert" + (list go-golang-org-x-sys + go-github-com-mitchellh-go-ps))) + +(define go-opentelemetry-io-contrib + (go-package + "go-opentelemetry-io-contrib" + "1.20.0" + "https://github.com/open-telemetry/opentelemetry-go-contrib" + "0vsv2ihjk3i3k1mwkdjngcp497knw85fz1m32lycl6qf3fcpzaiy" + "go.opentelemetry.io/contrib" + (list))) + +(define go-github-com-dustin-go-humanize + (go-package + "go-github-com-dustin-go-humanize" + "1.0.1" + "https://github.com/dustin/go-humanize" + "1iyhd90pnmxh64nhsh6k02c1b1glpmhh4whga9jgb9g0i5hz3sya" + "github.com/dustin/go-humanize" + (list))) + +(define go-github-com-burntsushi-toml + (go-package + "go-github-com-burntsushi-toml" + "1.3.2" + "https://github.com/BurntSushi/toml" + "1s1d3622al03xgx84iqai384ycfp5hgy2r6h4db29byamqgk530l" + "github.com/BurntSushi/toml" + (list))) + +(define-public caddy + (package + (name "caddy") + (version "2.7.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/caddyserver/caddy") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0jgbkj0azkbs828vsd3gycpab8pycgf55vrxkvnfmwfjpdiq1551")))) + (build-system go-build-system) + (inputs (list go-github-com-hashicorp-go-uuid + go-github-com-burntsushi-toml + go-github-com-dustin-go-humanize + go-github-com-yuin-goldmark + go-github-com-yuin-goldmark-highlighting + go-github-com-tailscale-tscert + go-github-com-google-cel-go + go-step-sm-crypto + go-step-sm-cli-utils + go-github-com-smallstep-certificates + go-github-com-smallstep-truststore + go-opentelemetry-io-otel + go-opentelemetry-io-contrib + go-github-com-google-uuid + go-github-com-lucas-clemente-quic-go + go-github-com-prometheus-client-golang + go-github-com-prometheus-procfs + go-github-com-prometheus-common + go-google-golang-org-protobuf + go-github-com-beorn7-perks + go-github-com-cespare-xxhash + go-go-uber-org-zap + go-golang-org-x-term + go-github-com-caddy-certmagic + go-github-com-quic-go-quic-go + go-github-com-quic-go-qpack + go-github-com-klauspost-compress + go-github-com-golang-protobuf + go-golang-org-x-net + go-golang-org-x-sync)) + (arguments + `(#:go ,go-1.20 + #:substitutable? #f + #:install-source? #t + #:import-path "github.com/caddyserver/caddy" + #:tests? #f + #:phases (modify-phases %standard-phases + (replace 'build + (lambda arguments + (apply (assoc-ref %standard-phases + 'build) + `(,@arguments #:import-path + "github.com/caddyserver/caddy/cmd/caddy"))))))) + (synopsis "A powerful, enterprise-ready, open source web server with automatic HTTPS written in Go ") + (description "Caddy simplifies your infrastructure. It takes care of TLS certificate renewals, OCSP stapling, static file serving, reverse proxying, Kubernetes ingress, and more. + Its modular architecture means you can do more with a single, static binary that compiles for any platform. + Caddy runs great in containers because it has no dependencies—not even libc. Run Caddy practically anywhere.") + (home-page "https://caddyserver.com/") + (license license:asl2.0))) diff --git a/modules/freya/packages/mozillia.scm b/modules/freya/packages/mozillia.scm new file mode 100644 index 0000000..57c9b54 --- /dev/null +++ b/modules/freya/packages/mozillia.scm @@ -0,0 +1,59 @@ +(define-module (freya packages mozillia) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu) + #:use-module (gnu packages bash) + #:use-module (gnu packages linux) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix build-system trivial) + #:use-module (nonguix build-system binary) + #:use-module (nongnu packages mozilla)) + +(define-public firefox-wayland-new + (package + (name "firefox-wayland-new") + (source #f) + (version "0.1") + (synopsis "Simple wrapper for pipewire in firefox") + (description "Simple wrapper for pipewire in firefox") + (home-page "http://mozilla.org/") + (license license:mpl2.0) + (inputs + `(("bash" ,bash-minimal) + ("pipewire" ,pipewire) + ("firefox" ,firefox))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((bash (assoc-ref %build-inputs "bash")) + (firefox (assoc-ref %build-inputs "firefox")) + (pipewire (assoc-ref %build-inputs "pipewire")) + (out (assoc-ref %outputs "out")) + (exe (string-append out "/bin/firefox"))) + (mkdir-p (dirname exe)) + + (call-with-output-file exe + (lambda (port) + ;; NOTE: added "export LD_LIBRARY_PATH=pipewire" + ;; maybe this can be done better with `wrap-programm' + (format port "#!~a \n +export LD_LIBRARY_PATH=~a \n +export MOZ_ENABLE_WAYLAND=1 \n +export MOZ_USE_XINPUT2=1 \n +exec ~a $@\n" + (string-append bash "/bin/bash") + (string-append pipewire "/lib") + (string-append firefox "/bin/firefox")))) + (chmod exe #o555) + + ;; Provide the manual and .desktop file. + (copy-recursively (string-append firefox "/share") + (string-append out "/share")) + (substitute* (string-append + out "/share/applications/firefox.desktop") + ((firefox) out)) + #t)))))) + diff --git a/modules/freya/packages/shells.scm b/modules/freya/packages/shells.scm new file mode 100644 index 0000000..ce0e6e7 --- /dev/null +++ b/modules/freya/packages/shells.scm @@ -0,0 +1,45 @@ +(define-module (freya packages shells) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages version-control) + #:use-module (gnu packages web) + #:use-module (gnu packages bash) + #:use-module (gnu packages) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system trivial) + #:use-module (guix utils) + #:use-module (guix gexp)) + +(define-public zsh-autosuggestions + (package + (name "zsh-autosuggestions") + (version "0.7.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/zsh-users/zsh-autosuggestions") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1g3pij5qn2j7v7jjac2a63lxd97mcsgw6xq6k5p7835q9fjiid98")) + (file-name (git-file-name name version)))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/share/zsh/zsh-autosuggestions")) + (source (assoc-ref %build-inputs "source"))) + (mkdir-p bin) + (copy-recursively source bin))))) + (home-page "https://github.com/zsh-users/zsh-autosuggestions") + (synopsis "Fish-like autosuggestions for zsh") + (description "Fish-like fast/unobtrusive autosuggestions for zsh. It suggests commands as you type based on history and completions.") + (license license:expat))) + + diff --git a/modules/freya/packages/vim.scm b/modules/freya/packages/vim.scm new file mode 100644 index 0000000..60323f3 --- /dev/null +++ b/modules/freya/packages/vim.scm @@ -0,0 +1,50 @@ +(define-module (freya packages vim) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages vim) + #:use-module (gnu packages gcc) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix utils) + #:use-module (guix build-system trivial)) + +(define-public neovim-new + (package + (inherit neovim) + (name "neovim-new") + (native-inputs + (modify-inputs (package-native-inputs neovim) + (prepend gcc-12))))) + +(define-public vim-plug + (package + (name "vim-plug") + (version "0.11.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/junegunn/vim-plug") + (commit version))) + (sha256 + (base32 + "0bfgadn31n516x0m0kr88jk9x79rl6zllnwij759wpazmw1p0xg8")) + (file-name (git-file-name name version)))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/share/vim")) + (source (assoc-ref %build-inputs "source"))) + (mkdir-p bin) + (chdir source) + (install-file "plug.vim" bin))))) + (home-page "https://github.com/vinceliuice/Lavanda-gtk-e") + (synopsis "Minimalist Vim Plugin Manager") + (description "Minimalist Vim Plugin Manager") + (license license:expat))) + + diff --git a/modules/freya/packages/virtualization.scm b/modules/freya/packages/virtualization.scm new file mode 100644 index 0000000..8f92915 --- /dev/null +++ b/modules/freya/packages/virtualization.scm @@ -0,0 +1,47 @@ +(define-module (freya packages virtualization) + #:use-module (gnu packages) + #:use-module (gnu packages package-management) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages virtualization) + #:use-module (gnu packages firmware) + #:use-module (guix packages) + #:use-module (guix utils) + #:use-module (guix gexp)) + +(define-public libvirt-new + (package + (inherit libvirt) + (name "libvirt-new") + (inputs + (modify-inputs (package-inputs libvirt) + (append qemu))) + (arguments + (substitute-keyword-arguments (package-arguments libvirt) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'install-uefi + (lambda _ + (let ((fmw (string-append #$output "/share/qemu"))) + (mkdir-p fmw) + (copy-recursively #$(file-append qemu "/share/qemu") fmw)) + )) + )))))) + +(define-public virt-manager-new + (package + (inherit virt-manager) + (name "virt-manager-new") + (inputs + (modify-inputs (package-inputs virt-manager) + (append qemu))) + (arguments + (substitute-keyword-arguments (package-arguments virt-manager) + ((#:phases phases) + #~(modify-phases #$phases + (add-after 'install 'install-uefi + (lambda _ + (let ((fmw (string-append #$output "/share/qemu"))) + (mkdir-p fmw) + (copy-recursively #$(file-append qemu "/share/firmware") fmw)) + )) + )))))) diff --git a/modules/freya/packages/wm.scm b/modules/freya/packages/wm.scm new file mode 100644 index 0000000..f333fcb --- /dev/null +++ b/modules/freya/packages/wm.scm @@ -0,0 +1,277 @@ +(define-module (freya packages wm) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages wm) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages cpp) + #:use-module (gnu packages gcc) + #:use-module (gnu packages build-tools) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages gtk) + #:use-module (gnu packages gl) + #:use-module (gnu packages linux) + #:use-module (gnu packages pciutils) + #:use-module (guix download) + #:use-module (guix packages) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system meson) + #:use-module (guix build utils) + #:use-module (rosenthal packages wm) + #:use-module (rosenthal packages freedesktop) + #:use-module (guix utils)) + + +(define-public swaylock-effects-new + (package + (inherit swaylock-effects) + (version "1.6.11") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jirutka/swaylock-effects") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0j7dxn66xqlf6iv2arqzz7mxlh7nf85anvpyf30d2frcidarda9h")))) + (inputs (modify-inputs (package-inputs swaylock-effects) (delete "linux-pam"))))) + + +(define hwdata-for-hyprland + (package + (inherit hwdata) + (arguments + (substitute-keyword-arguments (package-arguments hwdata) + ((#:phases _) #~%standard-phases))) + (outputs '("out")))) + + +(define libdrm-for-hyprland + (package + (inherit libdrm) + (name "libdrm") + (version "2.4.120") + (source (origin + (method url-fetch) + (uri (string-append + "https://dri.freedesktop.org/libdrm/libdrm-" + version ".tar.xz")) + (sha256 + (base32 + "0yijzgg6rdsa68bz03sw0lcfa2nclv9m3as1cja50wkcyxim7x9v")))))) + + +(define wayland-protocols-new + (package + (inherit wayland-protocols) + (name "wayland-protocols") + (version "1.36") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.freedesktop.org/wayland/wayland-protocols" + "/-/releases/" version "/downloads/" + "wayland-protocols-" version ".tar.xz")) + (sha256 + (base32 + "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) + + +(define hyprland-unbundle-wlroots-patch + (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/Hyprland" "/raw/" + "cba1ade848feac44b2eda677503900639581c3f4" + "/nix/patches/meson-build.patch")) + (sha256 + (base32 "0fwvsshz3k6061p3hdl175pydmj80vnw5rm4xfcn64w1ssfq7liw")))) + + +(define wayland-protocols-for-hyprland + (package + (inherit wayland-protocols) + (name "wayland-protocols") + (version "1.36") + (source (origin + (method url-fetch) + (uri (string-append + "https://gitlab.freedesktop.org/wayland/wayland-protocols" + "/-/releases/" version "/downloads/" + "wayland-protocols-" version ".tar.xz")) + (sha256 + (base32 + "14kyxywpfkgpjpkrybs28q1s2prnz30k1b4zap5a3ybrbvh4vzbi")))))) + + +(define wlroots-for-hyprland + (let ((base wlroots) + (revision "1") + (commit "5c1d51c5a2793480f5b6c4341ad0797052aec2ea")) + (package + (inherit base) + (name "wlroots") + (version (git-version "0.18.0-dev-hyprland" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/wlroots-hyprland") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0gy0g0kxb3q1wjqrypnvmrxcb4ld3advikchygpwpfp4s9v0mmvd")))) + (arguments + (substitute-keyword-arguments (package-arguments wlroots) + ((#:phases phases #~%standard-phases) + #~(modify-phases #$phases + (add-after 'unpack 'adjust-patching-script + (lambda _ + (substitute* "patches/apply.sh" + (("apply \\|\\| check_applied \\|\\| fail") + "patch -Np1 < $PATCH")))))))) + (propagated-inputs + (modify-inputs (package-propagated-inputs wlroots) + (prepend libdrm-for-hyprland) + (replace "libinput-minimal" libinput-minimal-1.24.0) + (replace "wayland-protocols" wayland-protocols-for-hyprland))) + (native-inputs + (modify-inputs (package-native-inputs base) + (replace "hwdata" `(,hwdata-for-hyprland "out"))))))) + + +(define-public hyprland-new + (package + (inherit hyprland) + (version "0.40.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/hyprwm/Hyprland" + "/releases/download/v" version + "/source-v" version ".tar.gz")) + (patches (list hyprland-unbundle-wlroots-patch)) + (sha256 + (base32 + "0f4hs8qzmfmg4lr491b2inanb02xn4xa0gwb8a0ks3m64iwzx589")))) + (inputs + (modify-inputs + (package-inputs hyprland) + (append tomlplusplus))))) + + +(define-public hyprland-plugin-hy3 + (package + (name "hyprland-plugin-hy3") + (version "0.40.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/outfoxxed/hy3" + "/archive/refs/tags/hl" version ".tar.gz")) + (sha256 + (base32 + "13rnv24nc52fzvh7ryl7q91cr59z0qsv4vlnps5vr78g58lx11j0")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f + #:configure-flags '("DCMAKE_BUILD_TYPE=Release"))) + (native-inputs + (list meson pkg-config)) + (inputs + (list pixman + libdrm + pango + gcc-13 + libinput + hyprland-new + hyprland-protocols + hyprwayland-scanner + hyprlang + wayland + wlroots-for-hyprland)) + (license license:gpl3) + (home-page "https://github.com/outfoxxed/hy3") + (synopsis "i3 / sway like layout for hyprland.") + (description "Hyprland plugin for an i3 / sway like manual tiling layout"))) + + +(define-public hyprland-plugin-hyprbars + (let ((commit "fd133914bf1921db2a26627698f914478f6a9471") + (revision "1")) + (package + (name "hyprland-plugin-hyprbars") + (version (git-version "0.40.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprland-plugins.git") + (commit commit))) + (sha256 + (base32 + "0518ggbam7rllf9xfzhfn9fp364rbiycsrkag74jscy5br5cyl4g")) + (file-name (git-file-name name version)))) + (build-system meson-build-system) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir + (lambda _ (chdir "../source/hyprbars/")))))) + (native-inputs + (list pkg-config)) + (inputs + (list pango + gcc-13 + libinput + hyprland-new + hyprland-protocols + hyprwayland-scanner + hyprlang + wayland + wlroots-for-hyprland)) + (license license:bsd-3) + (home-page "https://github.com/hyprwm/hyprland-plugins") + (synopsis "adds simple title bars to windows") + (description "adds simple title bars to windows")))) + + +(define-public hyprlock + (let ((commit "d9a6229434fba475ea42b634ee2f03919236798d") + (revision "1")) + (package + (name "hyprlock") + (version (git-version "0.3.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hyprwm/hyprlock") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19cg8vj4sgz5pxib9m08af1lilay9bckjhlr6h333s014l7y09sw")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) + (native-inputs + (list gcc-13 + pkg-config + mesa-headers + wayland)) + (inputs + (list cairo + pango + libxkbcommon + hyprlang + mesa + wayland-protocols + linux-pam)) + (propagated-inputs + (list libdrm + libglvnd)) + (home-page "https://github.com/hyprwm/hyprlock") + (license license:bsd-3) + (synopsis "Screen locker for Hyprland") + (description "Screen locker for hyprland.")))) + diff --git a/modules/freya/services/pipewire.scm b/modules/freya/services/pipewire.scm new file mode 100644 index 0000000..ccc71a3 --- /dev/null +++ b/modules/freya/services/pipewire.scm @@ -0,0 +1,99 @@ +(define-module (freya services pipewire) + #:use-module (gnu packages) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (gnu services configuration) + #:use-module (gnu home services) + #:use-module (gnu home services shepherd) + #:use-module (guix gexp)) + +(define (home-pipewire-profile-service config) + (map specification->package + (list "pipewire" + "wireplumber"))) + +(define (home-pipewire-shepherd-service config) + (list + ;; Pipewire daemon + (shepherd-service + (requirement '(dbus)) + (provision '(pipewire)) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(file-append pipewire "/bin/pipewire")) + #:log-file (string-append + (or (getenv "XDG_LOG_HOME") + (format #f "~a/.local/var/log" + (getenv "HOME"))) + "/pipewire.log") + #:environment-variables + (append (list "DISABLE_RTKIT=0") + (default-environment-variables))))) + ;; Pipewire-pulse + (shepherd-service + (requirement '(pipewire)) + (provision '(pipewire-pulse)) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(file-append pipewire "/bin/pipewire-pulse")) + #:log-file (string-append + (or (getenv "XDG_LOG_HOME") + (format #f "~a/.local/var/log" + (getenv "HOME"))) + "/pipewire-pulse.log") + #:environment-variables + (append (list "DISABLE_RTKIT=0") + (default-environment-variables))))) + ;; Wireplumber + (shepherd-service + (requirement '(pipewire)) + (provision '(wireplumber)) + (stop #~(make-kill-destructor)) + (start #~(make-forkexec-constructor + (list #$(file-append wireplumber "/bin/wireplumber")) + #:log-file (string-append + (or (getenv "XDG_LOG_HOME") + (format #f "~a/.local/var/log" + (getenv "HOME"))) + "/wireplumber.log") + #:environment-variables + (append (list "DISABLE_RTKIT=0") + (default-environment-variables))))))) + +(define (home-pipewire-xdg-configuration-service config) + `(("alsa/asoundrc" + ,(mixed-text-file + "asoundrc" + #~(string-append + "<" + #$(file-append + pipewire "/share/alsa/alsa.conf.d/50-pipewire.conf") + ">\n<" + #$(file-append + pipewire "/share/alsa/alsa.conf.d/99-pipewire-default.conf") + ">\n" + " + pcm_type.pipewire { + lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_pcm_pipewire.so") + " + } + ctl_type.pipewire { + lib " #$(file-append pipewire "/lib/alsa-lib/libasound_module_ctl_pipewire.so") + " + } + "))))) + +(define-public home-pipewire-service-type + (service-type (name 'home-pipewire) + (extensions + (list (service-extension + home-profile-service-type + home-pipewire-profile-service) + (service-extension + home-shepherd-service-type + home-pipewire-shepherd-service) + (service-extension + home-xdg-configuration-files-service-type + home-pipewire-xdg-configuration-service))) + (default-value #f) + (description "Configures and runs Pipewire and Wireplumber"))) diff --git a/modules/freya/system.scm b/modules/freya/system.scm new file mode 100644 index 0000000..6ff5d19 --- /dev/null +++ b/modules/freya/system.scm @@ -0,0 +1,227 @@ +(define-module (freya system) + #:use-module (gnu) + #:use-module (gnu system setuid) + #:use-module (gnu packages) + #:use-module (gnu packages admin) + #:use-module (gnu packages avahi) + #:use-module (gnu packages shells) + #:use-module (gnu packages tls) + #:use-module (gnu packages gtk) + #:use-module (gnu packages vpn) + #:use-module (gnu packages security-token) + #:use-module (gnu packages virtualization) + #:use-module (gnu services) + #:use-module (gnu services linux) + #:use-module (gnu services authentication) + #:use-module (gnu services security-token) + #:use-module (gnu services cups) + #:use-module (gnu services desktop) + #:use-module (gnu services networking) + #:use-module (gnu services xorg) + #:use-module (gnu services ssh) + #:use-module (gnu services nix) + #:use-module (gnu services sound) + #:use-module (gnu services docker) + #:use-module (gnu services avahi) + #:use-module (gnu services spice) + #:use-module (gnu services virtualization) + #:use-module (guix packages) + #:use-module (nongnu packages linux) + #:use-module (rosenthal packages wm) + #:use-module (srfi srfi-1) + #:use-module (freya packages wm) + #:use-module (freya packages certs) + #:use-module (freya packages virtualization)) + +(define %my-base-packages + (remove (lambda (package) + (member (package-name package) + (list "sudo" "nano"))) + %base-packages)) + +(define %backlight-udev-rule + (udev-rule + "90-backlight.rules" + (string-append "ACTION==\"add\", SUBSYSTEM==\"backlight\", " + "RUN+=\"/run/current-system/profile/bin/chgrp video /sys/class/backlight/%k/brightness\"" + "\n" + "ACTION==\"add\", SUBSYSTEM==\"backlight\", " + "RUN+=\"/run/current-system/profile/bin/chmod g+w /sys/class/backlight/%k/brightness\""))) + +(define-public base-operating-system + (operating-system + (kernel linux) + (firmware (list linux-firmware amd-microcode sof-firmware)) + (locale "en_US.utf8") + (timezone "America/New_York") + (keyboard-layout (keyboard-layout "us")) + (host-name "ThisWillChange") + + ;; The list of user accounts ('root' is implicit). + (users (cons* (user-account + (name "freya") + (comment "Freya Murphy") + (group "users") + (home-directory "/home/freya") + (shell (file-append zsh "/bin/zsh")) + (supplementary-groups '("wheel" "audio" "lp" "docker" "plugdev" "libvirt" "kvm" "netdev" "video" "tty"))) + %base-user-accounts)) + + (packages (append (map specification->package (list "swayfx" + "swaybg" + "wlogout" + "cage" + "sof-firmware" + "amd-microcode" + "alsa-utils" + "chrony" + "swayidle" + "dconf" + "alacritty" + "kitty" + "gnome-themes-extra" + "adwaita-icon-theme" + "hicolor-icon-theme" + "git" + "gvfs" + "gnupg" + "light" + "waybar" + "avahi" + "mako" + "grim" + "slurp" + "wl-clipboard" + "bluez" + "blueman" + "opendoas" + "wireguard-tools" + "xdg-desktop-portal" + "xdg-desktop-portal-wlr" + "xdg-desktop-portal-hyprland" + "v4l2loopback-linux-module" + "docker" + "linux-pam" + "pulseaudio" + "libx11" + "xorg-server-xwayland" + "fprintd" + "wireplumber" + "qemu" + "spice" + "xf86-video-qxl" + "zsh" + "mesa" + "mesa-utils" + "glu" + "vulkan-loader" + "vulkan-validationlayers" + "vulkan-tools" + "vulkan-headers" + "spirv-tools" + "spirv-headers" + "sdl2" + "openal" + "freealut" + "wxwidgets" + "libpcap" + "v4l2loopback-linux-module" + "neovim" + "gtk+" + "font-jetbrains-mono")) + (list swaylock-effects-new + virt-manager-new + freya-ca-certs + hyprland-new + hyprland-plugin-hy3 + hyprland-plugin-hyprbars + hyprlock) + %my-base-packages)) + + ;; Below is the list of system services. TO search for available + ;; services. run 'guix system search KEYWORD' in a terminal. + (services + (append (list + ;; To configure OpenSSH, pass an 'openssh-configuration' + ;; record as a second argument to 'service' below. + (service openssh-service-type) + (service pcscd-service-type) + (service spice-vdagent-service-type) + (simple-service 'wireguard-module + kernel-module-loader-service-type + '("wireguard")) + (service cups-service-type + (cups-configuration + (web-interface? #t))) + ;; Avahi is only present for CUPS to support "automagic" printing + (service avahi-service-type + (avahi-configuration + (publish? #f) ;; do not advertise this machiene + (publish-workstation? #f))) ; do not advertise, I want this to be as silent as possible + (service docker-service-type) + ;(service chrony-sericve-type) + (service nix-service-type) + (service libvirt-service-type + (libvirt-configuration + (libvirt libvirt-new) + (unix-sock-group "libvirt") + (tls-port "16555"))) + (service virtlog-service-type) + (service bluetooth-service-type + (bluetooth-configuration + (experimental #t) + (fast-connectable? #t))) + (service pam-limits-service-type) + (service fprintd-service-type) + (udev-rules-service 'fido2 libfido2 #:groups '("plugdev"))) + + ;; This is the default list of services we + ;; are appending to. + (modify-services %desktop-services + (guix-service-type config => + (guix-configuration + (inherit config) + (substitute-urls + (append (list "https://substitutes.nonguix.org") + %default-substitute-urls)) + (authorized-keys + (cons* (plain-file "non-guix.pub" + "(public-key + (ecc + (curve Ed25519) + (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#) + ) + )" ) %default-authorized-guix-keys)))) + (udev-service-type config => + (udev-configuration + (inherit config))) + (delete pulseaudio-service-type) + (delete gdm-service-type) + (delete avahi-service-type) + (delete alsa-service-type)))) + + (name-service-switch %mdns-host-lookup-nss) + + (setuid-programs + (append (list (file-like->setuid-program + (file-append + swaylock-effects-new + "/bin/swaylock")) + (file-like->setuid-program + (file-append + (specification->package "opendoas") + "/bin/doas"))) + (delete sudo %setuid-programs))) + + (file-systems (cons* + (file-system + (mount-point "/tmp") + (device "none") + (type "tmpfs") + (check? #f)) + %base-file-systems)) + + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")) + (keyboard-layout keyboard-layout))))) |