1
0
mirror of https://github.com/tiyn/dotfiles.git synced 2026-03-09 18:54:47 +01:00

Compare commits

...

18 Commits

11 changed files with 187 additions and 57 deletions

View File

@@ -75,10 +75,10 @@ alias contacts="khard"
alias paint="kolourpaint" alias paint="kolourpaint"
# ls(d) # ls(d)
alias l="exa --group-directories-first" alias l="exa --group-directories-first --icons"
alias la="exa -la --group-directories-first" alias la="exa -la --group-directories-first --icons --git"
alias ll="exa -l --group-directories-first" alias ll="exa -l --group-directories-first --icons --git"
alias tree="exa --tree --group-directories-first" alias tree="exa --tree --group-directories-first --icons"
# mkdir # mkdir
alias mkdir="mkdir -p" alias mkdir="mkdir -p"

3
.config/eza/theme.yml Normal file
View File

@@ -0,0 +1,3 @@
extensions:
kepub:
icon: { glyph:  }

View File

@@ -33,6 +33,7 @@
"mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "6bdb14f230de0904229ec367b410fb817e59b072" },
"mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" }, "mason-null-ls.nvim": { "branch": "main", "commit": "de19726de7260c68d94691afb057fa73d3cc53e7" },
"mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" }, "mason.nvim": { "branch": "main", "commit": "ad7146aa61dcaeb54fa900144d768f040090bff0" },
"mini.icons": { "branch": "main", "commit": "ff2e4f1d29f659cc2bad0f9256f2f6195c6b2428" },
"modes.nvim": { "branch": "main", "commit": "0932ba4e0bdc3457ac89a8aeed4d56ca0b36977a" }, "modes.nvim": { "branch": "main", "commit": "0932ba4e0bdc3457ac89a8aeed4d56ca0b36977a" },
"molten-nvim": { "branch": "main", "commit": "a286aa914d9a154bc359131aab788b5a077a5a99" }, "molten-nvim": { "branch": "main", "commit": "a286aa914d9a154bc359131aab788b5a077a5a99" },
"none-ls.nvim": { "branch": "main", "commit": "5cf63841461b49989972d35bf886e076a1ab3649" }, "none-ls.nvim": { "branch": "main", "commit": "5cf63841461b49989972d35bf886e076a1ab3649" },
@@ -52,6 +53,7 @@
"nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" }, "nvim-web-devicons": { "branch": "master", "commit": "b8221e42cf7287c4dcde81f232f58d7b947c210d" },
"nvim-yarp": { "branch": "master", "commit": "bb5f5e038bfe119d3b777845a76b0b919b35ebc8" }, "nvim-yarp": { "branch": "master", "commit": "bb5f5e038bfe119d3b777845a76b0b919b35ebc8" },
"ogpt.nvim": { "branch": "main", "commit": "0fae02db8cb07391f86c3dbe807f62190a2d997f" }, "ogpt.nvim": { "branch": "main", "commit": "0fae02db8cb07391f86c3dbe807f62190a2d997f" },
"oil.nvim": { "branch": "master", "commit": "0fcc83805ad11cf714a949c98c605ed717e0b83e" },
"otter.nvim": { "branch": "main", "commit": "fc0aa35b1985077d11a20ddf4006bf40f2cd7397" }, "otter.nvim": { "branch": "main", "commit": "fc0aa35b1985077d11a20ddf4006bf40f2cd7397" },
"outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" }, "outline.nvim": { "branch": "main", "commit": "6b62f73a6bf317531d15a7ae1b724e85485d8148" },
"papis.nvim": { "branch": "main", "commit": "25e69f25e51b2d46178a213356adbc28b0f918ef" }, "papis.nvim": { "branch": "main", "commit": "25e69f25e51b2d46178a213356adbc28b0f918ef" },
@@ -60,7 +62,6 @@
"projections.nvim": { "branch": "pre_release", "commit": "889914169fa1f5c00fb8659653b5a8330fb223e6" }, "projections.nvim": { "branch": "pre_release", "commit": "889914169fa1f5c00fb8659653b5a8330fb223e6" },
"promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" }, "promise-async": { "branch": "main", "commit": "119e8961014c9bfaf1487bf3c2a393d254f337e2" },
"quarto-nvim": { "branch": "main", "commit": "0e9491509b38efbd83d3f41dbfacc7fc4bd40191" }, "quarto-nvim": { "branch": "main", "commit": "0e9491509b38efbd83d3f41dbfacc7fc4bd40191" },
"renamer.nvim": { "branch": "master", "commit": "1614d466df53899f11dd5395eaac3c09a275c384" },
"rustaceanvim": { "branch": "master", "commit": "12504405821c05874d2d1f6b5ec919f9808e2c99" }, "rustaceanvim": { "branch": "master", "commit": "12504405821c05874d2d1f6b5ec919f9808e2c99" },
"spelunker.vim": { "branch": "master", "commit": "a0bc530f62798bbe053905555a4aa9ed713485eb" }, "spelunker.vim": { "branch": "master", "commit": "a0bc530f62798bbe053905555a4aa9ed713485eb" },
"sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" }, "sqlite.lua": { "branch": "master", "commit": "50092d60feb242602d7578398c6eb53b4a8ffe7b" },

View File

@@ -114,3 +114,8 @@ end, {
nargs = 1, nargs = 1,
complete = 'file' complete = 'file'
}) })
-- stevearc/oil.nvim
vim.api.nvim_create_user_command('Renamer', function(opts)
vim.cmd("Oil " .. opts.args)
end, { nargs = "*" })

View File

@@ -1,15 +1,18 @@
APV APV
Accuracy
Akallabêth Akallabêth
Altisaur Altisaur
An An
Anki Anki
Annoyed Annoyed
ApoRed ApoRed
Arrabbiata
Asiahung Asiahung
Aule Aule
Aules Aules
Barros Barros
Beek Beek
Bela
Betterov Betterov
Boarding Boarding
Boelsen Boelsen
@@ -82,28 +85,33 @@ Mentos
Metzener Metzener
MiiMii MiiMii
Mint Mint
NIM
Nate Nate
NeoVIM NeoVIM
NextCloud NextCloud
Nim
Númenor Númenor
OFFIS OFFIS
Oberweseler Oberweseler
Odysee Odysee
Opam
OpenCloud OpenCloud
Overwatch Overwatch
Pane Pane
Papis Papis
Pauper Pauper
Peperaci
PfingstAka PfingstAka
PfingstAka PfingstAka
PfingstAkademie PfingstAkademie
Pluribus Pluribus
PopOS PopOS
Precision
Precon Precon
Precons Precons
PyEnv PyEnv
Rebowl
Reeves Reeves
Rocq
Ruschenbaum Ruschenbaum
SPM SPM
Sagehorn Sagehorn
@@ -123,6 +131,8 @@ TCAV
Thinkpad Thinkpad
Tjark Tjark
Tornow Tornow
TrackPoint
UDEV
VIM VIM
Weizman Weizman
Willenborg Willenborg
@@ -131,6 +141,9 @@ WinterAkademie
Writhing Writhing
Ziegeleiweg Ziegeleiweg
Zimin Zimin
eKiwi
flac flac
inf inf
liquidctl
npy npy
zedbraxmen

View File

@@ -0,0 +1,10 @@
return {
-- rename files in buffer
{
"stevearc/oil.nvim",
---@module 'oil'
---@type oil.setupopts
opts = {},
dependencies = { "nvim-mini/mini.icons" },
},
}

View File

@@ -1,10 +0,0 @@
return {
-- rename files in buffer
{
'qpkorr/vim-renamer',
priority = 100,
config = function()
require('renamer')
end
}
}

View File

@@ -208,11 +208,11 @@ fileviewer *.djvu
\ %pc \ %pc
\ vifmimg clear \ vifmimg clear
" epub " (k)epub
filextype *.epub filextype *.epub,*.kepub
\ {View in zathura} \ {View in zathura}
\ zathura ./%f, \ zathura ./%f,
fileviewer *.epub fileviewer *.epub,*.kepub
\ vifmimg epub %px %py %pw %ph %c \ vifmimg epub %px %py %pw %ph %c
\ %pc \ %pc
\ vifmimg clear \ vifmimg clear
@@ -434,7 +434,7 @@ set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,
" file types " file types
set classify=' :dir:/, :exe:, :reg:, :link:' set classify=' :dir:/, :exe:, :reg:, :link:'
" various file names " various file names
set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::' set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.kepub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::'
" archives " archives
set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::' set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::'
" images " images

View File

