diff options
author | Luca Matei Pintilie <luca@lucamatei.com> | 2024-09-01 14:03:49 +0000 |
---|---|---|
committer | Luca Matei Pintilie <luca@lucamatei.com> | 2024-10-05 21:15:18 +0000 |
commit | 2fa099c66ccd7a1e85700b397eaf87585003ecca (patch) | |
tree | 1de3b26b594466f6b63b7c4e65978f6ea7220153 /home-configuration.scm | |
parent | 158da0df92ffaeeb3e832eab86fdd40a8f609e74 (diff) | |
download | dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar.gz dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar.bz2 dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar.lz dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar.xz dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.tar.zst dotfiles-2fa099c66ccd7a1e85700b397eaf87585003ecca.zip |
guix: add initial config
Diffstat (limited to '')
-rw-r--r-- | home-configuration.scm | 178 |
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"))))))) |