summaryrefslogtreecommitdiff
path: root/modules/freya
diff options
context:
space:
mode:
Diffstat (limited to 'modules/freya')
-rw-r--r--modules/freya/packages/audio.scm79
-rw-r--r--modules/freya/packages/certs.scm51
-rw-r--r--modules/freya/packages/gnome-xyz.scm65
-rw-r--r--modules/freya/packages/golang.scm833
-rw-r--r--modules/freya/packages/mozillia.scm59
-rw-r--r--modules/freya/packages/shells.scm45
-rw-r--r--modules/freya/packages/vim.scm50
-rw-r--r--modules/freya/packages/virtualization.scm47
-rw-r--r--modules/freya/packages/wm.scm277
-rw-r--r--modules/freya/services/pipewire.scm99
-rw-r--r--modules/freya/system.scm227
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)))))