summaryrefslogtreecommitdiffstats
path: root/.config/guix
diff options
context:
space:
mode:
Diffstat (limited to '.config/guix')
-rw-r--r--.config/guix/channels.scm6
-rw-r--r--.config/guix/manifest/README9
-rw-r--r--.config/guix/manifest/doc.scm8
-rw-r--r--.config/guix/manifest/main.scm114
-rw-r--r--.config/guix/manifest/media.scm6
-rw-r--r--.config/guix/manifest/web.scm3
-rw-r--r--.config/guix/system/chaman.scm90
7 files changed, 236 insertions, 0 deletions
diff --git a/.config/guix/channels.scm b/.config/guix/channels.scm
new file mode 100644
index 0000000..9daf2a8
--- /dev/null
+++ b/.config/guix/channels.scm
@@ -0,0 +1,6 @@
+(list (channel
+ (name 'guix) ; https://git.savannah.gnu.org/git/guix.git
+ (url "file:///home/bandali/src/git/guix"))
+ (channel
+ (name 'guix-bandali) ; https://git.sr.ht/~bandali/guix-bandali
+ (url "file:///home/bandali/src/git/guix-bandali")))
diff --git a/.config/guix/manifest/README b/.config/guix/manifest/README
new file mode 100644
index 0000000..694b62b
--- /dev/null
+++ b/.config/guix/manifest/README
@@ -0,0 +1,9 @@
+To install/update the packages of the default profile, use
+
+ guix package -m $MY_GUIX_MANIFESTS/main.scm
+
+and for other profiles, use
+
+ guix package -m $MY_GUIX_MANIFESTS/name.scm -p $MY_GUIX_PROFILES/name/name
+
+where `name' is the name of the profile (e.g. `doc', `media', ...).
diff --git a/.config/guix/manifest/doc.scm b/.config/guix/manifest/doc.scm
new file mode 100644
index 0000000..b732864
--- /dev/null
+++ b/.config/guix/manifest/doc.scm
@@ -0,0 +1,8 @@
+(specifications->manifest
+ '("libreoffice"
+ "texlive-amsfonts"
+ "texlive-base"
+ "texlive-latex-listings"
+ ;; "texlive-palatino"
+ "texlive-xcolor"
+))
diff --git a/.config/guix/manifest/main.scm b/.config/guix/manifest/main.scm
new file mode 100644
index 0000000..8917d27
--- /dev/null
+++ b/.config/guix/manifest/main.scm
@@ -0,0 +1,114 @@
+(specifications->manifest
+ '("alsa-utils"
+ "bash-completion"
+ "cpufrequtils"
+ "cpupower"
+ "cvs"
+ "dunst"
+ "emacs"
+ "emacs-alert"
+ "emacs-amx"
+ "emacs-async"
+ "emacs-biblio-git"
+ "emacs-boxquote"
+ "emacs-company"
+ "emacs-company-ebdb"
+ "emacs-crux"
+ "emacs-dash"
+ "emacs-debbugs"
+ "emacs-diff-hl"
+ "emacs-dmenu"
+ "emacs-doom-themes"
+ "emacs-ebdb"
+ "emacs-emmet-mode"
+ ;; "emacs-emojify"
+ "emacs-erc-hl-nicks"
+ "emacs-erc-scrolltoplace"
+ "emacs-eshell-up"
+ "emacs-exec-path-from-shell"
+ "emacs-expand-region"
+ "emacs-exwm"
+ "emacs-exwm-edit"
+ "emacs-flycheck"
+ "emacs-geiser"
+ ;; "emacs-gnus-harvest"
+ "emacs-guix"
+ "emacs-helpful"
+ "emacs-hl-todo"
+ "emacs-ivy"
+ "emacs-magit"
+ "emacs-message-x"
+ "emacs-minions"
+ ;; "emacs-multi-term"
+ "emacs-multiple-cursors"
+ "emacs-mwim"
+ ;; "emacs-next"
+ ;; "emacs-next-delight"
+ "emacs-no-littering"
+ "emacs-org"
+ "emacs-org-contrib"
+ "emacs-org-ref"
+ "emacs-orgalist"
+ "emacs-page-break-lines"
+ "emacs-pass"
+ "emacs-pinentry"
+ "emacs-projectile"
+ "emacs-shrink-path-git"
+ "emacs-smart-mode-line"
+ "emacs-typo"
+ "emacs-unkillable-scratch"
+ "emacs-use-package"
+ "emacs-web-mode"
+ "emacs-which-key"
+ "emacs-yasnippet"
+ "emacs-znc-git"
+ "font-adobe-source-code-pro"
+ "font-gnu-freefont-ttf"
+ "font-google-roboto"
+ "font-liberation"
+ "font-linuxlibertine"
+ "font-sil-gentium"
+ "font-tex-gyre"
+ ;; "font-ubuntu"
+ "font-vazir"
+ "getmail"
+ "gettext"
+ "git"
+ "git:send-email"
+ "gnupg"
+ "guile"
+ "haunt"
+ "htop"
+ "hunspell"
+ "hunspell-dict-en-ca"
+ "hunspell-dict-en-us"
+ "isync"
+ "light"
+ "msmtp"
+ "ncdu"
+ "notmuch"
+ "openjdk"
+ "openssh"
+ "openssl"
+ "pass-otp"
+ "password-store"
+ "pasystray"
+ "pinentry-emacs"
+ "poppler" ; for 'pdffonts'
+ "rofi"
+ "rofi-pass"
+ "rsync"
+ "rxvt-unicode"
+ "screen"
+ "scrot"
+ "setxkbmap"
+ "strace"
+ "thinkfan"
+ "unzip"
+ "wget"
+ "xdg-user-dirs"
+ ;; "xkbcomp"
+ "xmodmap"
+ "xrdb"
+ "xset"
+ "xsetroot"))
diff --git a/.config/guix/manifest/media.scm b/.config/guix/manifest/media.scm
new file mode 100644
index 0000000..f8ff541
--- /dev/null
+++ b/.config/guix/manifest/media.scm
@@ -0,0 +1,6 @@
+(specifications->manifest
+ '("audacity"
+ "gimp"
+ "inkscape"
+ "mpv"
+ "youtube-dl"))
diff --git a/.config/guix/manifest/web.scm b/.config/guix/manifest/web.scm
new file mode 100644
index 0000000..6e5fd34
--- /dev/null
+++ b/.config/guix/manifest/web.scm
@@ -0,0 +1,3 @@
+(specifications->manifest
+ '("icecat"
+ "rtv"))
diff --git a/.config/guix/system/chaman.scm b/.config/guix/system/chaman.scm
new file mode 100644
index 0000000..7d9f13b
--- /dev/null
+++ b/.config/guix/system/chaman.scm
@@ -0,0 +1,90 @@
+(use-modules (gnu)
+ (gnu packages certs) ; for nss-certs
+ (gnu packages emacs-xyz) ; for exwm
+ (gnu packages linux)) ; for powertop
+(use-service-modules admin desktop mail networking pm ssh xorg)
+
+(operating-system
+ (host-name "chaman")
+ (locale "en_CA.utf8")
+ (timezone "Canada/Eastern")
+ (keyboard-layout
+ (keyboard-layout "us" "basic"))
+ (bootloader
+ (bootloader-configuration
+ (bootloader grub-bootloader)
+ (target "/dev/sda")
+ (keyboard-layout keyboard-layout)))
+ (mapped-devices
+ (list (mapped-device
+ (source
+ (uuid "283da85e-2c84-47e6-a8ca-20f4e8efb806"))
+ (target "groot")
+ (type luks-device-mapping))
+ (mapped-device
+ (source
+ (uuid "017ddebc-c2c3-4a0a-bda4-d47ec0bc67f0"))
+ (target "data")
+ (type luks-device-mapping))))
+ (file-systems
+ (cons* (file-system
+ (mount-point "/")
+ (device "/dev/mapper/groot")
+ (type "ext4")
+ (dependencies mapped-devices))
+ (file-system
+ (mount-point "/data")
+ (device "/dev/mapper/data")
+ (type "ext4")
+ (dependencies mapped-devices))
+ %base-file-systems))
+ (users
+ (cons* (user-account
+ (name "bandali")
+ (group "users")
+ (home-directory "/home/bandali")
+ (supplementary-groups
+ '("wheel" "netdev" "audio" "video")))
+ %base-user-accounts))
+ (packages
+ (cons* nss-certs
+ emacs-exwm
+ %base-packages))
+ (services
+ (cons*
+ (service xfce-desktop-service-type)
+ (set-xorg-configuration
+ (xorg-configuration
+ (keyboard-layout keyboard-layout)))
+ (dovecot-service
+ #:config
+ (dovecot-configuration
+ ;; (log-path "/dev/stderr")
+ (protocols (list (protocol-configuration
+ (name "imap"))))
+ (ssl? "no")
+ (listen '("127.0.0.1"))
+ (disable-plaintext-auth? #f)
+ (auth-mechanisms '("plain"))
+ (postmaster-address "bandali@gnu.local")
+ (mail-location "maildir:/home/bandali/mail/%d/%n/mail")
+ (userdbs (list (userdb-configuration
+ (driver "static")
+ (args (list "uid=bandali" "gid=users" "home=/home/bandali/mail/%d/%n")))))
+ (passdbs (list (passdb-configuration
+ (driver "passwd-file")
+ (args (list "/data/dovecot-passwd")))))))
+ (service rottlog-service-type)
+ (service thermald-service-type)
+ (service tlp-service-type
+ (tlp-configuration
+ (cpu-boost-on-ac? #t)
+ (sound-power-save-on-bat 0)
+ (sound-power-save-controller? #f)
+ ;; (usb-blacklist "0e8f:00a8") ;for some reason doesn't seem to work
+ (usb-autosuspend? #f)))
+ (simple-service 'my-powertop-auto-tune activation-service-type
+ #~(zero? (system* #$(file-append powertop "/sbin/powertop")
+ "--auto-tune")))
+ (simple-service 'light-udev-rules udev-service-type (list light))
+ %desktop-services)))