modern_lisp-machine/config.scm

389 lines
9.4 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 python-xyz)
(gnu packages audio)
(gnu packages librewolf)
(gnu packages sync)
(gnu packages qt)
(gnu packages gdb)
(gnu packages graphics)
(gnu packages java)
(gnu packages fcitx5)
(gnu packages ibus)
(gnu services dbus)
(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 enchant)
(gnu packages hunspell)
(gnu packages upnp)
(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"
"noatime"
))
(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
numix-gtk-theme
tor
python-psutil
python-schedule
xsel
gerbera
ibus
dconf
gimp
blender
gimp-resynthesizer
wmctrl
imagemagick
zpaq
libwebp
libreoffice
librewolf
;; audio
ardour
noise-repellent
;;
;; nextcloud-client
xprop
fzf
zstd
aria2
;; wakatime
wakapi-bin
wakatime-cli-bin
emacs-wakatime-mode
;;
xrdb
noisetorch
mpv
qtwebengine ;; required by some applications, like anki
;;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
bluez-alsa
blueman
;; ime
enchant
hunspell
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
;; ================
;; haskell
cabal-install
;; deps for xmonad
xmonad
xmobar
ghc ;; ridiculous, gcc and ghc are runtime dependencies , yet people didnt put in the package description
ghc-xmonad-contrib
;; ==================
gcc
gcc-toolchain
xmessage
xmodmap
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)
;; bluetooth
(service bluetooth-service-type
(bluetooth-configuration
(auto-enable? #t)))
(simple-service 'blueman dbus-root-service-type (list blueman))
#| 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"))
%base-file-systems)))