diff --git a/.bashrc b/.bashrc deleted file mode 100644 index ee36013..0000000 --- a/.bashrc +++ /dev/null @@ -1,145 +0,0 @@ -# If not running interactively, don't do anything -case $- in - *i*) ;; - *) return;; -esac - -# ============================================================================= -# Personalized Logging for Shell Setup -# ============================================================================= -logging_enabled=false -log_dir="$HOME/log/$USER" -log_file="$log_dir/shell.log" - -if [ -d "$log_dir" ]; then - export SHELL_LOG_FILE="$log_file" - logging_enabled=true - touch "$SHELL_LOG_FILE" -fi - -# ============================================================================= -# Ripped from default .bashrc -# ============================================================================= -HISTCONTROL=ignoreboth -shopt -s histappend -HISTSIZE=1000 -HISTFILESIZE=2000 -shopt -s checkwinsize - -if ! shopt -oq posix; then - if [ -f /usr/share/bash-completion/bash_completion ]; then - . /usr/share/bash-completion/bash_completion - elif [ -f /etc/bash_completion ]; then - . /etc/bash_completion - fi -fi - -# ============================================================================= -# Command Prompt Customization -# ============================================================================= -ps1_startup_file="$HOME/.startup/ps1" -if [ -f "$ps1_startup_file" ]; then - source $ps1_startup_file -else - if $logging_enabled; then - echo "[warn] Custom PS1 for bash missing at " \ - "'$ps1_startup_file': " \ - "see git@git.sr.ht:~eidolon/scripts" >> "$log_file" - fi -fi - -# ============================================================================= -# Common Environment Configuration -# ============================================================================= -export EDITOR=vim - -# ============================================================================= -# PATH -# ============================================================================= -if [ -d "$HOME/bin" ]; then - export PATH="$HOME/bin:$PATH" -fi - -if [ -d "$HOME/.local/bin" ]; then - export PATH="$HOME/.local/bin:$PATH" -fi - -if [ -f "$HOME/.cargo/env" ]; then - source "$HOME/.cargo/env" -fi - -if [ -f ~/.fzf.bash ]; then - source ~/.fzf.bash -fi - -export RACKET_HOME="$HOME/opt/racket" -if [ -d "$RACKET_HOME" ]; then - export PATH="$RACKET_HOME/bin:$PATH" -fi - -export BUILDKIT_HOME="$HOME/opt/buildkit" -if [ -d "$BUILDKIT_HOME" ]; then - export PATH="$HOME/opt/buildkit/bin:$PATH" -fi - -export JAVA_HOME="$HOME/opt/jdk" -if [ -d "$JAVA_HOME/bin" ]; then - export PATH="$JAVA_HOME/bin:$PATH" -fi - -export COURSIER_HOME="$HOME/.local/share/coursier" -if [ -d "$COURSIER_HOME/bin" ]; then - export PATH="$COURSIER_HOME/bin:$PATH" -fi - -export N_PREFIX=/home/pfm/.n -if [ -d "$N_PREFIX/bin" ]; then - export PATH="$N_PREFIX/bin:$PATH" -fi - -export DOTNET_ROOT="$HOME/.dotnet" -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -if [ -d "$DOTNET_ROOT" ]; then - export PATH="$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH" -fi - -# ============================================================================= -# SSH Agent Management -# ============================================================================= -ssh_agent_startup_file="$HOME/.startup/start-ssh-agent" -if [ -f "$ssh_agent_startup_file" ]; then - source "$ssh_agent_startup_file" -else - if $logging_enabled; then - echo "[warn] SSH Agent startup code missing at " \ - "'$ssh_agent_startup_file': " \ - "see git@git.sr.ht:~eidolon/scripts" >> "$log_file" - fi -fi - -# ============================================================================= -# Aliases -# ============================================================================= -if command -v exa > /dev/null 2>&1; then - alias ls='exa' - alias ll='exa -l' -else - if $logging_enabled; then - echo "[warn] exa is not setup! Using the system ls" >> "$log_file" - fi -fi - -if command -v nvim > /dev/null 2>&1; then - alias vim='nvim' -else - if $logging_enabled; then - echo "[warn] Neovim is not setup! Using the system vim" >> "$log_file" - fi -fi - -# ============================================================================= -# Scala/SBT Setup -# ============================================================================= -if command -v sbt > /dev/null 2>&1; then - export SBT_OPTS="-XX:+UseG1GC -Xmx2048m" -fi diff --git a/.config/alacritty/alacritty.toml b/.config/alacritty/alacritty.toml new file mode 100644 index 0000000..5a81ca5 --- /dev/null +++ b/.config/alacritty/alacritty.toml @@ -0,0 +1,77 @@ +[colors.bright] +black = "0x32302f" +blue = "0x7daea3" +cyan = "0x89b482" +green = "0xa9b665" +magenta = "0xd3869b" +red = "0xea6962" +white = "0xd4be98" +yellow = "0xd8a657" + +[colors.cursor] +cursor = "CellForeground" +text = "CellBackground" + +[colors.normal] +black = "0x32302f" +blue = "0x7daea3" +cyan = "0x89b482" +green = "0xa9b665" +magenta = "0xd3869b" +red = "0xea6962" +white = "0xd4be98" +yellow = "0xd8a657" + +[colors.primary] +background = "0x1d2021" +foreground = "0xd4be98" + +[colors.selection] +background = "CellForeground" +text = "CellBackground" + +[colors.vi_mode_cursor] +cursor = "CellForeground" +text = "CellBackground" + +[cursor] +unfocused_hollow = true + +[cursor.style] +blinking = "Off" +shape = "Block" + +[env] +TERM = "xterm-256color" + +[font] +size = 13.0 + +[font.bold] +family = "Iosevka Term" +style = "Bold" + +[font.bold_italic] +family = "Iosevka Term" +style = "Bold Italic" + +[font.italic] +family = "Iosevka Term" +style = "Italic" + +[font.normal] +family = "Iosevka Term" + +[scrolling] +history = 10000 +multiplier = 3 + +[selection] +semantic_escape_chars = ",│`|:\"' ()[]{}<>\t" + +[window] +decorations = "full" +dynamic_title = false +opacity = 1.0 +startup_mode = "Windowed" +title = "Alacritty" diff --git a/.config/alacritty/alacritty.yml b/.config/alacritty/alacritty.yml index 7df5ce8..326c12e 100644 --- a/.config/alacritty/alacritty.yml +++ b/.config/alacritty/alacritty.yml @@ -117,7 +117,7 @@ font: # - (macOS) Menlo # - (Linux/BSD) monospace # - (Windows) Consolas - family: monospace + family: "Iosevka Term" # The `style` can be specified to pick a specific face. #style: Regular @@ -128,7 +128,7 @@ font: # # If the bold family is not specified, it will fall back to the # value specified for the normal font. - family: monospace + family: "Iosevka Term" # The `style` can be specified to pick a specific face. style: Bold @@ -139,7 +139,7 @@ font: # # If the italic family is not specified, it will fall back to the # value specified for the normal font. - family: monospace + family: "Iosevka Term" # The `style` can be specified to pick a specific face. style: Italic @@ -150,7 +150,7 @@ font: # # If the bold italic family is not specified, it will fall back to the # value specified for the normal font. - family: monospace + family: "Iosevka Term" # The `style` can be specified to pick a specific face. style: Bold Italic diff --git a/.config/i3/config b/.config/i3/config index fa9675b..2e8abba 100644 --- a/.config/i3/config +++ b/.config/i3/config @@ -11,7 +11,7 @@ set $mod Mod4 font pango:Iosevka Term 11 # Set the desktop background -exec --no-startup-id feh --bg-scale /home/pfm/images/backgrounds/nasa_carina_nircam.jpg +exec --no-startup-id feh --bg-scale ~/images/backgrounds/current-background.jpg # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. @@ -32,7 +32,7 @@ bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOU floating_modifier $mod # start a terminal -bindsym $mod+Return exec alacritty +bindsym $mod+Return exec ~/.cargo/bin/alacritty # kill focused window bindsym $mod+Shift+q kill @@ -75,9 +75,9 @@ bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent -bindsym $mod+s exec --no-startup-id "/home/pfm/bin/,ss-region" -bindsym $mod+Shift+s exec --no-startup-id "/home/pfm/bin/,ss-screen" -bindsym $mod+Control+s exec --no-startup-id "/home/pfm/bin/,ss-window" +bindsym $mod+s exec --no-startup-id "~/.local/bin/,ss-region" +bindsym $mod+Shift+s exec --no-startup-id "~/.local/bin/,ss-screen" +bindsym $mod+Control+s exec --no-startup-id "~/.local/bin/,ss-window" # the default for workspaces should be tabbed workspace_layout tabbed diff --git a/.config/nvim/lua/keymap.lua b/.config/nvim/lua/keymap.lua index 1831c38..9a7ad79 100644 --- a/.config/nvim/lua/keymap.lua +++ b/.config/nvim/lua/keymap.lua @@ -33,6 +33,9 @@ map('n', 'cq', ':ccl', { desc = 'Close Quickfix' }) -- Create a vertical split map('n', 'v', ':vsplit', { desc = 'Vertical Split' }) +-- Enter the lozenge ◊ character. +map('i', '', 'LZ', { desc = 'Enter the Lozenge Character' }) + -------------------------------------------------------------------------------- -- LSP -------------------------------------------------------------------------------- diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini index eed9bad..c14e898 100644 --- a/.config/polybar/config.ini +++ b/.config/polybar/config.ini @@ -7,7 +7,7 @@ primary = #fabd2f secondary = #e60053 alert = #fb4934 -[bar/pfm] +[bar/mainbar] monitor = HDMI-0 bottom = true width = 100% diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh index 48d54ac..05684b6 100755 --- a/.config/polybar/launch.sh +++ b/.config/polybar/launch.sh @@ -2,5 +2,5 @@ killall -q polybar -echo "---" >> /home/pfm/log/pfm/polybar.log -polybar pfm >> /home/pfm/log/pfm/polybar.log 2>&1 & disown +echo "---" >> "$HOME/.local/log/$(whoami)/polybar.log" +polybar mainbar >> "$HOME/.local/log/$(whoami)/polybar.log" 2>&1 & disown diff --git a/.gitconfig b/.gitconfig index 97e1a70..531aad3 100644 --- a/.gitconfig +++ b/.gitconfig @@ -1,6 +1,7 @@ [user] - email = pfm@meager-software.com - name = pfm + email = pfm@garrity.co + name = Pat Garrity + signingkey = AB7F3A76 [alias] ll = log --oneline --decorate --graph ls = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate @@ -29,4 +30,6 @@ syntax-theme = gruvbox-dark navigate = true [init] - defaultBranch = main + defaultBranch = main +[commit] + gpgsign = true diff --git a/.gitignore b/.gitignore index 20e32cb..e280f87 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,4 @@ metals.sbt .bsp/ .bloop/ .metals/ -zig-cache/ -zig-out/ jsconfig.json diff --git a/.startup/ps1 b/.startup/ps1 deleted file mode 100644 index 5cf2d33..0000000 --- a/.startup/ps1 +++ /dev/null @@ -1,28 +0,0 @@ -# Determine whether or not we should support color. -case "$TERM" in - xterm-color|*-256color|rxvt-unicode) color_prompt=yes;; -esac - -# Emit the current date and time. -__prompt_date() { - echo "$(date '+%D %r')" -} - -# Define a function that extracts the current git branch, if available. -__git_branch() { - ref="$(git symbolic-ref HEAD 2>/dev/null | cut -d'/' -f3)" - if [ ! -z $ref ]; then - echo " $ref" - else - echo "" - fi -} - -# Assign the prompt. -if [ "$color_prompt" = yes ]; then - PS1='\[\033[01;32m\]\u:\[\033[01;34m\]\w\[\033[00m\]\[\033[01;31m\]$(__git_branch)\[\033[00m\] $(__prompt_date)\n\$ ' -else - PS1='\u:\w$(__git_branch) $(__prompt_date)\n\$ ' -fi - -unset color_prompt diff --git a/.startup/start-ssh-agent b/.startup/start-ssh-agent deleted file mode 100644 index ba34e9a..0000000 --- a/.startup/start-ssh-agent +++ /dev/null @@ -1,22 +0,0 @@ -# Start ssh-agent if it is not already running. If it is running, ensure the -# environment variables are set properly. - -# This is intended for sourcing within some startup file like .bashrc or .zshrc - -sock_file="$HOME/.ssh-agent-sock" -pid_file="$HOME/.ssh-agent-pid" - -touch $sock_file -touch $pid_file - -if ps -p $(cat $pid_file) > /dev/null 2>&1; then - export SSH_AUTH_SOCK="$(cat $sock_file)" - export SSH_AGENT_PID="$(cat $pid_file)" -else - # Start a new instance of the SSH agent. - eval "$(ssh-agent)" - - # Record the new settings in the agent tracking files. - echo $SSH_AUTH_SOCK > $sock_file - echo $SSH_AGENT_PID > $pid_file -fi diff --git a/.zshrc b/.zshrc index 90b4fae..900c6d4 100644 --- a/.zshrc +++ b/.zshrc @@ -1,14 +1,19 @@ -eval "$(starship init zsh)" - export HISTFILE="$HOME/.zsh_history" export HISTSIZE=1000 export SAVEHIST=5000 +local_install_dir="$HOME/.local/install" + +# ============================================================================= +# GPG Initialization (Ensure prompts work properly). +# ============================================================================= +export GPG_TTY=$(tty) + # ============================================================================= # Personalized Logging for Shell Setup # ============================================================================= logging_enabled=false -log_dir="$HOME/log/$USER" +log_dir="$HOME/.local/log/$USER" log_file="$log_dir/shell.log" if [ -d "$log_dir" ]; then @@ -26,33 +31,19 @@ export EDITOR=vim # ============================================================================= # PATH # ============================================================================= -if [ -d "$HOME/bin" ]; then - export PATH="$HOME/bin:$PATH" -fi - if [ -d "$HOME/.local/bin" ]; then export PATH="$HOME/.local/bin:$PATH" fi -if [ -f "$HOME/.cargo/env" ]; then - source "$HOME/.cargo/env" +if [ -d "$HOME/.cargo/bin" ]; then + export PATH="$HOME/.cargo/bin:$PATH" fi if [ -f ~/.fzf.zsh ]; then source ~/.fzf.zsh fi -export RACKET_HOME="$HOME/opt/racket" -if [ -d "$RACKET_HOME" ]; then - export PATH="$RACKET_HOME/bin:$PATH" -fi - -export BUILDKIT_HOME="$HOME/opt/buildkit" -if [ -d "$BUILDKIT_HOME" ]; then - export PATH="$HOME/opt/buildkit/bin:$PATH" -fi - -export JAVA_HOME="$HOME/opt/jdk" +export JAVA_HOME="$local_install_dir/jdk" if [ -d "$JAVA_HOME/bin" ]; then export PATH="$JAVA_HOME/bin:$PATH" fi @@ -62,34 +53,33 @@ if [ -d "$COURSIER_HOME/bin" ]; then export PATH="$COURSIER_HOME/bin:$PATH" fi -export N_PREFIX=/home/pfm/.n +export N_PREFIX="$HOME/.n" if [ -d "$N_PREFIX/bin" ]; then export PATH="$N_PREFIX/bin:$PATH" fi -export GO_HOME="$HOME/go" -if [ -d "$GO_HOME/bin" ]; then - export PATH="$GO_HOME/bin:$PATH" -fi - -export DOTNET_ROOT="$HOME/.dotnet" -export DOTNET_CLI_TELEMETRY_OPTOUT=1 -if [ -d "$DOTNET_ROOT" ]; then - export PATH="$DOTNET_ROOT:$DOTNET_ROOT/tools:$PATH" -fi - # ============================================================================= # SSH Agent Management # ============================================================================= -ssh_agent_startup_file="$HOME/.startup/start-ssh-agent" -if [ -f "$ssh_agent_startup_file" ]; then - source "$ssh_agent_startup_file" +# Start ssh-agent if it is not already running. If it is running, ensure the +# environment variables are set properly. + +ssh_agent_sock_file="$HOME/.ssh-agent-sock" +ssh_agent_pid_file="$HOME/.ssh-agent-pid" + +touch $ssh_agent_sock_file +touch $ssh_agent_pid_file + +if ps -p $(cat $ssh_agent_pid_file) > /dev/null 2>&1; then + export SSH_AUTH_SOCK="$(cat $ssh_agent_sock_file)" + export SSH_AGENT_PID="$(cat $ssh_agent_pid_file)" else - if $logging_enabled; then - echo "[warn] SSH Agent startup code missing at " \ - "'$ssh_agent_startup_file': " \ - "see git@git.sr.ht:~eidolon/scripts" >> "$log_file" - fi + # Start a new instance of the SSH agent. + eval "$(ssh-agent)" + + # Record the new settings in the agent tracking files. + echo $SSH_AUTH_SOCK > $ssh_agent_sock_file + echo $SSH_AGENT_PID > $ssh_agent_pid_file fi # ============================================================================= @@ -112,6 +102,16 @@ else fi fi +if command -v podman > /dev/null 2>&1; then + alias docker='podman' + export DOCKER_HOST=unix:///run/podman/podman.sock + export TESTCONTAINERS_RYUK_DISABLED=true +else + if $logging_enabled; then + echo "[warn] Podman is not setup! The 'docker' command will not be available." >> "$log_file" + fi +fi + # ============================================================================= # Scala/SBT Setup # ============================================================================= @@ -133,8 +133,13 @@ autoload -Uz compinit && compinit # ============================================================================= [[ ! -r /home/pfm/.opam/opam-init/init.zsh ]] || source /home/pfm/.opam/opam-init/init.zsh > /dev/null 2> /dev/null +# ============================================================================= +# Initialize Starship +# ============================================================================= +eval "$(starship init zsh)" + # ============================================================================= # Enable Command Syntax Highlighting # This must be the last item in this file. # ============================================================================= -source $HOME/src/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh +source $local_install_dir/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh diff --git a/README.md b/README.md index c691ca6..2b4ec48 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,3 @@ $ cd dotfiles $ ./setup-directories.sh $ ./install.sh --auto-backup ``` - -## Documentation - -- [Fonts](docs/fonts.md): Fonts that I use regularly. -- [Utilities](docs/utilities.md): List of utilities I use. -- [Programming](docs/programming.md): List of programming languages/tools I use. diff --git a/docs/fonts.md b/docs/fonts.md deleted file mode 100644 index 5c893b0..0000000 --- a/docs/fonts.md +++ /dev/null @@ -1,11 +0,0 @@ -# Fonts - -## [Iosevka](https://github.com/be5invis/Iosevka/releases) - -This is my default font for all terminals and editors. - -Use [my scripts](utilities.md#my-scripts): - -```bash -$ update-iosevka -``` diff --git a/docs/programming.md b/docs/programming.md deleted file mode 100644 index f36aa87..0000000 --- a/docs/programming.md +++ /dev/null @@ -1,84 +0,0 @@ -# Programming - -The following are relevant for my current projects: - -- [OpenJDK](#openjdk) -- [SBT](#sbt) -- [coursier](#coursier) - - [Scala REPL](#scala-repl) -- [zig](#zig) - - [`x86_64`](#x86-64) - - [`arm64`](#arm64) -- [janet](#janet) -- [racket](#racket) -- [`runc` and `containerd`](#runc-and-containerd) -- [buildkit](#buildkit) - -## [OpenJDK](https://openjdk.java.net/) - -Download the LTS release from [Adoptium](https://adoptium.net/). - -## [SBT](https://www.scala-sbt.org/) - -Use [my scripts](utilities.md#my-scripts): - -```bash -$ update-sbt -``` - -## [coursier](https://get-coursier.io/) - -Visit the website and run the provided script. Note that setup on ARM64 might -require additional work and the provided script might not work properly. - -### [Scala REPL](https://www.scala-lang.org/) - -```bash -cs install scala3 -``` - -## [zig](https://ziglang.org/) - -Use [my scripts](utilities.md#my-scripts): - -### `x86_64` - -```bash -$ update-zig --arch x86_64 -``` - -### `arm64` - -```bash -$ update-zig --arch aarch64 -``` - -## [janet](https://janet-lang.org/) - -Clone [https://github.com/janet-lang/janet](https://github.com/janet-lang/janet) -and build from source. Once installed and `janet` is available on the path, -clone [https://github.com/janet-lang/jpm](https://github.com/janet-lang/jpm) and -build from source. - -## [racket](https://racket-lang.org/) - -There are multiple options for installation. The easiest approach is to use the -system package manager: - -```bash -$ sudo apt install racket -``` - -Alternatively, use the latest -[source distribution](http://download.racket-lang.org/) and build from source. - -## `runc` and `containerd` - -```bash -sudo apt install runc containerd -``` - -## [buildkit](https://github.com/moby/buildkit) - -Download the latest release from GitHub: -[https://github.com/moby/buildkit/releases](https://github.com/moby/buildkit/releases) diff --git a/docs/utilities.md b/docs/utilities.md deleted file mode 100644 index 0215afd..0000000 --- a/docs/utilities.md +++ /dev/null @@ -1,81 +0,0 @@ -# Utilities - -The following are tools I generally install and are actively using. - -- [My Scripts](#my-scripts) -- [rxvt-unicode](#rxvt-unicode) -- [fzf](#fzf) -- [rustup](#rustup) - - [btm (bottom)](#btm-bottom) - - [delta](#delta) - - [exa](#exa) - - [fd](#fd) - - [rg (ripgrep)](#rg-ripgrep) - -## My Scripts - -These need to be pulled down and installed. This should be the first step. - -```bash -$ git clone git@git.sr.ht:~eidolon/scripts -$ mkdir $HOME/bin -$ mkdir $HOME/.startup -$ cd scripts -$ ./install.sh -``` - -## rxvt-unicode - -Clone [https://github.com/exg/rxvt-unicode](https://github.com/exg/rxvt-unicode) -and build from source. Note that the GitHub repository is a mirror of the CVS -repository. - -## [fzf](https://github.com/junegunn/fzf) - -First, clone the `fzf` repository: - -```bash -$ git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf -``` - -Then source the installation script: - -```bash -$ source ~/.fzf/install -``` - -## [rustup](https://rustup.rs/) - -Visit the website and run the provided script. While the tools I install via -Cargo are available elsewhere, I like having the Rust toolchain and being able -to pull from Cargo. - -### [btm (bottom)](https://github.com/clementtsang/bottom) - -```bash -$ cargo install bottom -``` - -### [delta](https://github.com/dandavison/delta) - -```bash -$ cargo install git-delta -``` - -### [exa](https://github.com/ogham/exa) - -```bash -$ cargo install exa -``` - -### [fd](https://github.com/sharkdp/fd) - -```bash -$ cargo install fd-find -``` - -### [rg (ripgrep)](https://github.com/BurntSushi/ripgrep) - -```bash -$ cargo install ripgrep -``` diff --git a/install.sh b/install.sh index bd1b524..15b1a64 100755 --- a/install.sh +++ b/install.sh @@ -5,7 +5,7 @@ set -o pipefail set -o nounset __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -backup_dir="$HOME/.dotfiles/backups" +backup_dir="$HOME/.local/backups/dotfiles" # Colors for output. So fancy. @@ -24,12 +24,6 @@ config_selection="all" # Dotfile locations. Note that these locations should be identical between the # home directory and the dotfile directory. -bashrc=".bashrc" -bashrc_name="bashrc" -bashrc_source="${__dir}/${bashrc}" -bashrc_target="${HOME}/${bashrc}" -bashrc_backup="${backup_dir}/${bashrc_name}" - zshrc=".zshrc" zshrc_name="zshrc" zshrc_source="${__dir}/${zshrc}" @@ -84,14 +78,8 @@ fontconfig_source="${__dir}/${fontconfig}" fontconfig_target="${HOME}/${fontconfig}" fontconfig_backup="${backup_dir}/${fontconfig_name}" -ssh_agent=".startup/start-ssh-agent" -ssh_agent_name="ssh_agent" -ssh_agent_source="${__dir}/${ssh_agent}" -ssh_agent_target="${HOME}/${ssh_agent}" -ssh_agent_backup="${backup_dir}/${ssh_agent_name}" - function display_configs { - echo 'Supported config targets: all, bashrc, zshrc, profile, i3, i3status, xresources, gitconfig, gitignore, alacritty, fontconfig, ssh_agent, nvim' + echo 'Supported config targets: all, zshrc, profile, i3, i3status, xresources, gitconfig, gitignore, alacritty, fontconfig, nvim' } function display_usage { @@ -235,7 +223,6 @@ if $auto_backup; then fi # Install all requested configurations. -install_config "${bashrc_name}" "${bashrc_source}" "${bashrc_target}" "${bashrc_backup}" install_config "${zshrc_name}" "${zshrc_source}" "${zshrc_target}" "${zshrc_backup}" install_config "${profile_name}" "${profile_source}" "${profile_target}" "${profile_backup}" install_config "${i3_name}" "${i3_source}" "${i3_target}" "${i3_backup}" @@ -245,7 +232,6 @@ install_config "${gitignore_name}" "${gitignore_source}" "${gitignore_target}" " install_config "${xresources_name}" "${xresources_source}" "${xresources_target}" "${xresources_backup}" install_config "${alacritty_name}" "${alacritty_source}" "${alacritty_target}" "${alacritty_backup}" install_config "${fontconfig_name}" "${fontconfig_source}" "${fontconfig_target}" "${fontconfig_backup}" -install_config "${ssh_agent_name}" "${ssh_agent_source}" "${ssh_agent_target}" "${ssh_agent_backup}" # Note that all of these configurations are Neovim-related: install_neovim diff --git a/setup-directories.sh b/setup-directories.sh index 48928b9..663baba 100755 --- a/setup-directories.sh +++ b/setup-directories.sh @@ -4,16 +4,27 @@ set -o errexit set -o pipefail set -o nounset -mkdir "$HOME/bin" -mkdir "$HOME/log" -mkdir "$HOME/log/$USER" -mkdir "$HOME/opt" -mkdir "$HOME/src" -mkdir -p "$HOME/.dotfiles/backups" -mkdir -p "$HOME/.config" -mkdir -p "$HOME/.config/alacritty" -mkdir -p "$HOME/.config/fontconfig" -mkdir -p "$HOME/.config/i3" -mkdir -p "$HOME/.config/i3status" -mkdir -p "$HOME/.config/nvim" -mkdir -p "$HOME/.startup" +# Key locations +local_base="$HOME/.local" +config_base="$HOME/.config" + +# User level directories. +mkdir -p "$local_base" +mkdir -p "$local_base/bin" +mkdir -p "$local_base/log" +mkdir -p "$local_base/log/$USER" +mkdir -p "$local_base/install" + +# Location for source code. +mkdir -p "$HOME/src" + +# Backups, used for dotfiles. +mkdir -p "$HOME/.local/backups/dotfiles" + +# User level configuration. +mkdir -p "$config_base" +mkdir -p "$config_base/alacritty" +mkdir -p "$config_base/fontconfig" +mkdir -p "$config_base/i3" +mkdir -p "$config_base/i3status" +mkdir -p "$config_base/nvim"