summaryrefslogtreecommitdiff
path: root/.config/shell
diff options
context:
space:
mode:
Diffstat (limited to '.config/shell')
-rw-r--r--.config/shell/aliasrc61
-rw-r--r--.config/shell/bm-dirs14
-rw-r--r--.config/shell/bm-files23
-rw-r--r--.config/shell/inputrc19
-rw-r--r--.config/shell/profile87
-rw-r--r--.config/shell/shortcutrc30
-rw-r--r--.config/shell/zshnameddirrc29
7 files changed, 263 insertions, 0 deletions
diff --git a/.config/shell/aliasrc b/.config/shell/aliasrc
new file mode 100644
index 0000000..09f9a32
--- /dev/null
+++ b/.config/shell/aliasrc
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# Use neovim for vim if present.
+[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d"
+
+# Use $XINITRC variable if file exists.
+[ -f "$XINITRC" ] && alias startx="startx $XINITRC"
+
+[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC"
+
+# sudo not required for some system commands
+for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do
+ alias $command="sudo $command"
+done; unset command
+
+se() {
+ choice="$(find ~/.local/bin -mindepth 1 -printf '%P\n' | fzf)"
+ [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice"
+ ;}
+
+# Verbosity and settings that you pretty much just always are going to want.
+alias \
+ cp="cp -iv" \
+ mv="mv -iv" \
+ rm="rm -vI" \
+ bc="bc -ql" \
+ rsync="rsync -vrPlu" \
+ mkd="mkdir -pv" \
+ yt="yt-dlp --embed-metadata -i" \
+ yta="yt -x -f bestaudio/best" \
+ ytt="yt --skip-download --write-thumbnail" \
+ ffmpeg="ffmpeg -hide_banner"
+
+# Colorize commands when possible.
+alias \
+ ls="ls -hN --color=auto --group-directories-first" \
+ grep="grep --color=auto" \
+ diff="diff --color=auto" \
+ ccat="highlight --out-format=ansi" \
+ ip="ip -color=auto"
+
+# These common commands are just too long! Abbreviate them.
+alias \
+ ka="killall" \
+ g="git" \
+ trem="transmission-remote" \
+ YT="youtube-viewer" \
+ sdn="shutdown -h now" \
+ e="$EDITOR" \
+ v="$EDITOR" \
+ p="pacman" \
+ xi="sudo xbps-install" \
+ xr="sudo xbps-remove -R" \
+ xq="xbps-query" \
+ z="zathura"
+
+alias \
+ lf="lfub" \
+ magit="nvim -c MagitOnly" \
+ ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \
+ weath="less -S ${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" \
diff --git a/.config/shell/bm-dirs b/.config/shell/bm-dirs
new file mode 100644
index 0000000..9d212ec
--- /dev/null
+++ b/.config/shell/bm-dirs
@@ -0,0 +1,14 @@
+# You can add comments to these files with #
+cac ${XDG_CACHE_HOME:-$HOME/.cache}
+cf ${XDG_CONFIG_HOME:-$HOME/.config}
+D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads}
+d ${XDG_DOCUMENTS_DIR:-$HOME/Documents}
+dt ${XDG_DATA_HOME:-$HOME/.local/share}
+rr $HOME/.local/src
+h $HOME
+m ${XDG_MUSIC_DIR:-$HOME/Music}
+mn /mnt
+pp ${XDG_PICTURES_DIR:-$HOME/Pictures}
+sc $HOME/.local/bin
+src $HOME/.local/src
+vv ${XDG_VIDEOS_DIR:-$HOME/Videos}
diff --git a/.config/shell/bm-files b/.config/shell/bm-files
new file mode 100644
index 0000000..2e8864b
--- /dev/null
+++ b/.config/shell/bm-files
@@ -0,0 +1,23 @@
+# These files automatically update when edited/saved in vim:
+
+# keys filename description
+bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files # This file, a list of bookmarked files
+bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs # A list of bookmarked directories similar to this file
+cfx ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources # Colors, themes and variables for X11
+cfb ~/.local/src/dwmblocks/config.h # dwmblocks: the status bar for dwm
+
+
+# These do not update automatically, but on the next new instance of a program:
+
+cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim # vim/neovim config
+cfz $ZDOTDIR/.zshrc # zsh (shell) config
+cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc # aliases used by zsh (and potentially other shells)
+cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile # profile file for login settings for zsh
+cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc # mutt (email client) config
+cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config # newsboat (RSS reader)
+cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls # RSS urls for newsboat
+cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings # ncmpcpp (music player) keybinds file
+cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config # ncmpcpp (music player) config
+cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc # lf (file browser) config
+cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope # lf's scope/preview file
+cfX ${XDG_CONFIG_HOME:-$HOME/.config}/nsxiv/exec/key-handler # nsxiv (image viewer) key/script handler
diff --git a/.config/shell/inputrc b/.config/shell/inputrc
new file mode 100644
index 0000000..f9b94dd
--- /dev/null
+++ b/.config/shell/inputrc
@@ -0,0 +1,19 @@
+$include /etc/inputrc
+set editing-mode vi
+$if mode=vi
+
+set show-mode-in-prompt on
+set vi-ins-mode-string \1\e[6 q\2
+set vi-cmd-mode-string \1\e[2 q\2
+
+set keymap vi-command
+# these are for vi-command mode
+Control-l: clear-screen
+Control-a: beginning-of-line
+
+set keymap vi-insert
+# these are for vi-insert mode
+Control-l: clear-screen
+Control-a: beginning-of-line
+
+$endif
diff --git a/.config/shell/profile b/.config/shell/profile
new file mode 100644
index 0000000..ac5cf86
--- /dev/null
+++ b/.config/shell/profile
@@ -0,0 +1,87 @@
+#!/bin/sh
+#
+# zprofile: Runs on login and includes environmental variables and autostart.
+#
+# ──────────────────────────────────── Enviromental Variables ────────────────────────────────────
+#
+# Set GTK and QT Input Method Modules:
+export GTK_IM_MODULE=fcitx
+export QT_IM_MODULE=fcitx
+export XMODIFIERS=@im=fcitx
+
+# Add all directories in `~/.local/bin` to $PATH:
+export PATH="$PATH:$(find ~/.local/bin -type d | paste -sd ':')"
+
+# Surf configs:
+export SURF_STYLE="$HOME/.surf/css-styles"
+
+# Default programs:
+export EDITOR="nvim"
+export TERMINAL="st"
+export TERMINAL_PROG="st"
+export BROWSER="firefox"
+
+# Clean-up:
+export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg"
+export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store"
+export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config"
+export GTK2_RC_FILES="$XDG_DATA_HOME/.config/gtk-2.0/gtkrc"
+export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc"
+export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history"
+export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc"
+export ANDROID_USER_HOME="$XDG_DATA_HOME"/android
+export XDG_CONFIG_HOME="$HOME/.config"
+export XDG_DATA_HOME="$HOME/.local/share"
+export XDG_CACHE_HOME="$HOME/.cache"
+export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc"
+export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc"
+export TMUX_TMPDIR="$XDG_RUNTIME_DIR"
+export CARGO_HOME="$XDG_DATA_HOME/cargo"
+export GOPATH="$XDG_DATA_HOME/go"
+export GOMODCACHE="$XDG_CACHE_HOME/go/mod"
+export UNISON="$XDG_DATA_HOME/unison"
+export HISTFILE="$XDG_DATA_HOME/history"
+export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config"
+export ELECTRUMDIR="$XDG_DATA_HOME/electrum"
+export GNUPGHOME="$XDG_DATA_HOME/.config/gnupg"
+export ZDOTDIR="$XDG_DATA_HOME/.config/zsh"
+export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle
+export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority
+alias adb='HOME="$XDG_DATA_HOME"/android adb'
+
+# Program settings:
+export SUDO_ASKPASS="$HOME/.local/bin/dmenupass"
+export FZF_DEFAULT_OPTS="--layout=reverse --height 40%"
+export LESS="R"
+export LESS_TERMCAP_mb="$(printf '%b' '')"
+export LESS_TERMCAP_md="$(printf '%b' '')"
+export LESS_TERMCAP_me="$(printf '%b' '')"
+export LESS_TERMCAP_so="$(printf '%b' '')"
+export LESS_TERMCAP_se="$(printf '%b' '')"
+export LESS_TERMCAP_us="$(printf '%b' '')"
+export LESS_TERMCAP_ue="$(printf '%b' '')"
+export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null"
+export QT_QPA_PLATFORMTHEME="gtk2" # Have QT use gtk2 theme.
+export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname
+export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm
+
+# ───────────────────────────────────────────── Configurations ────────────────────────────────────────────────
+
+# Set screen DPI:
+xrandr --dpi 96
+
+# Autostart Cronjobs
+autostart="newsup checkup"
+
+# Autostart daemons
+autostart="transmission-daemon remapd xcompmgr dunst unclutter pipewire"
+
+for program in $autostart; do
+ pidof -sx "$program" || "$program" &
+done >/dev/null 2>&1
+
+# Start graphical server on user's current tty if not already running:
+[ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC"
+
+# Switch escape and caps if tty and no passwd required:
+sudo -n loadkeys "$XDG_DATA_HOME/sharks/ttymaps.kmap" 2>/dev/null
diff --git a/.config/shell/shortcutrc b/.config/shell/shortcutrc
new file mode 100644
index 0000000..f754601
--- /dev/null
+++ b/.config/shell/shortcutrc
@@ -0,0 +1,30 @@
+# vim: filetype=sh
+alias cac="cd /home/artix/.cache && ls -A" \
+cf="cd /home/artix/.config && ls -A" \
+D="cd /home/artix/Downloads && ls -A" \
+d="cd /home/artix/Documents && ls -A" \
+dt="cd /home/artix/.local/share && ls -A" \
+rr="cd /home/artix/.local/src && ls -A" \
+h="cd /home/artix && ls -A" \
+m="cd /home/artix/Music && ls -A" \
+mn="cd /mnt && ls -A" \
+pp="cd /home/artix/Pictures && ls -A" \
+sc="cd /home/artix/.local/bin && ls -A" \
+src="cd /home/artix/.local/src && ls -A" \
+vv="cd /home/artix/Videos && ls -A" \
+bf="$EDITOR /home/artix/.config/shell/bm-files" \
+bd="$EDITOR /home/artix/.config/shell/bm-dirs" \
+cfx="$EDITOR /home/artix/.config/x11/xresources" \
+cfb="$EDITOR ~/.local/src/dwmblocks/config.h" \
+cfv="$EDITOR /home/artix/.config/nvim/init.vim" \
+cfz="$EDITOR /home/artix/.config/zsh/.zshrc" \
+cfa="$EDITOR /home/artix/.config/shell/aliasrc" \
+cfp="$EDITOR /home/artix/.config/shell/profile" \
+cfm="$EDITOR /home/artix/.config/mutt/muttrc" \
+cfn="$EDITOR /home/artix/.config/newsboat/config" \
+cfu="$EDITOR /home/artix/.config/newsboat/urls" \
+cfmb="$EDITOR /home/artix/.config/ncmpcpp/bindings" \
+cfmc="$EDITOR /home/artix/.config/ncmpcpp/config" \
+cfl="$EDITOR /home/artix/.config/lf/lfrc" \
+cfL="$EDITOR /home/artix/.config/lf/scope" \
+cfX="$EDITOR /home/artix/.config/nsxiv/exec/key-handler" \
diff --git a/.config/shell/zshnameddirrc b/.config/shell/zshnameddirrc
new file mode 100644
index 0000000..fcda7e2
--- /dev/null
+++ b/.config/shell/zshnameddirrc
@@ -0,0 +1,29 @@
+hash -d cac=/home/artix/.cache
+hash -d cf=/home/artix/.config
+hash -d D=/home/artix/Downloads
+hash -d d=/home/artix/Documents
+hash -d dt=/home/artix/.local/share
+hash -d rr=/home/artix/.local/src
+hash -d h=/home/artix
+hash -d m=/home/artix/Music
+hash -d mn=/mnt
+hash -d pp=/home/artix/Pictures
+hash -d sc=/home/artix/.local/bin
+hash -d src=/home/artix/.local/src
+hash -d vv=/home/artix/Videos
+hash -d bf=/home/artix/.config/shell/bm-files
+hash -d bd=/home/artix/.config/shell/bm-dirs
+hash -d cfx=/home/artix/.config/x11/xresources
+hash -d cfb=~/.local/src/dwmblocks/config.h
+hash -d cfv=/home/artix/.config/nvim/init.vim
+hash -d cfz=/home/artix/.config/zsh/.zshrc
+hash -d cfa=/home/artix/.config/shell/aliasrc
+hash -d cfp=/home/artix/.config/shell/profile
+hash -d cfm=/home/artix/.config/mutt/muttrc
+hash -d cfn=/home/artix/.config/newsboat/config
+hash -d cfu=/home/artix/.config/newsboat/urls
+hash -d cfmb=/home/artix/.config/ncmpcpp/bindings
+hash -d cfmc=/home/artix/.config/ncmpcpp/config
+hash -d cfl=/home/artix/.config/lf/lfrc
+hash -d cfL=/home/artix/.config/lf/scope
+hash -d cfX=/home/artix/.config/nsxiv/exec/key-handler