does this work (please)

Signed-off-by: Skylar "The Cobra" Widulski <cobra@vern.cc>
This commit is contained in:
Skylar "The Cobra" Widulski 2023-06-04 19:35:03 -04:00
parent bc6e389fdc
commit 01264bfd6a
Signed by: cobra
GPG Key ID: 4FD8F812083FF6F9
8 changed files with 273 additions and 231 deletions

View File

@ -48,7 +48,7 @@ cpusage() {
} }
# Update and upgrade system # Update and upgrade system
update() { $PRIV sh -c "$UPDATE"; } update() { eval "$UPDATE"; }
# Im too lazy to type # Im too lazy to type
copy() { copy() {

View File

@ -16,21 +16,9 @@ if [[ $HOSTNAME == pp ]]; then
PASTE_COMMAND=\"wl-paste\" PASTE_COMMAND=\"wl-paste\"
WIFI=wlan0 WIFI=wlan0
WM=\"bash\" WM=\"bash\"
elif [[ $HOSTNAME == Oganesson ]]; then elif [[ $HOSTNAME == Oganesson ]]; then :
PRIV=sudo
UPDATE=\"guix pull --branch=master && reconf && hreconf\"
COPY_COMMAND=\"wl-copy\"
PASTE_COMMAND=\"wl-paste\"
WIFI=wlp2s0
WM='sway'
#export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0
elif [[ $HOSTNAME == Neon ]]; then elif [[ $HOSTNAME == Neon ]]; then
PRIV=sudo
UPDATE=\"guix pull --branch=master && reconf && hreconf\"
COPY_COMMAND=\"wl-copy\"
PASTE_COMMAND=\"wl-paste\"
WIFI=wlp2s0
WM='sway'
export WLR_NO_HARDWARE_CURSORS=1 export WLR_NO_HARDWARE_CURSORS=1
else else
PRIV=sudo PRIV=sudo

View File

@ -1,10 +1,13 @@
(add-to-load-path "/etc/guix-config")
(add-to-load-path "/home/cobra/.config/guix") (add-to-load-path "/home/cobra/.config/guix")
(use-modules (gnu home) (use-modules (gnu home)
(gnu home services) (gnu home services)
(gnu home services mcron) (gnu home services mcron)
(gnu home services desktop) (gnu home services desktop)
(gnu home services shells)
(gnu packages) (gnu packages)
(gnu packages gl)
(gnu services) (gnu services)
(gnu services dbus) (gnu services dbus)
(gnu services mcron) (gnu services mcron)
@ -13,7 +16,8 @@
;; Deranged Guix Home Usage(TM) ;; Deranged Guix Home Usage(TM)
(cobra homedir) (cobra homedir)
(cobra config) (cobra config)
(cobra bin)) (cobra bin)
(cobra packages))
(define webfetch-job (define webfetch-job
#~(job "*/1 * * * *" #~(job "*/1 * * * *"
@ -151,6 +155,17 @@
(service home-mcron-service-type (service home-mcron-service-type
(home-mcron-configuration (home-mcron-configuration
(jobs (list webfetch-job)))) (jobs (list webfetch-job))))
(simple-service 'home-env
home-environment-variables-service-type
`(("LIBGL_DRIVERS_PATH" . ,(if (eq? (gethostname) "Neon")
(file-append mesa-i915 "/lib/dri")
(file-append mesa "/lib/dri")))
("PRIV" . "sudo")
("WM" . "sway")
("WIFI" . "wlp2s0")
("COPY_COMMAND" . "wl-copy")
("PASTE_COMMAND" . "wl-paste")
("UPDATE" . "guix pull --branch=master && reconf && hreconf")))
(simple-service 'dotfiles (simple-service 'dotfiles
home-files-service-type home-files-service-type
(list `(".bashrc" ,bashrc) (list `(".bashrc" ,bashrc)

View File

@ -7,21 +7,9 @@ if [[ $HOSTNAME == pp ]]; then
PASTE_COMMAND="wl-paste" PASTE_COMMAND="wl-paste"
WIFI=wlan0 WIFI=wlan0
WM="bash" WM="bash"
elif [[ $HOSTNAME == Oganesson ]]; then elif [[ $HOSTNAME == Oganesson ]]; then :
PRIV=sudo
UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u"
COPY_COMMAND="wl-copy"
PASTE_COMMAND="wl-paste"
WIFI=wlp2s0
WM='sway'
#export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0 #export WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card0
elif [[ $HOSTNAME == Neon ]]; then elif [[ $HOSTNAME == Neon ]]; then
PRIV=sudo
UPDATE="guix pull --branch=master && guix system reconfigure /etc/guix-config/${HOSTNAME,,}.scm && guix package -u"
COPY_COMMAND="wl-copy"
PASTE_COMMAND="wl-paste"
WIFI=wlp2s0
WM='sway'
export WLR_NO_HARDWARE_CURSORS=1 export WLR_NO_HARDWARE_CURSORS=1
else else
PRIV=sudo PRIV=sudo

View File

@ -0,0 +1,170 @@
(add-to-load-path "/etc/guix-config")
(define-module (cobra lists)
#:use-module (guix gexp)
#:use-module (gnu)
#:use-module (gnu services)
#:use-module (gnu services base)
#:use-module (gnu services desktop)
#:use-module (gnu services networking)
#:use-module (gnu services xorg)
#:use-module (gnu services cups)
#:use-module (gnu services ssh)
#:use-module (gnu services dbus)
#:use-module (gnu services virtualization)
#:use-module (gnu services authentication)
#:use-module (gnu services dict)
#:use-module (gnu services linux)
#:use-module (gnu packages certs)
#:use-module (gnu packages wordnet)
#:use-module (gnu packages wm)
#:use-module (gnu packages dictionaries)
#:use-module (cobra packages)
#:export (service-list
package-list))
;; DICT
(define wordnet-handler
(dicod-handler
(name "wordnet")
(module "dictorg")
(options
(list #~(string-append "dbdir=" #$wordnet)))))
(define vera-handler
(dicod-handler
(name "vera")
(module "dictorg")
(options
(list #~(string-append "dbdir=" #$vera)))))
(define wordnet-db
(dicod-database
(name "wordnet")
(complex? #t)
(handler "wordnet")
(options '("database=wn"))))
(define vera-db
(dicod-database
(name "vera")
(complex? #t)
(handler "vera")
(options '("database=vera"))))
;; Kernel
(define v4l2loopback-config
(plain-file "v4l2loopback.conf"
"options v4l2loopback video_nr=6,7,8,9 card_label=loopback0,loopback1,loopback2,loopback3 exclusive_caps=1"))
(define service-list
(cons*
;; Bluetooth
(service bluetooth-service-type
(bluetooth-configuration
(auto-enable? #t)))
;; Desktop
(service screen-locker-service-type
(screen-locker-configuration
(name "swaylock")
(program (file-append swaylock "/bin/swaylock"))
(allow-empty-password? #f)
(using-pam? #t)
(using-setuid? #f)))
;; DICT
(service dicod-service-type
(dicod-configuration
(handlers (list wordnet-handler vera-handler))
(databases (list wordnet-db vera-db %dicod-database:gcide))))
;; Kernel
(service kernel-module-loader-service-type
'("v4l2loopback"))
(simple-service 'v4l2loopback etc-service-type
(list `("modprobe.d/v4l2loopback.conf"
,v4l2loopback-config)))
;; Network
(service cups-service-type)
(service network-manager-service-type)
(service ntp-service-type)
(service tor-service-type
(tor-configuration
(config-file (plain-file "tor-config"
"HTTPTunnelPort 127.0.0.1:9250"))))
(service wpa-supplicant-service-type)
;; System
(service dbus-root-service-type)
(service elogind-service-type)
(service openssh-service-type
(openssh-configuration
(permit-root-login 'prohibit-password)
(password-authentication? #f)))
(service gpm-service-type)
;; Virtualization
(service libvirt-service-type
(libvirt-configuration
(unix-sock-group "libvirt")))
(service virtlog-service-type)
%base-services))
(define package-list
(append
(map specification->package+output
(list ;; Bluetooth
"bluez"
;; DVD
"libdvdcss"
"libdvdread"
;; Fonts
"font-awesome"
"font-fira-code"
"font-fira-mono"
"font-fira-sans"
"font-google-noto"
"font-google-noto-sans-cjk"
"font-google-noto-serif-cjk"
"font-liberation"
;; Gamedev
"godot"
;; Graphics
"intel-vaapi-driver"
"mesa"
"mesa-utils"
;; Kernel
"v4l2loopback-linux-module"
;; Network
"nss-certs"
"torsocks"
"tor"
;; System
"acpi"
"cryptsetup"
"curl"
"dconf"
"gnunet"
"lvm2"
"openssh"
"openssl"
;; Utilities
"vim"
;; Virtualization
"libvirt"
"virt-manager"
"qemu"))
(cons* mesa-i915 %base-packages)))

View File

@ -0,0 +1,58 @@
(add-to-load-path "/etc/guix-config")
(define-module (cobra os)
#:use-module (gnu)
#:use-module (gnu system nss)
#:use-module (gnu packages linux)
#:use-module (guix gexp)
#:use-module (cobra packages)
#:use-module (cobra lists)
#:export (guix-thinkpad))
(define sudoers
(plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
Cmnd_Alias WITHOUTPW = /home/cobra/.local/bin/__suspend, /home/cobra/.local/bin/beep, /run/current-system/profile/sbin/halt, /run/current-system/profile/sbin/reboot
Defaults!WITHOUTPW !authenticate
"))
(define guix-thinkpad
(operating-system
(kernel linux-libre)
(kernel-loadable-modules (list v4l2loopback-linux-module))
(kernel-arguments '("intel_iommu=on"
"kvm.ignore_msrs=1"
"log_buf_len=1M"))
(keyboard-layout (keyboard-layout "us" "altgr-intl"))
(bootloader
(bootloader-configuration
(bootloader (bootloader
(inherit grub-bootloader)
(installer #~(const #t))))
(keyboard-layout keyboard-layout)))
(host-name "ThinkPad")
(file-systems %base-file-systems)
(users (append (list
(user-account
(name "cobra")
(comment "Skylar \"The Cobra\" Widulski")
(group "users")
(supplementary-groups '("audio"
"cdrom"
"dialout"
"input"
"kvm"
"libvirt"
"lp"
"netdev"
"tape"
"video"
"wheel"))))
%base-user-accounts))
(packages package-list)
(timezone "America/New_York")
(locale "en_US.utf8")
(name-service-switch %mdns-host-lookup-nss)
(services service-list)
(sudoers-file sudoers)))

View File

@ -0,0 +1,23 @@
(define-module (cobra packages)
#:use-module (guix packages)
#:use-module (guix gexp)
#:use-module (gnu packages gl))
(define-public mesa-i915
(package (inherit mesa)
(name "mesa-i915")
(arguments
(list
#:configure-flags
#~(list "-Dgallium-drivers=svga,swrast,i915"
"-Dplatforms=x11,wayland"
"-Dglx=dri"
"-Dosmesa=true"
"-Dgles2=enabled"
"-Dgbm=enabled"
"-Dshared-glapi=enabled"
"-Dvulkan-drivers=intel,amd"
"-Dvulkan-layers=device-select,overlay"
"-Dvideo-codecs=vc1dec,h264dec,h264enc,h265dec,h265enc"
"-Dbuild-tests=true"
"-Dllvm=enabled")))))

View File

@ -1,79 +1,9 @@
(add-to-load-path "/etc/guix-config") (add-to-load-path "/etc/guix-config")
(use-modules (use-modules (gnu) (cobra os))
(gnu)
(gnu system nss)
(gnu packages certs)
(gnu packages linux)
(gnu packages wm)
(gnu packages wordnet)
(gnu packages dictionaries)
(gnu services desktop)
(gnu services networking)
(gnu services xorg)
(gnu services cups)
(gnu services ssh)
(gnu services dbus)
(gnu services virtualization)
(gnu services authentication)
(gnu services dict)
(gnu services linux))
;; DICT
(define wordnet-handler
(dicod-handler
(name "wordnet")
(module "dictorg")
(options
(list #~(string-append "dbdir=" #$wordnet)))))
(define vera-handler
(dicod-handler
(name "vera")
(module "dictorg")
(options
(list #~(string-append "dbdir=" #$vera)))))
(define wordnet-db
(dicod-database
(name "wordnet")
(complex? #t)
(handler "wordnet")
(options '("database=wn"))))
(define vera-db
(dicod-database
(name "vera")
(complex? #t)
(handler "vera")
(options '("database=vera"))))
;; Kernel
(define v4l2loopback-config
(plain-file "v4l2loopback.conf"
"options v4l2loopback video_nr=6,7,8,9 card_label=loopback0,loopback1,loopback2,loopback3 exclusive_caps=1"))
;; System
(define sudoers
(plain-file "sudoers" "\
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
Cmnd_Alias WITHOUTPW = /home/cobra/.local/bin/__suspend, /home/cobra/.local/bin/beep, /run/current-system/profile/sbin/halt, /run/current-system/profile/sbin/reboot
Defaults!WITHOUTPW !authenticate
"))
(operating-system (operating-system
(kernel linux-libre) (inherit guix-thinkpad)
(kernel-loadable-modules (list v4l2loopback-linux-module))
(kernel-arguments '("intel_iommu=on"
"kvm.ignore_msrs=1"
"log_buf_len=1M"))
(keyboard-layout (keyboard-layout "us" "altgr-intl"))
(bootloader
(bootloader-configuration
(bootloader (bootloader
(inherit grub-bootloader)
(installer #~(const #t))))
(keyboard-layout keyboard-layout)))
(host-name "Oganesson") (host-name "Oganesson")
(mapped-devices (list (mapped-devices (list
(mapped-device (mapped-device
@ -93,134 +23,4 @@ Defaults!WITHOUTPW !authenticate
(options "space_cache=v2") (options "space_cache=v2")
(needed-for-boot? #t) (needed-for-boot? #t)
(dependencies mapped-devices))) (dependencies mapped-devices)))
%base-file-systems)) %base-file-systems)))
(users (append (list
(user-account
(name "cobra")
(comment "Skylar \"The Cobra\" Widulski")
(group "users")
(supplementary-groups '("audio"
"cdrom"
"dialout"
"input"
"kvm"
"libvirt"
"lp"
"netdev"
"tape"
"video"
"wheel"))))
%base-user-accounts))
(packages (append
(map specification->package+output
(list ;; Bluetooth
"bluez"
;; DVD
"libdvdcss"
"libdvdread"
;; Fonts
"font-awesome"
"font-fira-code"
"font-fira-mono"
"font-fira-sans"
"font-google-noto"
"font-google-noto-sans-cjk"
"font-google-noto-serif-cjk"
"font-liberation"
;; Gamedev
"godot"
;; Graphics
"intel-vaapi-driver"
"mesa"
"mesa-utils"
;; Kernel
"v4l2loopback-linux-module"
;; Network
"nss-certs"
"torsocks"
"tor"
;; System
"acpi"
"cryptsetup"
"curl"
"dconf"
"gnunet"
"lvm2"
"openssh"
"openssl"
;; Utilities
"vim"
;; Virtualization
"libvirt"
"virt-manager"
"qemu"))
(cons*
%base-packages)))
(timezone "America/New_York")
(locale "en_US.utf8")
(name-service-switch %mdns-host-lookup-nss)
(services
(cons*
;; Bluetooth
(service bluetooth-service-type
(bluetooth-configuration
(auto-enable? #t)))
;; Desktop
(service screen-locker-service-type
(screen-locker-configuration
"swaylock" (file-append swaylock "/bin/swaylock") #f))
;; DICT
(service dicod-service-type
(dicod-configuration
(handlers (list wordnet-handler vera-handler))
(databases (list wordnet-db vera-db %dicod-database:gcide))))
;; Kernel
(service kernel-module-loader-service-type
'("v4l2loopback"))
(simple-service 'v4l2loopback etc-service-type
(list `("modprobe.d/v4l2loopback.conf"
,v4l2loopback-config)))
;; Network
(service cups-service-type)
(service network-manager-service-type)
(service ntp-service-type)
(service tor-service-type
(tor-configuration
(config-file (plain-file "tor-config"
"HTTPTunnelPort 127.0.0.1:9250"))))
(service wpa-supplicant-service-type)
;; System
(service dbus-root-service-type)
(service elogind-service-type)
(service openssh-service-type
(openssh-configuration
(permit-root-login 'prohibit-password)
(password-authentication? #f)))
(service gpm-service-type)
;; Virtualization
(service libvirt-service-type
(libvirt-configuration
(unix-sock-group "libvirt")))
(service virtlog-service-type)
(modify-services %base-services
(guix-service-type
config => (guix-configuration
(inherit config)
(http-proxy "http://localhost:9250"))))))
(sudoers-file sudoers))