summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWarrick Lo <warrick.s.z.lo@gmail.com>2021-12-11 23:33:16 -0800
committerWarrick Lo <warrick.s.z.lo@gmail.com>2021-12-11 23:33:16 -0800
commit487d64163c59fa3de79b5ff1abf303475395c4a2 (patch)
tree6339b3c8bbf7bdfe10e8c006c9cfbae9f66f527e
parent88de5bcf9b1598c5ada352d1f3b724423bf7e6ad (diff)
Restructure entire home directory
The new XDG base directories will resemble the Filesystem Hierarchy Standard on Linux or the FreeBSD/OpenBSD directory structure. Refer to the FHS or hier(7). XDG user directories are defined in $XDG_CONFIG_HOME/user-dirs.dirs.
-rw-r--r--.bashrc6
-rw-r--r--.profile16
-rw-r--r--.vim/vimrc (renamed from .vimrc)0
-rw-r--r--.zshrc11
-rw-r--r--etc/alacritty/alacritty.yml (renamed from .config/alacritty/alacritty.yml)0
-rw-r--r--etc/aliasrc (renamed from .config/aliasrc)3
-rw-r--r--etc/dunst/dunstrc (renamed from .config/dunst/dunstrc)0
-rw-r--r--etc/gtk-2.0/gtkrc (renamed from .config/gtk-2.0/gtkrc-2.0)0
-rw-r--r--etc/gtk-3.0/settings.ini (renamed from .config/gtk-3.0/settings.ini)0
-rw-r--r--etc/gtk-4.0/settings.ini (renamed from .config/gtk-4.0/settings.ini)0
-rw-r--r--etc/nvim/init.vim (renamed from .config/nvim/init.vim)0
-rw-r--r--etc/picom/picom.conf (renamed from .config/picom/picom.conf)0
-rw-r--r--etc/rofi/config.rasi (renamed from .config/rofi/config.rasi)0
-rw-r--r--etc/rofi/theme.rasi (renamed from .config/rofi/theme.rasi)0
-rw-r--r--etc/user-dirs.dirs8
15 files changed, 33 insertions, 11 deletions
diff --git a/.bashrc b/.bashrc
index b486d2c..7d303c1 100644
--- a/.bashrc
+++ b/.bashrc
@@ -7,12 +7,12 @@ PS1="\[\033[38;5;3m\][\u@\h \w]\[\033[0m\] \$ "
shopt -s histappend
HISTSIZE=100000
HISTFILESIZE=100000
-HISTFILE="$HOME/.cache/bash/history"
+HISTFILE="$XDG_CACHE_HOME/bash/history"
# GPG.
export GPG_TTY="$(tty)"
# Load aliases.
-if [ -f "$HOME/.config/aliasrc" ]; then
- source "$HOME/.config/aliasrc"
+if [ -f "$XDG_CONFIG_HOME/aliasrc" ]; then
+ source "$XDG_CONFIG_HOME/aliasrc"
fi
diff --git a/.profile b/.profile
index 5125710..fc5636b 100644
--- a/.profile
+++ b/.profile
@@ -6,14 +6,24 @@
if [ -d "$HOME/bin" ]; then
export PATH="$PATH:$HOME/bin"
fi
-if [ -d "$HOME/.local/bin" ]; then
- export PATH="$PATH:$HOME/.local/bin"
-fi
# Set environment variables.
+# XDG base directories.
+export XDG_CONFIG_HOME="$HOME/etc"
+export XDG_CACHE_HOME="$HOME/var/cache"
+export XDG_DATA_HOME="$HOME/usr/share"
+export XDG_STATE_HOME="$HOME/var/lib"
+
# Set default programs.
export TERMINAL="alacritty"
export PAGER="less"
export EDITOR="nvim"
export BROWSER="brave"
+
+# Clean up home folder.
+# Refer to <https://wiki.archlinux.org/title/XDG_Base_Directory>.
+
+export XINITRC="$XDG_CONFIG_HOME/X11/xinitrc"
+export GNUPGHOME="$XDG_DATA_HOME/gnupg"
+export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc"
diff --git a/.vimrc b/.vim/vimrc
index 469e89d..469e89d 100644
--- a/.vimrc
+++ b/.vim/vimrc
diff --git a/.zshrc b/.zshrc
index 58e79a7..1c4a224 100644
--- a/.zshrc
+++ b/.zshrc
@@ -11,12 +11,13 @@ PS1="%F{3}[%n@%m %~]%f %(?..%B%F{9}%?%f%b )%(!.#.$) "
setopt hist_ignore_dups
SAVEHIST=100000
HISTSIZE=100000
-HISTFILE="$HOME/.cache/zsh/history"
+HISTFILE="$XDG_CACHE_HOME/zsh/history"
# Enable tab completion.
autoload -U compinit
zstyle ":completion:*" menu select
zmodload zsh/complist
+compinit -d "$XDG_CACHE_HOME/zsh/zcompdump"
# Do not ask before executing 'rm *' or 'rm path/*'.
setopt rm_star_silent
@@ -28,14 +29,14 @@ bindkey -v "^?" backward-delete-char
export GPG_TTY="$(tty)"
# Load aliases.
-if [ -f "$HOME/.config/aliasrc" ]; then
- source "$HOME/.config/aliasrc"
+if [ -f "$XDG_CONFIG_HOME/aliasrc" ]; then
+ source "$XDG_CONFIG_HOME/aliasrc"
fi
# Load Zsh scripts.
-autosuggestions="$HOME/.local/share/zsh/autosuggestions/zsh-autosuggestions.zsh"
-syntax_highlight="$HOME/.local/share/zsh/syntax-highlighting/zsh-syntax-highlighting.zsh"
+autosuggestions="$XDG_DATA_HOME/zsh/autosuggestions/zsh-autosuggestions.zsh"
+syntax_highlight="$XDG_DATA_HOME/zsh/syntax-highlighting/zsh-syntax-highlighting.zsh"
if [ -f "$autosuggestions" ]; then
source "$autosuggestions"
diff --git a/.config/alacritty/alacritty.yml b/etc/alacritty/alacritty.yml
index 7c43cb8..7c43cb8 100644
--- a/.config/alacritty/alacritty.yml
+++ b/etc/alacritty/alacritty.yml
diff --git a/.config/aliasrc b/etc/aliasrc
index 4f69c77..e5fdfd3 100644
--- a/.config/aliasrc
+++ b/etc/aliasrc
@@ -24,5 +24,8 @@ alias vim="nvim"
# Clear history (needs to be sourced).
alias clhs="source \$HOME/bin/clhs"
+# startx does not respect $XINITRC.
+alias startx="startx \$XINITRC"
+
# Alias git bare to manage configuration files.
alias cfg="/usr/bin/git --git-dir=\$HOME/cfg --work-tree=\$HOME"
diff --git a/.config/dunst/dunstrc b/etc/dunst/dunstrc
index 26461fc..26461fc 100644
--- a/.config/dunst/dunstrc
+++ b/etc/dunst/dunstrc
diff --git a/.config/gtk-2.0/gtkrc-2.0 b/etc/gtk-2.0/gtkrc
index c162ac9..c162ac9 100644
--- a/.config/gtk-2.0/gtkrc-2.0
+++ b/etc/gtk-2.0/gtkrc
diff --git a/.config/gtk-3.0/settings.ini b/etc/gtk-3.0/settings.ini
index 74ba22d..74ba22d 100644
--- a/.config/gtk-3.0/settings.ini
+++ b/etc/gtk-3.0/settings.ini
diff --git a/.config/gtk-4.0/settings.ini b/etc/gtk-4.0/settings.ini
index 74ba22d..74ba22d 100644
--- a/.config/gtk-4.0/settings.ini
+++ b/etc/gtk-4.0/settings.ini
diff --git a/.config/nvim/init.vim b/etc/nvim/init.vim
index 93d9bd5..93d9bd5 100644
--- a/.config/nvim/init.vim
+++ b/etc/nvim/init.vim
diff --git a/.config/picom/picom.conf b/etc/picom/picom.conf
index 326035d..326035d 100644
--- a/.config/picom/picom.conf
+++ b/etc/picom/picom.conf
diff --git a/.config/rofi/config.rasi b/etc/rofi/config.rasi
index f1d8163..f1d8163 100644
--- a/.config/rofi/config.rasi
+++ b/etc/rofi/config.rasi
diff --git a/.config/rofi/theme.rasi b/etc/rofi/theme.rasi
index 698a234..698a234 100644
--- a/.config/rofi/theme.rasi
+++ b/etc/rofi/theme.rasi
diff --git a/etc/user-dirs.dirs b/etc/user-dirs.dirs
new file mode 100644
index 0000000..35a1615
--- /dev/null
+++ b/etc/user-dirs.dirs
@@ -0,0 +1,8 @@
+XDG_DESKTOP_DIR="$HOME"
+XDG_DOWNLOAD_DIR="$HOME/in"
+XDG_DOCUMENTS_DIR="$HOME/docs"
+XDG_MUSIC_DIR="$HOME/aud/music"
+XDG_PICTURES_DIR="$HOME/img"
+XDG_VIDEOS_DIR="$HOME/vid"
+XDG_TEMPLATES_DIR="$HOME/usr/templates"
+XDG_PUBLICSHARE_DIR="$HOME/usr/public"