Compare commits
No commits in common. "main" and "keyring" have entirely different histories.
|
@ -1,6 +0,0 @@
|
|||
|
||||
(authorizations
|
||||
(version 0)
|
||||
(("2C13 7D46 9D2D 069F BDFD 0607 9880 32A5 638E E799"
|
||||
(name "freya"))))
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
(channel
|
||||
(version 0)
|
||||
(keyring-reference "keyring")
|
||||
(url "https://git.stationery.faith/stationery-society/stationery-guix")
|
||||
(dependencies
|
||||
(channel
|
||||
(name nonguix)
|
||||
(url "https://gitlab.com/nonguix/nonguix")
|
||||
(branch "master")
|
||||
(introduction
|
||||
(channel-introduction
|
||||
(version 0)
|
||||
(commit "897c1a470da759236cc11798f4e0a5f7d4d59fbc")
|
||||
(signer "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))))
|
51
README.md
51
README.md
|
@ -1,51 +0,0 @@
|
|||
## Stationery Guix Channel
|
||||
|
||||
Stationery Guix is a channel for [GNU Guix](https://guix.gnu.org).
|
||||
|
||||
This is not a official guix channel, nor should this channel be portrayed as one. Please do not go and announce this channel in any official guix communications or media channels. Those are for official guix related software only. This channel contains [non free software](https://www.gnu.org/philosophy/categories.html) and GNU has a [strict policy](https://www.gnu.org/distros/free-system-distribution-guidelines.html) against it.
|
||||
|
||||
## Warning
|
||||
|
||||
Before using this channel, understand that this only contains build files and not any source code at all. All code is base32 hashed and gpg verified and in theory should be tamper proof. This does NOT gurentee that the software itself is free and safe to use. All code has been vetted to the best to our abilities, but we do not hold any responsibility nor give any warrenty for any harm or issue.
|
||||
|
||||
## Installation
|
||||
|
||||
Stationery Guix can be installed as a [Guix channel](https://www.gnu.org/software/guix/manual/en/html_node/Channels.html). To do so, add it to `~/.config/guix/channels.scm`:
|
||||
```scheme
|
||||
(channel
|
||||
(name 'stationery)
|
||||
(url "https://git.stationery.faith/stationery-society/stationery-guix")
|
||||
(branch "main")
|
||||
;(commit
|
||||
; "e2fe15a45c3c0afde3467a2e3d6f0292ad6ee636")
|
||||
(introduction
|
||||
(make-channel-introduction
|
||||
"e2fe15a45c3c0afde3467a2e3d6f0292ad6ee636"
|
||||
(openpgp-fingerprint
|
||||
"4F6B C11C EBB2 F242 14B9 0FAC 9FF6 937B 829E 565A"))))
|
||||
````
|
||||
Then run `guix pull`.
|
||||
|
||||
The commit feild is optional if you wish to pin a speific commit.
|
||||
|
||||
All modules are under the `stationery packages` or `stationery services` namespaces.
|
||||
|
||||
## Deliverables
|
||||
|
||||
This channel currently provides the current services and packages
|
||||
|
||||
### Packages
|
||||
|
||||
- `easyeffects`
|
||||
- `lavanda-gtk-theme`
|
||||
- `firefox-wayland` - modified version from the nonguix channel with screencasting support
|
||||
- `zsh-autosuggestions`
|
||||
- `neovim` - modified version from the guix channel compiled with gcc12 for newer plugin support
|
||||
- `vim-plug`
|
||||
- `virt-manager` - modified version from the guix channel with edk2 UEFI firmware
|
||||
- `libvirt` - modified version from the guix channel with edk2 UEFI firmware
|
||||
- `swaylock-effects1 - modified version from the guix channel without pam
|
||||
|
||||
### Services
|
||||
|
||||
- `home-pipewire-service-type`
|
31
freya-638EE799.key
Normal file
31
freya-638EE799.key
Normal file
|
@ -0,0 +1,31 @@
|
|||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEZOu3hBYJKwYBBAHaRw8BAQdA2vMy2QY03GrTkJ5u+1933D28aJWSqFLy3vPV
|
||||
h2PotU60IFR5bGVyIE11cnBoeSA8dHlsZXJtQHR5bGVybS5kZXY+iJMEExYIADsC
|
||||
GwEFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AWIQRPa8Ec67LyQhS5D6yf9pN7gp5W
|
||||
WgUCZO3newIZAQAKCRCf9pN7gp5WWvI0APwKZyIz66NbiC48POe9I82Lzb2AZQlF
|
||||
7tjucgox3wCsUwD/UDgblwvU4hoiF6L6xD3XsEFdEIZk5qvDSwIKtWAsXAO0J1R5
|
||||
bGVyIE11cnBoeSA8dHlsZXJtdXJwaHk1MzRAZ21haWwuY29tPoiQBBMWCAA4FiEE
|
||||
T2vBHOuy8kIUuQ+sn/aTe4KeVloFAmTt5pICGwEFCwkIBwIGFQoJCAsCBBYCAwEC
|
||||
HgECF4AACgkQn/aTe4KeVlouDQEAmR3iEob7UVdvtTxu8sqegf7PK2EVx8xDsUks
|
||||
7NyvwKcA/A2M2pigal2z8ANOD7E8AirkPV91mWmuzDroquGlNFoOtB5UeWxlciBN
|
||||
dXJwaHkgPHRhbTIyMTRAcml0LmVkdT6IkAQTFggAOBYhBE9rwRzrsvJCFLkPrJ/2
|
||||
k3uCnlZaBQJlEx4jAhsBBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEJ/2k3uC
|
||||
nlZamGUBALU2Rk8gcPCaQRzZK/o4+gpZ0FdbnjQGHFe+EX5l+IATAP9wt7nJnre7
|
||||
kgQ22/1qlCTxMqN+8v1UOTHwy+RJbW5JCLgzBGTrt/sWCSsGAQQB2kcPAQEHQKqp
|
||||
OSVhI0LTmkLduZdi5+PcR1Zp6/ZSmdp8lpyVmbZyiPUEGBYIACYWIQRPa8Ec67Ly
|
||||
QhS5D6yf9pN7gp5WWgUCZOu3+wIbAgUJAeEzgACBCRCf9pN7gp5WWnYgBBkWCAAd
|
||||
FiEELBN9Rp0tBp+9/QYHmIAypWOO55kFAmTrt/sACgkQmIAypWOO55mhYQEAlFZq
|
||||
HQoJQTZ53UlgOEnz5AzGXQyqKtAAzPfyYG6VQ88A+weI8QVXV62v/XCDFBMeIIQN
|
||||
zkl9SeN3Ku4cHg0PXZ0D4KEBAJ2kmJ0+DAYFTakN/+nvVfuqTWo5wdeCMwBWUELy
|
||||
4RJbAP9kXllT7kBkDODorzBSNgCEtuY1ScT0jF9+f3HMd8YLA7gzBGTruBEWCSsG
|
||||
AQQB2kcPAQEHQIpVaqXqumvdbXFJ8FTGQiSv4O7B/JyR94IQMsGravcdiH4EGBYI
|
||||
ACYWIQRPa8Ec67LyQhS5D6yf9pN7gp5WWgUCZOu4EQIbIAUJAeEzgAAKCRCf9pN7
|
||||
gp5WWmZ9APwK9aBDIaVLsOYBU2VhBeY+xTkvu3GeytlWXMoYjE5anAEAmHExRYdI
|
||||
JF+TYwQvrigbYINt0C18CXh2PtknpZr2aQ+4OARk67ghEgorBgEEAZdVAQUBAQdA
|
||||
Z4Djgf0W0QUr00nui3K0nN3rlyTnZ/BRAZzp7u0HAC8DAQgHiH4EGBYIACYWIQRP
|
||||
a8Ec67LyQhS5D6yf9pN7gp5WWgUCZOu4IQIbDAUJAeEzgAAKCRCf9pN7gp5WWmpt
|
||||
AP9r0k+iWo14zqsLFOSgzFlDZ+Rw3JM/agR64WQxjTVsiwD+PNzeK04PlN/clCW5
|
||||
tnhF4w/PZMMmuv6xfr45+1aIgg8=
|
||||
=+rtI
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
|
@ -1,79 +0,0 @@
|
|||
(define-module (stationery 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+)))
|
|
@ -1,65 +0,0 @@
|
|||
(define-module (stationery 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))))
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
(define-module (stationery packages mozillia)
|
||||
#:use-module (gnu)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (gnu packages bash)
|
||||
#:use-module (gnu packages linux)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module (nongnu packages mozilla))
|
||||
|
||||
(define firefox*
|
||||
(package/inherit
|
||||
firefox
|
||||
(inputs
|
||||
(modify-inputs
|
||||
(package-inputs firefox)
|
||||
(delete "pipewire")
|
||||
(append pipewire)))))
|
||||
|
||||
(define-public firefox-wayland
|
||||
(package
|
||||
(inherit firefox*)
|
||||
(name "firefox-wayland")
|
||||
(native-inputs '())
|
||||
(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
|
||||
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))))))
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
(define-module (stationery packages shells)
|
||||
#: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 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)))
|
||||
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
(define-module (stationery packages vim)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (guix build-system trivial)
|
||||
#:use-module ((gnu packages vim) #:prefix vim:)
|
||||
#:use-module (gnu packages gcc))
|
||||
|
||||
(define-public neovim
|
||||
(package
|
||||
(inherit vim:neovim)
|
||||
(name "neovim")
|
||||
(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)))
|
||||
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
(define-module (stationery packages virtualization)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix utils)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (gnu packages package-management)
|
||||
#:use-module (gnu packages build-tools)
|
||||
#:use-module ((gnu packages virtualization) #:prefix virt:)
|
||||
#:use-module (gnu packages firmware)
|
||||
#:use-module (guix gexp))
|
||||
|
||||
(define-public libvirt
|
||||
(package
|
||||
(inherit virt:libvirt)
|
||||
(name "libvirt")
|
||||
(inputs
|
||||
(modify-inputs (package-inputs virt:libvirt)
|
||||
(append qemu)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments virt: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
|
||||
(package
|
||||
(inherit virt:virt-manager)
|
||||
(name "virt-manager")
|
||||
(inputs
|
||||
(modify-inputs (package-inputs virt:virt-manager)
|
||||
(append qemu)))
|
||||
(arguments
|
||||
(substitute-keyword-arguments (package-arguments virt: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))
|
||||
))
|
||||
))))))
|
|
@ -1,22 +0,0 @@
|
|||
(define-module (stationery packages wm)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix utils)
|
||||
#:use-module ((gnu packages wm) #:prefix wm:))
|
||||
|
||||
(define-public swaylock-effects
|
||||
(package
|
||||
(inherit wm: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 wm:swaylock-effects) (delete "linux-pam")))))
|
|
@ -1,99 +0,0 @@
|
|||
(define-module (stationery 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")))
|
Loading…
Reference in a new issue