325 lines
8.9 KiB
Scheme
325 lines
8.9 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 autotools)
|
|
#:use-module (gnu packages base)
|
|
#:use-module (gnu packages cmake)
|
|
#:use-module (gnu packages curl)
|
|
#:use-module (gnu packages commencement)
|
|
#:use-module (gnu packages compression)
|
|
#:use-module (gnu packages containers)
|
|
#: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-apps)
|
|
#:use-module (gnu packages haskell-xyz)
|
|
#:use-module (gnu packages image)
|
|
#:use-module (gnu packages image-viewers)
|
|
#:use-module (gnu packages librewolf)
|
|
#: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 pkg-config)
|
|
#: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 shells)
|
|
#:use-module (gnu packages shellutils)
|
|
#:use-module (gnu packages sync)
|
|
#: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 (snamellit packages atuin-bin)
|
|
#: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 (srfi srfi-1)
|
|
#:use-module (ice-9 format)
|
|
)
|
|
|
|
|
|
(define-public %snam-terminal-packages
|
|
(list
|
|
cifs-utils
|
|
gnupg
|
|
pinentry
|
|
|
|
tmux
|
|
direnv
|
|
ripgrep
|
|
starship
|
|
atuin-bin
|
|
unzip
|
|
fish
|
|
fzf
|
|
|
|
watchexec
|
|
password-store
|
|
pass-otp
|
|
bc
|
|
rsync
|
|
curl
|
|
yq
|
|
lazygit-bin
|
|
gh-bin
|
|
tea-bin
|
|
lsof
|
|
|
|
git
|
|
gnu-make
|
|
glibc-locales
|
|
gcc-toolchain
|
|
cmake
|
|
autoconf
|
|
automake
|
|
pkg-config
|
|
|
|
|
|
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
|
|
texlive ; for org-latex support
|
|
|
|
|
|
vault ; hashicorp vault
|
|
))
|
|
|
|
(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
|
|
|
|
sway
|
|
wmenu
|
|
swaylock-effects
|
|
swaybg
|
|
swayidle
|
|
fuzzel
|
|
wlogout
|
|
mako
|
|
grimshot
|
|
wlsunset
|
|
wl-clipboard
|
|
|
|
|
|
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
|
|
nextcloud-client
|
|
|
|
foot
|
|
kitty
|
|
|
|
librewolf
|
|
|
|
guile-g-golf
|
|
guile-cairo
|
|
gtk
|
|
libadwaita
|
|
gobject-introspection
|
|
|
|
zlib ; ubiquitous used so file
|
|
|
|
;; 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 '(("ec" . "emacsclient -a=''")
|
|
("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")
|
|
("sway" . "sway --unsupported-gpu")))
|
|
(bashrc
|
|
(list
|
|
(plain-file
|
|
"helpers"
|
|
(format #f "~{~a~&~}"
|
|
(list
|
|
"export PATH=$PATH:$HOME/.local/bin"
|
|
"eval \"$(direnv hook bash)\""
|
|
"eval \"$(atuin init bash)\""
|
|
"if [[ \"$ALACRITTY_WINDOW_ID\" != \"\" ]]; then tmux; fi"
|
|
)))))))
|
|
;; (simple-service 'variant-packages-service home-channels-service-type ; extend default
|
|
(service home-channels-service-type ; replace default home-channels-service
|
|
(list
|
|
(channel
|
|
(name 'guix)
|
|
(url (channel-url %default-guix-channel))
|
|
(branch "master")
|
|
(introduction
|
|
(make-channel-introduction
|
|
"9edb3f66fd807b096b48283debdcddccfea34bad"
|
|
(openpgp-fingerprint
|
|
"BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA"))))
|
|
(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 '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
|
|
`(
|
|
;; sort hidden (dot) files first in ls listings
|
|
("LC_COLLATE" . "C")
|
|
|
|
;; Emacs is our editor
|
|
("VISUAL" . "emacsclient")
|
|
("EDITOR" . "emacsclient")
|
|
|
|
;; Make sure Flatpak apps are visible
|
|
("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")))
|
|
|
|
|
|
;; Set Wayland-specific environment variables (taken from RDE)
|
|
;;("XDG_CURRENT_DESKTOP" . "sway")
|
|
;;("XDG_SESSION_TYPE" . "wayland")
|
|
;;("RTC_USE_PIPEWIRE" . "true")
|
|
;;("SDL_VIDEODRIVER" . "wayland")
|
|
;;("MOZ_ENABLE_WAYLAND" . "1")
|
|
;;("CLUTTER_BACKEND" . "wayland")
|
|
;;("ELM_ENGINE" . "wayland_egl")
|
|
;;("ECORE_EVAS_ENGINE" . "wayland-egl")
|
|
;;("QT_QPA_PLATFORM" . "wayland-egl")
|
|
))
|
|
(simple-service 'additional-fonts-service
|
|
home-fontconfig-service-type
|
|
(list
|
|
'(alias
|
|
(family "monospace")
|
|
(prefer
|
|
(family "Fira Code")
|
|
(family "Liberation Mono")
|
|
(family "Google Noto Emoji")
|
|
))))
|
|
)
|
|
)
|