aboutsummaryrefslogtreecommitdiff
path: root/home-configuration.scm
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--home-configuration.scm178
1 files changed, 178 insertions, 0 deletions
diff --git a/home-configuration.scm b/home-configuration.scm
new file mode 100644
index 0000000..d17442b
--- /dev/null
+++ b/home-configuration.scm
@@ -0,0 +1,178 @@
+;; 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)
+ (ice-9 match)
+ (ice-9 ftw)
+ (ice-9 string-fun)
+ (gnu home services)
+ (gnu home services shells)
+ (gnu services)
+ (gnu packages admin)
+ (gnu packages gnome)
+ (gnu packages base)
+ (gnu packages imagemagick)
+ (gnu packages xfce)
+ (gnu packages video)
+ (gnu packages bash)
+ (gnu packages rust-apps)
+ (gnu packages networking)
+ (gnu packages linux)
+ (gnu packages llvm)
+ (gnu packages cmake)
+ (gnu packages music)
+ (gnu packages photo)
+ (gnu packages wm)
+ (gnu packages package-management)
+ (gnu packages terminals)
+ (gnu packages messaging)
+ (gnu packages xdisorg)
+ (gnu packages gcc)
+ (gnu packages gimp)
+ (gnu packages version-control)
+ (gnu packages golang)
+ (gnu packages disk)
+ (gnu packages image)
+ (gnu packages image-viewers)
+ (gnu packages web)
+ (gnu packages calendar)
+ (gnu packages libreoffice)
+ (gnu packages mail)
+ (gnu packages vim)
+ (gnu packages containers)
+ (gnu packages elf)
+ (gnu packages pulseaudio)
+ (gnu packages compton)
+ (gnu packages virtualization)
+ (gnu packages rsync)
+ (gnu packages tmux)
+ (gnu packages tor)
+ (gnu packages bittorrent)
+ (gnu packages compression)
+ (gnu packages w3m)
+ (gnu packages freedesktop)
+ (gnu packages pdf)
+ (guix gexp)
+ (guix build utils)
+ (guix channels))
+
+(define (file-not-symlink-check file stat)
+ (not (symbolic-link? file)))
+
+(home-environment
+ ;; Below is the list of packages that will show up in your
+ ;; Home profile, under ~/.guix-home/profile.
+ ;; Can't find
+ ;; ccache chathistorysync chromium chrony delta dolphin firefox k9s kubectl newsboat pass steam toot turnstile wayvnc weechat
+ ;; Won't build
+ ;; avidemux
+ ;; Unknown
+ ;; which
+ (packages (list imagemagick
+ network-manager
+ thunar
+ bash
+ bat
+ blueman
+ bluez
+ rust-cargo
+ clang
+ cmake
+ cmus
+ darktable
+ dunst
+ easytag
+ fastfetch
+ ffmpeg
+ flatpak
+ foot
+ gajim
+ gajim
+ gammastep
+ gcc
+ gimp
+ git
+ go
+ gparted
+ greetd
+ grim
+ htop
+ hut
+ imv
+ jq
+ khal
+ libreoffice
+ mercurial
+ mpv
+ neomutt
+ neovim
+ nmap
+ obs
+ opendoas
+ passt
+ patchelf
+ pavucontrol
+ picom
+ pipewire
+ podman
+ podman
+ profanity
+ qemu
+ ranger
+ ripgrep
+ rsync
+ seatd
+ slurp
+ swappy
+ sway
+ swayidle
+ swaylock
+ swayr
+ tmux
+ torsocks
+ transmission
+ unzip
+ vim
+ w3m
+ wl-clipboard
+ wofi
+ wtype
+ yt-dlp
+ ytfzf
+ zathura
+ zathura
+ zip
+ zstd))
+ ;; 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
+ (bashrc (list (local-file ".bashrc" "bashrc")))
+ ;; TODO: Is it correct to use .profile as .bash_profile?
+ (bash-profile (list (local-file ".profile" "profile")))
+ (bash-logout (list (local-file ".bash_logout" "bash_logout")))))
+ (service home-files-service-type
+ ;; Go through all relevant files in this repo and add them as symlinks individually
+ ;; This is not done using local-file's recurse option in particular because
+ ;; some services add their own files to .config, and there
+ ;; will be conflicts if one service wants
+ ;; .config/fontconfig/fonts.conf while we eat up the whole .config
+ (map (lambda (name)
+ `(,name ,(local-file (assume-source-relative-file-name
+ name)
+ ;; objects cannot have "." or "/"
+ ;; in their name, so these must
+ ;; be explicitely substituted
+ (string-replace-substring (string-replace-substring
+ name
+ "."
+ "-")
+ "/"
+ "-"))))
+ ;; The given folders and files we want from the repo
+ (append (find-files "./.config" file-not-symlink-check)
+ (find-files "./.local" file-not-symlink-check)
+ (list ".xinitrc" ".inputrc" ".tcshrc")))))))