276 lines
8.1 KiB
Scheme
276 lines
8.1 KiB
Scheme
(define-module (snamellit common)
|
|
#:use-module (gnu home)
|
|
#:use-module (gnu packages)
|
|
#:use-module (gnu services)
|
|
#:use-module (gnu services desktop)
|
|
#:use-module (gnu services shepherd)
|
|
#:use-module (gnu home services)
|
|
#:use-module (gnu home services desktop)
|
|
#:use-module (gnu home services fontutils)
|
|
#:use-module (gnu home services guix)
|
|
#:use-module (gnu home services mcron)
|
|
#:use-module (gnu home services shells)
|
|
#:use-module (gnu home services shepherd)
|
|
#:use-module (gnu home services sound)
|
|
#:use-module (gnu home services xdg)
|
|
#:use-module (gnu packages algebra)
|
|
#:use-module (gnu packages aspell)
|
|
#:use-module (gnu packages base)
|
|
#:use-module (gnu packages curl)
|
|
#:use-module (gnu packages commencement)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages containers)
|
|
#:use-module (gnu packages docker)
|
|
#:use-module (gnu packages emacs)
|
|
#:use-module (gnu packages fonts)
|
|
#:use-module (gnu packages freedesktop)
|
|
#:use-module (gnu packages gimp)
|
|
#:use-module (gnu packages glib)
|
|
#:use-module (gnu packages gnome)
|
|
#:use-module (gnu packages gnupg)
|
|
#:use-module (gnu packages gtk)
|
|
#:use-module (gnu packages guile)
|
|
#:use-module (gnu packages guile-xyz)
|
|
#:use-module (gnu packages haskell-xyz)
|
|
#:use-module (gnu packages image)
|
|
#:use-module (gnu packages image-viewers)
|
|
#:use-module (gnu packages linux)
|
|
#:use-module (gnu packages lsof)
|
|
#:use-module (gnu packages ncurses)
|
|
#:use-module (gnu packages networking)
|
|
#:use-module (gnu packages node)
|
|
#:use-module (gnu packages package-management)
|
|
#:use-module (gnu packages password-utils)
|
|
#:use-module (gnu packages pulseaudio)
|
|
#:use-module (gnu packages rsync)
|
|
#:use-module (gnu packages rust-apps)
|
|
#:use-module (gnu packages samba)
|
|
#:use-module (gnu packages shellutils)
|
|
#:use-module (gnu packages terminals)
|
|
#:use-module (gnu packages texlive)
|
|
#:use-module (gnu packages tmux)
|
|
#:use-module (gnu packages uml)
|
|
#:use-module (gnu packages version-control)
|
|
#:use-module (gnu packages video)
|
|
#:use-module (gnu packages vim)
|
|
#:use-module (gnu packages web)
|
|
#:use-module (gnu packages wm)
|
|
#:use-module (gnu packages xdisorg)
|
|
#:use-module (guix channels)
|
|
#:use-module (guix gexp)
|
|
#:use-module (nongnu packages k8s)
|
|
#:use-module (nongnu packages nvidia)
|
|
#:use-module (snamellit packages tools)
|
|
#:use-module (snamellit packages xca)
|
|
#:use-module (snamellit packages lazygit-bin)
|
|
#:use-module (snamellit packages tea-bin)
|
|
#:use-module (snamellit packages gh-bin)
|
|
#:use-module (snamellit packages guile-xyz)
|
|
#:use-module (snamellit packages fzf)
|
|
#:use-module (srfi srfi-1)
|
|
#:use-module (ice-9 format)
|
|
)
|
|
|
|
|
|
(define-public %snam-terminal-packages
|
|
(list
|
|
kubectl
|
|
docker
|
|
docker-compose
|
|
cifs-utils
|
|
gnupg
|
|
pinentry
|
|
|
|
|
|
go-github-com-junegunn-fzf-0.54.3
|
|
tmux
|
|
direnv
|
|
ripgrep
|
|
unzip
|
|
watchexec
|
|
password-store
|
|
bc
|
|
texlive
|
|
rsync
|
|
curl
|
|
yq
|
|
lazygit-bin
|
|
gh-bin
|
|
tea-bin
|
|
lsof
|
|
|
|
git
|
|
gnu-make
|
|
glibc-locales
|
|
gcc-toolchain
|
|
|
|
guile-3.0
|
|
guile-colorized
|
|
guile-readline
|
|
|
|
ncurses
|
|
neovim
|
|
|
|
emacs-next
|
|
node-lts ; emacs startup relies on node being present
|
|
pandoc ; for org-mode export and markdown
|
|
plantuml ; for org-mode plantuml export
|
|
))
|
|
|
|
(define-public %snam-desktop-packages
|
|
(list
|
|
;; desktop support
|
|
flatpak
|
|
flatpak-xdg-utils
|
|
gsettings-desktop-schemas
|
|
xdg-desktop-portal
|
|
xdg-desktop-portal-gtk
|
|
xdg-desktop-portal-gnome
|
|
xdg-utils
|
|
|
|
bluez ;; strictly speaking terminal but only useful on desktop?
|
|
blueman
|
|
|
|
nm-tray
|
|
alacritty
|
|
gimp
|
|
flameshot
|
|
mpv
|
|
yt-dlp
|
|
vlc
|
|
dex
|
|
xca
|
|
pavucontrol
|
|
gnome-keyring
|
|
keepassxc
|
|
|
|
foot
|
|
kitty
|
|
|
|
guile-g-golf
|
|
guile-cairo
|
|
gtk
|
|
libadwaita
|
|
gobject-introspection
|
|
|
|
;; emacs support
|
|
emacs
|
|
aspell
|
|
aspell-dict-en
|
|
aspell-dict-fr
|
|
aspell-dict-nl
|
|
aspell-dict-de
|
|
|
|
;; some additional fonts
|
|
font-dejavu
|
|
font-fira-code
|
|
font-hack
|
|
font-iosevka
|
|
font-inconsolata
|
|
font-lato
|
|
font-liberation
|
|
font-google-noto-emoji
|
|
)
|
|
)
|
|
|
|
|
|
(define-public %snam-terminal-services
|
|
(list
|
|
(service home-bash-service-type
|
|
(home-bash-configuration
|
|
(aliases '(("gst" . "git status")
|
|
("gca" . "git commit -a")
|
|
("gcl" . "git clone")
|
|
("gco" . "git checkout")
|
|
("gd" . "git diff")
|
|
("gl" . "git pull")
|
|
("gp" . "git push")
|
|
("ggpnp". "git pull && git push")
|
|
("grb" . "git rebase")
|
|
("grba" . "git rebase --abort")
|
|
("grbc" . "git rebase --continue")))
|
|
(bashrc
|
|
(list
|
|
(plain-file
|
|
"helpers"
|
|
(format #f "~{~a~&~}"
|
|
(list
|
|
"eval \"$(direnv hook bash)\""
|
|
"eval \"$(starship init bash)\""
|
|
"source `guix locate fzf | grep bash_completion | awk -e '{print $2}'`"
|
|
)))))))
|
|
(service home-zsh-service-type
|
|
(home-zsh-configuration
|
|
(zshrc
|
|
(list
|
|
(local-file "../../../base/zshrc" "zshrc")))
|
|
(zlogin
|
|
(list
|
|
(local-file "../../../base/zlogin" "zlogin")))
|
|
(zprofile
|
|
(list
|
|
(local-file "../../../base/zprofile" "zprofile")))))
|
|
(simple-service 'variant-packages-service
|
|
home-channels-service-type
|
|
(list (channel
|
|
(name 'nonguix)
|
|
(url "https://gitlab.com/nonguix/nonguix")
|
|
;; Enable signature verification:
|
|
(introduction
|
|
(make-channel-introduction
|
|
"897c1a470da759236cc11798f4e0a5f7d4d59fbc"
|
|
(openpgp-fingerprint
|
|
"2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
|
|
(channel
|
|
(name 'guix-science-nonfree)
|
|
(url "https://github.com/guix-science/guix-science-nonfree.git")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"58661b110325fd5d9b40e6f0177cc486a615817e"
|
|
(openpgp-fingerprint
|
|
"CA4F 8CF4 37D7 478F DA05 5FD4 4213 7701 1A37 8446"))))
|
|
(channel
|
|
(name 'snamguix)
|
|
(url "https://forge.snamellit.com/pti/snamguix")
|
|
(branch "main"))))
|
|
(service home-mcron-service-type)
|
|
))
|
|
|
|
;; add folders at the end of a PATH like string, removing duplicates but
|
|
;; keeping the order of first occurrence
|
|
(define
|
|
(add-folders-to-path path folders)
|
|
(if
|
|
(null? folders)
|
|
(string-join
|
|
(delete-duplicates
|
|
(string-split path #\:))
|
|
":")
|
|
(add-folders-to-path
|
|
(string-append path ":"
|
|
(car folders))
|
|
(cdr folders))))
|
|
|
|
(define-public %snam-desktop-services
|
|
(list
|
|
(service home-dbus-service-type)
|
|
(service home-pipewire-service-type)
|
|
(simple-service 'my-xdg-data-dirs home-environment-variables-service-type
|
|
`(("XDG_DATA_DIRS" .
|
|
,(add-folders-to-path
|
|
(or (getenv "XDG_DATA_DIRS") "")
|
|
'("/var/lib/flatpak/exports/share"
|
|
"/home/pti/.local/share/flatpak/exports/share"
|
|
"/home/pti/.guix-home/profile/share")))))
|
|
(simple-service 'additional-fonts-service
|
|
home-fontconfig-service-type
|
|
(list
|
|
'(alias
|
|
(family "monospace")
|
|
(prefer
|
|
(family "FiraCode Nerd Font")
|
|
(family "Liberation Mono")
|
|
(family "Google Noto Emoji")
|
|
))))
|
|
)
|
|
)
|