From 401424f511e20b111ea179afe0f7d829d0714aca Mon Sep 17 00:00:00 2001 From: Jakub Czajka Date: Fri, 23 Dec 2022 21:45:38 +0100 Subject: [PATCH] [system] Package a script for controlling volume level. --- conf/system/volume.scm | 41 +++++++++++++++++++++++++++++++++++++++++ scripts/volume | 12 ++++++++++++ system.scm | 6 ++++-- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 conf/system/volume.scm create mode 100755 scripts/volume diff --git a/conf/system/volume.scm b/conf/system/volume.scm new file mode 100644 index 0000000..7f457bf --- /dev/null +++ b/conf/system/volume.scm @@ -0,0 +1,41 @@ +;; Copyright (c) 2022 Jakub Czajka +;; License: GPL-3.0 or later. +;; +;; volume.scm - package for controling system's volume. + +(define-module (conf system volume) + #:use-module (gnu packages linux) + #:use-module (gnu services) + #:use-module (guix build-system trivial) + #:use-module (guix gexp) + #:use-module (guix licenses) + #:use-module (guix packages) + #:export (volume)) + +(define volume + (package + (name "volume") + (version "1.0") + (source + (local-file + (string-concatenate + (list (getenv "GUIX_PACKAGE_PATH") + "/scripts/volume")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + + (let* ((ins (assoc-ref %build-inputs "source")) + (out (assoc-ref %outputs "out")) + (dir (string-concatenate (list out "/bin"))) + (file (string-append dir "/volume"))) + (mkdir-p dir) + (copy-file ins file) + (chmod file #o555))))) + (synopsis "Script for controlling the volume level.") + (description "Wraps a scripts which can control system's volume level.") + (home-page "https://git.ekhem.eu.org") + (license gpl3+))) diff --git a/scripts/volume b/scripts/volume new file mode 100755 index 0000000..fb7ed0e --- /dev/null +++ b/scripts/volume @@ -0,0 +1,12 @@ +#!/bin/sh +# Copyright (c) 2022 Jakub Czajka +# License: GPL-3.0 or later. + +if [ -z "${1}" ] +then + echo "New volume level not specified" + exit 1 +fi + +SCARD=$(amixer | head -n1 | cut -d\' -f2) +amixer set "${SCARD}" "${1}" diff --git a/system.scm b/system.scm index ca9f2be..26bf5a9 100644 --- a/system.scm +++ b/system.scm @@ -3,7 +3,8 @@ ;; ;; system.scm - system configuration for GNU Guix. -(use-modules (gnu) +(use-modules (conf system volume) + (gnu) (gnu system nss)) (use-package-modules certs @@ -59,7 +60,8 @@ (packages (append (list gnu-make - nss-certs) + nss-certs + volume) %base-packages)) (timezone "Europe/Warsaw") (locale "en_US.UTF-8") -- 2.39.5