From 19faa32dbfbb79984f6397f830ae21da787b0572 Mon Sep 17 00:00:00 2001 From: Ray Miller Date: Fri, 29 Nov 2024 16:55:11 +0000 Subject: [PATCH] Add home configuration --- .bash_profile | 2 + .bashrc | 35 ++++++++++++++++ dotfiles/git/.gitconfig | 14 +++++++ dotfiles/git/.gitignore_global | 2 + home-configuration.scm | 74 ++++++++++++++++++++++++++++++++++ 5 files changed, 127 insertions(+) create mode 100644 .bash_profile create mode 100644 .bashrc create mode 100644 dotfiles/git/.gitconfig create mode 100644 dotfiles/git/.gitignore_global create mode 100644 home-configuration.scm diff --git a/.bash_profile b/.bash_profile new file mode 100644 index 0000000..37ea25c --- /dev/null +++ b/.bash_profile @@ -0,0 +1,2 @@ +# Honor per-interactive-shell startup file +if [ -f ~/.bashrc ]; then . ~/.bashrc; fi diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..7b8afcc --- /dev/null +++ b/.bashrc @@ -0,0 +1,35 @@ +# Bash initialization for interactive non-login shells and +# for remote shells (info "(bash) Bash Startup Files"). + +# Export 'SHELL' to child processes. Programs such as 'screen' +# honor it and otherwise use /bin/sh. +export SHELL + +if [[ $- != *i* ]] +then + # We are being invoked from a non-interactive shell. If this + # is an SSH session (as in "ssh host command"), source + # /etc/profile so we get PATH and other essential variables. + [[ -n "$SSH_CLIENT" ]] && source /etc/profile + + # Don't do anything else. + return +fi + +# Source the system-wide file. +source /etc/bashrc + +# Adjust the prompt depending on whether we're in 'guix environment'. +if [ -n "$GUIX_ENVIRONMENT" ] +then + PS1='\u@\h \w [env]\$ ' +else + PS1='\u@\h \w\$ ' +fi +alias ls='ls -p --color=auto' +alias ll='ls -l' +alias grep='grep --color=auto' + +# Configure TTY for pinentry +GPG_TTY=$(tty) +export GPG_TTY diff --git a/dotfiles/git/.gitconfig b/dotfiles/git/.gitconfig new file mode 100644 index 0000000..f921b96 --- /dev/null +++ b/dotfiles/git/.gitconfig @@ -0,0 +1,14 @@ +[user] + name = Ray Miller + email = ray@1729.org.uk +[core] + excludesfile = /home/ray/.gitignore_global +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +[init] + defaultBranch = main +[credential] + helper = !pass-git-helper $@ diff --git a/dotfiles/git/.gitignore_global b/dotfiles/git/.gitignore_global new file mode 100644 index 0000000..778b7e8 --- /dev/null +++ b/dotfiles/git/.gitignore_global @@ -0,0 +1,2 @@ +# Emacs backup files +*~ diff --git a/home-configuration.scm b/home-configuration.scm new file mode 100644 index 0000000..8df7678 --- /dev/null +++ b/home-configuration.scm @@ -0,0 +1,74 @@ +;; 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 packages) + (gnu services) + (guix gexp) + (gnu home services shells) + (gnu home services dotfiles) + (gnu home services gnupg)) + +(home-environment + ;; Below is the list of packages that will show up in your + ;; Home profile, under ~/.guix-home/profile. + (packages (specifications->packages (list "emacs-no-x" + "git" + "git-crypt" + "git-lfs" + "glibc-locales" + "gnupg" + ;;"go@1.23.2" + "guile" + "guile-algorithms" + "guile-config" + "guile-dsv" + "guile-fibers" + "guile-file-names" + "guile-filesystem" + "guile-gcrypt" + "guile-gnutls" + "guile-ini" + "guile-irregex" + "guile-json" + "guile-lib" + "guile-libyaml" + "guile-quickcheck" + "guile-readline" + "guile-semver" + "guile-sqlite3" + "guile-srfi-145" + "guile-srfi-158" + "guile-srfi-197" + "guile-srfi-235" + "guile-ssh" + "guile-tap" + "nss-certs" + "pass-git-helper" + "password-store" + "recutils"))) + + ;; 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 + (guix-defaults? #t) + (environment-variables '(("XDG_RUNTIME_DIR" . "/home/ray/.local/run"))) + (aliases '(("grep" . "grep --color=auto") ("ll" . "ls -l") + ("ls" . "ls -p --color=auto"))) + (bashrc (list (local-file + "/home/ray/Workspace/guix-config/.bashrc" + "bashrc"))) + (bash-profile (list (local-file + "/home/ray/Workspace/guix-config/.bash_profile" + "bash_profile"))))) + (service home-dotfiles-service-type + (home-dotfiles-configuration + (directories '("./dotfiles")) + (layout 'stow))) + (service home-gpg-agent-service-type + (home-gpg-agent-configuration)))))