diff options
Diffstat (limited to 'kolwynia/os/ymir.scm')
| -rw-r--r-- | kolwynia/os/ymir.scm | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/kolwynia/os/ymir.scm b/kolwynia/os/ymir.scm new file mode 100644 index 0000000..bba1b3b --- /dev/null +++ b/kolwynia/os/ymir.scm @@ -0,0 +1,117 @@ +;;; Copyright © 2025 bdunahu <bdunahu@operationnull.com> +(define-module (kolwynia os ymir) + #:use-module ((kolwynia os ymir users) + #:prefix users:) + #:use-module ((kolwynia os ymir packages) + #:prefix pkg:) + #:use-module (gnu) + #:use-module (gnu services desktop) + #:use-module (gnu system) + #:use-module (gnu packages suckless) + #:export (ymir)) + +;;; Commentary: +;;; +;;; ymir defines a default system configuration +;;; +;;; Code: + +(use-service-modules audio admin avahi base + dbus desktop file-sharing + networking sound ssh xorg) + +;;; generates a temporary file to notify a keyboard was plugged. +(define %keyboard-udev-rule + (udev-rule + "90-keyboard-hotplug.rules" + (string-append "ATTR{idVendor}==\"04b4\", ATTR{idProduct}==\"0510\", ACTION==\"add\", RUN+=\"/run/current-system/profile/bin/touch /tmp/keyboard_plugged\" RUN+=\"/run/current-system/profile/bin/chown " users:bdunahu-str " /tmp/keyboard_plugged\""))) + +(define ymir + (operating-system + (host-name "ymir") + (locale "en_US.utf8") + (timezone + (if #f + "America/New_York" + "America/Denver")) + (keyboard-layout + (keyboard-layout "us" + #:options '("ctrl:hyper_capscontrol"))) + (kernel-arguments + (delete "quiet" + %default-kernel-arguments)) + + (users (cons* users:bdunahu + %base-user-accounts)) + + (bootloader (bootloader-configuration + (bootloader grub-efi-bootloader) + (targets (list "/boot/efi")) + (timeout 1) + (keyboard-layout keyboard-layout))) + + (packages pkg:ymir-packages) + (services + `( + ;; so that non-root users in the wheel group can + ;; perform administrative tasks (similar to "sudo"). + ,polkit-wheel-service + ;; The global fontconfig cache directory can sometimes contain + ;; stale entries, possibly referencing fonts that have been GC'd, + ;; so mount it read-only. + ,fontconfig-file-system-service + + ,(service network-manager-service-type) + ,(service wpa-supplicant-service-type) ; needed by NetworkManager + ,(service modem-manager-service-type) + ,(service usb-modeswitch-service-type) + + ;; The D-Bus clique. + ,(service avahi-service-type) + ,(service udisks-service-type) + ,(service upower-service-type) + ,(service accountsservice-service-type) + ,(service cups-pk-helper-service-type) + ,(service colord-service-type) + ,(service geoclue-service-type) + ,(service polkit-service-type) + ,(service elogind-service-type + (elogind-configuration + (handle-power-key 'hibernate))) + ,(service dbus-root-service-type) + + ,(service ntp-service-type) + + ;; openssh + ,(service openssh-service-type + (openssh-configuration + (x11-forwarding? #t) + (permit-root-login 'prohibit-password) + (password-authentication? #f))) + + ;; xorg + ,(service screen-locker-service-type + (screen-locker-configuration + (name "slock") + (program (file-append slock "/bin/slock")))) + ,(service x11-socket-directory-service-type) + ,(udev-rules-service 'keyboard-hotplug %keyboard-udev-rule) + + ;; audio + ,(service pulseaudio-service-type) + ,(service alsa-service-type) + + ;; TODO: don't do this expensive operation; just copy file. + ;; ,(simple-service 'add-extra-hosts + ;; hosts-service-type + ;; (map + ;; (lambda (x) + ;; (host "0.0.0.0" x)) + ;; (read-hosts "/home/bdunahu/.config/guix/assets/blocklist.txt"))) + + ,@%base-services)) + + ;; OVERRIDE + (file-systems '()))) + +;;; ymir.scm ends here |
