Compare commits
2 commits
0a51ee40cc
...
7d26b71505
| Author | SHA1 | Date | |
|---|---|---|---|
| 7d26b71505 | |||
| 2edadbb43f |
8 changed files with 53 additions and 7 deletions
|
|
@ -19,6 +19,7 @@ enabled_modules:
|
||||||
- forgiving-power-button
|
- forgiving-power-button
|
||||||
- xdg-user-dirs
|
- xdg-user-dirs
|
||||||
- atama-branding
|
- atama-branding
|
||||||
|
- pipewire
|
||||||
|
|
||||||
# Module processing mode
|
# Module processing mode
|
||||||
# parallel: Collect and install all modules at once (faster, default)
|
# parallel: Collect and install all modules at once (faster, default)
|
||||||
|
|
@ -76,9 +77,7 @@ services:
|
||||||
# I don't think it's possible to let DCli manage both user and system services at the same time, so I'm commenting-out user services out of this for now
|
# I don't think it's possible to let DCli manage both user and system services at the same time, so I'm commenting-out user services out of this for now
|
||||||
#services:
|
#services:
|
||||||
# enabled:
|
# enabled:
|
||||||
# - blend-files
|
|
||||||
# - hyprpolkitagent
|
# - hyprpolkitagent
|
||||||
# - wireplumber
|
|
||||||
# disabled: []
|
# disabled: []
|
||||||
# scope: user
|
# scope: user
|
||||||
|
|
||||||
|
|
|
||||||
3
modules/pipewire/dependencies.yaml
Normal file
3
modules/pipewire/dependencies.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
description: Packages needed to run the module's hook.
|
||||||
|
packages:
|
||||||
|
- bash
|
||||||
12
modules/pipewire/hook.sh
Normal file
12
modules/pipewire/hook.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# extra precautions until run_hooks_as_user: true is fixed
|
||||||
|
if [ -n "$SUDO_USER" ] && [ "$EUID" == 0 ]; then
|
||||||
|
exec su "$SUDO_USER" $0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl --user enable wireplumber.service --now
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
echo "[WARN] You seem to be running a SystemD-less distro, so WirePlumber couldn't be started automatically. This is not that big of a deal; just start it (AS A USER SERVICE!) manually yourself, according to however your init system works.";
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
14
modules/pipewire/module.yaml
Normal file
14
modules/pipewire/module.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
description: Installs all Pipewire components needed for a functioning session - including Pipewire itself, support for various common audio protocols (alsa, PulseAudio, JACK), libcamera support, and WirePlumber for maintaining a Pipewire session. WirePlumber also be set to auto-start for user sessions (for whoever ran DCli) on SystemD-based distros.
|
||||||
|
package-files:
|
||||||
|
- dependencies.yaml
|
||||||
|
- packages.yaml
|
||||||
|
post_install_hook: "hook.sh" #I'd love to not need a hook for this, but it seems that service management isn't possible in DCli modules (yet?), and can only be done in the host-file or via a hook.
|
||||||
|
post_disable_hook: "unhook.sh" #No matter what I tried, I couldn't get this hook to actually trigger, so it seems to be an in-development stub that doesn't work yet (especially given how there was literally 0 documentation on this - I simply spotted it being listed in auto-generated modules). For now, the unhook script has to be run manually if you want to undo the power button setup. Nevertheless, it's listed here, so it should Just Work [TM] when DCli adds support.
|
||||||
|
run_hooks_as_user: true
|
||||||
|
hook_behavior: always #...instead of "once" because this lets your service setup be self-healing (even if you mess something up, next dcli sync will restore it); ...instead of "ask" because I don't like pestering people with RUN THIS HOOK? RUN THIS HOOK? (if anything, that makes it more likely that they will "[S]kip always", thus rendering the „self-healing” non-functional)
|
||||||
|
author: "Guzio"
|
||||||
|
version: "1.0.0"
|
||||||
|
category: "media"
|
||||||
|
tags: []
|
||||||
|
license: "MIT"
|
||||||
|
upstream_url: "https://gitdab.com/Guzio/system/src/branch/main/modules/pipewire"
|
||||||
9
modules/pipewire/packages.yaml
Normal file
9
modules/pipewire/packages.yaml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
description: Pipewire packages
|
||||||
|
packages:
|
||||||
|
- pipewire
|
||||||
|
- pipewire-audio
|
||||||
|
- pipewire-alsa
|
||||||
|
- pipewire-pulse
|
||||||
|
- pipewire-jack
|
||||||
|
- pipewire-libcamera
|
||||||
|
- wireplumber
|
||||||
12
modules/pipewire/unhook.sh
Normal file
12
modules/pipewire/unhook.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# extra precautions until run_hooks_as_user: true is fixed
|
||||||
|
if [ -n "$SUDO_USER" ] && [ "$EUID" == 0 ]; then
|
||||||
|
exec su "$SUDO_USER" $0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl --user disable wireplumber.service --now
|
||||||
|
if [ "$?" -ne 0 ]; then
|
||||||
|
echo "[WARN] You seem to be running a SystemD-less distro, so WirePlumber couldn't be stopped automatically. This is not that big of a deal; just stop it (AS A USER SERVICE!) manually yourself, according to however your init system works.";
|
||||||
|
exit 0;
|
||||||
|
fi
|
||||||
|
|
@ -41,9 +41,6 @@ packages:
|
||||||
- 'glm' #Needed by: Hyprgrass
|
- 'glm' #Needed by: Hyprgrass
|
||||||
- 'iio-sensor-proxy' #Command: monitor-sensors; Needed for: custom rotate scripts
|
- 'iio-sensor-proxy' #Command: monitor-sensors; Needed for: custom rotate scripts
|
||||||
- 'wl-clip-persist' #Provides the most basic fucking functionality that exists on literally every OS on Earth ever, ie. the ability to paste from clipboard after the app that copied stuff there closes. How the FUCK is this not a standard on Wayland???
|
- 'wl-clip-persist' #Provides the most basic fucking functionality that exists on literally every OS on Earth ever, ie. the ability to paste from clipboard after the app that copied stuff there closes. How the FUCK is this not a standard on Wayland???
|
||||||
- 'pipewire-alsa' #Audio won't work without it (idk what cause it to no-longer-be-autoinstalled, all I know is that it suddenly stopped working)
|
|
||||||
- 'pipewire-pulse' #Bluetooth audio won't work without it (?????? https://bbs.archlinux.org/viewtopic.php?id=304269 ??)
|
|
||||||
- 'pipewire-jack' #My pronouns are all/in
|
|
||||||
deb_packages: []
|
deb_packages: []
|
||||||
exclude: []
|
exclude: []
|
||||||
conflicts: []
|
conflicts: []
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
description: Configures XDG directories the xdg-user-dirs package, if not configured already. Otherwise, it just installs the xdg-user-dirs package, which can still be useful for querying said dirs.
|
description: Configures XDG directories the xdg-user-dirs package (for whoever ran DCli), if not configured already. Otherwise, it just installs the xdg-user-dirs package, which can still be useful for querying said dirs.
|
||||||
package-files:
|
package-files:
|
||||||
- dependencies.yaml
|
- dependencies.yaml
|
||||||
post_install_hook: "hook.sh"
|
post_install_hook: "hook.sh"
|
||||||
run_hooks_as_user: true
|
run_hooks_as_user: true
|
||||||
hook_behavior: always #...instead of "once" because the XDG spec can change from time to time (eg. the recent Projects dir), and we want to make sure that the user's keeps up.; ...instead of "ask" because I don't like pestering people with RUN THIS HOOK? RUN THIS HOOK? questions; ...because running this command multiple times is safe, anyway - it only fixes/adds broken/missing entires as it encounters them instead of overwriting everything or something like that (arguably, this makes "always" safer than "once"/"ask" because it makes your config self-healing)
|
hook_behavior: always #...instead of "once" because the XDG spec can change from time to time (eg. the recent Projects dir), and we want to make sure that the user's keeps up.; ...instead of "ask" because I don't like pestering people with RUN THIS HOOK? RUN THIS HOOK? questions; ...because running this command multiple times is safe, anyway - it only fixes/adds broken/missing entires as it encounters them instead of overwriting everything or something like that (arguably, this makes "always" safer than "once"/"ask" because it makes your config self-healing)
|
||||||
author: "Guzio"
|
author: "Guzio"
|
||||||
version: "1.0.1"
|
version: "1.0.2"
|
||||||
category: "media"
|
category: "media"
|
||||||
tags: []
|
tags: []
|
||||||
license: "MIT"
|
license: "MIT"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue