This commit is contained in:
Daniel Flanagan 2020-01-17 03:02:53 -06:00
parent 26f32a0c6b
commit 46793bb735
56 changed files with 357 additions and 443 deletions

14
.gitignore vendored
View File

@ -1,9 +1,15 @@
colors/gen/vendor
colors/gen/tmp
*.lock
*.log
*.pid
*.tmp
*.secret
/.repositories
/.env/
/.curenv
# TODO: should be unnecessary once color generation is homegrown
/colors/gen/vendor
/colors/gen/tmp
# keep the pipelines but hide their results
/bin/pipelines/*/*/*
/env/*/.hidden

View File

@ -3,4 +3,4 @@ MAKEFILE_PATH ?= $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
default: install
install:
./setup
${MAKEFILE_PATH}/setup

View File

@ -1,65 +0,0 @@
#!/usr/bin/env bash
source "$HOME/.bashrc"
# NO_COMPTON=1
BORDER_WIDTH=5 # change in bspwm_config, here for launcher
START_BAR=1
BAR_COMMAND="$DOTFILES_PATH/apps/de/polybar/run"
if [[ -z "$XDG_CONFIG_HOME" ]]; then
export XDG_CONFIG_HOME="$HOME/.config"
fi
if [[ -z "$DOTFILES_PATH" ]]; then
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
fi
BSPWM_STATE_FILE="$HOME/.bspwm_state"
if [ -e "$BSPWM_STATE" ] ; then
bspc wm -l "$BSPWM_STATE"
rm "$BSPWM_STATE"
fi
source "$DOTFILES_PATH/apps/de/bspwm/config"
# TODO: switch to alacritty
if command -v urxvtd >/dev/null 2>&1; then
urxvtd &
fi
if command -v dunst >/dev/null 2>&1; then
dunst &
fi
if command -v sxhkd >/dev/null 2>&1; then
# export HIGHLIGHT_COLOR=$(xrdb -query | sed -ne 's/.*font:\s*xft:.*\-\(.*\)$/\1/p' | head -n 1)
export NICE_HOME
sxhkd -m -1 &
fi
if [ -f "$DOTFILES_PATH/apps/de/x/loadresources" ]; then
"$DOTFILES_PATH/apps/de/x/loadresources"
fi
if [ -f "$HOME/.fehbg" ]; then
"$HOME/.fehbg" &
fi
# launch optional and helpful apps
if command -v unclutter >/dev/null 2>&1; then
unclutter &
fi
if command -v compton >/dev/null 2>&1; then
if [[ "$NO_COMPTON" -ne 1 ]]; then
compton &
fi
fi
# launch bar
if [[ $START_BAR -eq 1 ]]; then
${BAR_COMMAND} &
fi
bspc wm -o

View File

@ -5,17 +5,14 @@ export WINDOW_GAP=25
DESKTOPS=(dev web gfx env play chat misc mon out util)
BSPWM_MONITORS=$(bspc query -M | tac)
MONITOR_COUNT=$(echo "${BSPWM_MONITORS}" | wc -w | awk '{ printf $1 }')
MONITOR_COUNT=$(<<< "${BSPWM_MONITORS}" wc -w | awk '{ printf $1 }')
NUM_DESKTOPS=${#DESKTOPS[@]}
PER_MONITOR=$((NUM_DESKTOPS / MONITOR_COUNT))
REVERSE_DESKTOP_ORDERING=0
# allow a per-device config to override options
if [ -f "$EDFP/bspwm" ]; then
source "$EDFP/bspwm"
fi
. maybe_source_env_file bspwm
bspc config normal_border_color "$(xrdb -query | sed -ne 's/.*background:\s*//p')"
bspc config normal_border_color "$(xrdb -query | sed -ne 's/.*background:\s*//p')"
bspc config focused_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
bspc config active_border_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
bspc config presel_feedback_color "$(xrdb -query | sed -ne 's/.*color0\?4:\s*//p')"
@ -26,8 +23,7 @@ bspc config gapless_monocle true
bspc config pointer_modifier "mod4"
bspc config remove_unplugged_monitors true
bspc config remove_disabled_monitors true
bspc config window_gap "$WINDOW_GAP"
bspc config window_gap "$WINDOW_GAP"
bspc rule -a "*" split_dir=right
@ -53,7 +49,4 @@ if [[ $REVERSE_DESKTOP_ORDERING -eq 1 ]]; then
done
fi
# allow a per-device config to override options
if [ -f "$EDFP/bspwm-after" ]; then
source "$EDFP/bspwm-after"
fi
. maybe_source_env_file bspwm-after

35
apps/de/bspwm/rc Executable file
View File

@ -0,0 +1,35 @@
#!/usr/bin/env bash
source "$HOME/.bashrc"
# NO_COMPTON=1
BORDER_WIDTH=5 # change in bspwm_config, here for launcher
START_BAR=1
BAR_COMMAND="$DOTFILES_PATH/apps/de/polybar/run"
if [[ -z "$XDG_CONFIG_HOME" ]]; then
export XDG_CONFIG_HOME="$HOME/.config"
fi
if [[ -z "$DOTFILES_PATH" ]]; then
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
fi
BSPWM_STATE_FILE="$HOME/.bspwm_state"
if [ -e "$BSPWM_STATE" ] ; then
bspc wm -l "$BSPWM_STATE"
rm "$BSPWM_STATE"
fi
source "$DOTFILES_PATH/apps/de/bspwm/config"
[ -f "$DOTFILES_PATH/apps/de/x/loadresources" ] && "$DOTFILES_PATH/apps/de/x/loadresources"
[ -f "$HOME/.fehbg" ] && "$HOME/.fehbg" &
has_command urxvtd && urxvtd &
has_command dunst && dunst &
has_command sxhkd && sxhkd -m -1 &
has_command unclutter && unclutter &
[[ "$NO_COMPTON" -ne 1 ]] && has_command compton && compton &
[[ $START_BAR -eq 1 ]] && ${BAR_COMMAND} &
bspc wm -o

