363 lines
9.2 KiB
Scheme
363 lines
9.2 KiB
Scheme
; 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)
|
|
(guix packages)
|
|
(rosenthal packages binaries)
|
|
(rosenthal packages emacs-xyz)
|
|
(guix transformations)
|
|
(gnu packages audio)
|
|
(gnu packages librewolf)
|
|
(gnu packages gdb)
|
|
(gnu packages graphics)
|
|
(gnu packages java)
|
|
(gnu packages fcitx5)
|
|
(gnu packages ibus)
|
|
(gnu packages gnuzilla)
|
|
(gnu services mcron)
|
|
(gnu packages haskell)
|
|
(gnu packages ebook)
|
|
(gnu packages lisp-xyz)
|
|
(gnu packages rust-apps)
|
|
(rde features bluetooth)
|
|
(gnu packages gcc)
|
|
(gnu packages pulseaudio)
|
|
(gnu packages tor)
|
|
(gnu packages commencement)
|
|
(gnu packages guile-xyz)
|
|
(gnu packages freedesktop)
|
|
(gnu packages image)
|
|
(gnu packages image-viewers)
|
|
(gnu packages xfce)
|
|
(srfi srfi-1)
|
|
;; for nyxt
|
|
(gnu packages gstreamer)
|
|
(gnu packages web-browsers)
|
|
;;---------
|
|
(gnu services)
|
|
(gnu services base)
|
|
(gnu packages terminals)
|
|
(gnu packages music)
|
|
(gnu packages compton)
|
|
(gnu packages version-control)
|
|
(gnu packages lxqt)
|
|
(gnu packages file-systems)
|
|
(gnu packages admin)
|
|
(gnu packages bittorrent)
|
|
(gnu packages compression)
|
|
(gnu packages curl)
|
|
(gnu packages emacs)
|
|
(gnu packages emacs-xyz)
|
|
(gnu packages engineering)
|
|
(gnu packages fonts)
|
|
(gnu packages tmux)
|
|
(gnu packages dictionaries)
|
|
(gnu packages emulators)
|
|
(gnu packages fontutils)
|
|
(gnu packages gimp)
|
|
(gnu packages gnome)
|
|
(gnu packages gnome-xyz)
|
|
(gnu packages gnupg)
|
|
(gnu packages haskell-apps)
|
|
(gnu packages imagemagick)
|
|
(gnu packages libreoffice)
|
|
(gnu packages linux)
|
|
(gnu packages lisp)
|
|
(gnu packages mpd)
|
|
(gnu packages package-management)
|
|
(gnu packages rsync)
|
|
(gnu packages gimp)
|
|
(gnu packages ssh)
|
|
(gnu packages telegram)
|
|
(gnu packages video)
|
|
(gnu packages wm)
|
|
(gnu packages xdisorg)
|
|
(gnu packages xorg)
|
|
(gnu home services gnupg)
|
|
(gnu home services xdg)
|
|
(guix channels)
|
|
(guix inferior)
|
|
(gnu packages networking)
|
|
(nongnu packages compression)
|
|
(nongnu packages linux))
|
|
|
|
|
|
|
|
(use-service-modules cups desktop networking ssh xorg linux certbot shepherd configuration web nix)
|
|
(use-package-modules version-control gcc bash certs admin linux )
|
|
|
|
|
|
(define %8bitdo-udev-rules
|
|
(udev-rule
|
|
"99-8bitdo-controllers.rules"
|
|
"SUBSYSTEM==\"input\", ATTRS{name}==\"8BitDo*Wireless*Controller\", MODE=\"0664\", TAG+=\"uaccess\"
|
|
SUBSYSTEM==\"input\", ATTRS{name}==\"8BitDo*Bluetooth*Gamepad\", MODE=\"0664\", TAG+=\"uaccess\"
|
|
SUBSYSTEM==\"input\", ATTRS{name}==\"8BitDo*Ultimate*Wired*Controller\", MODE=\"0664\", TAG+=\"uaccess\"
|
|
SUBSYSTEM==\"input\", ATTRS{name}==\"8BitDo*Ultimate*Bluetooth*Controller\", MODE=\"0664\", TAG+=\"uaccess\"
|
|
SUBSYSTEM==\"input\", ATTRS{name}==\"8BitDo*Ultimate*Bluetooth*Controller*2.4G\", MODE=\"0664\", TAG+=\"uaccess\"
|
|
SUBSYSTEM==\"usb\", ATTR{idVendor}==\"2dc8\", ATTR{idProduct}==\"3106\", RUN+=\"/usr/bin/env modprobe xpad\"
|
|
KERNEL==\"xpad\", SUBSYSTEM==\"drivers\", ACTION==\"add\", ATTR{new_id}=\"2dc8 3106\""))
|
|
|
|
|
|
|
|
|
|
(define my-kernel linux-6.1)
|
|
|
|
(define my-zfs
|
|
(package
|
|
(inherit zfs)
|
|
(arguments
|
|
(cons* #:linux my-kernel
|
|
(package-arguments zfs)))))
|
|
|
|
(operating-system
|
|
(kernel my-kernel)
|
|
(initrd base-initrd)
|
|
(firmware (list linux-firmware))
|
|
|
|
(locale "en_US.utf8")
|
|
(kernel-arguments (list "modprobe.blacklist=hid-nintendo"))
|
|
(timezone "America/Manaus")
|
|
(keyboard-layout (keyboard-layout "us"))
|
|
(host-name "lisp-machine")
|
|
(kernel-loadable-modules (list (list my-zfs "module")))
|
|
|
|
;; The list of user accounts ('root' is implicit).
|
|
(users (cons* (user-account
|
|
(name "hashirama")
|
|
(comment "Hashirama")
|
|
(group "users")
|
|
(home-directory "/home/hashirama")
|
|
(supplementary-groups '("wheel" "netdev" "audio" "video" "lp")))
|
|
%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 (list
|
|
my-zfs
|
|
;;emacs-org-roam
|
|
;;emacs-org-roam-ui
|
|
;; -----
|
|
;;necessary for nyxt
|
|
gstreamer
|
|
gst-plugins-bad
|
|
gst-plugins-good
|
|
;;------
|
|
nyxt
|
|
;;------
|
|
cmus
|
|
emacs-ox-hugo
|
|
sbcl-coleslaw
|
|
tor
|
|
ibus
|
|
dconf
|
|
gimp
|
|
blender
|
|
gimp-resynthesizer
|
|
wmctrl
|
|
libwebp
|
|
libreoffice
|
|
librewolf
|
|
;; audio
|
|
ardour
|
|
noise-repellent
|
|
;;
|
|
xprop
|
|
fzf
|
|
zstd
|
|
aria2
|
|
;; wakatime
|
|
wakapi-bin
|
|
wakatime-cli-bin
|
|
emacs-wakatime-mode
|
|
;;
|
|
xrdb
|
|
noisetorch
|
|
mpv
|
|
;;emasc-everywhere
|
|
xdotool
|
|
xprop
|
|
xclip
|
|
xwininfo
|
|
;;
|
|
xdg-user-dirs
|
|
xdg-desktop-portal-gtk
|
|
xdg-desktop-portal
|
|
tmux
|
|
polybar
|
|
gnupg
|
|
sdcv
|
|
alacritty
|
|
font-dejavu
|
|
;;------
|
|
higan
|
|
maim
|
|
p7zip
|
|
htop
|
|
scrot
|
|
flameshot
|
|
neofetch
|
|
pfetch
|
|
openjdk
|
|
;;element-desktop
|
|
;; bluetooth
|
|
bluez
|
|
blueman
|
|
;; ime
|
|
fcitx5
|
|
fcitx5-gtk
|
|
fcitx5-qt
|
|
fcitx5-anthy
|
|
fcitx5-gtk4
|
|
fcitx5-configtool
|
|
;;
|
|
icecat
|
|
ffmpeg
|
|
nsxiv
|
|
pinentry
|
|
git
|
|
pavucontrol-qt
|
|
emacs
|
|
emacs-bluetooth
|
|
xrandr
|
|
qbittorrent
|
|
emacs-rainbow-delimiters
|
|
emacs-olivetti
|
|
emacs-telega
|
|
emacs-sly
|
|
emacs-ccls
|
|
emacs-lsp-mode
|
|
emacs-lsp-ui
|
|
emacs-rmsbolt
|
|
sbcl
|
|
emacs-nerd-icons
|
|
emacs-esxml
|
|
ripgrep
|
|
gdb
|
|
emacs-olivetti
|
|
emacs-deadgrep
|
|
emacs-realgud
|
|
emacs-rg
|
|
emacs-dumb-jump
|
|
emacs-circe
|
|
zip
|
|
thunar
|
|
unzip
|
|
;;emacs-nov-el
|
|
fontconfig
|
|
;; font-apple-color-emoji
|
|
picom
|
|
feh
|
|
xmodmap
|
|
;; deps for xmonad
|
|
xmonad
|
|
xmobar
|
|
ghc ;; ridiculous, gcc and ghc are runtime dependencies , yet people didnt put in the package description
|
|
gcc
|
|
gcc-toolchain
|
|
xmessage
|
|
ghc-xmonad-contrib
|
|
rofi
|
|
linux-libre-headers
|
|
;;--------
|
|
yt-dlp
|
|
;; nicotine+
|
|
linux-firmware
|
|
(specification->package "jami")
|
|
)
|
|
%base-packages))
|
|
|
|
;;(home-environment (packages (cons* anki ))) ;; figure out how to install it from here
|
|
|
|
;; Below is the list of system services. To search for available
|
|
;; services, run 'guix system search KEYWORD' in a terminal.
|
|
(services
|
|
(append (list (simple-service 'my-zfs-loader
|
|
kernel-module-loader-service-type
|
|
'("zfs"))
|
|
(simple-service 'my-jp-ime-env session-environment-service-type
|
|
'(("GTK_IM_MODULE" . "fcitx")
|
|
("QT_IM_MODULE" . "fcitx")
|
|
("GUIX_GTK2_IM_MODULE_FILE" . "/run/current-system/profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache")
|
|
("GUIX_GTK3_IM_MODULE_FILE" . "/run/current-system/profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache")
|
|
("XMODIFIERS=@im=" . "fcitx")
|
|
("INPUT_METHOD" . "fcitx")
|
|
("XIM_PROGRAM" . "fcitx")
|
|
("GLFW_IM_MODULE" . "ibus")))
|
|
(service zram-device-service-type
|
|
(zram-device-configuration
|
|
(size "6G")
|
|
(compression-algorithm 'xz)
|
|
(priority 100)))
|
|
;; (service oci-forgejo-service-type)
|
|
(set-xorg-configuration
|
|
(xorg-configuration (keyboard-layout keyboard-layout)))
|
|
(udev-rules-service '8bitdo %8bitdo-udev-rules)
|
|
|
|
(service nix-service-type)
|
|
|
|
#| Compress my mpv screenshots periodically |#
|
|
(service mcron-service-type
|
|
(mcron-configuration
|
|
(jobs (list #~(job "10 15 * * *"
|
|
"find /mnt/Data/mpv-screenshots/ -type f \\( -iname '*.png' -o -iname '*.jpg' \\) -exec sh -c 'cwebp -q 80 \"$0\" -o \"${0%.*}.webp\" && rm \"$0\"' {} \\;")))))
|
|
|
|
)
|
|
|
|
%desktop-services)
|
|
)
|
|
|
|
(bootloader (bootloader-configuration
|
|
(bootloader grub-efi-bootloader)
|
|
(targets (list "/boot/efi"))
|
|
(keyboard-layout keyboard-layout)))
|
|
(swap-devices (list (swap-space
|
|
(target (uuid
|
|
"4f829a61-6f51-435b-bade-2991c094080f")))))
|
|
|
|
;; 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 "/boot/efi")
|
|
(device (uuid "7C90-0F50"
|
|
'fat32))
|
|
(type "vfat"))
|
|
(file-system
|
|
(mount-point "/")
|
|
(device (uuid
|
|
"ef8ef1c0-99bd-431a-abde-e2fc6421da60"
|
|
'ext4))
|
|
(type "ext4"))
|
|
;; (file-system
|
|
;; (mount-point "/mnt/Reading")
|
|
;; (device (uuid
|
|
;; "223baecf-e5f4-453f-90c7-d33edbbae145"
|
|
;; 'ext4))
|
|
;; (type "ext4"))
|
|
(file-system
|
|
(mount-point "/mnt/Quartz")
|
|
(device (uuid
|
|
"b0e97572-255c-4f6e-9a0a-9a89ae99f1a5"
|
|
'ext4))
|
|
(type "ext4"))
|
|
(file-system
|
|
(mount-point "/mnt/Sources")
|
|
(device (uuid
|
|
"c01d762b-0c91-43c0-9c80-e048c4abe939"
|
|
'ext4))
|
|
(type "ext4"))
|
|
%base-file-systems)))
|