Major updates for the dev machine rebuild.
This commit is contained in:
parent
da51944598
commit
eee2e16d3d
18 changed files with 170 additions and 464 deletions
145
.bashrc
145
.bashrc
|
@ -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
|
77
.config/alacritty/alacritty.toml
Normal file
77
.config/alacritty/alacritty.toml
Normal file
|
@ -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"
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -33,6 +33,9 @@ map('n', '<leader>cq', ':ccl<CR>', { desc = 'Close Quickfix' })
|
|||
-- Create a vertical split
|
||||
map('n', '<leader>v', ':vsplit<CR>', { desc = 'Vertical Split' })
|
||||
|
||||
-- Enter the lozenge ◊ character.
|
||||
map('i', '<C-l>', '<C-k>LZ', { desc = 'Enter the Lozenge Character' })
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
-- LSP
|
||||
--------------------------------------------------------------------------------
|
||||
|
|
|
@ -7,7 +7,7 @@ primary = #fabd2f
|
|||
secondary = #e60053
|
||||
alert = #fb4934
|
||||
|
||||
[bar/pfm]
|
||||
[bar/mainbar]
|
||||
monitor = HDMI-0
|
||||
bottom = true
|
||||
width = 100%
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -2,6 +2,4 @@ metals.sbt
|
|||
.bsp/
|
||||
.bloop/
|
||||
.metals/
|
||||
zig-cache/
|
||||
zig-out/
|
||||
jsconfig.json
|
||||
|
|
28
.startup/ps1
28
.startup/ps1
|
@ -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
|
|
@ -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
|
87
.zshrc
87
.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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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 <version>
|
||||
```
|
|
@ -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 <version>
|
||||
```
|
||||
|
||||
## [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)
|
|
@ -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
|
||||
```
|
18
install.sh
18
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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Reference in a new issue