Skip to content

Instantly share code, notes, and snippets.

@threddast
Created March 28, 2023 07:31
Show Gist options
  • Save threddast/84f6cca441c744647ddd396d83bdaed4 to your computer and use it in GitHub Desktop.
Save threddast/84f6cca441c744647ddd396d83bdaed4 to your computer and use it in GitHub Desktop.
Guix config with Hyprland
;; This is an operating system configuration generated
;; by the graphical installer.
;;
;; Once installation is complete, you can learn and modify
;; this file to tweak the system configuration, and pass it
;; to the 'guix system reconfigure' command to effect your
;; changes.
;; Indicate which modules to import to access the variables
;; used in this configuration.
(use-modules
(srfi srfi-1)
(guix inferior)
(guix channels)
(gnu packages audio)
(gnu packages linux)
(gnu system setuid)
(gnu services syncthing)
(gnu services docker)
(gnu)
(nongnu packages linux)
(nongnu system linux-initrd))
(use-service-modules nix)
(use-package-modules package-management)
(use-service-modules dbus cups desktop networking sound ssh xorg)
;; for the nonguix channel substitutes
(define %my-services
(modify-services %desktop-services
;; (delete elogind-service-type)
;; (delete mingetty-service-type)
;; (delete agetty-service-type)
;; (delete gdm-service-type)
(gdm-service-type config =>
(gdm-configuration
(inherit config)
(wayland? #t)))
(guix-service-type config =>
(guix-configuration
(inherit config)
(substitute-urls
(append
(list
"https://substitutes.nonguix.org")
%default-substitute-urls))
(authorized-keys
(append
(list
(plain-file
"non-guix.pub"
"(public-key
(ecc
(curve Ed25519)
(q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)
)
)"))
%default-authorized-guix-keys))))))
(operating-system
(kernel linux)
;; (kernel
;; (let*
;; ((channels
;; (list
;; (channel
;; (name 'guix)
;; (url "https://git.savannah.gnu.org/git/guix.git")
;; (commit "a70a1d8edfb24b76bb42824e59a8e0358f4e0f2f"))
;; (channel
;; (name 'nonguix)
;; (url "https://gitlab.com/nonguix/nonguix")
;; (commit "89dd9ecb32faeea77758e80ed20b6c58ac066308"))))
;; (inferior
;; (inferior-for-channels channels)))
;; (first
;; (lookup-inferior-packages inferior "linux" "6.1.11"))))
(initrd microcode-initrd)
(firmware
(list linux-firmware))
(locale "en_US.utf8")
(timezone "Europe/Zurich")
(keyboard-layout
(keyboard-layout "us" "colemak_dh" #:options
'("caps:swapescape")))
(host-name "guix")
;; The list of user accounts ('root' is implicit).
(users
(cons*
(user-account
(name "egiorgis")
(comment "Erik")
(group "users")
(home-directory "/home/egiorgis")
(supplementary-groups
'("wheel" "netdev" "audio" "video" "docker" "lp" "input" "fuse")))
%base-user-accounts))
;; Packages installed system-wide. Users can also install packages
;; under their own account: use 'guix search KEYWORD' to search
;; for packages and 'guix install PACKAGE' to install a package.
(packages
(append
(map specification->package
'("nss-certs" "nix" "swaylock" "hyprland" "plasma-desktop" "bluez" "bluez-alsa" "sshfs"))
%base-packages))
;; Below is the list of system services. To search for available
;; services, run 'guix system search KEYWORD' in a terminal.
(services
(cons*
(service gnome-desktop-service-type)
(service gnome-keyring-service-type)
(bluetooth-service #:auto-enable? #t)
;;(dbus-service)
;; (service seatd-service-type)
;; (service greetd-service-type
;; (greetd-configuration
;; (greeter-supplementary-groups
;; (list "video" "input" "seat"))
;; (terminals
;; (list (greetd-terminal-configuration
;; (terminal-vt "1")
;; (terminal-switch #t))
;; (greetd-terminal-configuration
;; (terminal-vt "2")
;; (terminal-switch #t))
;; (greetd-terminal-configuration
;; (terminal-vt "3")
;; (terminal-switch #t))
;; (greetd-terminal-configuration
;; (terminal-vt "4")
;; (terminal-switch #t))
;; (greetd-terminal-configuration
;; (terminal-vt "5")
;; (terminal-switch #t))
;; (greetd-terminal-configuration
;; (terminal-vt "6")
;; (terminal-switch #t))
;; ))))
;; (service mingetty-service-type
;; (mingetty-configuration (tty "tty8")))
;; (service mingetty-service-typservere
;; (mingetty-configuration (tty "tty7")))
(udev-rules-service 'light light)
; for backlight control
(service syncthing-service-type
(syncthing-configuration
(user "egiorgis")))
(service nix-service-type)
(service docker-service-type)
;; (service bluetooth-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout)))
%my-services))
(setuid-programs
(append
(list
(file-like->setuid-program
(file-append
(specification->package "swaylock")
"/bin/swaylock")))
%setuid-programs))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(targets
(list "/boot/efi"))
(keyboard-layout keyboard-layout)))
;; The list of file systems that get "mounted". The unique
;; file system identifiers there ("UUIDs") can be obtained
;; by running 'blkid' in a terminal.
(file-systems
(cons*
(file-system
(mount-point "")
(device
(uuid
"14938167-46cc-49bf-a11f-921d156c3893"
'ext4))
(type "ext4"))
(file-system
(mount-point "/boot/efi")
(device
(uuid "AFE7-CE6E"
'fat32))
(type "vfat"))
;(file-system
; (mount-point "/boot/efi")
; (device
; (uuid "6FEE-EBD1"
; 'fat32))
; (type "vfat"))
%base-file-systems)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment