3 Commits

Author SHA1 Message Date
ceb844230f Add stow ignore file. 2026-02-13 20:06:02 -05:00
1d29a92898 Add install script and update README. 2026-02-13 20:05:51 -05:00
7dd10b9a9c Update vimrc. 2026-02-13 19:44:33 -05:00
20 changed files with 210 additions and 907 deletions

View File

@@ -1,28 +0,0 @@
alias ,git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
# Some aliases don't make sense in the docker image, like shortcuts to fix plasmashell.
if [ -f /.dockerenv ]; then
alias ,update='apt update -y && apt upgrade -y && apt upgrade --fix-broken --fix-missing --auto-remove'
alias ,init='apt update -y && apt install -y $DOT_PACKAGES'
alias ,swap='swapoff -a && swapon -a'
else
alias ,update='sudo apt update -y && sudo apt upgrade -y && sudo apt upgrade --fix-broken --fix-missing --auto-remove'
alias ,init='sudo apt update -y && sudo apt install -y $DOT_PACKAGES'
# Clear kscreen cached settings
alias ,kscreen='rm -rf ~/.local/share/kscreen/*'
# Restart plasmashell
alias ,plasmashell='plasmashell --replace &> /dev/null &'
alias ,swap='sudo swapoff -a && sudo swapon -a'
alias ,vbox="ps aux www |grep 'VBoxClient --draganddrop' | awk '{print $2}' | xargs kill"
fi
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Don't use tmux in vscode to avoid 'failure to resolve shell' errors.
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
if ! pstree -s $$ | grep -wq code; then
exec tmux >/dev/null 2>&1
fi
fi

View File

@@ -1,73 +0,0 @@
# Used in setup script and dockerfile.
if [ -f /.dockerenv ]; then
export DOT_PACKAGES='git stow vim tmux ranger clang wget curl golang-go'
else
# `vim-gtk3` is required to keep your system copy and paste buffers in sync with vim registers.
export DOT_PACKAGES='git stow vim vim-gtk3 xsel xclip tmux ranger clang yakuake wget curl golang-go gawk'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
export EDITOR="vim"
export VISUAL="vim"
export LS_COLORS="di=1;34:ln=31;47:so=32:pi=33:ex=1;32:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"
export PATH=$PATH:/opt/:$HOME/.local/bin/:$HOME/.dotnet:$HOME/go/bin/
export DOTNET_ROOT=$HOME/.dotnet
# Example path for autocompletion using libclang-9-dev package, obtained by the following command
export LIBCLANG="$(command -v clang &>/dev/null && ldconfig -p | sort | grep libclang-[0-9]. | awk -F "> " '{print$2}' | tail -n 1)"
# Set the default terminal to use konsole, with kapper profile
# + Execute tmux on start
if [ -e ~/.local/share/konsole/kapper.profile ]; then
if command -v tmux &>/dev/null; then
export TERMINAL='konsole --profile kapper -e tmux'
else
export TERMINAL='konsole --profile kapper'
fi
fi
# Conditionally enables font glyphs in .vimrc if available
if [ -e ~/.local/share/fonts/sauce-code-pro.otf ]; then
export SAUCE=1
fi
# Less colors for man pages
export PAGER=less
default=$(tput sgr0)
red=$(tput setaf 1)
green=$(tput setaf 2)
purple=$(tput setaf 5)
orange=$(tput setaf 9)
# Begin blinking
export LESS_TERMCAP_mb=$red
# Begin bold
export LESS_TERMCAP_md=$orange
# End mode
export LESS_TERMCAP_me=$default
# End standout-mode
export LESS_TERMCAP_se=$default
# Begin standout-mode - info box
export LESS_TERMCAP_so=$purple
# End underline
export LESS_TERMCAP_ue=$default
# Begin underline
export LESS_TERMCAP_us=$green
# Allow mouse wheel movement for less output (manpages, diffs)
export LESS='--mouse --wheel-lines 2'
# Set additional flags for less
# + -R for raw control characters
# + -w to highlight first unread line when jumping N>1 lines down
# + -#2 to shift 2 columns horizontally when right / left arrow is pressed
export LESS="$LESS -R -w -#2"
# For shared systems where history is not desired.
# ln -sf /dev/null ~/.bash_history
# HISTFILE=/dev/null
# Avoid duplicates in bash history.
HISTCONTROL=ignoredups:erasedups
# When the shell exits, append to the history file instead of overwriting it.
shopt -s histappend

View File

@@ -1,8 +0,0 @@
# $1: Version; defaults to 6.7.3
# $2: Path to Qt; defaults to $HOME/Qt
function assistant {
local version=${1:-6\.7\.3}
local path=${2:-$HOME/Qt}
nohup ${path%/}/$version/gcc_64/bin/assistant > /dev/null 2>&1 &
}

View File

@@ -1,15 +0,0 @@
# Source ble.sh if installed.
if [ -f ~/.local/share/blesh/ble.sh ]; then
source -- ~/.local/share/blesh/ble.sh
fi
# Source rust things if they exist
if [ -f ~/.cargo/env ]; then
. ~/.cargo/env
fi
# Source a top-secret alias file
if [ -f ~/.bash.d/.bash_secrets ]; then
. ~/.bash.d/.bash_secrets
fi

105
.bash_aliases Normal file
View File

