modern_lisp-machine/home-configuration/home-configuration.scm

383 lines
12 KiB
Scheme

;; 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.
(use-modules (gnu home)
(gnu home services desktop)
(gnu packages)
(gnu services)
(gnu packages java)
(gnu packages librewolf)
(gnu packages guile-xyz)
(gnu packages haskell)
(gnu packages gimp)
(gnu packages ebook)
(gnu home services syncthing)
(gnu packages tor)
(gnu packages package-management)
(gnu packages syncthing)
(guix gexp)
(gnu packages rust-apps)
(gnu home services)
(gnu home services shells)
(gnu home services fontutils)
(gnu home services xdg)
(gnu packages image)
(gnu packages mpd)
(gnu packages disk)
(gnu packages emacs-xyz)
(gnu packages text-editors)
(gnu packages xfce)
(gnu packages image-viewers)
(gnu packages gnupg)
(gnu packages freedesktop)
(gnu packages fonts)
(gnu packages qt)
(gnu packages mail)
(gnu packages compression)
(gnu packages xml)
(gnu packages bittorrent)
(gnu packages xorg)
(gnu packages gstreamer)
(gnu packages xdisorg)
(gnu packages video)
(gnu packages emulators)
(gnu packages web-browsers)
(gnu packages tmux)
(gnu packages terminals)
(gnu packages linux)
(gnu packages python)
(gnu packages cmake)
(gnu packages readline)
(gnu packages curl)
(gnu packages pdf)
(gnu packages glib)
(gnu packages admin)
(gnu packages lisp-xyz)
(gnu packages wm)
(gnu packages compton)
(gnu packages lisp)
(gnu packages music)
(gnu packages version-control)
(gnu packages lxqt)
(gnu packages emacs)
(srfi srfi-26))
(define fontconfig
'(fontconfig
(comment " Set subpixel arrangement for all fonts ")
(match ((target "font")
(edit (@ (name "rgba") (mode "assign"))
(const "bgr"))
(edit (@ (name "hrgba") (mode "assign"))
(const "bgr"))
(edit (@ (name "hinting") (mode "assign"))
(bool "true")))
(comment " Alias for Migu 1P font ")
(alias ((family "sans-serif")
(prefer (family "Migu 1P")))))))
(define-syntax-rule
(associate-right (association keys) ...)
`(,@(map (cut cons <> association) keys) ...))
(home-environment
(packages (cons* flameshot
ncmpcpp
;; gd-tools
wmctrl
lf
ranger
emacs-org-roam
guile-ares-rs
emacs-arei
;; multimonitor
xset
librewolf
arandr
;;
;;
;;
;; sselp
syncthing
nano
gimp
thunar
net-tools
mcomix
pinentry
;; goldendict-ng
xdg-utils
font-google-material-design-icons
gst-plugins-good-qt
;;unrar
qtmultimedia
sylpheed
;; xpad-module
unzip
zip
emacs-esxml
html-xml-utils
emacs-rainbow-delimiters
aria2
xdg-desktop-portal
xdg-desktop-portal-gtk
gnupg
xprop
;;nicotine+
yt-dlp
higan
librewolf
nyxt
sbcl-coleslaw
emacs-nyxt
tmux
alacritty
lm-sensors
;; anki
ripgrep
emacs-olivetti
emacs-deadgrep
emacs-rg
emacs-dumb-jump
;; foliate
emacs-slime
python
xrdb
dbus
;; steam
;; make
p7zip
tor-client
cmake
;;
emacs-dirvish
readline
curl
librewolf
qpdfview
xclip
emacs-nerd-icons
emacs-telega
;; anki
flatpak
flatpak-xdg-utils
;;----
htop
cl-clx
openjdk
neofetch
kitty
picom
calibre
feh
xsel
rofi
sbcl
cmus
;; xmonad
xmonad
ghc
xmobar
ghc-xmonad-contrib
;;-----------------
zstd
;; suckless-dictpopup
scrot
cl-css
git
gst-plugins-good
gst-plugins-bad
gstreamer
pavucontrol-qt
mpv
emacs
(specifications->packages
(list "steam"
"guile"
"ueberzug++"
"fcitx5-gtk4"
"fcitx5-qt"
"fcitx5-gtk"
"navidrome-bin"
"torbrowser"
"unrar"
"nicotine+"
"librewolf"
"gimp"
"foliate"
"tor-client"
"make"
"element-desktop"
"font-apple-color-emoji"))))
;; Below is the list of Home services. To search for available
;; services, run 'guix home search KEYWORD' in a terminal.
(services
(list (service home-bash-service-type
(home-bash-configuration
(aliases '(("analyze_video" . "~/.local/bin/analyze_video.sh")
("ct" . "~/.local/bin/compatibility.sh")
("grep" . "grep --color=auto")
("update" . "guix pull && sudo guix system reconfigure .config/guix/config.scm")
("lf" . "~/.local/bin/lf/lfrun")
("ps2" . "nohup flatpak run --filesystem=/mnt/Data net.pcsx2.PCSX2 > /dev/null 2>&1 &")
("ll" . "ls -l")
("ls" . "ls -p --color=auto")
("run_code" . "g++ -o main main.cc -Ofast -std=c++23 -s -flto -march=native -I ~/dev/ajatt/hakurei/include/ && ./main")
("rgf" . "rg --files | rg")
("record" . "ffmpeg -f x11grab -r 23 -s 1366x768 -i $DISPLAY -f pulse -i nui_mic_remap -filter_complex '[1:a]volume=2.0[a]' -map 0:v -map '[a]' -c:v libx264 -pix_fmt yuv420p -preset ultrafast -crf 23 -y /tmp/output.mp4")
("isolate" . "guix shell --container --network --preserve='^DISPLAY$' \
--preserve='^XAUTHORITY$' --expose=$XAUTHORITY --expose=/etc/ssl/certs --no-cwd ")))
(bashrc (list (local-file
"/home/hashirama/src/guix-config/.bashrc"
"bashrc")))
(bash-profile (list (local-file
"/home/hashirama/src/guix-config/.bash_profile"
"bash_profile")))
(environment-variables
'(
("GTK_IM_MODULE"
. "fcitx")
("QT_IM_MODULE"
. "fcitx")
("GUIX_GTK2_IM_MODULE_FILE"
. "/run/current-system/profile/lib/gtk-2.0/2.10.0/immodules-gtk2.cache")
("GUIX_GTK3_IM_MODULE_FILE"
. "/run/current-system/profile/lib/gtk-3.0/3.0.0/immodules-gtk3.cache")
("XMODIFIERS=@im="
. "fcitx")
("INPUT_METHOD"
. "fcitx")
("XIM_PROGRAM"
. "fcitx")
("GLFW_IM_MODULE"
. "ibus")
("GUILE_LOAD_PATH"
. "$HOME/dev/guix_channel/ajatt-tools-guix:$GUILE_LOAD_PATH")
("XMONAD_CONFIG_DIR"
. "$HOME/.xmonad")
("GUIX_PROFILE=$HOME/.config/guix/current"
. "$GUIX_PROFILE/etc/profile")
))
))
(service home-syncthing-service-type
(for-home
(syncthing-configuration
(user "hashirama"))))
(service home-xdg-mime-applications-service-type
(home-xdg-mime-applications-configuration
(default (associate-right
('librewolf.desktop
`("text/html"
"application/xhtml+xml"
"application/x-extension-htm"
"application/x-extension-xhtml"
"application/x-extension-xht"
"x-scheme-handler/http"
"x-scheme-handler/https"))
('emacs.desktop
`("text/plain"
"text/troff"
"text/xml"
"text/x-c"
"text/x-c++"
"text/x-diff"
"text/x-lisp"
"text/x-scheme"
"text/x-shellscript"
"text/x-tex"))
('lf.desktop
`("inode/directory"
"x-scheme-handler/ftp"
"x-scheme-handler/nfs"
"x-scheme-handler/smb"
"x-scheme-handler/ssh"
"application/x-directory"))
('mpv.desktop
`("image/gif"
"audio/mpeg"
"audio/ogg"
"audio/opus"
"audio/x-opus+ogg"
"audio/flac"
"video/mp4"
"application/octet-stream"
"video/mp2t"
"video/x-matroska"
"video/webm"))
('nsxiv.desktop
`("image/avif"
"image/bmp"
"image/jpeg"
"image/png"
"image/svg+xml"
"image/webp"))
('emacs.desktop
`("image/vnd.djvu"))
('foliate.desktop
`("application/epub+zip"))
('sioyek.desktop
`("application/pdf"))
))))
(simple-service 'font-antialias
home-fontconfig-service-type
(list "~/.local/share/fonts" fontconfig))
(simple-service 'bash-fancy-prompt
home-bash-service-type
(home-bash-extension
(environment-variables
'(("PS1" . "\\u \\wλ ")))))
(simple-service 'environment-variables-service
home-environment-variables-service-type
`(#|Shells|#
("PATH" . "$HOME/.local/bin:$PATH")
("XINITRC" . "$XDG_CONFIG_HOME/.xinitrc")
#|Guile|#
("GUILE_WARN_DEPRECATED" . "detailed")
("GUILE_LOAD_PATH"
. "$HOME/dev/guix_channel/ajatt-tools-guix:$GUILE_LOAD_PATH")
#|IME|#
("GTK_IM_MODULE" . "fcitx")
("QT_IM_MODULE" . "fcitx")
("XMODIFIERS" . "@im=fctix")
#|Dictionary|#
("STARDICT_DATA_DIR" . "/mnt/Data/Japanese_Resources/languages-study(japanesAndRussian)/dicts/stardict/being_used")
#|Language|#
("LANG" . "en_US.UTF-8")
("LANGUAGE" . "en_US.UTF-8")
("LC_COLLATE" . "C")
#|Default applications|#
("BROWSER" . "nyxt")
("EDITOR" . "emacs")
("FCEDIT" . "emacs")
("PAGER" . "less")
("READER" . "foliate")
("SHELL" . "bash")
("TERMINAL" . "alacritty")
("VISUAL" . "nsxiv")
("WM" . "xmonad")))))
)