(use-modules (gnu) (srfi srfi-1) ((gnu packages linux) #:prefix gnu-linux:) (gnu packages admin) (gnu packages certs) (gnu packages freedesktop) (gnu packages ssh) (gnu packages vim) (gnu packages wm) (gnu packages wget) (gnu packages xdisorg) (gnu packages xorg) (gnu packages video) (gnu services virtualization) (gnu services pm) (tuxedo-keyboard) (nongnu packages linux) (nongnu system linux-initrd)) ;; TODO: Remove me when NlNet project ends (use-modules (guix inferior) (guix channels) (srfi srfi-1)) (define channels (list (channel (name 'ekaitz) (url "git://git.elenq.tech/guix-packages") (branch "master") (commit "228e85fc043aa127ab0820109068def10db5861b")) (channel (name 'guix) (url "https://git.savannah.gnu.org/git/guix.git") (branch "master") (commit "447e9c96259e8fa15a828de9b2dd3400e2ffafe6")))) (define inferior (inferior-for-channels channels)) (define qemu (first (lookup-inferior-packages inferior "qemu" "7"))) ;; Keyboard layout (define us-keyboard-for-bootloader-and-linux (keyboard-layout "us")) (define my-real-keyboard-layout (keyboard-layout "es,us,ru" #:options '("grp:alt_space_toggle"))) ;; My services (use-service-modules desktop networking ssh xorg) (define my-services (list (udev-rules-service 'light gnu-linux:light) (service gnome-desktop-service-type) (service thermald-service-type) (service power-profiles-daemon-service-type) (simple-service 'adwaita-dark-theme session-environment-service-type '(("GTK_THEME" . "Adwaita:dark"))) (service bluetooth-service-type (bluetooth-configuration (auto-enable? #t))) (set-xorg-configuration (xorg-configuration (keyboard-layout my-real-keyboard-layout) (modules (append %default-xorg-modules (list xf86-input-wacom))) (extra-config '("\n" "\n" "Section \"InputClass\"\n" " Identifier \"libinput touchpad catchall\"\n" " Driver \"libinput\"\n" " MatchIsTouchpad \"on\"\n" " MatchDevicePath \"/dev/input/event*\"\n" " Option \"Tapping\" \"on\"\n" " Option \"TappingDrag\" \"on\"\n" " Option \"DisableWhileTyping\" \"on\"\n" "EndSection\n" "\n" ; https://wiki.archlinux.org/title/Libinput#Via_xinput "Section \"InputClass\"\n" " Identifier \"USB Mouse Pad USB Mouse Pad Mouse\"\n" " Driver \"libinput\"\n" " MatchDevicePath \"/dev/input/event*\"\n" " MatchUSBID \"062a:8255\"\n" " Option \"Middle Emulation\" \"on\"\n" " Option \"AccelSpeed\" \"-0.9\"" "EndSection\n" "\n" "\n" "Section \"Device\"\n" " Identifier \"modesetting\"\n" " Driver \"modesetting\"\n" " Option \"TearFree\" \"True\"\n" "EndSection" "\n")))) (service qemu-binfmt-service-type (qemu-binfmt-configuration (platforms (lookup-qemu-platforms "riscv64" "aarch64")) (qemu qemu))))) (operating-system (kernel linux) (kernel-loadable-modules `(,tuxedo-keyboard)) (initrd microcode-initrd) (firmware (list linux-firmware)) (locale "en_US.utf8") (timezone "Europe/Madrid") (keyboard-layout us-keyboard-for-bootloader-and-linux) (bootloader (bootloader-configuration (bootloader grub-efi-bootloader) (targets (list "/boot/efi")) (keyboard-layout us-keyboard-for-bootloader-and-linux))) (swap-devices (list (swap-space (target "/dev/sda3")))) (file-systems (cons* (file-system (mount-point "/boot/efi") (device (uuid "6BB8-3AFE" 'fat32)) (type "vfat")) (file-system (mount-point "/") (device (uuid "eee511d3-b473-4bc0-ba63-bf3971341576" 'ext4)) (type "ext4")) (file-system (mount-point "/home") (device (uuid "49ebc09e-6021-4730-a467-b8818c2128f1" 'ext4)) (type "ext4")) %base-file-systems)) (host-name "tuxedo") (users (cons* (user-account (name "Ekaitz") (comment "Ekaitz") (group "users") (home-directory "/home/Ekaitz") (supplementary-groups '("wheel" "netdev" "audio" "video" "lp" "dialout" "kvm"))) %base-user-accounts)) (packages (cons* htop gnu-linux:light i3-wm neovim tree wget tcpdump openssh thermald power-profiles-daemon intel-vaapi-driver xf86-input-wacom gnu-linux:ntfs-3g qemu %base-packages)) (services (append my-services (modify-services %desktop-services ;; Removes ModemManager because it interferes with USB ;; development. If using a 3/4G modem or something we have ;; to activate it. (delete modem-manager-service-type) ;; Configure nonguix substitutes (guix-service-type config => (guix-configuration (inherit config) (substitute-urls (append (list "https://substitutes.nonguix.org") %default-substitute-urls)) (authorized-keys (append (list (local-file "./non-guix-signing-key.pub")) %default-authorized-guix-keys))))))))