@@ -0,0 +1,105 @@
# For Rust stuff, uncomment this line
. "$HOME/.cargo/env"
alias ,git='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
if [ -f /.dockerenv ]; then
export DOT_PACKAGES='git stow vim tmux ranger clang wget curl'
alias ,update='apt update -y && apt upgrade -y && apt upgrade --fix-broken --fix-missing --auto-remove'
alias ,init='apt update -y && apt install $DOT_PACKAGES -y'
alias ,swap='swapoff -a && swapon -a'
else
export DOT_PACKAGES='git stow vim xsel xclip tmux ranger clang yakuake wget curl'
alias ,update='sudo apt update -y && sudo apt upgrade -y && sudo apt upgrade --fix-broken --fix-missing --auto-remove'
alias ,init='sudo apt update -y && sudo apt install $DOT_PACKAGES'
# Clear kscreen cached settings
alias ,kscreen='rm -rf ~/.local/share/kscreen/*'
# Restart plasmashell
alias ,plasmashell='sudo pkill plasmashell && plasmashell --replace &> /dev/null &'
alias ,swap='sudo swapoff -a && sudo swapon -a'
alias ,vbox="ps aux www |grep 'VBoxClient --draganddrop' | awk '{print $2}' | xargs kill"
fi
# Alias / export customizations
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
export EDITOR="vim"
export VISUAL="vim"
export LS_COLORS="di=1;34:ln=31;47:so=32:pi=33:ex=1;32:bd=34;46:cd=34;43:su=30;41:sg=30;46:tw=30;42:ow=30;43"
export PATH=$PATH:/opt/:$HOME/.local/bin/:$HOME/.dotnet:$HOME/go/bin/
export DOTNET_ROOT=$HOME/.dotnet
# Example path for autocompletion using libclang-9-dev package, obtained by the following command
export LIBCLANG="$(command -v clang &>/dev/null && ldconfig -p | sort | grep libclang-[0-9]. | awk -F "> " '{print$2}' | tail -n 1)"
# Source a top-secret alias file
if [ -e ~/.bash_secrets ]; then
. ~/.bash_secrets
fi
if command -v tmux &> /dev/null && [ -n "$PS1" ] && [[ ! "$TERM" =~ screen ]] && [[ ! "$TERM" =~ tmux ]] && [ -z "$TMUX" ]; then
exec tmux
fi
# Set the default terminal to use konsole, with kapper profile
# + Execute tmux on start
if [ -e ~/.local/share/konsole/kapper.profile ]; then
if command -v tmux &>/dev/null; then
export TERMINAL='konsole --profile kapper -e tmux'
else
export TERMINAL='konsole --profile kapper'
fi
fi
# Conditionally enables font glyphs in .vimrc if available
if [ -e ~/.local/share/fonts/sauce-code-pro.otf ]; then
export SAUCE=1
fi
# Less colors for man pages
export PAGER=less
default=$(tput sgr0)
red=$(tput setaf 1)
green=$(tput setaf 2)
purple=$(tput setaf 5)
orange=$(tput setaf 9)
# Begin blinking
export LESS_TERMCAP_mb=$red
# Begin bold
export LESS_TERMCAP_md=$orange
# End mode
export LESS_TERMCAP_me=$default
# End standout-mode
export LESS_TERMCAP_se=$default
# Begin standout-mode - info box
export LESS_TERMCAP_so=$purple
# End underline
export LESS_TERMCAP_ue=$default
# Begin underline
export LESS_TERMCAP_us=$green
# Allow mouse wheel movement for less output (manpages, diffs)
export LESS='--mouse --wheel-lines 2'
# Set additional flags for less
# + -R for raw control characters
# + -w to highlight first unread line when jumping N>1 lines down
# + -#2 to shift 2 columns horizontally when right / left arrow is pressed
export LESS="$LESS -R -w -#2"
if ! [ command -v conda &>/dev/null ] && [ -e ~/Code/Clones/mambaforge/bin/conda ] && ! grep -e conda ~/.bashrc &>/dev/null; then
if ! (~/Code/Clones/mambaforge/bin/conda init | awk -F "==>" '{print $1}'); then
echo "[dot] ERROR: Failed to initialize Conda."
fi
echo "[dot] WARN: Ran \`conda init\`; Conda was installed but not initialized"
source ~/.bashrc
fi

11
.bashrc
View File

@@ -100,20 +100,11 @@ alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# Source all files in ~/.bash.d, if it exists.
# This can contain .bash_aliases, or other configs to append to your shell.
if [ -d ~/.bash.d ]; then
for f in ~/.bash.d/.*; do
if [ -f $f ]; then
. $f
fi
done
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).

71
.blerc
View File

