Skip to content

Instantly share code, notes, and snippets.

@massa
Created November 27, 2024 12:21
Show Gist options
  • Save massa/f296177e583abe44315061ebde0a3309 to your computer and use it in GitHub Desktop.
Save massa/f296177e583abe44315061ebde0a3309 to your computer and use it in GitHub Desktop.
voyager system guix + nonguix + plasma
;; 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 (gnu)
(gnu packages)
(gnu packages package-management)
(gnu packages text-editors)
(gnu packages version-control)
(gnu packages vim)
(gnu packages shells)
(gnu packages terminals)
(gnu packages rust-apps)
(gnu packages python-xyz)
(gnu packages databases)
(gnu packages networking)
(gnu packages ssh)
(gnu packages freedesktop)
(gnu packages qt)
(gnu packages kde-plasma)
(gnu packages kde-systemtools)
(gnu packages kde-frameworks)
(guix packages)
(nongnu packages linux)
(nongnu packages mozilla)
(nongnu system linux-initrd))
(use-service-modules linux
dbus
cups
desktop
networking
ssh
xorg)
(define berlin.pub
(plain-file "berlin.pub"
"(public-key (ecc (curve Ed25519) (q #8D156F295D24B0D9A86FA5741A840FF2D24F60F7B6C4134814AD55625971B394#)))"))
(define genenetwork.pub
(plain-file "genenetwork.pub"
"(public-key (ecc (curve Ed25519) (q #9578AD6CDB23BA51F9C4185D5D5A32A7EEB47ACDD55F1CCB8CEE4E0570FBF961#)))"))
(define inria.pub
(plain-file "inria.pub"
"(public-key (ecc (curve Ed25519) (q #89FBA276A976A8DE2A69774771A92C8C879E0F24614AAAAE23119608707B3F06#)))"))
(define yumiko.pub
(plain-file "yumiko.pub"
"(public-key (ecc (curve Ed25519) (q #EBD4DD318A84F9F0AD13300D8A2ACF022F16088DA59B57E539F6DC3BD9C33A52#)))"))
(define yuria.pub
(plain-file "yuria.pub"
"(public-key (ecc (curve Ed25519) (q #D5D0C1203D294B410DA106DDC1713B74CBB27353D53F4EE3D9D26972E8687424#)))"))
(define non-guix.pub
(plain-file "non-guix.pub"
"(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))
(define %my-services
(modify-services %desktop-services
(guix-service-type config =>
(guix-configuration (inherit config)
(substitute-urls (cons*
"https://substitutes.nonguix.org"
%default-substitute-urls))
(authorized-keys (cons*
non-guix.pub
berlin.pub
genenetwork.pub
inria.pub
yumiko.pub
yuria.pub
%default-authorized-guix-keys))))))
(operating-system
(kernel linux)
(initrd microcode-initrd)
(firmware (list linux-firmware))
(locale "en_US.utf8")
(timezone "America/Sao_Paulo")
(keyboard-layout (keyboard-layout "br"))
(host-name "voyager")
;; The list of user accounts ('root' is implicit).
(users (cons* (user-account
(name "h")
(comment "Humberto Massa")
(group "users")
(home-directory "/home/h")
(supplementary-groups '("wheel" "netdev" "audio" "video")))
%base-user-accounts))
(packages (cons* localed
fping
fish
nushell
vis
neovim
ripgrep
fzf
bat
eza
git
git-delta
openssh
duckdb
python-duckdb
plasma
plasma-desktop
plasma-integration
plasma-browser-integration
packagekit
packagekit-qt6
kde-gtk-config
breeze-gtk
kwallet
kwallet-pam
kwalletmanager
yakuake
firefox
%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 plasma-desktop-service-type)
(service openssh-service-type)
;; This is the default list of services we
;; are appending to.
%my-services))
(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 "f9fd3235-e9bd-4341-a27d-e3c9fbafa19a"
'btrfs))
(type "btrfs"))
(file-system
(mount-point "/boot/efi")
(device (uuid "3B2A-6D49"
'fat32))
(type "vfat")) %base-file-systems)))
;; This "home-environment" file can be passed to 'guix home reconfigure'
;; to reproduce the content of your profile. This is "symbolic": it only
;; specifies package names. To reproduce the exact same profile, you also
;; need to capture the channels being used, as returned by "guix describe".
;; See the "Replicating Guix" section in the manual.
(use-modules (gnu home)
(gnu packages)
(gnu services)
(guix gexp)
(gnu home services shells))
(home-environment
;; Below is the list of packages that will show up in your
;; Home profile, under ~/.guix-home/profile.
(packages (specifications->packages (list "gcc-toolchain"
"clang-toolchain"
"rust"
"fennel"
"antifennel"
"fnlfmt")))
;; Below is the list of Home services. To search for available
;; services, run 'guix home search KEYWORD' in a terminal.
(services
(list (service home-bash-service-type
(home-bash-configuration
(aliases '(("grep" . "grep --color=auto")
("ip" . "ip -color=auto")
("ll" . "ls -l")
("ls" . "ls -p --color=auto")))
(bashrc (list (local-file "/home/h/.config/guix/.bashrc"
"bashrc")))
(bash-profile (list (local-file
"/home/h/.config/guix/.bash_profile"
"bash_profile"))))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment