2022-03-26 15:04:45 +00:00
|
|
|
;; 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.
|
|
|
|
|
|
|
|
(define-module (rekahsoft guix-config home)
|
|
|
|
#:use-module (gnu home)
|
|
|
|
#:use-module (gnu packages)
|
|
|
|
#:use-module (gnu services)
|
|
|
|
#:use-module (guix profiles)
|
|
|
|
#:use-module (guix transformations)
|
|
|
|
#:use-module (guix gexp)
|
|
|
|
#:use-module (gnu home services shells)
|
|
|
|
#:use-module (gnu home services desktop)
|
2022-03-26 15:26:42 +00:00
|
|
|
#:use-module (nongnu packages mozilla)
|
|
|
|
#:use-module (rekahsoft-gnu packages haskell-apps)
|
|
|
|
#:use-module (rekahsoft-gnu packages emacs-xyz)
|
|
|
|
#:use-module (rekahsoft-gnu packages python-xyz)
|
|
|
|
#:use-module (rekahsoft-gnu packages shellutils)
|
|
|
|
#:use-module (rekahsoft-gnu packages spice)
|
|
|
|
#:use-module (rekahsoft-gnu packages terraform)
|
2022-03-28 22:05:54 +00:00
|
|
|
#:use-module (rekahsoft-gnu packages uml)
|
2022-03-26 15:26:42 +00:00
|
|
|
#:export (%home %home-manifest))
|
2022-03-26 15:04:45 +00:00
|
|
|
|
2022-03-26 15:26:42 +00:00
|
|
|
(define transform--emacs-helm-mu
|
|
|
|
(options->transformation
|
|
|
|
'((with-commit . "emacs-helm-mu=392a8c11ab27b625d9f863cdde14e09893401b15"))))
|
|
|
|
|
|
|
|
(define transform--emacs-org-super-agenda
|
|
|
|
(options->transformation
|
|
|
|
'((without-tests . "emacs-org-super-agenda"))))
|
|
|
|
|
|
|
|
(define-public %emacs-manifest
|
|
|
|
(concatenate-manifests
|
|
|
|
(list
|
|
|
|
(packages->manifest
|
|
|
|
(list
|
|
|
|
;; Temporary: emacs-helm-mu is broken but has been fixed upstream
|
|
|
|
(transform--emacs-helm-mu
|
|
|
|
(specification->package "emacs-helm-mu"))
|
|
|
|
|
|
|
|
;; Temporary: emacs-org-super-agenda tests stall and do not complete due to interactive prompt
|
|
|
|
(transform--emacs-org-super-agenda
|
|
|
|
(specification->package "emacs-org-super-agenda"))
|
|
|
|
(transform--emacs-org-super-agenda ;; org-ql propigates org-super-agenda
|
|
|
|
(specification->package "emacs-org-ql"))
|
|
|
|
|
|
|
|
;; Packages from the rekahsoft-guix channel
|
|
|
|
emacs-ace-mc
|
|
|
|
emacs-hamlet-mode
|
|
|
|
emacs-helm-rg
|
|
|
|
emacs-helm-tramp
|
|
|
|
emacs-helm-unicode
|
|
|
|
emacs-highlight-indent-guides
|
|
|
|
emacs-highlight-parentheses
|
|
|
|
emacs-ibuffer-vc
|
|
|
|
emacs-intel-hex-mode
|
|
|
|
emacs-ix
|
|
|
|
emacs-mu4e-dashboard
|
|
|
|
emacs-mu4e-maildirs-extension
|
|
|
|
emacs-org-html-theme-darksun
|
|
|
|
emacs-org-html-themes
|
|
|
|
emacs-org-roam-extensions
|
|
|
|
emacs-org-roam-ui
|
2022-03-26 23:13:26 +00:00
|
|
|
emacs-persp-projectile
|
2022-03-26 15:26:42 +00:00
|
|
|
emacs-quack
|
|
|
|
emacs-rcirc-notify
|
|
|
|
emacs-rebox2
|
|
|
|
emacs-vimish-fold
|
|
|
|
emacs-eval-in-repl
|
|
|
|
emacs-org-babel-eval-in-repl
|
|
|
|
|
2022-03-28 22:05:54 +00:00
|
|
|
;; More up-to-date plantuml
|
|
|
|
plantuml-1.2022.2
|
|
|
|
|
2022-03-26 15:26:42 +00:00
|
|
|
;; Use more up-to-date treemacs and treemacs-extra (as well as required dependencies)
|
|
|
|
emacs-treemacs-20201225
|
|
|
|
emacs-treemacs-extra-20201225
|
|
|
|
emacs-all-the-icons-20201225
|
|
|
|
emacs-doom-themes-20201225
|
|
|
|
|
|
|
|
;; Use more up-to-date ace-link
|
|
|
|
emacs-ace-link-2021-01-1))
|
|
|
|
(specifications->manifest
|
|
|
|
'("aspell"
|
|
|
|
"aspell-dict-en"
|
|
|
|
"emacs"
|
|
|
|
"emacs-ace-jump-mode"
|
|
|
|
"emacs-ace-window"
|
|
|
|
"emacs-ag"
|
|
|
|
"emacs-all-the-icons-dired"
|
|
|
|
"emacs-auctex"
|
|
|
|
"emacs-auto-complete"
|
|
|
|
"emacs-auto-yasnippet"
|
|
|
|
"emacs-dashboard"
|
|
|
|
"emacs-dired-hacks"
|
|
|
|
"emacs-docker"
|
|
|
|
"emacs-docker-tramp"
|
|
|
|
"emacs-doom-modeline"
|
|
|
|
"emacs-elpher"
|
|
|
|
"emacs-emmet-mode"
|
|
|
|
"emacs-emms"
|
|
|
|
"emacs-expand-region"
|
|
|
|
"emacs-exwm"
|
|
|
|
"emacs-fill-column-indicator"
|
|
|
|
"emacs-flycheck"
|
|
|
|
"emacs-flycheck-ledger"
|
|
|
|
"emacs-geiser"
|
|
|
|
"emacs-gnuplot"
|
|
|
|
"emacs-go-mode"
|
|
|
|
"emacs-god-mode"
|
|
|
|
"emacs-graphql-mode"
|
|
|
|
"emacs-graphviz-dot-mode"
|
|
|
|
"emacs-guix"
|
|
|
|
"emacs-haskell-mode"
|
|
|
|
"emacs-helm"
|
|
|
|
"emacs-helm-ag"
|
|
|
|
"emacs-helm-c-yasnippet"
|
|
|
|
"emacs-helm-descbinds"
|
|
|
|
"emacs-helm-exwm"
|
|
|
|
"emacs-helm-gtags"
|
|
|
|
"emacs-helm-ls-git"
|
|
|
|
"emacs-helm-org"
|
|
|
|
"emacs-helm-pass"
|
|
|
|
"emacs-helm-projectile"
|
|
|
|
"emacs-helm-swoop"
|
|
|
|
"emacs-highlight-sexp"
|
|
|
|
"emacs-htmlize"
|
|
|
|
"emacs-hydra"
|
|
|
|
"emacs-ibuffer-projectile"
|
|
|
|
"emacs-isearch+"
|
|
|
|
"emacs-ivy"
|
|
|
|
"emacs-json-mode"
|
|
|
|
"emacs-jsonnet-mode"
|
|
|
|
"emacs-ledger-mode"
|
|
|
|
"emacs-lua-mode"
|
|
|
|
"emacs-magit"
|
|
|
|
"emacs-forge"
|
|
|
|
"emacs-markdown-mode"
|
|
|
|
"emacs-mmm-mode"
|
|
|
|
"emacs-mu4e-alert"
|
|
|
|
"emacs-mu4e-conversation"
|
|
|
|
"emacs-multi-term"
|
|
|
|
"emacs-multiple-cursors"
|
|
|
|
"emacs-no-littering"
|
|
|
|
"emacs-org"
|
|
|
|
"emacs-org-download"
|
|
|
|
"emacs-org-mind-map"
|
|
|
|
"emacs-org-noter"
|
|
|
|
"emacs-org-roam"
|
|
|
|
"emacs-org-web-tools"
|
|
|
|
"emacs-orgit"
|
|
|
|
"emacs-ob-async"
|
|
|
|
"emacs-paredit"
|
|
|
|
"emacs-pdf-tools"
|
|
|
|
"emacs-persp-mode"
|
|
|
|
"emacs-php-mode"
|
|
|
|
"emacs-plantuml-mode"
|
|
|
|
"emacs-pretty-mode"
|
|
|
|
"emacs-projectile"
|
|
|
|
"emacs-racket-mode"
|
|
|
|
"emacs-rainbow-delimiters"
|
|
|
|
"emacs-rainbow-identifiers"
|
|
|
|
"emacs-rainbow-mode"
|
|
|
|
"emacs-realgud"
|
|
|
|
"emacs-rec-mode"
|
|
|
|
"emacs-restclient"
|
|
|
|
"emacs-ripgrep"
|
|
|
|
"emacs-rust-mode"
|
|
|
|
"emacs-scribble-mode"
|
|
|
|
"emacs-slime"
|
|
|
|
"emacs-string-inflection"
|
|
|
|
"emacs-swiper"
|
|
|
|
"emacs-terraform-mode"
|
|
|
|
"emacs-tramp"
|
|
|
|
"emacs-undo-tree"
|
|
|
|
"emacs-use-package"
|
|
|
|
"emacs-vterm"
|
|
|
|
"emacs-yaml-mode"
|
|
|
|
"emacs-yasnippet"
|
|
|
|
"emacs-yasnippet-snippets"
|
|
|
|
"gnuplot"
|
|
|
|
"isync"
|
|
|
|
"mu"
|
|
|
|
|
|
|
|
; "emacs-ac-geiser" ;; TODO: hash mismatch; possible non-determinism
|
|
|
|
;"emacs-helm-mu" ;; TODO: broken, but fixed upstream
|
|
|
|
|
|
|
|
"emacs-all-the-icons-ibuffer" ;; TODO: this package exists in both guix and rekahsoft-guix channels, resulting in a confict warning
|
|
|
|
)))))
|
|
|
|
|
|
|
|
(define-public %shell-manifest
|
|
|
|
(concatenate-manifests
|
|
|
|
(list
|
|
|
|
(packages->manifest
|
|
|
|
(list
|
|
|
|
;; TODO: this was added upstream (as "go-github-com-junegunn-fzf") but is not as complete as my existing package
|
|
|
|
fzf
|
|
|
|
;; Remaining packages from the rekahsoft-guix channel
|
|
|
|
spaceship-prompt))
|
|
|
|
(specifications->manifest
|
|
|
|
'("bat"
|
|
|
|
"exa"
|
2022-03-28 02:41:33 +00:00
|
|
|
"fd"
|
2022-03-26 15:26:42 +00:00
|
|
|
"ripgrep"
|
|
|
|
"sh-z"
|
|
|
|
"zsh-autosuggestions"
|
|
|
|
"zsh-syntax-highlighting")))))
|
|
|
|
|
|
|
|
(define-public %xorg-manifest
|
|
|
|
(specifications->manifest
|
|
|
|
'("mesa"
|
|
|
|
"setxkbmap"
|
|
|
|
"xdg-utils"
|
|
|
|
"xf86-input-libinput"
|
|
|
|
"xf86-video-fbdev"
|
|
|
|
"xinit"
|
|
|
|
"xinput"
|
|
|
|
"xkbcomp"
|
|
|
|
"xkeyboard-config"
|
|
|
|
"xlsfonts"
|
|
|
|
"xorg-server"
|
|
|
|
"xrandr"
|
|
|
|
"autorandr"
|
|
|
|
"xrdb"
|
|
|
|
"xsetroot")))
|
|
|
|
|
|
|
|
(define-public %wayland-manifest
|
|
|
|
(specifications->manifest
|
|
|
|
'("grim"
|
|
|
|
"hicolor-icon-theme" ;; Required for wofi icon theme
|
|
|
|
"slurp"
|
|
|
|
"sway"
|
|
|
|
"wayland"
|
|
|
|
"wofi")))
|
|
|
|
|
|
|
|
;; Manifest containing x programs (that cannot natively run with wayland).
|
|
|
|
(define-public %xorg-apps-manifest
|
|
|
|
(concatenate-manifests
|
|
|
|
(list
|
|
|
|
(packages->manifest
|
|
|
|
(list
|
|
|
|
;; Packages from nonguix channel
|
|
|
|
firefox
|
|
|
|
|
|
|
|
;; Packages from rekahsoft-guix channel
|
|
|
|
virt-viewer-11))
|
|
|
|
(specifications->manifest
|
|
|
|
'("dunst" ;; <- May not need this; use something in emacs
|
|
|
|
"feh"
|
|
|
|
"pavucontrol"
|
|
|
|
"redshift"
|
|
|
|
"rofi" ;; <- Look into replacing in emacs
|
|
|
|
"rofi-pass" ;; <- This should be replacable in emacs with helm-pass
|
|
|
|
"i3lock" ;; required for i3lock-fancy
|
|
|
|
"i3lock-fancy"
|
|
|
|
"xmonad"
|
|
|
|
"xmobar"
|
2022-03-29 19:57:42 +00:00
|
|
|
"scrot"
|
2022-03-26 15:26:42 +00:00
|
|
|
"trayer-srg" ;; used in xmonad as system tray
|
|
|
|
"dmenu"
|
|
|
|
"unclutter"
|
|
|
|
"virt-manager"
|
|
|
|
"xautolock"
|
|
|
|
"xclip"
|
|
|
|
"zathura"
|
|
|
|
"zathura-djvu"
|
|
|
|
"zathura-pdf-poppler"
|
|
|
|
"zathura-ps")))))
|
|
|
|
|
|
|
|
;; Manifest containing Xorg and Wayland native compatible programs
|
|
|
|
(define-public %xorg-wayland-apps-manifest
|
|
|
|
(specifications->manifest
|
|
|
|
'("kitty" ;; <- May not need this and instead will use emacs-vterm
|
|
|
|
"alacritty" ;; <- ditto
|
|
|
|
"libnotify" ;; for notify-send
|
|
|
|
"network-manager-applet"
|
|
|
|
"numix-gtk-theme"
|
|
|
|
"adwaita-icon-theme")))
|
|
|
|
|
|
|
|
(define-public %guile-manifest
|
|
|
|
(specifications->manifest
|
|
|
|
'("guile"
|
|
|
|
"guile-charting" ;; guile-charting is required for 'guix size --map-file'
|
|
|
|
"guile-colorized"
|
|
|
|
"guile-hall"
|
|
|
|
"guile-readline")))
|
|
|
|
|
|
|
|
(define-public %misc-manifest
|
|
|
|
(concatenate-manifests
|
|
|
|
(list
|
|
|
|
(packages->manifest
|
|
|
|
(list
|
|
|
|
;; Packages from rekahsoft-guix
|
|
|
|
awscliv2
|
|
|
|
ledger-autosync
|
|
|
|
hledger-ui
|
|
|
|
terraform-provider-aws
|
|
|
|
terraform-wrapper-0.13))
|
|
|
|
(specifications->manifest
|
|
|
|
'("ansible"
|
|
|
|
"alsa-utils" ;; for alsamixer
|
|
|
|
"aws-vault"
|
|
|
|
"beets"
|
|
|
|
"bmon"
|
2022-03-30 07:25:12 +00:00
|
|
|
"bind:utils" ;; for dig
|
2022-03-26 15:26:42 +00:00
|
|
|
"coreutils"
|
|
|
|
"curl"
|
|
|
|
"direnv"
|
|
|
|
"flatpak"
|
|
|
|
"xdg-desktop-portal" ;; improves user experience of flatpak
|
|
|
|
"font-dejavu"
|
|
|
|
"font-liberation"
|
|
|
|
"font-fira-code" ;; TODO: check if font is needed
|
|
|
|
"font-gnu-freefont"
|
|
|
|
"font-terminus"
|
|
|
|
"font-google-noto"
|
|
|
|
"git"
|
|
|
|
"git:send-email"
|
|
|
|
"git:subtree"
|
|
|
|
"glibc-locales"
|
|
|
|
"gnupg"
|
|
|
|
"graphviz"
|
|
|
|
"font-ghostscript"
|
|
|
|
"gwl"
|
|
|
|
"hledger"
|
|
|
|
"hledger-web"
|
|
|
|
"htop"
|
|
|
|
"jq"
|
|
|
|
"ledger"
|
|
|
|
"mpd"
|
|
|
|
"mpv"
|
|
|
|
"ncmpcpp" ;; <- This can be replaced by emacs-emms
|
|
|
|
"nextcloud-client"
|
|
|
|
"nmap"
|
|
|
|
"nss-certs"
|
|
|
|
"nyxt"
|
|
|
|
"openssh"
|
|
|
|
"gnupg"
|
|
|
|
"pinentry-gnome3"
|
|
|
|
"pass-otp"
|
|
|
|
"password-store"
|
|
|
|
"recutils"
|
|
|
|
"rhash"
|
|
|
|
"skopeo"
|
|
|
|
"texlive"
|
|
|
|
"tmux"
|
|
|
|
"ungoogled-chromium"
|
|
|
|
"util-linux"
|
|
|
|
"wget"
|
|
|
|
"youtube-dl"
|
|
|
|
|
|
|
|
"kicad"
|
|
|
|
"kicad-templates"
|
|
|
|
"kicad-symbols"
|
|
|
|
"kicad-packages3d"
|
|
|
|
"kicad-footprints"
|
|
|
|
"kicad-doc"
|
|
|
|
|
|
|
|
"gtkwave"
|
|
|
|
|
|
|
|
;; TODO: (packages I like but maybe should be project specific?)
|
|
|
|
;; "avr-toolchain" (propigated inputs: "avrdude" "avr-binutils" "avr-gcc")
|
|
|
|
;; "clojure"
|
|
|
|
;; "lua"
|
|
|
|
;; "chez"
|
|
|
|
;; "coq"
|
|
|
|
|
|
|
|
;; TODO: (these probably should go in the system configuration)
|
|
|
|
;; "bitlebee"
|
|
|
|
)))))
|
|
|
|
|
|
|
|
(define %home-manifest
|
|
|
|
(concatenate-manifests
|
|
|
|
(list
|
|
|
|
%emacs-manifest
|
|
|
|
%shell-manifest
|
|
|
|
%xorg-manifest
|
|
|
|
%wayland-manifest
|
|
|
|
%xorg-apps-manifest
|
|
|
|
%xorg-wayland-apps-manifest
|
|
|
|
%guile-manifest
|
|
|
|
%misc-manifest)))
|
2022-03-26 15:04:45 +00:00
|
|
|
|
|
|
|
(define %home
|
|
|
|
(home-environment
|
|
|
|
(packages
|
2022-03-30 07:24:14 +00:00
|
|
|
(map (lambda (m)
|
|
|
|
(list (manifest-entry-item m)
|
|
|
|
(manifest-entry-output m)))
|
|
|
|
(manifest-entries %home-manifest)))
|
2022-03-26 15:04:45 +00:00
|
|
|
(services
|
|
|
|
(list
|
|
|
|
(service home-bash-service-type
|
|
|
|
(home-bash-configuration
|
|
|
|
(aliases
|
|
|
|
(let ((aws-alias "aws-vault exec --no-session ${AWS_PROFILE:-default} -- aws")
|
|
|
|
(aws-shell-alias "aws-vault exec --no-session ${AWS_PROFILE:-default} -- aws-shell"))
|
|
|
|
`(("ls" . "ls --color=auto")
|
|
|
|
("ll" . "ls -l")
|
|
|
|
("la" . "ls -a")
|
|
|
|
("lla" . "ls -al")
|
|
|
|
|
|
|
|
("grep" . "grep --color=auto")
|
|
|
|
("fgrep" . "fgrep --color=auto")
|
|
|
|
("egrep" . "egrep --color=auto")
|
|
|
|
("f" . "find")
|
|
|
|
|
|
|
|
("b" . "bat")
|
|
|
|
("x" . "exa")
|
|
|
|
("xs" . "exa")
|
|
|
|
("xl" . "exa -l")
|
|
|
|
("xla" . "exa -la")
|
|
|
|
("xx" . "x -alT --git")
|
|
|
|
|
|
|
|
("av" . "aws-vault")
|
|
|
|
("avl" . "aws-vault login ${AWS_PROFILE:-default}")
|
|
|
|
("ave" . "aws-vault exec ${AWS_PROFILE:-default} --")
|
|
|
|
("aven" . "aws-vault exec --no-session ${AWS_PROFILE:-default} --")
|
|
|
|
("aws" . ,aws-alias)
|
|
|
|
("aws-shell" . ,aws-shell-alias)
|
|
|
|
("unaws" . "unset AWS_{PROFILE,SECRET_ACCESS_KEY,ACCESS_KEY_ID,SDK_LOAD_CONFIG}")
|
|
|
|
("alias-aws" . ,(string-append "alias aws=\"" aws-alias
|
|
|
|
"\"; alias aws-shell=\"" aws-shell-alias "\""))
|
|
|
|
("unalias-aws" . "unalias aws; unalias aws-shell")
|
|
|
|
|
|
|
|
("ff" . "firefox")
|
|
|
|
("ffp" . "firefox --private-window")
|
|
|
|
|
|
|
|
("e" . "emacsclient -t")
|
|
|
|
("kssh" . "kitty +kitten ssh")
|
|
|
|
|
|
|
|
("s" . "sudo")
|
|
|
|
("si" . "sudo -i"))))
|
|
|
|
(environment-variables '(("PS1" . "[\\u@\\h \\W]\\$ ")))))
|
|
|
|
|
|
|
|
(service home-redshift-service-type
|
|
|
|
(home-redshift-configuration
|
|
|
|
(location-provider 'geoclue2)))
|
|
|
|
|
|
|
|
|
|
|
|
;; (service home-zsh-configuration
|
|
|
|
;; (zshenv (list ...))
|
|
|
|
;; (zprofile (list ...))
|
|
|
|
;; (zshrc (list ...)))
|
|
|
|
))))
|