Commit 29c70822 authored by HexDSL's avatar HexDSL

yes

parents
abook
calcurse/home/hexdsl/.calcurse/apts
calcurse/home/hexdsl/.calcurse/caldav/log
calcurse/home/hexdsl/.calcurse/caldav/sync.db
calcurse/home/hexdsl/.calcurse/notes/*
calcurse/home/hexdsl/.calcurse/todo
dmenu-frecency/home/hexdsl/.config/dmenu-frecency/state
mpv/home/hexdsl/.config/mpv/watch_later
qdiscord
qutebrowser/home/hexdsl/.config/qutebrowser/bookmarks
qutebrowser/home/hexdsl/.config/qutebrowser/quickmarks
pass/*
transmission/home/hexdsl/.config/transmission-daemon/torrents
transmission/home/hexdsl/.config/transmission-daemon/resume
weechat/home/hexdsl/.weechat/logs/*
# Hexdsl's DOT files.
Want this with minimum stress then use:
curl -LO hexdsl.co.uk/hextool
But dont... that would be stupid
BEING MANAGED WITH STOW
To mirror my setup,
1) mirror repo to ~/dotfiles
2) run installapplications script to install all the major application i use
(aside from DWM that is)
3) run restorestow script to magic symlink all this good stuff
WARNING: This is designed for ME to use and assumes that you have DWM setup
properly. Its not an all in one deployment and you should take little bits from
it not the whole thing. Taking the whole thing would be daft... unless you are
HexDSL then it makes sense... I think...
This contains the following:
Links may need editing after switching to Stow (sorry)
* [Bin (mapped as ~/.bin on my system)](https://gitlab.com/hexdsl/dots/tree/master/bin)
* [cava (a Cli-Visualiser, config file)](https://gitlab.com/hexdsl/dots/tree/master/cava)
* [home (bunch of files, most mapped to ~/)](https://gitlab.com/hexdsl/dots/tree/master/home)
* [mpv (mpv config, 2 second buffer, save position)](https://gitlab.com/hexdsl/dots/tree/master/home)
* [ranger (ranger file manager config files)](https://gitlab.com/hexdsl/dots/tree/master/ranger)
* [i3 (No longer updated. I moved it DWM)](https://gitlab.com/hexdsl/dots/tree/master/i3)
* [DWM diff files](https://gitlab.com/hexdsl/dots/tree/master/dwm_diffs)
* [nvim (neo vim configs - SEE README!)](https://gitlab.com/hexdsl/dots/tree/master/nvim)
* [Qutebrowser (my QB config files, I love QB)](https://gitlab.com/hexdsl/dots/tree/master/qutebrowser)
* [Termite (No longer maintained, i use UURXVT now for many small reasons)](https://gitlab.com/hexdsl/dots/tree/master/termite)
* [config (files contained in ~/.config for me, inc compton and redshift cfg)](https://gitlab.com/hexdsl/dots/tree/master/config)
* [Make symlinks (a file to auto symlink all this stuff, DONT USE UNTIL YOU HAVE READ IT!)](https://gitlab.com/hexdsl/dots/blob/master/makesymlinks)
* README.md this file!
## Some exposition.
These dots are *not* designed to be a 'drop in' and use solution. I guess you
*could* but its not really designed for that.
On my system the folder lives in ~/dotfiles and I use the makesymlink script to
well, make all the symlinks. Some things need manually moving but
mostly the important stuff is in the symlink script. You should READ stuff
first, never blindly run a script!
## stuff I use and why...
**Web Browser: Qutebrowser.** It uses VIM navigation and has no GUI to speak of.
Also, the developer is a super nice person.
**Editor: NeoVim.** Because its like VIM but 0.001% better! NeoVim in the best
editor I know, it has effectively perfect compatibility with VIM while not
keeping the legacy code base. If you don't use Emacs or VIM then you are just
not going to be effectively editing text. There is pretty much no exception to
this (kakoune maybe)
**I3WM.** Tiling window manager, good customisation, also, its
completely configured from a single plain text config file, which is nice.
*I moved to DWM a while ago. my I3 configs are still tidy but not up updated
any more*
**DWM:** the git repo includes my DIFFS files for DWM. You can git apply these
to recreate my config. BEWARE the config branch assumes you have MEH and HYPER
modifiers (QMK/Ergo-Dox Keyboard) - I would assume this isn't *that useful to
most people.
**DWM:Torrents (currently uses transmission-remote/cli)**
* MEH+t = Toggle Torrent Daemon
* MOD+t = Torrent Daemon status popup
* MOD+Sh+t = Torrent hash add (Highlight Torrent HASH and then press)
* HYPER+t = show torrent client (urxvtc -e)
**DWM: Media Keys**
These make sense on *my* keyboard as I did some remapping (dont ask, it makes
sense, I promise)
* MEH+q = Previous track
* MEH+w = Toggle Play/Pause
* MEH+e = Next Track
**DWM: Launchers:**
* HYPER+i = Mixer (currently pulsemixer)
* MEH+i = Itch client
* HYPER+d = Launcher (currently dmenu)
* MOD+d = Launcher (currently dmenu)
* MOD+Sh+d = this dmenu emoji list
* HYPER+ENTR= Time/info popup
* MOD+sh+ENT= Terminal
* MOD+ENTR = Change master item
* MEH+ENTR = this odd piping script im messing with (its a work in progress)
* HYPER+q = browser (Currently QuteBrowser)
* MOD+q = close application
* MOD+Sh+q = close application
* HYPER+w = cli browser (Currently Lynx)
* HYPER+c = colour code picker (gcolor)
* MEH+c = IRC (WeeChat)
* HYPER+s = Steam-Native
* MEH+s = Steam-Runtime
* HYPER+m = Spotify
* HYPER+r = GUI file manager (thunnar)
* MEH+r = CLI file manager (Ranger)
* MOD+Sh+r = RESTART DWM
* HYPER+e = Email (neomutt)
* HYPER+g = GIMP
* MEH+g = this odd piping script im messing with (its a work in progress)
* HYPER+v = bluetooth (Blueberry)
* MEH+v = clipboard manager (im testing Clipmenu)
* MOD+v = STACK LAYOUT
* HYPER+x = Streamlink Twitch GUI
* MOD+x = xkill
* HYPER+b = OBS
* MEH+b = OBS AND Chatty
* MOB+b = Toggle DWM BAR
* HYPER+k = kdenlive
* HYPER+ESC = GUI Task Manager
* HYPER+y = freetube
* MEH+o = make monitors sleep
* MEH+l = Lutris
* MOD+p = Screen Shot regional
* MOD+Sh+p = Screen Shot middle monitor
* MOD+n = Status of VPN connection
* MOD+Sh+n = Toggle VPN connection
* MOD+c = Status of Compositor (Compton-git)
* MOD+Sh+c = Toggle Compositor (Compton-git)
* MOD+BkSpc = Sleep PC
* MOD+sh+Bk = TURN OFF PC
* MOD+j/k = Focus stack up down
* MOD+h/l = Focus left right
* MOD+Sh+h/l= move selected left right
* MOD+</> = change split width
* MOD+o/i = Change number of stacks
* MOD+TAB = this odd peek toggle, that I NEVER use.
* MOD+SPACE = Monocle layout
* MOD+num = switch to tag (Workspace)
* MOD+Sh+num= Send selected to tag (Workspace)
* MOD+/ = Centre application
There are also some applications set to autostart at login/boot (Most are
assigned specific tags/monitors)
* ranger
* Thunar
* terminal
* steam
* qutebrowser
* redshift
* WeeChat
* Mutt
* Nextcloud client
**File manager: Ranger & Thunar** I use Thunar for drag and dropping but most
real file management is done in Ranger. Because its good
**Compositor: Compton.** I use Compton because its pretty much the only good
compositor that I know of.
**Terminal: urxvt** I did use Termite but honestly urxvt in client/server mode
is pretty great and works with w3m image support in ranger... So yeah. Please don't
email me, telling me I should use st. I like urxvt.
**Shell: Zsh.** better than BASH in many small ways while remaining mostly
compatible.
Yes... This was a lot to take in, I know.
#
# ~/.bash_profile
#
[[ -f ~/.bashrc ]] && . ~/.bashrc
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
fi
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
#Alias
alias ls='ls --color=auto'
alias cp='cp -v'
alias mv='mv -v'
alias df='df -h'
alias rank='sudo reflector --verbose -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist'
alias top='htop'
alias vim='nvim'
alias free='free -h'
alias whats='apropos'
alias sl='ls --color=auto'
alias pass='PASSWORD_STORE_ENABLE_EXTENSIONS=true pass'
alias myip="curl http://ipecho.net/plain; echo"
alias parrot='curl parrot.live'
alias si3='vim ~/.config/i3/config'
alias sqb='vim ~/.config/qutebrowser/config.py'
alias sbash='vim ~/.bashrc'
alias netusage='vnstat'
alias rtv='rtv --theme solarized-dark'
alias reddit='rtv --theme solarized-dark -s linux_gaming'
alias s='sudo systemctl'
alias ping='ping -c 3'
alias yt='ytcc'
alias ytupdate='ytcc -uld'
alias ytwatched='ytcc -um'
alias ytlist='ytcc -c'
alias augur='ssh 192.168.1.101 -l hexdsl'
# PS1 Setup
#Variables
export MAKEFLAGS="-j9 -l8"
export PATH="/usr/lib/ccache/bin/:/home/hexdsl/.bin/:$PATH"
BROWSER=/usr/bin/qutebrowser
EDITOR=/usr/bin/nvim
# Extract archive
function extract {
if [ -z "$1" ]; then
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
else
if [ -f $1 ] ; then
case $1 in
*.tar.bz2) tar xvjf ./$1 ;;
.tar.gz) tar xvzf ./$1 ;;
*.tar.xz) tar xvJf ./$1 ;;
*.lzma) unlzma ./$1 ;;
*.bz2) bunzip2 ./$1 ;;
*.rar) unrar x -ad ./$1 ;;
*.gz) gunzip ./$1 ;;
*.tar) tar xvf ./$1 ;;
*.tbz2) tar xvjf ./$1 ;;
*.tgz) tar xvzf ./$1 ;;
*.zip) unzip ./$1 ;;
*.Z) uncompress ./$1 ;;
*.7z) 7z x ./$1 ;;
*.xz) unxz ./$1 ;;
*.exe) cabextract ./$1 ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "$1 - file does not exist"
fi
fi
}
#RunCommand
[ -f ~/.fzf.bash ] && source ~/.fzf.bash
#
# ~/.bashrc.aliases
#
alias ls='ls --color=auto'
alias pacrepo='sudo reflector -l 20 -f 10 --save /etc/pacman.d/mirrorlist'
alias pacman='sudo pacman'
alias journalctl='sudo journalctl'
alias pacu='sudo pacman -Syu --noconfirm'
alias auru='yaourt -Syua --noconfirm'
alias systemctl='sudo systemctl'
alias se='ls /usr/bin | grep'
export QT_STYLE_OVERRIDE=gtk
export QT_SELECT=qt5
if [[ $LANG = '' ]]; then
export LANG=en_US.UTF-8
fi
#!/bin/bash
for i in *.png; do
printf "Resize $i\n"
convert "$i" -resize 1920x1080 "$i"
done
#!/bin/bash
for i in *.png; do
printf "Resize $i\n"
convert "$i" -resize 320x180 "$i"
done
#!/bin/bash
for i in *.png; do
printf "Resize $i\n"
convert "$i" -resize 600x338 "$i"
done
#!/bin/bash
for i in *.png; do
printf "Resize $i\n"
convert "$i" -resize 1280x720 "$i"
done
#!/usr/bin/bash
for x in *.aa; do mv "$x" "${x%.aa}.mp3"; done
#!/bin/sh
pkill -f "entr vim_compile" && exit
echo "$1" | entr vim_compile "$1"
#!/bin/bash
RAINS=("|" "│" "┃" "┆" "┇" "┊" "┋" "╽" "╿")
COLORS=("\e[37m" "\e[37;1m")
# More from 256 color mode
for i in {244..255}; do
COLORS=("${COLORS[@]}" "\e[38;5;${i}m")
done
NRAINS=${#RAINS[@]}
NCOLORS=${#COLORS[@]}
NUM_RAIN_METADATA=5
sigwinch() {
TERM_WIDTH=$(tput cols)
TERM_HEIGHT=$(tput lines)
STEP_DURATION=0.025
((MAX_RAINS = TERM_WIDTH * TERM_HEIGHT / 4))
((MAX_RAIN_LENGTH = TERM_HEIGHT < 10 ? 1 : TERM_HEIGHT / 10))
# In percentage
((NEW_RAIN_ODD = TERM_HEIGHT > 50 ? 100 : TERM_HEIGHT * 2))
((NEW_RAIN_ODD = NEW_RAIN_ODD * 75 / 100))
((FALLING_ODD = TERM_HEIGHT > 25 ? 100 : TERM_HEIGHT * 4))
((FALLING_ODD = FALLING_ODD * 90 / 100))
}
do_exit() {
echo -ne "\e[${TERM_HEIGHT};1H\e[0K"
# Show cursor and echo stdin
echo -ne "\e[?25h"
stty echo
exit 0
}
do_render() {
# Clean screen first
for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do
X=${rains[idx]}
Y=${rains[idx + 1]}
LENGTH=${rains[idx + 4]}
for ((y = Y; y < Y + LENGTH; y++)); do
(( y < 1 || y > TERM_HEIGHT )) && continue
echo -ne "\e[${y};${X}H "
done
done
for ((idx = 0; idx < num_rains * NUM_RAIN_METADATA; idx += NUM_RAIN_METADATA)); do
if ((100 * RANDOM / 32768 < FALLING_ODD)); then
# Falling
if ((++rains[idx + 1] > TERM_HEIGHT)); then
# Out of screen, bye sweet <3
rains=("${rains[@]:0:idx}"
"${rains[@]:idx+NUM_RAIN_METADATA:num_rains*NUM_RAIN_METADATA}")
((num_rains--))
continue
fi
fi
X=${rains[idx]}
Y=${rains[idx + 1]}
RAIN=${rains[idx + 2]}
COLOR=${rains[idx + 3]}
LENGTH=${rains[idx + 4]}
for ((y = Y; y < Y + LENGTH; y++)); do
(( y < 1 || y > TERM_HEIGHT )) && continue
echo -ne "\e[${y};${X}H${COLOR}${RAIN}"
done
done
}
trap do_exit TERM INT
trap sigwinch WINCH
# No echo stdin and hide the cursor
stty -echo
echo -ne "\e[?25l"
echo -ne "\e[2J"