@@ -1,71 +0,0 @@
# Insert date-time string within a bash prompt using `\dt<SP>`
function blerc/define-sabbrev-dt {
ble-sabbrev -m '\dt'='ble/util/assign COMPREPLY "date +%F_%H-%M-%S"'
}
blehook/eval-after-load complete blerc/define-sabbrev-dt
# Insert the time within a bash prompt using `\time<SP>`
function blerc/define-sabbrev-time {
ble-sabbrev -m '\time'='ble/util/assign COMPREPLY "date +%H-%M-%S"'
}
blehook/eval-after-load complete blerc/define-sabbrev-time
# Insert the date within a bash prompt using `\date<SP>`
# https://github.com/akinomyoga/ble.sh/wiki/Recipes#r1-insert-date-through-sabbrev-date
function blerc/define-sabbrev-date {
ble-sabbrev -m '\date'='ble/util/assign COMPREPLY "date +%F"'
}
blehook/eval-after-load complete blerc/define-sabbrev-date
# Interactive git branch selection with `\branch<SP>`
# https://github.com/akinomyoga/ble.sh/wiki/Recipes#r2-insert-git-branch-name-from-menu-through-sabbrev-branch
function blerc/define-sabbrev-branch {
function blerc/sabbrev-git-branch {
ble/util/assign-array COMPREPLY "git branch | sed 's/^\*\{0,1\}[[:blank:]]*//'" 2>/dev/null
}
ble-sabbrev -m '\branch'=blerc/sabbrev-git-branch
}
blehook/eval-after-load complete blerc/define-sabbrev-branch
# Interactive git commit selection with `\commit<SP>`
# https://github.com/akinomyoga/ble.sh/wiki/Recipes#r3-insert-git-commit-id-from-menu-through-sabbrev-commit
function blerc/define-sabbrev-commit {
ble/color/defface blerc_git_commit_id fg=63
ble/complete/action#inherit-from blerc_git_commit_id word
function ble/complete/action:blerc_git_commit_id/init-menu-item {
local ret
ble/color/face2g blerc_git_commit_id; g=$ret
}
function blerc/sabbrev-git-commit {
bleopt sabbrev_menu_style=desc-raw
bleopt sabbrev_menu_opts=enter_menu
local format=$'%h \e[1;32m(%ar)\e[m %s - \e[4m%an\e[m\e[1;33m%d\e[m'
local arr; ble/util/assign-array arr 'git log --pretty=format:"$format"' &>/dev/null
local line hash subject
for line in "${arr[@]}"; do
builtin read hash subject <<< "$line"
ble/complete/cand/yield blerc_git_commit_id "$hash" "$subject"
done
}
ble-sabbrev -m '\commit'='blerc/sabbrev-git-commit'
}
blehook/eval-after-load complete blerc/define-sabbrev-commit
# Show the timestamp aligned to the right after each command is entered.
show_timestamp() {
# 17:10:00 EST-05
local ts="$(date +'%H:%M:%S %Z%:::z')"
# Column to show timestamp.(COLUMNS - length_of_timestamp)
local col=$((COLUMNS - ${#ts}))
# Save current cursor position.
printf '\033[s'
# Move cursor to desired column.
printf "\033[${col}G"
# Print timestamp in gray.
printf '\e[90m%s\e[0m' "$ts"
# Restore previous cursor position.
printf '\033[u'
}
blehook PREEXEC=show_timestamp

View File

@@ -1,486 +0,0 @@
[ActionPlugins][0]
RightButton;NoModifier=org.kde.contextmenu
wheel:Vertical;NoModifier=org.kde.switchdesktop
[ActionPlugins][1]
RightButton;NoModifier=org.kde.contextmenu
[Containments][1][Configuration]
PreloadWeight=42
[Containments][2]
activityId=
formfactor=2
immutability=1
lastScreen=0
location=4
plugin=org.kde.panel
wallpaperplugin=org.kde.image
[Containments][2][Applets][20][Configuration]
PreloadWeight=77
[Containments][2][Applets][21]
immutability=1
plugin=org.kde.plasma.minimizeall
[Containments][2][Applets][21][Configuration]
PreloadWeight=42
[Containments][2][Applets][25]
immutability=1
plugin=org.kde.plasma.activitypager
[Containments][2][Applets][25][Configuration]
PreloadWeight=18
[Containments][2][Applets][25][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][25][Configuration][General]
showWindowIcons=true
[Containments][2][Applets][26][Configuration]
PreloadWeight=42
[Containments][2][Applets][26][Configuration][SensorColors]
network/all/download=61,174,233
network/all/upload=233,120,61
[Containments][2][Applets][27]
immutability=1
plugin=org.kde.plasma.systemmonitor
[Containments][2][Applets][27][Configuration]
CurrentPreset=org.kde.plasma.systemmonitor
PreloadWeight=46
[Containments][2][Applets][27][Configuration][Appearance]
chartFace=org.kde.ksysguard.piechart
title=CPU
[Containments][2][Applets][27][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][27][Configuration][SensorColors]
cpu/all/usage=61,233,79
[Containments][2][Applets][27][Configuration][Sensors]
highPrioritySensorIds=["cpu/all/usage"]
lowPrioritySensorIds=["cpu/all/system","cpu/all/user","cpu/all/wait","cpu/loadaverages/loadaverage1","cpu/loadaverages/loadaverage15","cpu/loadaverages/loadaverage5"]
totalSensors=["cpu/all/usage"]
[Containments][2][Applets][28]
immutability=1
plugin=org.kde.plasma.systemmonitor
[Containments][2][Applets][28][Configuration]
CurrentPreset=org.kde.plasma.systemmonitor
PreloadWeight=26
[Containments][2][Applets][28][Configuration][Appearance]
chartFace=org.kde.ksysguard.piechart
title=SWAP
[Containments][2][Applets][28][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][28][Configuration][SensorColors]
memory/swap/freePercent=0,0,0
memory/swap/usedPercent=170,0,0
[Containments][2][Applets][28][Configuration][Sensors]
highPrioritySensorIds=["memory/swap/usedPercent"]
lowPrioritySensorIds=["memory/swap/freePercent"]
totalSensors=["memory/swap/usedPercent","memory/swap/freePercent"]
[Containments][2][Applets][29]
immutability=1
plugin=org.kde.plasma.systemmonitor
[Containments][2][Applets][29][Configuration]
CurrentPreset=org.kde.plasma.systemmonitor
PreloadWeight=31
[Containments][2][Applets][29][Configuration][Appearance]
chartFace=org.kde.ksysguard.piechart
title=RAM
[Containments][2][Applets][29][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][29][Configuration][SensorColors]
memory/physical/freePercent=0,0,0
memory/physical/usedPercent=170,0,0
[Containments][2][Applets][29][Configuration][Sensors]
highPrioritySensorIds=["memory/physical/usedPercent"]
lowPrioritySensorIds=["memory/physical/freePercent"]
totalSensors=["memory/physical/usedPercent","memory/physical/freePercent"]
[Containments][2][Applets][3]
immutability=1
plugin=org.kde.plasma.kickoff
[Containments][2][Applets][3][Configuration]
PreloadWeight=92
popupHeight=556
popupWidth=701
[Containments][2][Applets][3][Configuration][Configuration/General]
showAppsByName=true
[Containments][2][Applets][3][Configuration][General]
favorites=preferred://browser,org.kde.discover.desktop,org.kde.kontact.desktop,org.kde.kate.desktop,libreoffice-startcenter.desktop,org.kde.dolphin.desktop,org.kde.plasma-systemmonitor.desktop,systemsettings.desktop,org.kde.konsole.desktop
favoritesPortedToKAstats=true
[Containments][2][Applets][3][Configuration][Shortcuts]
global=Alt+F1
[Containments][2][Applets][3][Shortcuts]
global=Alt+F1
[Containments][2][Applets][30]
immutability=1
plugin=org.kde.plasma.systemmonitor
[Containments][2][Applets][30][Configuration]
CurrentPreset=org.kde.plasma.systemmonitor
PreloadWeight=46
[Containments][2][Applets][30][Configuration][Appearance]
chartFace=org.kde.ksysguard.linechart
title=Network speed
[Containments][2][Applets][30][Configuration][SensorColors]
network/all/download=61,174,233
network/all/upload=233,120,61
[Containments][2][Applets][30][Configuration][Sensors]
highPrioritySensorIds=["network/all/download","network/all/upload"]
[Containments][2][Applets][31][Configuration]
PreloadWeight=26
[Containments][2][Applets][36]
immutability=1
plugin=org.kde.plasma.eventcalendar
[Containments][2][Applets][36][Configuration]
PreloadWeight=100
[Containments][2][Applets][36][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][36][Configuration][General]
v71Migration=true
v72Migration=true
[Containments][2][Applets][36][Configuration][Google Calendar]
calendarList=W10=
tasklistList=W10=
[Containments][2][Applets][36][Configuration][Weather]
openWeatherMapCityId=5149222
weatherUnits=imperial
[Containments][2][Applets][39]
immutability=1
plugin=org.kde.weatherWidget-2
[Containments][2][Applets][39][Configuration]
PreloadWeight=100
[Containments][2][Applets][39][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][39][Configuration][General]
firstRun=false
places=[{"providerId":"owm","placeIdentifier":"5149222","placeAlias":"Canton, OH","timezoneID":0}]
[Containments][2][Applets][39][Configuration][Units]
pressureType=inHg
temperatureType=fahrenheit
windSpeedType=mph
[Containments][2][Applets][4][Configuration]
PreloadWeight=42
[Containments][2][Applets][5]
immutability=1
plugin=org.kde.plasma.icontasks
[Containments][2][Applets][5][Configuration]
PreloadWeight=42
[Containments][2][Applets][5][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][2][Applets][5][Configuration][General]
launchers=preferred://filemanager
sortingStrategy=4
[Containments][2][Applets][6]
immutability=1
plugin=org.kde.plasma.marginsseparator
[Containments][2][Applets][6][Configuration]
PreloadWeight=42
[Containments][2][Applets][61]
immutability=1
plugin=org.kde.plasma.digitalclock
[Containments][2][Applets][61][Configuration]
PreloadWeight=100
popupHeight=500
popupWidth=900
[Containments][2][Applets][61][Configuration][Appearance]
selectedTimeZones=America/Los_Angeles,Local,UTC+00:00,Europe/Paris,Europe/Madrid,Europe/Athens
showDate=false
showWeekNumbers=true
[Containments][2][Applets][61][Configuration][ConfigDialog]
DialogHeight=540
DialogWidth=720
[Containments][2][Applets][7]
immutability=1
plugin=org.kde.plasma.systemtray
[Containments][2][Applets][7][Configuration]
PreloadWeight=92
SystrayContainmentId=8
[Containments][2][ConfigDialog]
DialogHeight=91
DialogWidth=1920
[Containments][2][Configuration]
PreloadWeight=42
[Containments][2][General]
AppletOrder=3;29;28;27;30;5;25;61;6;7;21
[Containments][22][Configuration]
PreloadWeight=42
[Containments][27][Configuration]
PreloadWeight=42
[Containments][28][Configuration]
PreloadWeight=42
[Containments][29][Configuration]
PreloadWeight=42
[Containments][30][Configuration]
PreloadWeight=42
[Containments][32][Configuration]
PreloadWeight=34
[Containments][33][Configuration]
PreloadWeight=34
[Containments][34][Configuration]
PreloadWeight=42
[Containments][35][Configuration]
PreloadWeight=42
[Containments][36][Configuration]
PreloadWeight=42
[Containments][37][Configuration]
PreloadWeight=42
[Containments][38][Configuration]
PreloadWeight=42
[Containments][39][Configuration]
PreloadWeight=42
[Containments][40][Configuration]
PreloadWeight=42
[Containments][42][Configuration]
PreloadWeight=42
[Containments][71]
ItemGeometries-3840x2160=
ItemGeometriesHorizontal=
activityId=335a53bf-d117-46d8-a166-621281cf7411
formfactor=0
immutability=1
lastScreen=0
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
[Containments][72]
activityId=335a53bf-d117-46d8-a166-621281cf7411
formfactor=0
immutability=1
lastScreen=1
location=0
plugin=org.kde.plasma.folder
wallpaperplugin=org.kde.image
[Containments][8]
activityId=
formfactor=2
immutability=1
lastScreen=0
location=4
plugin=org.kde.plasma.private.systemtray
popupHeight=480
popupWidth=480
wallpaperplugin=org.kde.image
[Containments][8][Applets][10]
immutability=1
plugin=org.kde.kdeconnect
[Containments][8][Applets][10][Configuration]
PreloadWeight=42
[Containments][8][Applets][11]
immutability=1
plugin=org.kde.plasma.clipboard
[Containments][8][Applets][11][Configuration]
PreloadWeight=92
[Containments][8][Applets][12]
immutability=1
plugin=org.kde.plasma.volume
[Containments][8][Applets][12][Configuration]
PreloadWeight=42
[Containments][8][Applets][12][Configuration][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][8][Applets][12][Configuration][General]
currentTab=streams
migrated=true
[Containments][8][Applets][13]
immutability=1
plugin=org.kde.plasma.keyboardindicator
[Containments][8][Applets][13][Configuration]
PreloadWeight=42
[Containments][8][Applets][14]
immutability=1
plugin=org.kde.plasma.devicenotifier
[Containments][8][Applets][14][Configuration]
PreloadWeight=42
[Containments][8][Applets][15]
immutability=1
plugin=org.kde.plasma.nightcolorcontrol
[Containments][8][Applets][15][Configuration]
PreloadWeight=87
[Containments][8][Applets][16]
immutability=1
plugin=org.kde.plasma.manage-inputmethod
[Containments][8][Applets][16][Configuration]
PreloadWeight=42
[Containments][8][Applets][17]
immutability=1
plugin=org.kde.plasma.vault
[Containments][8][Applets][17][Configuration]
PreloadWeight=42
[Containments][8][Applets][18]
immutability=1
plugin=org.kde.plasma.keyboardlayout
[Containments][8][Applets][18][Configuration]
PreloadWeight=52
[Containments][8][Applets][19]
immutability=1
plugin=org.kde.plasma.printmanager
[Containments][8][Applets][19][Configuration]
PreloadWeight=92
[Containments][8][Applets][22]
immutability=1
plugin=org.kde.plasma.battery
[Containments][8][Applets][22][Configuration]
PreloadWeight=42
[Containments][8][Applets][22][Shortcuts]
global=
[Containments][8][Applets][23]
immutability=1
plugin=org.kde.plasma.networkmanagement
[Containments][8][Applets][23][Configuration]
PreloadWeight=47
[Containments][8][Applets][24]
immutability=1
plugin=org.kde.plasma.bluetooth
[Containments][8][Applets][24][Configuration]
PreloadWeight=18
[Containments][8][Applets][25][Configuration]
PreloadWeight=54
[Containments][8][Applets][35]
immutability=1
plugin=org.kde.plasma.mediacontroller
[Containments][8][Applets][35][Configuration]
PreloadWeight=0
[Containments][8][Applets][65]
immutability=1
plugin=org.kde.kscreen
[Containments][8][Applets][9]
immutability=1
plugin=org.kde.plasma.notifications
[Containments][8][Applets][9][Configuration]
PreloadWeight=42
[Containments][8][ConfigDialog]
DialogHeight=600
DialogWidth=800
[Containments][8][Configuration]
PreloadWeight=42
[Containments][8][General]
extraItems=org.kde.plasma.battery,org.kde.plasma.notifications,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.kupapplet,org.kde.plasma.volume,org.kde.plasma.keyboardindicator,org.kde.plasma.devicenotifier,org.kde.plasma.bluetooth,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.manage-inputmethod,org.kde.plasma.vault,org.kde.plasma.keyboardlayout,org.kde.plasma.printmanager,org.kde.kscreen,org.kde.kdeconnect
knownItems=org.kde.plasma.battery,org.kde.plasma.notifications,org.kde.plasma.clipboard,org.kde.plasma.mediacontroller,org.kde.kupapplet,org.kde.plasma.volume,org.kde.plasma.keyboardindicator,org.kde.plasma.devicenotifier,org.kde.plasma.bluetooth,org.kde.plasma.networkmanagement,org.kde.plasma.nightcolorcontrol,org.kde.plasma.manage-inputmethod,org.kde.plasma.vault,org.kde.plasma.keyboardlayout,org.kde.plasma.printmanager,org.kde.kscreen,org.kde.kdeconnect
shownItems=org.kde.plasma.battery
[ScreenMapping]
itemsOnDisabledScreens=
screenMapping=desktop:/goals.md,0,335a53bf-d117-46d8-a166-621281cf7411,desktop:/kilroy.md,0,335a53bf-d117-46d8-a166-621281cf7411

View File

@@ -1,54 +0,0 @@
[Global Shortcuts]
toggle-window-state=Meta+`
[Shortcuts]
close-active-terminal=Ctrl+Shift+R
close-session=none
decrease-window-height=Alt+Shift+Up
decrease-window-width=Alt+Shift+Left
edit-profile=none
file_quit=Ctrl+Shift+Q
grow-terminal-bottom=Ctrl+Alt+Down
grow-terminal-left=Ctrl+Alt+Left
grow-terminal-right=Ctrl+Alt+Right
grow-terminal-top=Ctrl+Alt+Up
help_about_app=none
help_about_kde=none
help_report_bug=none
help_whats_this=Shift+F1
increase-window-height=Alt+Shift+Down
increase-window-width=Alt+Shift+Right
keep-open=none
manage-profiles=none
move-session-left=Ctrl+Shift+Left
move-session-right=Ctrl+Shift+Right
new-session=Ctrl+Shift+T
new-session-quad=none
new-session-two-horizontal=none
new-session-two-vertical=none
next-session=Shift+Right
next-terminal=Ctrl+Tab; Shift+Tab
options_configure=Ctrl+Shift+,
options_configure_keybinding=none
options_configure_notifications=none
previous-session=Shift+Left
previous-terminal=Ctrl+Shift+Tab
rename-session=none
split-left-right=Ctrl+(
split-top-bottom=Ctrl+)
switch-to-session-1=none
switch-to-session-12=none
switch-to-session-2=none
switch-to-session-3=none
switch-to-session-4=none
switch-to-session-5=none
switch-to-session-6=none
switch-to-session-7=none
switch-to-session-8=none
switch-to-session-9=none
toggle-session-keyboard-input=none
toggle-session-monitor-activity=Ctrl+Shift+A
toggle-session-monitor-silence=Ctrl+Shift+I
toggle-session-prevent-closing=none
toggle-window-state=none
view-full-screen=Ctrl+Shift+F11

View File

@@ -1,52 +0,0 @@
[Animation]
AutoOpen=false
Frames=17
PollInterval=500
UseVMAssist=true
[Appearance]
BackgroundColor=#000000
BackgroundColorOpacity=0.4
Blur=false
KeyboardInputBlockIndicatorColor=#FF0000
KeyboardInputBlockIndicatorDuration=250
Skin=default
SkinInstallWithKns=false
TerminalHighlightDuration=250
Translucency=false
[Behavior]
FocusFollowMouse=false
OpenAfterStart=false
RememberFullscreen=false
[Desktop Entry]
DefaultProfile=
[Dialogs]
ConfirmQuit=true
FirstRun=false
[Favorite Profiles]
Favorites=
[KFileDialog Settings]
detailViewIconSize=0
[PrintOptions]
PrinterFriendly=true
ScaleOutput=true
[Window]
DynamicTabTitles=false
Height=60
KeepAbove=true
KeepOpen=true
KeepOpenAfterLastSessionCloses=false
Position=50
Screen=0
ShowOnAllDesktops=true
ShowSystrayIcon=true
ShowTabBar=true
ShowTitleBar=true
ToggleToFocus=false

6
.gitignore vendored
View File

@@ -1,4 +1,5 @@
**/.bash_secrets
.bashrc
.bash_secrets
.vim/.netrwhist
.idea/
.config/Code/Backups/*
@@ -13,9 +14,6 @@
.config/Code/rapid_render.json
.config/Code/Network*
**/.config/.brightness
.local/share/fonts/.uuid
.local/share/blesh
.local/share/doc
# Byte-compiled / optimized / DLL files
*__pycache__/

View File

@@ -1,4 +0,0 @@
# This will automatically trigger reverse search when using up / down in bash
# However it doesn't feel natural with ble.sh, so it's commented out for now.
#"\e[A": history-search-backward
#"\e[B": history-search-forward

View File

@@ -1,6 +1,3 @@
.git
.gitmodules
.gitignore
README.md
setup.sh
Dockerfile

View File

@@ -1,13 +1,16 @@
###############################################################################
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
## ##
## A custom tmux multiplexer config / layout created for KDE ##
## A custom tmux multiplexer config / layout created for Manjaro i3 ##
##+ Inspired by vim-powerline: https://github.com/Lokaltog/powerline ##
## ##
## This config was tested with SauceCodePro Nerd Font Mono, Regular ##
## See: dot/.local/share/fonts/ ##
## https://github.com/ryanoasis/nerd-fonts ##
## This config created and tested with Powerline Consolas ##
##+ https://github.com/Lokaltog/powerline-fonts ##
##+ Some symbols may require Font Awesome 5 Free Solid ##
## ##
###############################################################################
# .tmux.conf
#
# If symbols or powerline layout fail to appear...
#+ Check your terminal emulator font settings include these fonts
#+ Check that required fonts are installed
@@ -21,6 +24,21 @@
# + Source: https://www.seanh.cc/2020/12/27/copy-and-paste-in-tmux/
# + Depends: https://github.com/tmux-plugins/tmux-yank#linux
set -g mouse on
# These bindings are for X Windows only. If you're using a different
# window system you have to replace the `xsel` commands with something
# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools
bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection"
#set -g @plugin 'tmux-plugins/tpm'
#set -g @plugin 'tmux-plugins/tmux-yank'
#set -g @yank_action 'copy-pipe-no-clear'
#bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
#bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
set-option -s set-clipboard external
bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "xclip -selection clipboard -i"
@@ -54,10 +72,10 @@ set -g status-style fg=colour240,bg=colour233
set -g status-left-style bg=colour233,fg=colour243
set -g status-left-length 40
# Note: SauceCodePro font requires alternate of bold on right side
# Note: Powerline font requires alternate of bold on right side
# + Corrects gap on right of character that reveals BG color
# Note: No bold required, no BG reveal produced by symbol gaps on left side
# + Font: SauceCodePro (NERD patch, Regular)
# + Font: Sauce Code Pro (NERD patch)
# Right side of status bar
set -g status-right-style bg=colour233,fg=colour243
@@ -70,6 +88,11 @@ set -g window-status-current-format "#($HOME/go/bin/gitmux -cfg $HOME/.gitmux.co
#set -g window-status-current-format "#[fg=colour255,bg=colour233]#[fg=colour100,nobold] #(whoami)@#H #[fg=colour255,bg=colour233,nobold]"
run-shell "bash ~/.tmux/tmux-conf.sh"
# Check if we are running xorg
#set -g status-left "#[fg=colour233,bg=colour100,bold] #S #[fg=colour100,bg=colour240,nobold]#[fg=colour233,bg=colour240] #(whoami) #[fg=colour240,bg=colour235]#[fg=colour240,bg=colour235] #(hostname) #[fg=colour235,bg=colour233]#[fg=colour240,bg=colour233]"
#set -g status-right "#[fg=colour235,bg=colour233,bold]#[fg=colour240,bg=colour235,nobold] %H:%M:%S #[fg=colour240,bg=colour235,bold]#[fg=colour233,bg=colour240,nobold] %d-%b-%y #[fg=colour100,bg=colour240,bold]#[fg=colour233,bg=colour100,bold] #(cd #{pane_current_path}; basename `git rev-parse --show-toplevel`) "
# Current window status
set -g window-status-current-style bg=colour233,fg=colour100
# Window with activity status

View File

@@ -8,17 +8,21 @@ set -g mouse on
# These bindings are for X Windows only. If you're using a different
# window system you have to replace the `xsel` commands with something
# else. See https://github.com/tmux/tmux/wiki/Clipboard#available-tools
bind -T copy-mode DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi DoubleClick1Pane select-pane \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -n DoubleClick1Pane select-pane \; copy-mode -M \; send -X select-word \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -T copy-mode-vi TripleClick1Pane select-pane \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n TripleClick1Pane select-pane \; copy-mode -M \; send -X select-line \; send -X copy-pipe-no-clear "xsel -i"
bind -n MouseDown2Pane run "tmux set-buffer -b primary_selection \"$(xsel -o)\"; tmux paste-buffer -b primary_selection; tmux delete-buffer -b primary_selection"
# List of plugins and their settings
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'nhdaly/tmux-better-mouse-mode'
set -g @scroll-speed-num-lines-per-scroll 2
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-yank'
set -g @yank_action 'copy-pipe-no-clear'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'
set -g @continuum-restore 'on'
bind -T copy-mode C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
bind -T copy-mode-vi C-c send -X copy-pipe-no-clear "xsel -i --clipboard"
# Other examples:

6
.vimrc
View File

@@ -25,14 +25,14 @@ set directory=~/.vim/swap//,~/tmp/,/var/tmp/,/tmp/,.
set backupdir=~/.vim/backup//,~/tmp/,/var/tmp/,/tmp/,.
" Persistant undo
" :help undo-persistence
set undodir=~/.vim/undodir//,~/tmp/,/var/tmp/,/tmp/,.
set undodir=~/.vim/undo//,~/tmp/,/var/tmp/,/tmp/,.
set undofile
" Combine vim clipboard with global clipboard buffer
" Allows using y and p to copy into CTRL-C buffer, vice versa
" :help 'clipboard'
set clipboard=unnamed
set clipboard+=unnamedplus
set clipboard=unnamedplus
" Allows true colors in vim (> 8 bit colors)
" :help termguicolors
@@ -141,7 +141,7 @@ nmap <silent> <C-j> <Plug>(ale_next_wrap)
"let g:colorizer_colornames = 0 " Don't color literal names, like red, green, etc
let g:colorizer_auto_color = 0
""let g:colorizer_skip_comments = 1
let g:colorizer_auto_filetype ='css,html,qml'
""let g:colorizer_auto_filetype ='css,html,vim'
nnoremap <C-c> :ColorToggle<CR>
" Symbols important to vim / terminal layouts

View File

@@ -3,8 +3,8 @@ FROM ubuntu:latest
COPY . /dot
ENV TERM=xterm-256color
# Install additional packages we need
RUN bash -c '. /dot/.bash_aliases && apt update -y && apt install -y $DOT_PACKAGES fontconfig'
RUN apt upgrade -y
RUN apt update -y && apt upgrade -y
RUN apt install -y git stow vim tmux ranger clang wget curl golang-go
RUN go install github.com/arl/gitmux@latest
# Update submodules for plugins
RUN cd /dot && git submodule update --init && cp .gitmux.conf.docker .gitmux.conf

View File

@@ -1,20 +1,16 @@
## Dotfiles
Dotfiles configurations for Kubuntu linux environments. Be sure to
clone recursively if you want to grab updated plugins / submodules included. For
example, using Pathogen with Vim to manage plugins requires that the plugin to
be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively
allows git to clone these same nested repositories/submodules within this
directory so Pathogen can handle running the Vim plugins.
Dotfiles configurations for headless Ubuntu 22.04 linux environments. Be sure to clone recursively if you want to grab updated plugins / submodules included. For example, using Pathogen with Vim to manage plugins requires that the plugin to be installed are cloned to the `~/.vim/bundle/` directory. Cloning recursively allows git to clone these same nested repositories/submodules within this directory so Pathogen can handle running the Vim plugins.
Once installed, editing source code in vim supports features displayed in the
screenshot below
Once installed, editing source code in vim supports features displayed in the screenshot below
![Vim screenshot](VimScreenshot.png)
### Install
### Install Dotfiles
Installation instructions
If you don't install `vim-gtk3`, vim will not have access to your system clipboard, and your copy and paste buffers will not stay in sync.
Installation instructions -
```bash
git clone --recursive https://github.com/shaunrd0/dot
@@ -24,18 +20,19 @@ mv ~/.bashrc ~/.bashrc.backup
stow . -t ~
```
To uninstall
If you forget to clone recursively
```bash
stow -D . -t ~
mv ~/.bashrc.backup ~/.bashrc
git submodule update --init
Submodule path '.vim/bundle/Colorizer': checked out '53ada285f0acc171acda4280b6144e468dded89f'
Submodule path '.vim/bundle/ale': checked out '7265ceb6d050d1a4642741d248f11e4f2abd37e1'
Submodule path '.vim/bundle/clang_complete': checked out '0b98d7533ad967aac3fc4c1a5b0508dafa8a676f'
Submodule path '.vim/bundle/supertab': checked out '40fe711e088e2ab346738233dd5adbb1be355172'
Submodule path '.vim/bundle/unicode.vim': checked out '29f43f7b1be94dccfac461f4da0a34410408111f'
Submodule path '.vim/bundle/vim-airline': checked out '6d665580a3435f21ad560af192d854d4b608fff5'
Submodule path '.vim/bundle/vim-airline-themes': checked out '0d5c5c1e2995126e76606a628316c8e3f5efb37a'
Submodule path '.vim/bundle/vim-signify': checked out '16eee41d2b267523b84bd4ac111627588bfd1a47'
```
If you have files other than `~/.bashrc` that conflict with these
configurations,
be sure to back them up so you can restore to your original state. If you do not
provide the `-t` flag to stow, the files will be symlinked within the parent
of your current directory.
### Docker
@@ -48,42 +45,33 @@ docker build -t dot .
docker run -it dot bash
```
Note that some features may not work properly in the container, like system
clipboard integration with vim or certain font icons used in themes. Still, the
base configurations work, and using the container as a clean environment is
useful for testing things such as installation instructions for a personal
project.
This container has the following packages installed and uses `ubuntu:latest` as a base.
### Configurations
```
git stow vim tmux ranger clang wget curl golang-go
```
#### Utilities
| Tool | Description | Repository |
|----------------------|--------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------|
| ranger | Console-based file manager with Vim-like keybindings, previews, and customizable commands. | [https://github.com/ranger/ranger](https://github.com/ranger/ranger) |
| ble.sh | Advanced Bash line editor providing syntax highlighting, autosuggestions, and improved interactive shell behavior. | [https://github.com/akinomyoga/ble.sh](https://github.com/akinomyoga/ble.sh) |
| GNU Stow | Manages dotfiles using symlinks. Repository structure is organized for per-package Stow deployment. | [https://www.gnu.org/software/stow/](https://www.gnu.org/software/stow/) |
| `.stow-local-ignore` | Stow configuration file that excludes specific files or patterns from being symlinked during deployment. | [https://www.gnu.org/software/stow/manual/stow.html](https://www.gnu.org/software/stow/manual/stow.html) |
| `setup.sh` | Bootstrap script that automates symlink setup and environment initialization. | (Repository-local script) |
### Install Clang Completion
#### Tmux
**These configurations require the installation of clang for clang completion**
| Plugin | Description | Repository |
|---------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|
| tmux plugin manager | Manages tmux plugins directly from GitHub. | [https://github.com/tmux-plugins/tpm](https://github.com/tmux-plugins/tpm) |
| tmux-resurrect | Saves and restores tmux sessions, panes, and layouts between restarts. | [https://github.com/tmux-plugins/tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) |
| tmux-continuum | Automatically saves tmux sessions and can restore them on system reboot. | [https://github.com/tmux-plugins/tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) |
| xclip | Integrates tmux copy mode with the system clipboard under X11. | [https://github.com/astrand/xclip](https://github.com/astrand/xclip) |
If you don't want clang completion, just remove the plugin directory from `~/.vim/bundle/`.
#### Vim
If you don't remove clang completion and skip the following steps, vim will show errors when opening source code files. This is because these configurations use clang completion for source code auto completion and drop-down menus within vim.
```bash
sudo apt install clang
source ~/.bashrc
```
### Gitmux
To enable the gitmux status bar in tmux sessions
```bash
sudo apt install golang-go
go install github.com/arl/gitmux@latest
```
| Plugin | Description | Repository |
|--------------------|--------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|
| Colorizer | Highlights color codes in Vim buffers (useful for CSS/ web). | [https://github.com/chrisbra/Colorizer](https://github.com/chrisbra/Colorizer) |
| ALE | Asynchronous Lint Engine - linting & fixing in Vim asynchronously. | [https://github.com/dense-analysis/ale](https://github.com/dense-analysis/ale) |
| clang_complete | Auto-completion support for C/C++ using libclang. | [https://github.com/xavierd/clang_complete](https://github.com/xavierd/clang_complete) |
| supertab | Expand completions using `<Tab>` in insert mode. | [https://github.com/ervandew/supertab](https://github.com/ervandew/supertab) |
| unicode.vim | Unicode helpers (insert and inspect Unicode characters). | [https://github.com/chrisbra/unicode.vim](https://github.com/chrisbra/unicode.vim) |
| vim-airline | Lean and fast status/tabline for Vim. | [https://github.com/vim-airline/vim-airline](https://github.com/vim-airline/vim-airline) |
| vim-airline-themes | Additional themes for vim-airline. | [https://github.com/vim-airline/vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) |
| vim-signify | Shows VCS (git/hg) changes in the sign column. | [https://github.com/mhinz/vim-signify](https://github.com/mhinz/vim-signify) |

View File

@@ -1,35 +1,23 @@
#!/usr/bin/env bash
set -Eeuo pipefail
# $1: Error message
# $2: Error code
# $3: Error line
function fatal() {
local msg=${1:-"Unspecified error"}
local line=${3:-9}
echo "[Error:$line] Could not install dotfiles: $msg"
exit ${2:-1}
}
trap 'fatal "Trapped an unknown error" $? $LINENO' ERR
git submodule update --init
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
fatal "Run setup.sh from the root directory of the dotfiles repository." 2 $LINENO
fi
git submodule update --init --recursive
sudo apt update
# Use alias for installing packages so we don't maintain several dependency lists.
if ! [[ -f .bash.d/.bash_exports ]]; then
fatal "Failed to locate .bash.d/.bash_exports in path: $(pwd)" 3 $LINENO
fi
. .bash.d/.bash_exports
sudo apt install -y \
git \
stow \
vim \
vim-gtk3 \
xsel \
xclip \
tmux \
ranger \
clang \
yakuake \
wget \
curl \
golang-go
if [[ -z ${DOT_PACKAGES:-} ]]; then
fatal "DOT_PACKAGES variable not found after sourcing $(pwd)/.bash.d/.bash_aliases" 4 $LINENO
fi
sudo apt update -y && sudo apt install -y $DOT_PACKAGES
go install github.com/arl/gitmux@latest
# Install bash line editor for auto completion.
git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
make -C ble.sh install PREFIX=$(pwd)/.local
rm -rf ble.sh