Compare commits

...

7 Commits

2 changed files with 557 additions and 0 deletions

269
home/config.scm Executable file
View File

@ -0,0 +1,269 @@
(use-modules
(gnu)
(gnu home)
(gnu home services)
(gnu home services shells)
(gnu home services shepherd)
(gnu packages)
(gnu packages bittorrent)
(gnu packages browser-extensions)
(gnu packages chromium)
(gnu packages cvassistant)
(gnu packages disk)
(gnu packages ebook)
(gnu packages emacs)
(gnu packages freedesktop)
(gnu packages gnupg)
(gnu packages gnuzilla)
(gnu packages irc)
(gnu packages libreoffice)
(gnu packages linphone)
(gnu packages lxde)
(gnu packages mail)
(gnu packages messaging)
(gnu packages networking)
(gnu packages pdf)
(gnu packages polkit)
(gnu packages pulseaudio)
(gnu packages ssh)
(gnu packages telegram)
(gnu packages telephony)
(gnu packages version-control)
(gnu packages video)
(gnu packages web-browsers)
(gnu services)
(guix gexp))
(home-environment
(packages
(append
;; Communication
(list
gajim
gajim-omemo
gajim-openpgp
icedove
linphone-desktop
mumble
mutt
poezio
telegram-desktop
weechat)
;; DevOps
(list
git
`(,git "send-email")
openssh)
;; Multimedia
(list
mpv
pipe-viewer
youtube-dl
yt-dlp)
;; Network
(list
`(,transmission "gui"))
;; Productivity
(list
calibre
cvassistant
emacs
libreoffice)
;; Security
(list
gnupg
gpa
pinentry
polkit-gnome)
;; Utilities
(list
blueman
mupdf
pavucontrol
spacefm
udiskie
xfe)
;; Web
(list
icecat
nyxt
ublock-origin/chromium
uget
ungoogled-chromium)))
(services
(append
;; Shells
(list
(service home-bash-service-type
(home-bash-configuration
(bash-profile
(list
(local-file
(string-append (getenv "HOME")
"/dotfiles/bash/bash_profile")
"bash_profile"))))))
;; Files
(list
(simple-service 'emacs-config
home-files-service-type
(list
`("emacs.d/init.el"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/emacs/init.el")))))
(simple-service 'git-config
home-files-service-type
(list
`("config/git/config"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/git/config")))))
(simple-service 'gnupg-dirmngr-config
home-files-service-type
(list
`("gnupg/dirmngr.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/dirmngr.conf")))))
(simple-service 'gnupg-gpa-config
home-files-service-type
(list
`("gnupg/gpa.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpa.conf")))))
(simple-service 'gnupg-gpg-config
home-files-service-type
(list
`("gnupg/gpg.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpg.conf")))))
(simple-service 'gnupg-gpg-agent-config
home-files-service-type
(list
`("gnupg/gpg-agent.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/gpg-agent.conf")))))
(simple-service 'gnupg-scdaemon-config
home-files-service-type
(list
`("gnupg/scdaemon.conf"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/scdaemon.conf")))))
(simple-service 'gnupg-sshcontrol-config
home-files-service-type
(list
`("gnupg/sshcontrol"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gnupg/sshcontrol")))))
(simple-service 'gtk-gtk2-config
home-files-service-type
(list
`("gtkrc-2.0"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gtk/gtkrc-2.0")))))
(simple-service 'gtk-gtk3-config
home-files-service-type
(list
`("config/gtk-3.0/settings.ini"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/gtk/settings.ini")))))
(simple-service 'guix-channels-config
home-files-service-type
(list
`("config/guix/channels.scm"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/guix/channels.scm")))))
(simple-service 'nano-config
home-files-service-type
(list
`("config/nano/nanorc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/nano/nanorc")))))
(simple-service 'poezio-config
home-files-service-type
(list
`("config/poezio/poezio.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/poezio.cfg")))))
(simple-service 'poezio-irc-config
home-files-service-type
(list
`("config/poezio/plugins/irc.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/irc.cfg")))))
(simple-service 'poezio-link-config
home-files-service-type
(list
`("config/poezio/plugins/link.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/link.cfg")))))
(simple-service 'poezio-otr-config
home-files-service-type
(list
`("config/poezio/plugins/otr.cfg"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/poezio/plugins/otr.cfg")))))
(simple-service 'stumpwm-config
home-files-service-type
(list
`("stumpwm.d/init.lisp"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/stumpwm/init.lisp")))))
(simple-service 'termite-config
home-files-service-type
(list
`("config/termite/config"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/termite/config")))))
(simple-service 'x-xinit-config
home-files-service-type
(list
`("xinitrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/x/xinitrc")))))
(simple-service 'x-xserver-config
home-files-service-type
(list
`("xserverrc"
,(local-file
(string-append (getenv "HOME")
"/dotfiles/x/xserverrc"))))))
;; Daemons
(list
(service home-shepherd-service-type
(home-shepherd-configuration
(services
(list
(shepherd-service
(provision '(emacs))
(start #~(make-system-constructor "emacs --daemon"))
(stop #~(make-system-destructor "emacsclient -e '(kill-emacs)'")))
(shepherd-service
(provision '(gpg-agent))
(start #~(make-system-constructor "gpg-agent --daemon"))
(stop #~(make-system-destructor "gpg-connect-agent killagent /bye")))
(shepherd-service
(provision '(polkit-agent))
(start #~(make-system-constructor "$HOME/.guix-home/profile/libexec/polkit-gnome-authentication-agent-1 &"))
(stop #~(make-system-destructor "pkill -9 polkit-gnome-authentication-agent-1")))
(shepherd-service
(provision '(udiskie))
(start #~(make-system-constructor "udiskie &"))
(stop #~(make-system-destructor "pkill -9 udiskie")))))))))))

288
system/config.scm Executable file
View File

@ -0,0 +1,288 @@
(use-modules
(gnu)
(gnu system nss)
(gnu system setuid)
(rg packages suckless)
(rg services base))
(use-package-modules
aspell
certs
disk
fonts
fontutils
freedesktop
glib
gnome
gstreamer
kde-frameworks
linux
lisp
package-management
polkit
qt
wm
xorg
xdisorg)
(use-service-modules
authentication
avahi
certbot
cups
dbus
desktop
dns
linux
networking
nix
pm
security-token
sound
virtualization
vpn
xorg)
(operating-system
;; Use LTS versions of the kernel.
(kernel linux-libre-lts)
(kernel-arguments
(append
(list
;; Enable fan control from userspace.
"thinkpad_acpi.fan_control=1")
%default-kernel-arguments))
(initrd-modules
;; Remove incompatible modules.
(delete "simplefb" %base-initrd-modules))
(keyboard-layout
(keyboard-layout "us"))
(bootloader
(bootloader-configuration
(bootloader
;; Don't install Grub binaries on disk,
;; but still generate Grub configuration.
(bootloader
(inherit grub-bootloader)
(installer #~(const #t))))
(keyboard-layout keyboard-layout)))
(label "secondary")
(host-name "secondary")
(mapped-devices
(append
;; LUKS
(list
(mapped-device
(source
(uuid "7a0cbb90-7f10-4db9-a5cb-0c923f8e560a"))
(targets
(list
"secondary"))
(type luks-device-mapping)))
;; LVM
(list
(mapped-device
(source "secondary")
(targets
(list
"secondary-root"
"secondary-swap"))
(type lvm-device-mapping)))))
(file-systems
(append
(list
(file-system
(type "btrfs")
(mount-point "/")
(device "/dev/mapper/secondary-root")
(flags '(no-atime))
(options "space_cache=v2")
(needed-for-boot? #t)
(dependencies mapped-devices)))
%base-file-systems))
(swap-devices
(append
(list
(swap-space
(target "/dev/mapper/secondary-swap")
(dependencies mapped-devices)))))
(users
(append
(list
(user-account
(name "rg")
(comment "Raghav Gururajan")
(group "users")
(supplementary-groups
'("audio" "cdrom" "kvm" "libvirt" "lp"
"netdev" "tape" "tor" "video" "wheel"))))
%base-user-accounts))
(packages
(append
;; Certificates
(list
nss-certs)
;; Dictionaries
(list
aspell-dict-en
hunspell-dict-en
hunspell-dict-en-ca)
;; Fonts
(list
font-google-noto)
;; Icons
(list
adwaita-icon-theme
breeze-icons
hicolor-icon-theme
oxygen-icons)
;; Languages
(list
sbcl)
;; Modules
(list
sbcl-stumpwm-ttf-fonts)
;; Plugins
(list
gst-plugins-base
gst-plugins-bad
gst-plugins-good
gst-plugins-ugly)
;; Programs
(list
dbus
desec-certbot-hook
flatpak
network-manager-applet
nix
st-custom
stumpwm
`(,stumpwm "lib")
xinit)
%base-packages))
(timezone "America/Toronto")
(locale "en_CA.UTF-8")
(name-service-switch %mdns-host-lookup-nss)
(services
(append
;; Device
(list
(service cups-service-type
(cups-configuration
(web-interface? #t)))
(service inputattach-service-type
(inputattach-configuration
(device-type "wacom")
(device "/dev/ttyS4")
(baud-rate 38400)))
(service sane-service-type)
(service udisks-service-type
(udisks-configuration)))
;; Display
(list
(service colord-service-type)
(service xorg-server-service-type
(xorg-configuration
(modules
;; Load these driver modules only.
(list
xf86-input-libinput
xf86-video-intel))
(drivers
;; Use intel specific video driver.
(list
"intel"))
(keyboard-layout keyboard-layout))))
;; Memory
(list
(service earlyoom-service-type))
;; Network
(list
(service avahi-service-type)
(service bitmask-service-type)
(service bluetooth-service-type
(bluetooth-configuration
(auto-enable? #t)))
(service dnsmasq-service-type
(dnsmasq-configuration
(no-resolv? #t)
(servers
(list
"9.9.9.9"
"2620:fe::fe"
"149.112.112.112"
"2620:fe::9"))))
(service modem-manager-service-type)
(service network-manager-service-type
(network-manager-configuration
(dns "none")))
(service ntp-service-type)
(service tor-service-type)
(service usb-modeswitch-service-type)
(service wpa-supplicant-service-type))
;; Operation
(list
(service nix-service-type))
;; Power
(list
(service thermald-service-type
(thermald-configuration
(ignore-cpuid-check? #t)))
(service tlp-service-type)
(service upower-service-type))
;; Security
(list
(service accountsservice-service-type)
(service certbot-service-type
(certbot-configuration
(email "admin@raghavgururajan.name")
(certificates
(list
(certificate-configuration
(name "nearlyfreespeech")
(domains '("www.raghavgururajan.name"))
(challenge "dns")
(authentication-hook "/run/current-system/profile/etc/desec/hook.sh")
(cleanup-hook "/run/current-system/profile/etc/desec/hook.sh"))))))
(service elogind-service-type)
(service fprintd-service-type)
(service polkit-service-type)
(service pcscd-service-type))
;; Sound
(list
(service alsa-service-type)
(service pulseaudio-service-type))
;; Virtualization
(list
(service libvirt-service-type)
(service qemu-binfmt-service-type
(qemu-binfmt-configuration
(platforms
(lookup-qemu-platforms "x86_64"))))
(service virtlog-service-type))
(modify-services %base-services
;; Automatically login at startup.
(mingetty-service-type config =>
(auto-login-to-tty
config "tty2" "rg"))
(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 "0cool.pub" "(public-key (ecc (curve Ed25519) (q #284DEDDA9B73063F7CFCDFDF06DD7C543DF25E5254621388D3152320A5A5EF14#)))")
(plain-file "guixrus.pub" "(public-key (ecc (curve Ed25519) (q #5397B4B2CF9034070FB4248EFFBD794000E4AEA4741E65D48081064AD8FC65DA#)))")
(plain-file "nonguix.pub" "(public-key (ecc (curve Ed25519) (q #C1FD53E5D4CE971933EC50C9F307AE2171A2D3B52C804642A7A35F84F3A4EA98#)))"))
%default-authorized-guix-keys)))))))
(setuid-programs
(append
(list
(setuid-program
(program
(file-append util-linux "/sbin/losetup"))))
%setuid-programs)))