@@ -85,89 +85,189 @@ function +vi-git-stash() {
# CUSTOM WIDGETS # # CUSTOM WIDGETS #
################## ##################
_git_fix_main_master() { _find_venv_upwards() {
local dir="$PWD"
while [[ "$dir" != "/" ]]; do
if [[ -f "$dir/pyvenv.cfg" ]]; then
echo "$dir"
return
fi
dir=$(dirname "$dir")
done
}
_auto_venv() {
local venv_dir
venv_dir=$(_find_venv_upwards)
if [[ -n "$VIRTUAL_ENV" && "$VIRTUAL_ENV" != "$venv_dir" ]]; then
deactivate 2>/dev/null
fi
if [[ -n "$venv_dir" && "$VIRTUAL_ENV" != "$venv_dir" ]]; then
source "$venv_dir/bin/activate"
fi
}
autoload -U add-zsh-hook
add-zsh-hook chpwd _auto_venv
_auto_venv
_accept_line() {
# automatically push to remote
if [[ "$BUFFER" == "git push" ]]; then
local branch
branch=$(git symbolic-ref --short HEAD 2>/dev/null)
if [[ -n "$branch" ]]; then
git rev-parse --abbrev-ref --symbolic-full-name @{u} &>/dev/null
if [[ $? -ne 0 ]]; then
BUFFER="git push -u origin $branch"
fi
fi
fi
# use keifu instead of git log --graph
if [[ "$BUFFER" =~ ^([a-zA-Z0-9_-]+)[[:space:]]+([a-zA-Z0-9_-]+)(.*)$ ]]; then
local cmd=${match[1]}
local subcmd=${match[2]}
local rest=${match[3]}
# directly via git log --graph
if [[ "$cmd" == "git" && "$subcmd" == "log" && "$rest" == *"--graph"* ]]; then
BUFFER="keifu"
zle accept-line
return
fi
# check for git-alias
if [[ "$cmd" == "git" ]]; then
local alias_expansion
alias_expansion=$(git config --get "alias.$subcmd" 2>/dev/null)
if [[ -n "$alias_expansion" && "$alias_expansion" == log*--graph* ]]; then
BUFFER="keifu"
zle accept-line
return
fi
fi
# shell-alias
if alias "$cmd" &>/dev/null; then
local expansion=$(alias "$cmd")
expansion=${expansion#*=}
expansion=${expansion#\'}
expansion=${expansion%\'}
if [[ "$expansion" =~ --git-dir=([^[:space:]]+) ]]; then
local gitdir=${match[1]}
if [[ "$subcmd" == "log" && "$rest" == *"--graph"* ]]; then
BUFFER="(cd $gitdir && keifu)"
zle accept-line
return
fi
# git-alias within shell-alias
local alias_expansion
alias_expansion=$(git --git-dir="$gitdir" config --get "alias.$subcmd" 2>/dev/null)
if [[ -n "$alias_expansion" && "$alias_expansion" == log*--graph* ]]; then
BUFFER="(cd $gitdir && keifu)"
zle accept-line
return
fi
fi
fi
fi
# swap main and master Fix
if [[ $BUFFER == git\ * ]]; then if [[ $BUFFER == git\ * ]]; then
local has_main=0 local has_main=0
local has_master=0 local has_master=0
git rev-parse --verify main >/dev/null 2>&1 && has_main=1 git rev-parse --verify main >/dev/null 2>&1 && has_main=1
git rev-parse --verify master >/dev/null 2>&1 && has_master=1 git rev-parse --verify master >/dev/null 2>&1 && has_master=1
if [[ $has_main -eq 1 && $has_master -eq 0 ]]; then if [[ $has_main -eq 1 && $has_master -eq 0 ]]; then
if [[ $BUFFER == *" master"* ]]; then BUFFER=${BUFFER//" master"/" main"}
BUFFER=${BUFFER//" master"/" main"}
fi
fi fi
if [[ $has_master -eq 1 && $has_main -eq 0 ]]; then if [[ $has_master -eq 1 && $has_main -eq 0 ]]; then
if [[ $BUFFER == *" main"* ]]; then BUFFER=${BUFFER//" main"/" master"}
BUFFER=${BUFFER//" main"/" master"}
fi
fi fi
fi fi
zle accept-line zle accept-line
} }
zle -N _git_fix_main_master zle -N _accept_line
bindkey "^M" _git_fix_main_master bindkey "^M" _accept_line
######### #########
# STYLE # # STYLE #
######### #########
# Set style for version control # set style for version control
zstyle ':vcs_info:*' enable git zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:git*:*' get-revision true zstyle ':vcs_info:git*:*' get-revision true
zstyle ':vcs_info:git*:*' check-for-changes true zstyle ':vcs_info:git*:*' check-for-changes true
zstyle ':vcs_info:git*' formats "(%s) %c%u %b%m" zstyle ':vcs_info:git*' formats "(%s) %c%u %b%m"
zstyle ':vcs_info:git*' actionformats "(%s|%a) %12.12i %c%u %b%m" zstyle ':vcs_info:git*' actionformats "(%s|%a) %12.12i %c%u %b%m"
# Show remote ref name and number of commits ahead-of or behind # show remote ref name and number of commits ahead-of or behind
# Show count of stashed changes # show count of stashed changes
zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash zstyle ':vcs_info:git*+set-message:*' hooks git-st git-stash
# Set style for completion options # set style for completion options
zstyle ':completion:*' menu select zstyle ':completion:*' menu select
zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' # Case insensitive completion zstyle ':completion:*' matcher-list '' 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' # Case insensitive completion
zmodload zsh/complist zmodload zsh/complist
_comp_options+=(globdots) _comp_options+=(globdots)
# Disable sort when completing `git checkout` # disable sort when completing `git checkout`
zstyle ':completion:*:git-checkout:*' sort false zstyle ':completion:*:git-checkout:*' sort false
# Set descriptions format to enable group support # set descriptions format to enable group support
zstyle ':completion:*:descriptions' format '[%d]' zstyle ':completion:*:descriptions' format '[%d]'
# Set list-colors to enable filename colorizing # set list-colors to enable filename colorizing
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
# Preview directory's content with eza when completing cd # preview directory's content with eza when completing cd
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath' zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
# Switch group using `,` and `.` # switch group using `,` and `.`
zstyle ':fzf-tab:*' switch-group ',' '.' zstyle ':fzf-tab:*' switch-group ',' '.'
# Set default Vim Cursor shape # set default Vim Cursor shape
zle -N zle-keymap-select zle -N zle-keymap-select
zle -N zle-line-init zle -N zle-line-init
echo -ne '\e[5 q' echo -ne '\e[5 q'
# Set default prompt # set default prompt
PS1='%B%{$fg[blue]%}[%{$fg[blue]%}%n%{$fg[blue]%}@%{$fg[blue]%}%M %{$fg[blue]%}%~%{$fg[blue]%}]%{$reset_color%}\$%b ' PS1='%B%{$fg[blue]%}[%{$fg[blue]%}%n%{$fg[blue]%}@%{$fg[blue]%}%M %{$fg[blue]%}%~%{$fg[blue]%}]%{$reset_color%}\$%b '
RPROMPT='%B%{$fg[blue]%}$vcs_info_msg_0_%{$reset_color%}%b' RPROMPT='%B%{$fg[blue]%}$vcs_info_msg_0_%{$reset_color%}%b'
setopt prompt_subst setopt prompt_subst
# Copy to x11 clipboard # copy to x11 clipboard
x11-clip-wrap-widgets copy $copy_widgets x11-clip-wrap-widgets copy $copy_widgets
x11-clip-wrap-widgets paste $paste_widgets x11-clip-wrap-widgets paste $paste_widgets
# Enable colors # enable colors
autoload -U colors && colors autoload -U colors && colors
# Enable git info in prompt # enable git info in prompt
autoload -Uz vcs_info autoload -Uz vcs_info
# enable smart history search
bindkey -M vicmd 'j' history-beginning-search-forward
bindkey -M vicmd 'k' history-beginning-search-backward
############### ###############
# KEYBINDINGS # # KEYBINDINGS #
############### ###############
# Enable vi mode # enable vi mode
bindkey -v bindkey -v
export KEYTIMEOUT=1 export KEYTIMEOUT=1
# Vim bindings in tab mode # vim bindings in tab mode
bindkey -M menuselect 'h' vi-backward-char bindkey -M menuselect 'h' vi-backward-char
bindkey -M menuselect 'k' vi-up-line-or-history bindkey -M menuselect 'k' vi-up-line-or-history
bindkey -M menuselect 'l' vi-forward-char bindkey -M menuselect 'l' vi-forward-char
@@ -178,48 +278,50 @@ bindkey -v '^?' backward-delete-char
# ADDITIONAL FEATURES # # ADDITIONAL FEATURES #
####################### #######################
# Load alias # load alias
[ -f "$HOME/.config/aliasrc" ] && source "$HOME/.config/aliasrc" # Load aliases [ -f "$HOME/.config/aliasrc" ] && source "$HOME/.config/aliasrc" # Load aliases
# Disable ctrl-s and ctrl-q. # disable ctrl-s and ctrl-q.
stty -ixon stty -ixon
# Automatically cd if given a directory # automatically cd if given a directory
setopt autocd autopushd setopt autocd autopushd
# Enable compinit # enable compinit
autoload -Uz compinit && compinit autoload -Uz compinit && compinit
# Plugin: command not found notice # plugin: command not found notice
[ -f "/usr/share/doc/pkgfile/command-not-found.zsh" ] && source /usr/share/doc/pkgfile/command-not-found.zsh [ -f "/usr/share/doc/pkgfile/command-not-found.zsh" ] && source /usr/share/doc/pkgfile/command-not-found.zsh
# Plugin: fuzzy completion # plugin: fuzzy completion
[ -f "/usr/share/zsh/plugins/fzf-tab-git/fzf-tab.plugin.zsh" ] && source /usr/share/zsh/plugins/fzf-tab-git/fzf-tab.plugin.zsh [ -f "/usr/share/zsh/plugins/fzf-tab-git/fzf-tab.plugin.zsh" ] && source /usr/share/zsh/plugins/fzf-tab-git/fzf-tab.plugin.zsh
# Plugin: autosuggestions # plugin: autosuggestions
[ -f "/usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" ] && source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh && bindkey '^ ' autosuggest-accept [ -f "/usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" ] && source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh && bindkey '^ ' autosuggest-accept
# Plugin: syntax highlighting # plugin: syntax highlighting
[ -f "/usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh" ] && source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh [ -f "/usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh" ] && source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh
# Plugin: Autopair # plugin: Autopair
[ -f "/usr/share/zsh/plugins/zsh-autopair/zsh-autopair.plugin.zsh" ] && source /usr/share/zsh/plugins/zsh-autopair/zsh-autopair.plugin.zsh [ -f "/usr/share/zsh/plugins/zsh-autopair/zsh-autopair.plugin.zsh" ] && source /usr/share/zsh/plugins/zsh-autopair/zsh-autopair.plugin.zsh
# Open shell with tmux always # open shell with tmux always
if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then if [[ -n "$PS1" ]] && [[ -z "$TMUX" ]] && [[ -n "$SSH_CONNECTION" ]]; then
tmux attack-session -t $USER || tmux new-session -s $USER tmux attack-session -t $USER || tmux new-session -s $USER
fi fi
# set up thefuck # thefuck
eval $(thefuck --alias) eval $(thefuck --alias)
# python # python
eval "$(pyenv init -)" eval "$(pyenv init -)"
# opam
[[ ! -r "$HOME/.opam/opam-init/init.zsh" ]] || source "$HOME/.opam/opam-init/init.zsh" > /dev/null 2> /dev/null
########################## ##########################
# COMMANDS BEFORE PROMPT # # COMMANDS BEFORE PROMPT #
########################## ##########################
# Display pfetch when starting zsh
pfetch pfetch

View File

@@ -24,3 +24,7 @@
conflictStyle = zdiff3 conflictStyle = zdiff3
[credential] [credential]
helper = store helper = store
[alias]
graph = log --graph
amend = commit --amend --no-edit
fpush = push --force-with-lease --force-if-includes

View File

@@ -48,6 +48,8 @@ export CUDA_DIR="/opt/cuda"
export CUDA_PATH="/opt/cuda" export CUDA_PATH="/opt/cuda"
export XLA_FLAGS=--xla_gpu_cuda_data_dir=/opt/cuda export XLA_FLAGS=--xla_gpu_cuda_data_dir=/opt/cuda
export YDOTOOL_SOCKET="$HOME/.ydotool_socket"
# external programs # external programs
export OPENAUDIBLE_HOME="${HOME}/documents/openaudible" export OPENAUDIBLE_HOME="${HOME}/documents/openaudible"