View File

@ -21,11 +21,7 @@ export BAR_BOTTOM="false"
export BAR_VERTICAL_MARGIN=0
export POS_Y=0
# allow a per-device config to override options
echo "$EDFP"
if [ -f "$EDFP/polybar" ]; then
source "$EDFP/polybar"
fi
. maybe_source_env_file polybar
export MONITOR_WIDTH=$(xrandr | grep "^$BAR_MONITOR " | grep -Po ' \d+' | head -n 1)

View File

@ -128,4 +128,4 @@ input * {
focus_follows_mouse no
# include /etc/sway/config.d/*
include $EDFP/sway/config.d/*
include $ENV_PATH/sway/config.d/*

19
apps/de/x/init Normal file
View File

@ -0,0 +1,19 @@
#!/bin/sh
# as far as I can tell, this file is only executed when you run startx from the
# TTY - you probably want to modify xprofile
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
[ -z "$DOTFILES_PATH" ] && export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
echo xinit >> /tmp/xstartup
[ -f "$HOME/.xprofile" ] && . "$HOME/.xprofile"
[ -f "$HOME/.xmodmap" ] && xmodmap "$HOME/.xmodmap"
eval "$(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)"
export SSH_AUTH_SOCK
# TODO: env? [ -f "$HOME/.env_xinitrc" ] && . "$HOME/.env_xinitrc"
exec "$DOTFILES_PATH/apps/de/bspwm/wmstart"

View File

@ -1,46 +0,0 @@
#!/bin/sh
# as far as I can tell, this file is only executed when you run startx from the
# TTY
# you probably want to modify xprofile
echo '' > "$HOME/.xstartup_log"
echo "xinitrc" >> "$HOME/.xstartup_log"
# load our xprofile
if [ -f "$HOME/.xprofile" ]; then
source "$HOME/.xprofile"
fi
# allow a per-device config to override options
if [ -f "$HOME/.env_xinitrc" ]; then
source "$HOME/.env_xinitrc"
fi
if [ -f "$HOME/.xmodmap" ]; then
xmodmap "$HOME/.xmodmap"
fi
echo "a" > ~/.xinitrc.log
echo "initrc" > ~/.xstartup_log
eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh)
export SSH_AUTH_SOCK
# xcape -e 'Control_L=Escape' &
# pulseaudio --start &
# xset s off -dpms &
# redshift &
# urxvtd &
# autocutsel -fork &
# autocutsel -selection PRIMARY -fork &
# autocutsel -selection SECONDARY -fork &
# fire up wm
exec "$DOTFILES_PATH/apps/de/bspwm/wmstart"

View File

@ -1,51 +1,21 @@
#!/usr/bin/env bash
ENV_TYPE="${1}"
echo "xload init" > /tmp/xload
echo "ep: $ENV_PATH" > /tmp/xload
xqm() {
f="$1"; shift; [ -f "$f" ] && xrdb -merge "$f" "$@" &>/dev/null && echo "xqm LOADING $f" >> /tmp/xload
}
if [[ "$ENV_TYPE" = "auto" ]]; then
if [[ "$(xrandr --listmonitors | grep 'Monitors:' | awk '{print $2}')" -gt 1 ]]; then
ENV_TYPE="lodpi"
else
ENV_TYPE=""
fi
fi
xqm "/etc/X11/xinit/.Xresources"
xqm "$HOME/.Xresources"
xqm "$DOTFILES_PATH/bin/lib/colors/xresources"
xqm "$ENV_PATH/x/resources"
if [[ -z "$ENV_TYPE" ]]; then
ENV_TYPE=""
else
ENV_TYPE="${ENV_TYPE}-"
fi
sysresources="/etc/X11/xinit/.Xresources"
sysmodmap="/etc/X11/xinit/.Xmodmap"
userresources="$HOME/.Xresources"
usercolors="$DOTFILES_PATH/bin/lib/colors/xresources"
userenv="$EDFP/x/${ENV_TYPE}resources"
usermodmap="$EDFP/x/modmap"
usermodmap="$ENV_PATH/x/modmap"
if [ -f "$sysresources" ]; then
xrdb -merge "$sysresources" >/dev/null 2>&1
fi
if [ -f "$sysmodmap" ]; then
xmodmap "$sysmodmap" >/dev/null 2>&1
fi
if [ -f "$userresources" ]; then
xrdb -merge "$userresources" >/dev/null 2>&1
fi
if [ -f "$usercolors" ]; then
xrdb -merge "$usercolors" >/dev/null 2>&1
fi
if [ -f "$userenv" ]; then
xrdb -merge "$userenv" >/dev/null 2>&1
fi
if [ -f "$usermodmap" ]; then
xmodmap "$usermodmap" >/dev/null 2>&1
fi
[ -f "$sysmodmap" ] && xmodmap "$sysmodmap" &>/dev/null
[ -f "$usermodmap" ] && xmodmap "$usermodmap" &>/dev/null
if [ -d "/etc/X11/xinit/xinitrc.d" ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
@ -53,4 +23,3 @@ if [ -d "/etc/X11/xinit/xinitrc.d" ] ; then
done
unset f
fi

View File

@ -1,57 +1,25 @@
#!/bin/sh
if [[ -z "$XDG_CONFIG_HOME" ]]; then
export XDG_CONFIG_HOME="$HOME/.config"
fi
if [[ -z "$DOTFILES_PATH" ]]; then
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
fi
[ -z "$XDG_CONFIG_HOME" ] && export XDG_CONFIG_HOME="$HOME/.config"
[ -z "$DOTFILES_PATH" ] && export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
if command -v autorandr >/dev/null 2>&1; then
autorandr -c
fi
echo "xprofile ($DOTFILES_PATH)" >> "$HOME/.xstartup_log"
# keyrepeat settings
xset r rate 250 80 &
. "$DOTFILES_PATH/bin/prelude"
# no screen blanking
# xset -dpms &
# xset s noblank &
# xset s off &
if command -v xss-lock >/dev/null 2>&1; then
if command -v dm-tool >/dev/null 2>&1; then
# xss-lock -- dm-tool switch-to-greeter &
:
fi
fi
# has_command xss-lock && has_command dm-tool && xss-lock -- dm-tool switch-to-greeter &
if command -v redshift >/dev/null 2>&1; then
redshift -r -l 39.0997:-94.5786 -t 6500K:3000K &
fi
[ -f "$DOTFILES_PATH/apps/de/x/loadresources" ] && "$DOTFILES_PATH/apps/de/x/loadresources"
[ -f "$HOME/.xmodmap" ] && xmodmap "$HOME/.xmodmap"
has_command xcape && xcape -e 'Control_L=Escape' &
has_command autocutsel && autocutsel -fork &
has_command libinput-gestures-setup && libinput-gestures-setup start
has_command autorandr && autorandr -c
has_command redshift && redshift -r -l 39.1:-94.6 -t 6500K:3000K &
if [ -f "$HOME/.xmodmap" ]; then
xmodmap "$HOME/.xmodmap"
fi
xset r rate 250 80 & # keyrepeat
if [ -f "$DOTFILES_PATH/apps/de/x/loadresources" ]; then
"$DOTFILES_PATH/apps/de/x/loadresources"
fi
if command -v xcape >/dev/null 2>&1; then
xcape -e 'Control_L=Escape' &
fi
if command -v autocutsel &> /dev/null; then
autocutsel -fork &
fi
if command -v libinput-gestures-setup &> /dev/null; then
libinput-gestures-setup start
fi
if [ -f "$HOME/.env_xprofile" ]; then
source "$HOME/.env_xprofile"
fi
. maybe_source_env_file x/profile

View File

@ -15,8 +15,8 @@
*.boldFont: xft:Iosevka Term Bold:pixelsize=14,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
*.letterSpace: 0
# URxvt.transparent: true
# URxvt.shading: 70
## URxvt.transparent: true
## URxvt.shading: 70
## rxvt-unicode configuration
URxvt.termName: rxvt-unicode
@ -44,6 +44,7 @@ dpi: 92
.dpi: 92
*dpi: 92
Xft.dpi: 92
*autohint: 0
*lcdfilter: lcddefault
*hintstyle: hintfull

View File

@ -50,8 +50,10 @@ exec 'source ' . commandsfile
let bindingsfile=$vimdir.'/bindings.vim'
exec 'source ' . bindingsfile
" colors
let &t_Co=16
" load a per-environment file if one exists
if filereadable(expand('$HOME/.env_init_after.vim'))
source "$HOME/.env_init_after.vim"
endif

View File

@ -90,7 +90,7 @@ if has('autocmd')
endif
" color scheme
let base16colorspace=256
let base16colorspace=16
set background=dark
syntax enable
colorscheme base16-donokai

View File

@ -1,34 +0,0 @@
#!/usr/bin/env bash
export GOPATH="$HOME/.go"
# PATH=$PATH:$APPENDED_PATH
export PATH=$PATH:"$GOPATH/bin"
export PATH=$PATH:"$DOTFILES_PATH/bin"
export PATH=$PATH:"$EDFP/bin"
export PATH=$PATH:"$HOME/.bin"
export PATH=$PATH:"$HOME/.cargo/bin"
export PATH=$PATH:"$HOME/.yarn/bin"
if [ -d "$HOME/.local/bin" ]; then
export PATH=$PATH:"$HOME/.local/bin"
fi
if [ -d "$HOME/.bin" ]; then
export PATH=$PATH:"$HOME/.bin"
fi
if command -v python >/dev/null 2>&1; then
export PATH="$(python -m site --user-base)/bin:$PATH"
fi
if command -v ruby >/dev/null 2>&1; then
export PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
fi
export NOTES_PATH="$NICE_HOME/doc/notes"
_make_paths() {
mkdir -p "${NOTES_PATH}"
}
export -f _make_paths

View File

@ -2,6 +2,6 @@
# bash_profile is executed immediately after logging in
if [ -f ~/.bashrc ]; then
source ~/.bashrc
if [[ -f "$HOME/.bashrc" ]]; then
source "$HOME/.bashrc"
fi

View File

@ -1,127 +1,69 @@
#!/usr/bin/env bash
# these are all paths used across many of the dotfiles and should be assumed to
# be loaded and properly set by every script - this means you are responsible
# for making sure they're loaded!
export XDG_CONFIG_HOME="$HOME/.config"
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
export ENV_DOTFILES_PATH="$DOTFILES_PATH/.env"
export EDFP="$ENV_DOTFILES_PATH" # shorter alias
NICE_HOME="$HOME"
# TODO: better logic for auto-detecting alternative home directories?
# 1. check dirname(basename $HOME)) matches username
# 2. check /home/$username
[[ $(basename "${HOME}") = ".home" ]] && NICE_HOME="$(realpath "$HOME/..")"
[[ -e "${HOME}/.nice_home" ]] && NICE_HOME="$(cat "${HOME}/.nice_home")"
[[ -e "${EDFP}/.nice_home" ]] && NICE_HOME="$(cat "${EDFP}/.nice_home")"
. "$DOTFILES_PATH/bin/prelude"
export NICE_HOME
[[ ! $- == *i* ]] && return # stop parsing on a non-interactive shell
# set our PATH
source "$DOTFILES_PATH/apps/shell/bash/paths"
. "$DOTFILES_PATH/apps/shell/bash/aliases"
. "$DOTFILES_PATH/apps/shell/bash/autocompletions"
. "$DOTFILES_PATH/apps/shell/bash/prompt"
# stop parsing on a non-interactive shell
[ -z "$PS1" ] && return
# load our key binds
case $- in
*i*) bind -f "$DOTFILES_PATH/apps/shell/inputrc";;
*) ;;
esac
# import our aliases
source "$DOTFILES_PATH/apps/shell/bash/aliases"
# import our autocompletions
source "$DOTFILES_PATH/apps/shell/bash/autocompletions"
# load our vconsole colors
if [ "${TERM%%-*}" = 'linux' ] && [[ $- == *i* ]]; then
BASE16_SHELL="$DOTFILES_PATH/bin/lib/colors/vconsole"
[[ -s "$BASE16_SHELL" ]] && source "$BASE16_SHELL"
stty -ixon # disable ctrl-s terminal freezing
bind -f "$DOTFILES_PATH/apps/shell/inputrc" # load our key
# load our vconsole colors if in a tty
if [[ "${TERM%%-*}" = 'linux' ]]; then
c="$DOTFILES_PATH/bin/lib/colors/vconsole"
[[ -s "$c" ]] && . "$c"
fi
# load our terminal colors
BASE16_SHELL="$DOTFILES_PATH/bin/lib/colors/shell"
[[ -s "$BASE16_SHELL" ]] && source "$BASE16_SHELL"
# disable ctrl-s terminal freeze
[[ $- == *i* ]] && stty -ixon
# allow ** recursive wildcard globbing
shopt -s globstar
# import our prompt
source "$DOTFILES_PATH/apps/shell/bash/prompt"
# prevents binds or commands pulling from history from insta-sending, and
# instead places them in the readline for editing
shopt -s histverify
# always _append_ to bash history
shopt -s histappend
# load our shell colors
c="$DOTFILES_PATH/bin/lib/colors/shell"
[[ -s "$c" ]] && . "$c"
# prevents some Java GUI apps from not working or rendering properly due to
# using wacky window managers
export _JAVA_AWT_WM_NONREPARENTING=1
LS_COLORS='ow=01;36;40'
export LS_COLORS
# less tab size of 2 spaces
LESS="-x2"
export LESS
export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_bytes 1024000"
has_command fd && export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
export LS_COLORS='ow=01;36;40'
export LESS="-x2" # less tab size of 2 spaces
export TERMINAL="urxvtc"
export BROWSER="firefox-developer-edition"
export HISTFILESIZE="10000000" # "unlimited" history
export HISTSIZE="10000000" # "unlimited" history
export HISTCONTROL=ignoreboth # ignore duplicates and commands starting with space (" ")
shopt -s globstar # allow ** recursive wildcard globbing
# prevents binds or commands pulling from history from insta-sending, and
# instead places them in the readline for editing
shopt -s histverify
shopt -s histappend # always _append_ to bash history
shopt -s cmdhist # ensure command history is comprised of single lines
HISTIGNORE='ls:ll:la' # ignore certain commands
# set our EDITOR to neovim if we've got it
export EDITOR="vim"
if command -v nvim >/dev/null 2>&1; then
if has_command nvim; then
alias vim="nvim"
alias ovim="\\vim"
export EDITOR="nvim"
fi
export TERMINAL="urxvtc"
export BROWSER="firefox-developer-edition"
# "unlimited" history
export HISTFILESIZE="10000000"
export HISTSIZE="10000000"
# ignore duplicates and commands starting with space (" ")
export HISTCONTROL=ignoreboth
# ignore certain commands
HISTIGNORE='ls:ll:la'
# ensure command history is comprised of single lines
shopt -s cmdhist
# load a per-device config last so anything can be overridden
if [ -a "$EDFP/bash" ]; then
source "$EDFP/bash"
fi
. maybe_source_env_file bash
# we assume the user uses "$HOME" to just store their mess of dotfiles and other
# nonsense that clutters it up and that they have a preferred starting
# directory where they keep the stuff they actually care about
# we only do this if the user is opening a shell at $HOME
if [ "$PWD" = "$HOME" ]; then
cd "$NICE_HOME" || cd || return
fi
# create paths we kind of expect to exist in some scripts
mkdir -p "${NOTES_PATH}"
# TODO: check if fd command exists
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
# open nice home instead if we're opening at home
[ "$PWD" = "$HOME" ] && cd "$NICE_HOME" || cd || return
export ERL_AFLAGS="-kernel shell_history enabled -kernel shell_history_file_bytes 1024000"
[ -f "$HOME/.fzf.bash" ] && . "$HOME/.fzf.bash"
_make_paths
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
if [[ -d ~/.asdf/ ]] && [[ -f ~/.asdf/asdf.sh ]]; then
source "~/.asdf/asdf.sh"
if [[ -d "$HOME/.asdf/" ]] && [[ -f "$HOME/.asdf/asdf.sh" ]]; then
. "$HOME/.asdf/asdf.sh"
elif [[ -d /opt/asdf-vm/ ]] && [[ -f /opt/asdf-vm/asdf.sh ]]; then
source "/opt/asdf-vm/asdf.sh"
. "/opt/asdf-vm/asdf.sh"
fi

0
apps/shell/fish/aliases.fish Normal file → Executable file
View File

29
apps/shell/fish/config.fish Normal file → Executable file
View File

@ -1,7 +1,22 @@
set -U XDG_CONFIG_HOME "$HOME/.config"
set -U DOTFILES_PATH "$XDG_CONFIG_HOME/dotfiles"
set -U ENV_DOTFILES_PATH "$DOTFILES_PATH/env"
set -U EDFP "$ENV_DOTFILES_PATH"
#!/usr/bin/env fish
set -U XDG_CONFIG_HOME $HOME/.config
set -U DOTFILES_PATH $XDG_CONFIG_HOME/dotfiles
set -U ENV_PATH $HOME/.env
$DOTFILES_PATH/bin/lib/colors/shell
function source_if_exists
test -f $ENV_PATH/$argv[1] && source $argv[1]
end
function maybe_source_env_file
source_if_exists $ENV_PATH/$argv[1]
end
function has_command
command -v $argv[1] 2>&1 >/dev/null
end
# TODO: better logic for auto-detecting alternative home directories?
# 1. check dirname(basename $HOME)) matches username
@ -9,7 +24,7 @@ set -U EDFP "$ENV_DOTFILES_PATH"
set -U NICE_HOME $HOME
test (basename $HOME) = .home && set -U NICE_HOME (realpath $HOME/..)
test -e $HOME/.nice_home && set -U NICE_HOME (cat $HOME/.nice_home)
test -e $EDFP/.nice_home && set -U NICE_HOME (cat $EDFP/.nice_home)
test -e $ENV_PATH/.nice_home && set -U NICE_HOME (cat $ENV_PATH/.nice_home)
# setup paths
source $DOTFILES_PATH/apps/shell/fish/paths.fish
@ -29,7 +44,7 @@ source $DOTFILES_PATH/apps/shell/fish/prompt.fish
source $DOTFILES_PATH/apps/shell/fish/aliases.fish
set -U _JAVA_AWT_WM_NONREPARENTING 1
set -U LS_COLORS 'ow=01;36;40'
# set -U LS_COLORS 'ow=01;36;40'
set -U LESS -x2 # less tab size of 2 spaces
set -U TERMINAL urxvtc
set -U BROWSER firefox-developer-edition
@ -51,7 +66,7 @@ command -v fd 2>&1 >/dev/null && set -U FZF_DEFAULT_COMMAND 'fd --type f --hidde
# nonsense that clutters it up and that they have a preferred starting
# directory where they keep the stuff they actually care about
# we only do this if the user is opening a shell at $HOME
test $PWD = $HOME && cd $NICE_HOME || cd || exit
if test $PWD = $HOME; cd $NICE_HOME || cd; end
test -f ~/.fzf/shell/key-bindings.fish && source ~/.fzf/shell/key-bindings.fish

8
apps/shell/fish/fish_variables Normal file → Executable file
View File

@ -2,17 +2,18 @@
# VERSION: 3.0
SETUVAR BROWSER:firefox\x2ddeveloper\x2dedition
SETUVAR --path DOTFILES_PATH:/home/daniel/\x2ehome/\x2econfig/dotfiles
SETUVAR EDFP:/home/daniel/\x2ehome/\x2econfig/dotfiles/\x2eenv
SETUVAR EDITOR:nvim
SETUVAR --path ENV_DOTFILES_PATH:/home/daniel/\x2ehome/\x2econfig/dotfiles/env
SETUVAR --path ENV_PATH:/home/daniel/\x2ehome/\x2eenv
SETUVAR ERL_AFLAGS:\x2dkernel\x20shell_history\x20enabled\x20\x2dkernel\x20shell_history_file_bytes\x201024000
SETUVAR FZF_DEFAULT_COMMAND:fd\x20\x2d\x2dtype\x20f\x20\x2d\x2dhidden\x20\x2d\x2dfollow\x20\x2d\x2dexclude\x20\x2egit
SETUVAR LESS:\x2dx2
SETUVAR LS_COLORS:ow\x3d01\x3b36\x3b40
SETUVAR LS_COLORS:\x1d
SETUVAR NICE_HOME:/home/daniel
SETUVAR --path NOTES_PATH:/home/daniel/doc/notes
SETUVAR TERMINAL:urxvtc
SETUVAR XDG_CONFIG_HOME:/home/daniel/\x2ehome/\x2econfig
SETUVAR ZZZ:test
SETUVAR _JAVA_AWT_WM_NONREPARENTING:1
SETUVAR __fish_init_2_39_8:\x1d
SETUVAR __fish_init_2_3_0:\x1d
@ -36,6 +37,7 @@ SETUVAR fish_color_quote:yellow
SETUVAR fish_color_redirection:blue
SETUVAR fish_color_search_match:bryellow\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_selection:white\x1e\x2d\x2dbackground\x3dbrblack
SETUVAR fish_color_status:red
SETUVAR fish_color_user:blue
SETUVAR fish_color_valid_path:\x2d\x2dunderline
SETUVAR fish_greeting:Welcome\x20to\x20fish\x2c\x20the\x20friendly\x20interactive\x20shell
@ -44,4 +46,4 @@ SETUVAR fish_pager_color_completion:\x1d
SETUVAR fish_pager_color_description:yellow\x1eyellow
SETUVAR fish_pager_color_prefix:white\x1e\x2d\x2dunderline
SETUVAR fish_pager_color_progress:brwhite\x1e\x2d\x2dbackground\x3dcyan
SETUVAR fish_user_paths:/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2ego\x1e/home/daniel/\x2ehome/\x2ego/bin\x1e/home/daniel/\x2ehome/\x2econfig/dotfiles/bin\x1e/home/daniel/\x2ehome/\x2econfig/dotfiles/\x2eenv/bin\x1e/home/daniel/\x2ehome/\x2ebin\x1e/home/daniel/\x2ehome/\x2ecargo/bin\x1e/home/daniel/\x2ehome/\x2eyarn/bin
SETUVAR fish_user_paths:/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2elocal/bin\x1e/home/daniel/\x2ehome/\x2ego\x1e/home/daniel/\x2ehome/\x2ego/bin\x1e/home/daniel/\x2ehome/\x2econfig/dotfiles/bin\x1e/home/daniel/\x2ehome/\x2eenv/bin\x1e/home/daniel/\x2ehome/\x2ebin\x1e/home/daniel/\x2ehome/\x2ecargo/bin\x1e/home/daniel/\x2ehome/\x2eyarn/bin

View File

@ -1,8 +1,8 @@
#!/usr/bin/env fish
function fish_user_key_bindings
fish_vi_key_bindings
fzf_key_bindings
fish_vi_key_bindings
set vi_esc "if commandline -P; commandline -f cancel; else; set fish_bind_mode default; commandline -f backward-char force-repaint; end"
bind -M insert jk $vi_esc
@ -13,5 +13,7 @@ function fish_user_key_bindings
bind -M insert JJ $vi_esc
bind -M insert JJ $vi_esc
bind -M insert \cf 'fzf-cd-widget'
bind -M insert \cp up-or-search
bind -M insert \cn down-or-search
bind -M insert \cf fzf-cd-widget
end

2
apps/shell/fish/paths.fish Normal file → Executable file
View File

@ -1,6 +1,6 @@
#!/usr/bin/env fish
set -U fish_user_paths $HOME/.go $GOPATH/bin $DOTFILES_PATH/bin $EDFP/bin $HOME/.bin $HOME/.cargo/bin $HOME/.yarn/bin
set -U fish_user_paths $HOME/.go $GOPATH/bin $DOTFILES_PATH/bin $ENV_PATH/bin $HOME/.bin $HOME/.cargo/bin $HOME/.yarn/bin
test -d $HOME/.local/bin && set -U fish_user_paths $HOME/.local/bin $fish_user_paths
test -d $HOME/.bin && set -U fish_user_paths $HOME/.local/bin $fish_user_paths

5
apps/shell/fish/prompt.fish Normal file → Executable file
View File

@ -25,7 +25,9 @@ function fish_prompt
printf (preprocess_pwd)" "
end
function fish_mode_prompt
function fish_mode_prompt; end
function fish_right_prompt
set_color brblack
switch $fish_bind_mode
case default
@ -39,5 +41,4 @@ function fish_mode_prompt
case visual
echo 'V'
end
echo -n ' '
end

View File

@ -11,7 +11,7 @@ bind r source-file ~/.tmux.conf
set -as terminal-overrides ',xterm*:smxx=\E[9m'
# sane defaults
set -g default-terminal "tmux-256color"
# set -g default-terminal "tmux-256color"
set-option -g mouse on
# honestly not exactly sure?

View File

@ -10,10 +10,7 @@ BACKGROUND_COLOR=$(xrq background)
FOREGROUND_COLOR=$(xrq foreground)
GAP=$(xrq internalBorder)
# load a per-device config last so anything can be overridden
if [ -a "$EDFP/app-launcher" ]; then
source "$EDFP/app-launcher"
fi
. maybe_source_env_file app-launcher
rofi \
-combi-modi run,window \

28
bin/dotfiles-make-env Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/env bash
edfp="$ENV_PATH/$1"
mkdir -p "$edfp/"
mkdir -p "$edfp/.hidden/bash.d/"
mkdir -p "$edfp/bin/"
mkdir -p "$edfp/x/"
mkdir -p "$edfp/sway/waybar"
mkdir -p "$edfp/sway/config.d"
mkdir -p "$HOME/.bin/"
touches=(
"$edfp/bash"
"$edfp/x/init"
"$edfp/x/profile"
"$edfp/x/resources"
"$edfp/vim"
"$edfp/bspwm"
"$edfp/polybar"
"$edfp/app-launcher"
"$edfp/workdock"
)
for t in "${touches[@]}"; do
touch "$t"
done
chmod 700 -R "$edfp"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
SOURCE=$(realpath "$1")
DEST=$(realpath -m "$2")
SOURCE=$(realpath "$1") # this one exists
DEST=$(realpath -m "$2") # this is the link to what exists
ln -s "$SOURCE" "$DEST"

3
bin/has_command Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env sh
command -v "$1" >/dev/null 2>&1

View File

@ -1,16 +1,6 @@
" Base16 Donokai (https://github.com/chriskempson/base16)
" Scheme: Daniel Flanagan(https://lytedev.io)
" This enables the coresponding base16-shell script to run so that
" :colorscheme works in terminals supported by base16-shell scripts
" User must set this variable in .vimrc
" let g:base16_shell_path=base16-builder/output/shell/
if !has('gui_running')
if exists("g:base16_shell_path")
execute "silent !/bin/sh ".g:base16_shell_path."/base16-donokai.".&background.".sh"
endif
endif
" GUI color definitions
let s:gui00 = "111111"
let s:gui01 = "383830"

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
dfp=$(cd "$(dirname "${BASH_SOURCE[0]}" )/../../" && pwd)
source "${dfp}/apps/shell/bash/bashrc"
source "${dfp}/apps/shell/bash/rc"
USER_DISAGREE_CODE=120
NO_AGREEMENT_CODE=121

4
bin/maybe_source_env_file Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env sh
f="$1"; shift
. source_if_exists "$ENV_PATH/$f" "$@"

18
bin/paths Normal file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env sh
echo "paths"
export GOPATH="$HOME/.go"
# PATH=$PATH:$APPENDED_PATH
PATH="$DOTFILES_PATH/bin":$PATH
PATH="$ENV_PATH/bin":$PATH
[ -d "$HOME/.bin" ] && PATH=$PATH:"$HOME/.bin"
PATH=$PATH:"$HOME/.cargo/bin"
PATH=$PATH:"$HOME/.yarn/bin"
PATH=$PATH:"$GOPATH/bin"
[ -d "$HOME/.local/bin" ] && PATH=$PATH:"$HOME/.local/bin"
has_command python && PATH="$(python -m site --user-base)/bin:$PATH"
has_command ruby && PATH="$(ruby -e 'print Gem.user_dir')/bin:$PATH"
export PATH
export NOTES_PATH="${NOTES_PATH:-$NICE_HOME/doc/notes}"

View File

@ -1,6 +1,6 @@
#!/usr/bin/env bash
SAVED_PIPELINE_DIR="$EDFP/pipelines"
SAVED_PIPELINE_DIR="$DOTFILES_PATH/bin/pipelines"
mkdir -p "$SAVED_PIPELINE_DIR"
if [[ ! -z "${1+x}" ]]; then

4
bin/pipelines/b64/transform Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# for /home/daniel/.home/.config/dotfiles/.env/pipelines/b64/pipeline.VRMehQda
base64

4
bin/pipelines/base64/transform Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# for /home/daniel/.home/.config/dotfiles/.env/pipelines/base64/tmp_pipeline.ca7uoTRo
base64

View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# for /home/daniel/.home/.config/dotfiles/.env/pipelines/linewise/tmp_pipeline.epyGqDjQ
linewise base64

4
bin/pipelines/test/transform Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# for /home/daniel/.home/.config/dotfiles/.env/pipelines/test/pipeline.Zpgm8j42
base64

4
bin/pipelines/xxd/transform Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# for /home/daniel/.home/.config/dotfiles/.env/pipelines/xxd/tmp_pipeline.dmXdfyZv
hexyl

21
bin/prelude Executable file
View File

@ -0,0 +1,21 @@
#!/usr/bin/env sh
echo "prelude"
# these are all paths used across many of the dotfiles and should be assumed to
# be loaded and properly set by every script - this means you are responsible
# for making sure they're loaded!
export XDG_CONFIG_HOME="$HOME/.config"
export DOTFILES_PATH="$XDG_CONFIG_HOME/dotfiles"
export ENV_PATH="$HOME/.env"
# TODO: better logic for auto-detecting alternative home directories?
# 1. check dirname(basename $HOME)) matches username
# 2. check /home/$username
NICE_HOME="$HOME"
[ "$(basename "${HOME}")" = ".home" ] && NICE_HOME="$(realpath "$HOME/..")"
[ -e "${HOME}/.nice_home" ] && NICE_HOME="$(cat "${HOME}/.nice_home")"
[ -e "${ENV_PATH}/.nice_home" ] && NICE_HOME="$(cat "${ENV_PATH}/.nice_home")"
export NICE_HOME
. "$DOTFILES_PATH/bin/paths"

4
bin/source_if_exists Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env sh
f="$1"; shift
[ -f "$f" ] && . "$f" "$@"

View File

@ -1,11 +1,12 @@
#!/usr/bin/env bash
# TODO: move to laptop env
resrc
source "$EDFP/workdock" --just-vars
. maybe_source_env_file workdock
"${DOTFILES_PATH}/apps/de/x/loadresources" lodpi
autorandr --change
"${DOTFILES_PATH}/apps/de/bspwm/bspwmrc"
"${DOTFILES_PATH}/apps/de/x/loadresources" lodpi
restartbar
"${HOME}/.fehbg"
source "$EDFP/workdock"
. maybe_source_env_file workdock

0
env/laptop/app-launcher vendored Executable file
View File

7
env/laptop/bar vendored Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/env bash
export BAR_SIDE_MARGIN=0
export BAR_HEIGHT=80
[[ -v OVERRIDE_BAR_MONITOR ]] && export BAR_MONITOR="$OVERRIDE_BAR_MONITOR"
[[ -v OVERRIDE_BAR_HEIGHT ]] && export BAR_HEIGHT="$OVERRIDE_BAR_HEIGHT"

3
env/laptop/bash vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
. maybe_source_env_file .hidden/bash

3
env/laptop/bspwm vendored Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
export WINDOW_GAP=0

9
env/laptop/polybar vendored Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
export BAR_SIDE_MARGIN=0
export BAR_HEIGHT=80
[[ -v OVERRIDE_BAR_MONITOR ]] && export BAR_MONITOR="$OVERRIDE_BAR_MONITOR"
[[ -v OVERRIDE_BAR_HEIGHT ]] && export BAR_HEIGHT="$OVERRIDE_BAR_HEIGHT"
return 0

0
env/laptop/vim vendored Executable file
View File

9
env/laptop/workdock vendored Executable file
View File

@ -0,0 +1,9 @@
#!/usr/bin/env bash
export OVERRIDE_BAR_MONITOR="DP1"
export OVERRIDE_BAR_HEIGHT="24"
export BAR_ICON_FONT_SIZE="9"
xrdb -merge "$ENV_PATH/lodpi-resource"
xrandr --output eDP1 --scale-from 1600x900 --filter nearest --mode 3200x1800

0
env/laptop/x/init vendored Executable file
View File

19
env/laptop/x/lodpi-resources vendored Executable file
View File

@ -0,0 +1,19 @@
## *.font: xft:Iosevka Nerd Font Mono:pixelsize=16,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
## *.boldFont: xft:Iosevka Nerd Font Mono:style=bold:pixelsize=16,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
## URxvt.font: xft:Iosevka Nerd Font Mono:pixelsize=16,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
## URxvt.boldFont: xft:Iosevka Nerd Font Mono:style=bold:pixelsize=16,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
## *.font: xft:scientifica:pixelsize=11,xft:Iosevka Nerd Font Mono:pixelsize=12,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=11,xft:FreeSans:pixelsize=12
## *.boldFont: xft:scientifica:pixelsize=11,xft:Iosevka Nerd Font Mono:style=bold:pixelsize=12,xft:Font Awesome 5 Free:pixelsize=11,xft:FreeSans:pixelsize=12
## URxvt.font: xft:scientifica:pixelsize=11,xft:Iosevka Nerd Font Mono:pixelsize=12,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=11,xft:FreeSans:pixelsize=12
## URxvt.boldFont: xft:scientifica:pixelsize=11,xft:Iosevka Nerd Font Mono:style=bold:pixelsize=12,xft:Font Awesome 5 Free:pixelsize=11,xft:FreeSans:pixelsize=12
*.font: xft:curie:pixelsize=11,xft:Iosevka Nerd Font Mono:pixelsize=12,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=8,xft:FreeSans:pixelsize=12
*.boldFont: xft:curie:pixelsize=11,xft:Iosevka Nerd Font Mono:style=bold:pixelsize=12,xft:Font Awesome 5 Free:pixelsize=8,xft:FreeSans:pixelsize=12
URxvt.font: xft:curie:pixelsize=11,xft:Iosevka Nerd Font Mono:pixelsize=12,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=8,xft:FreeSans:pixelsize=12
URxvt.boldFont: xft:curie:pixelsize=11,xft:Iosevka Nerd Font Mono:style=bold:pixelsize=12,xft:Font Awesome 5 Free:pixelsize=8,xft:FreeSans:pixelsize=12
dpi: 92
.dpi: 92
*dpi: 92
Xft.dpi: 92

0
env/laptop/x/profile vendored Executable file
View File

10
env/laptop/x/resources vendored Executable file
View File

@ -0,0 +1,10 @@
*.font: xft:Iosevka Nerd Font Mono:pixelsize=12,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
*.boldFont: xft:Iosevka Nerd Font Mono:style=bold:pixelsize=12,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
URxvt.font: xft:Iosevka Nerd Font Mono:pixelsize=32,xft:Noto Emoji,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
URxvt.boldFont: xft:Iosevka Nerd Font Mono:style=bold:pixelsize=32,xft:Font Awesome 5 Free:pixelsize=14,xft:FreeSans:pixelsize=14
Emacs.font: Iosevka Term
Emacs.faceName: Iosevka Term
dpi: 190
.dpi: 190
*dpi: 190
Xft.dpi: 190

56
setup
View File

@ -1,21 +1,9 @@
#!/usr/bin/env bash
# #
# _ _ _ #
# | |_ _| |_,___ __| | _____ __ #
# | | | | | __/ _ \/ ,` |/ _ \ \ / / #
# | | |_| | || __/ (_| | __/\ V / #
# |_|\__, |\__\___|\__,_|\___| \_/ #
# \__/ #
# #
# D O T F I L E S #
# #
# TODO: quiet mode?
# TODO: quiet/auto-agree mode for curl | bash automagic?
dfp=$(cd "$(dirname "${BASH_SOURCE[0]}" )/" && pwd)
source "${dfp}/bin/lib/setup_helpers.bash"
edfp="${dfp}/.env"
INTERACTIVE=1
@ -30,23 +18,23 @@ done
links=(
# desktop environment files
"$dfp/apps/de/bspwm/bspwmrc" "$XDG_CONFIG_HOME/bspwm/bspwmrc"
"$dfp/apps/de/bspwm/rc" "$XDG_CONFIG_HOME/bspwm/bspwmrc"
"$dfp/apps/de/bspwm/fehbg" "$HOME/.fehbg"
"$dfp/apps/de/sway/config" "$XDG_CONFIG_HOME/sway/config"
"$dfp/apps/de/sxhkd/sxhkdrc" "$XDG_CONFIG_HOME/sxhkd/sxhkdrc"
"$dfp/apps/de/sxhkd/rc" "$XDG_CONFIG_HOME/sxhkd/sxhkdrc"
"$dfp/apps/de/x/resources" "$HOME/.Xresources"
"$dfp/apps/de/x/initrc" "$HOME/.xinitrc"
"$dfp/apps/de/x/initrc" "$HOME/.vnc/xstartup"
"$dfp/apps/de/x/init" "$HOME/.xinitrc"
"$dfp/apps/de/x/init" "$HOME/.vnc/xstartup"
"$dfp/apps/de/x/profile" "$HOME/.xprofile"
"$dfp/apps/de/x/modmap" "$HOME/.xmodmap"
"$dfp/apps/de/compton/compton.conf" "$XDG_CONFIG_HOME/compton.conf"
"$dfp/apps/de/dunst/dunstrc" "$XDG_CONFIG_HOME/dunst/dunstrc"
"$dfp/apps/de/dunst/rc" "$XDG_CONFIG_HOME/dunst/dunstrc"
"$dfp/apps/de/mako/" "$XDG_CONFIG_HOME/mako"
"$dfp/bin/lib/colors/xresources" "$HOME/.Xresources.colors"
# shell files
"$dfp/apps/shell/bash/rc" "$HOME/.bashrc"
"$dfp/apps/shell/bash/bash_profile" "$HOME/.bash_profile"
"$dfp/apps/shell/bash/profile" "$HOME/.bash_profile"
"$dfp/apps/shell/tmux/tmux.conf" "$HOME/.tmux.conf"
"$dfp/apps/shell/tmux/layouts" "$HOME/.tmux/layouts"
"$dfp/apps/shell/fish/" "$XDG_CONFIG_HOME/fish"
@ -100,8 +88,8 @@ links=(
"$dfp/apps/ranger/" "$XDG_CONFIG_HOME/ranger"
# mutt config
"$dfp/apps/mutt/muttrc" "$XDG_CONFIG_HOME/.muttrc"
"$dfp/apps/mutt/muttrc" "$HOME/.muttrc"
"$dfp/apps/mutt/rc" "$XDG_CONFIG_HOME/.muttrc"
"$dfp/apps/mutt/rc" "$HOME/.muttrc"
# neofetch config
"$dfp/apps/neofetch/config" "$XDG_CONFIG_HOME/neofetch/config"
@ -116,32 +104,6 @@ links=(
"$dfp/apps/shell/user-dirs" "$XDG_CONFIG_HOME/user-dirs.dirs"
)
mkdir -p "$edfp/"
[[ ! -e "$HOME/.env" ]] && ln -s "$edfp/" "$HOME/.env"
mkdir -p "$edfp/bash.d/"
mkdir -p "$edfp/bin/"
mkdir -p "$edfp/x/"
mkdir -p "$edfp/sway/waybar"
mkdir -p "$edfp/sway/config.d"
mkdir -p "$HOME/.bin/"
touches=(
"$edfp/bash"
"$edfp/x/init"
"$edfp/x/profile"
"$edfp/x/resources"
"$edfp/vim"
"$edfp/bspwm"
"$edfp/polybar"
"$edfp/app-launcher"
"$edfp/workdock"
)
for t in "${touches[@]}"; do
touch "$t"
done
chmod 700 -R "$edfp"
chmod 700 -R "$HOME/.bin"
# TODO: pass interactive?