@ -1,102 +1,5 @@ | |||||
#!/bin/bash | |||||
# | |||||
# ~/.bash_profile | |||||
# | |||||
set -o vi | |||||
bind -m vi-insert "\C-l":clear-screen | |||||
shopt -s extglob | |||||
HISTSIZE= | |||||
HISTFILESIZE= | |||||
export EDITOR='nvim' | |||||
export GIT_AUTHOR_NAME="Tovi Jaeschke-Rogers" | |||||
export GIT_AUTHOR_EMAIL="tovi@tovijaeschke.xyz" | |||||
export GIT_COMMITTER_NAME="Tovi Jaeschke-Rogers" | |||||
export GIT_COMMITTER_EMAIL="tovi@tovijaeschke.xyz" | |||||
export LESS='-R' | |||||
export LESSOPEN='|~/.lessfilter %s' | |||||
if [[ $(uname) != "Linux" ]]; then | |||||
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash" || true | |||||
export HOMEBREW_NO_INSTALL_CLEANUP=1 | |||||
export GIT_AUTHOR_EMAIL="tovi.jaeschke-rogers@thirty4.com" | |||||
export GIT_COMMITTER_EMAIL="tovi.jaeschke-rogers@thirty4.com" | |||||
mount-hdd() { | |||||
if [ -z $1 ]; then | |||||
sudo umount /dev/disk2s1 && sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Volumes/NTFS -olocal -oallow_other | |||||
else | |||||
sudo umount /dev/$1 && sudo /usr/local/bin/ntfs-3g /dev/$1 /Volumes/NTFS -olocal -oallow_other | |||||
fi | |||||
} | |||||
fi | |||||
# set PATH so it includes user's private bin if it exists | |||||
if [ -d "$HOME/.local/bin" ] ; then | |||||
PATH="$PATH:$(du "$HOME/.local/bin/" | cut -f2 | tr '\n' ':')$HOME/.composer/vendor/bin" | |||||
fi | |||||
source ~/.config/aliasrc | |||||
parse_git_branch() { | |||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' | |||||
} | |||||
export PS1=" \[\033[0;36m\]\t \[\033[0;35m\]\u\[\033[0;32m\]@\[\033[0;34m\]\h \[\033[32m\]\W\[\033[33m\]\$(parse_git_branch)\[\033[31m\] \n$\[\033[00m\] " | |||||
mkcd() { | |||||
if [ ! -d "$1" ]; then | |||||
mkdir -p "$1" && cd "$1" | |||||
elif [ -d "$1" ]; then | |||||
cd "$1" | |||||
else | |||||
echo "Error" | |||||
fi | |||||
} | |||||
# Go up directory structures | |||||
up() { | |||||
cd $(printf "%0.0s../" $(seq 1 $1)); | |||||
} | |||||
git() { | |||||
if [[ $@ == "mergetool" ]]; then | |||||
command git mergetool --no-gui | |||||
else | |||||
command git $@ | |||||
fi | |||||
} | |||||
# git branch -vv | grep 'gone\]' | awk ' { print $1 }' | xargs -p git branch -d | |||||
git-prune() { | |||||
if [[ $@ == "--apply" ]]; then | |||||
command git branch --merged develop | grep -vEw "develop$|master$" | xargs git branch -d | |||||
else | |||||
echo "Run \"git prune --apply\" to delete the following branches:" | |||||
command git branch --merged develop | grep -vEw "develop$|master$" | |||||
fi | |||||
} | |||||
color-diff() { | |||||
if [ -z ${1+x} ] || [ -z ${2+x} ]; then | |||||
echo "Usage: color-diff dir1/ dir2/" | |||||
return | |||||
fi | |||||
diff -bur $1 $2 | colordiff | less | |||||
} | |||||
export NVM_DIR="$HOME/.nvm" | |||||
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm | |||||
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" | |||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion | |||||
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" | |||||
eval "$(thefuck --alias)" | |||||
[[ -f ~/.bashrc ]] && . ~/.bashrc |
@ -1,116 +1,13 @@ | |||||
#!/bin/bash | |||||
# | |||||
# ~/.bashrc | |||||
# | |||||
export PATH=~/go/bin:/snap/bin:/usr/sandbox/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/usr/share/games:/usr/local/sbin:/usr/sbin:/sbin:$PATH | |||||
# If not running interactively, don't do anything | |||||
[[ $- != *i* ]] && return | |||||
set -o vi | |||||
bind -m vi-insert "\C-l":clear-screen | |||||
shopt -s extglob | |||||
HISTSIZE= | |||||
HISTFILESIZE= | |||||
export EDITOR='nvim' | |||||
export GIT_AUTHOR_NAME="Tovi Jaeschke-Rogers" | |||||
export GIT_AUTHOR_EMAIL="tovi@tovijaeschke.xyz" | |||||
export GIT_COMMITTER_NAME="Tovi Jaeschke-Rogers" | |||||
export GIT_COMMITTER_EMAIL="tovi@tovijaeschke.xyz" | |||||
export LESS='-R' | |||||
export LESSOPEN='|~/.lessfilter %s' | |||||
alias ls="ls --color=auto" \ | |||||
vb='nvim ~/.bashrc && source ~/.bashrc' \ | |||||
va='nvim ~/.config/aliasrc && source ~/.bashrc' | |||||
if [[ $(uname) != "Linux" ]]; then | |||||
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash" || true | |||||
export HOMEBREW_NO_INSTALL_CLEANUP=1 | |||||
export GIT_AUTHOR_EMAIL="tovi.jaeschke-rogers@thirty4.com" | |||||
export GIT_COMMITTER_EMAIL="tovi.jaeschke-rogers@thirty4.com" | |||||
alias ls="ls -G" \ | |||||
vb='nvim ~/.bash_profile && source ~/.bash_profile' \ | |||||
va='nvim ~/.config/aliasrc && source ~/.bash_profile' | |||||
mount-hdd() { | |||||
if [ -z $1 ]; then | |||||
sudo umount /dev/disk2s1 && sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Volumes/NTFS -olocal -oallow_other | |||||
else | |||||
sudo umount /dev/$1 && sudo /usr/local/bin/ntfs-3g /dev/$1 /Volumes/NTFS -olocal -oallow_other | |||||
fi | |||||
} | |||||
else | |||||
aupdate() { | |||||
sudo "apt update && apt upgrade" | |||||
} | |||||
alias ls='ls --color=auto' | |||||
PS1='[\u@\h \W]\$ ' | |||||
fi | |||||
# set PATH so it includes user's private bin if it exists | |||||
if [ -d "$HOME/.local/bin" ] ; then | |||||
PATH="$PATH:$(du "$HOME/.local/bin/" | cut -f2 | tr '\n' ':')" | |||||
fi | |||||
set -o vi | |||||
source ~/.config/aliasrc | source ~/.config/aliasrc | ||||
parse_git_branch() { | |||||
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' | |||||
} | |||||
export PS1=" \[\033[0;36m\]\t \[\033[0;35m\]\u\[\033[0;32m\]@\[\033[0;34m\]\h \[\033[32m\]\W\[\033[33m\]\$(parse_git_branch)\[\033[31m\] \n$\[\033[00m\] " | |||||
mkcd() { | |||||
if [ ! -d "$1" ]; then | |||||
mkdir -p "$1" && cd "$1" | |||||
elif [ -d "$1" ]; then | |||||
cd "$1" | |||||
else | |||||
echo "Error" | |||||
fi | |||||
} | |||||
# Go up directory structures | |||||
up() { | |||||
cd $(printf "%0.0s../" $(seq 1 $1)); | |||||
} | |||||
git() { | |||||
if [[ $@ == "mergetool" ]]; then | |||||
command git mergetool --no-gui | |||||
else | |||||
command git $@ | |||||
fi | |||||
} | |||||
# git branch -vv | grep 'gone\]' | awk ' { print $1 }' | xargs -p git branch -d | |||||
git-prune() { | |||||
if [[ $@ == "--apply" ]]; then | |||||
command git branch --merged develop | grep -vEw "develop$|master$" | xargs git branch -d | |||||
else | |||||
echo "Run \"git prune --apply\" to delete the following branches:" | |||||
command git branch --merged develop | grep -vEw "develop$|master$" | |||||
fi | |||||
} | |||||
color-diff() { | |||||
if [ -z ${1+x} ] || [ -z ${2+x} ]; then | |||||
echo "Usage: color-diff dir1/ dir2/" | |||||
return | |||||
fi | |||||
diff -bur $1 $2 | colordiff | less | |||||
} | |||||
export NVM_DIR="$HOME/.nvm" | |||||
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm | |||||
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" | |||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion | |||||
[[ -r "/usr/local/etc/profile.d/bash_completion.sh" ]] && . "/usr/local/etc/profile.d/bash_completion.sh" |
@ -0,0 +1,4 @@ | |||||
#!/bin/sh | |||||
if [ -n "$FIFO_UEBERZUG" ]; then | |||||
printf '{"action": "remove", "identifier": "PREVIEW"}\n' > "$FIFO_UEBERZUG" | |||||
fi |
@ -0,0 +1,119 @@ | |||||
# Luke's lf settings | |||||
# Note on Image Previews | |||||
# For those wanting image previews, like this system, there are four steps to | |||||
# set it up. These are done automatically for LARBS users, but I will state | |||||
# them here for others doing it manually. | |||||
# | |||||
# 1. ueberzug must be installed. | |||||
# 2. The scope file (~/.config/lf/scope for me), must have a command similar to | |||||
# mine to generate ueberzug images. | |||||
# 3. A `set cleaner` line as below is a cleaner script. | |||||
# 4. lf should be started through a wrapper script (~/.local/bin/lfub for me) | |||||
# that creates the environment for ueberzug. This command can be be aliased | |||||
# in your shellrc (`alias lf="lfub") or if set to a binding, should be | |||||
# called directly instead of normal lf. | |||||
# Basic vars | |||||
set shellopts '-eu' | |||||
set ifs "\n" | |||||
set scrolloff 10 | |||||
set icons | |||||
set period 1 | |||||
set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml" | |||||
set cleaner '~/.config/lf/cleaner' | |||||
set previewer '~/.config/lf/scope' | |||||
# cmds/functions | |||||
cmd open ${{ | |||||
case $(file --mime-type "$(readlink -f $f)" -b) in | |||||
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) localc $fx ;; | |||||
image/vnd.djvu|application/pdf|application/octet-stream|application/postscript) setsid -f zathura $fx >/dev/null 2>&1 ;; | |||||
text/*|application/json|inode/x-empty) $EDITOR $fx;; | |||||
image/x-xcf) gimp $f >/dev/null 2>&1 ;; | |||||
image) display -- $f ;; | |||||
audio/*) mpv --audio-display=no $f ;; | |||||
video/*) mpv $f -quiet >/dev/null 2>&1 ;; | |||||
application/pdf|application/vnd*|application/epub*) zathura $fx >/dev/null 2>&1 ;; | |||||
esac | |||||
}} | |||||
cmd mkdir $mkdir -p "$(echo $* | tr ' ' '\ ')" | |||||
cmd extract ${{ | |||||
clear; tput cup $(($(tput lines)/3)); tput bold | |||||
set -f | |||||
printf "%s\n\t" "$fx" | |||||
printf "extract?[y/N]" | |||||
read ans | |||||
[ $ans = "y" ] && aunpack $fx | |||||
}} | |||||
cmd delete ${{ | |||||
clear; tput cup $(($(tput lines)/3)); tput bold | |||||
set -f | |||||
printf "%s\n\t" "$fx" | |||||
printf "delete?[y/N]" | |||||
read ans | |||||
[ $ans = "y" ] && rm -rf -- $fx | |||||
}} | |||||
cmd moveto ${{ | |||||
clear; tput cup $(($(tput lines)/3)); tput bold | |||||
set -f | |||||
clear; echo "Move to where?" | |||||
dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" && | |||||
for x in $fx; do | |||||
eval mv -iv \"$x\" \"$dest\" | |||||
done && | |||||
notify-send "🚚 File(s) moved." "File(s) moved to $dest." | |||||
}} | |||||
cmd copyto ${{ | |||||
clear; tput cup $(($(tput lines)/3)); tput bold | |||||
set -f | |||||
clear; echo "Copy to where?" | |||||
dest="$(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf | sed 's|~|$HOME|')" && | |||||
for x in $fx; do | |||||
eval cp -ivr \"$x\" \"$dest\" | |||||
done && | |||||
notify-send "📋 File(s) copied." "File(s) copies to $dest." | |||||
}} | |||||
cmd setbg "$1" | |||||
cmd bulkrename $vidir | |||||
# Bindings | |||||
map <c-f> $lf -remote "send $id select '$(fzf)'" | |||||
map J $lf -remote "send $id cd $(sed -e 's/\s*#.*//' -e '/^$/d' -e 's/^\S*\s*//' ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs | fzf)" | |||||
map gh | |||||
map g top | |||||
map D delete | |||||
map E extract | |||||
map C copyto | |||||
map M moveto | |||||
map <c-n> push :mkdir<space> | |||||
map <c-r> reload | |||||
map <c-s> set hidden! | |||||
map <enter> shell | |||||
map x $$f | |||||
map X !$f | |||||
map o &mimeopen $f | |||||
map O $mimeopen --ask $f | |||||
map A rename # at the very end | |||||
map c push A<c-u> # new rename | |||||
map I push A<c-a> # at the very beginning | |||||
map i push A<a-b><a-b><a-f> # before extention | |||||
map a push A<a-b> # after extention | |||||
map B bulkrename | |||||
map b $setbg $f | |||||
map <c-e> down | |||||
map <c-y> up | |||||
map V push :!nvim<space> | |||||
map W $setsid -f $TERMINAL >/dev/null 2>&1 | |||||
map Y $printf "%s" "$fx" | xclip -selection clipboard |
@ -0,0 +1,43 @@ | |||||
#!/bin/sh | |||||
# File preview handler for lf. | |||||
set -C -f | |||||
IFS="$(printf '%b_' '\n')"; IFS="${IFS%_}" | |||||
image() { | |||||
if [ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1; then | |||||
printf '{"action": "add", "identifier": "PREVIEW", "x": "%s", "y": "%s", "width": "%s", "height": "%s", "scaler": "contain", "path": "%s"}\n' "$4" "$5" "$(($2-1))" "$(($3-1))" "$1" > "$FIFO_UEBERZUG" | |||||
else | |||||
mediainfo "$1" | |||||
fi | |||||
} | |||||
ifub() { | |||||
[ -n "$DISPLAY" ] && [ -z "$WAYLAND_DISPLAY" ] && command -V ueberzug >/dev/null 2>&1 | |||||
} | |||||
# Note that the cache file name is a function of file information, meaning if | |||||
# an image appears in multiple places across the machine, it will not have to | |||||
# be regenerated once seen. | |||||
case "$(file --dereference --brief --mime-type -- "$1")" in | |||||
image/*) image "$1" "$2" "$3" "$4" "$5" ;; | |||||
text/html) lynx -width="$4" -display_charset=utf-8 -dump "$1" ;; | |||||
text/troff) man ./ "$1" | col -b ;; | |||||
text/* | */xml | application/json) cat "$1" ;; | |||||
application/zip) atool --list -- "$1" ;; | |||||
audio/* | application/octet-stream) mediainfo "$1" || exit 1;; | |||||
video/* ) | |||||
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}')" | |||||
[ ! -f "$CACHE" ] && ffmpegthumbnailer -i "$1" -o "$CACHE" -s 0 | |||||
image "$CACHE" "$2" "$3" "$4" "$5" | |||||
;; | |||||
*/pdf) | |||||
CACHE="${XDG_CACHE_HOME:-$HOME/.cache}/lf/thumb.$(stat --printf '%n\0%i\0%F\0%s\0%W\0%Y' -- "$(readlink -f "$1")" | sha256sum | awk '{print $1}')" | |||||
[ ! -f "$CACHE.jpg" ] && pdftoppm -jpeg -f 1 -singlefile "$1" "$CACHE" | |||||
image "$CACHE.jpg" "$2" "$3" "$4" "$5" | |||||
;; | |||||
*opendocument*) odt2txt "$1" ;; | |||||
application/pgp-encrypted) gpg -d -- "$1" ;; | |||||
esac | |||||
exit 1 |
@ -1,31 +0,0 @@ | |||||
# vim: filetype=neomuttrc | |||||
# muttrc file for account tovi | |||||
set realname = "Tovi Jaeschke-Rogers" | |||||
set from = "tovi@tovijaeschke.xyz" | |||||
set sendmail = "msmtp -a tovi" | |||||
alias me Tovi Jaeschke-Rogers <tovi@tovijaeschke.xyz> | |||||
set folder = /Users/tovijaeschke-rogers/.local/share/mail/tovi | |||||
set header_cache = /Users/tovijaeschke-rogers/.cache/mutt-wizard/tovi/headers | |||||
set message_cachedir = /Users/tovijaeschke-rogers/.cache/mutt-wizard/tovi/bodies | |||||
set mbox_type = Maildir | |||||
set spoolfile = +INBOX | |||||
set postponed = +Drafts | |||||
set record = +Sent | |||||
set trash = +Trash | |||||
mailboxes $spoolfile $record $postponed $trash | |||||
set smtp_pass = "`pass mutt-wizard-tovi`" | |||||
set smtp_url = "smtp://tovi@mail.tovijaeschke.xyz:587" | |||||
set crypt_autosign = yes | |||||
set crypt_opportunistic_encrypt = yes | |||||
set pgp_self_encrypt = yes | |||||
set pgp_default_key = 78CC949ADAAF9556 | |||||
bind index,pager gg noop | |||||
bind index,pager g noop | |||||
bind index,pager M noop | |||||
bind index,pager C noop | |||||
bind index gg first-entry | |||||
macro index o "<shell-escape>mailsync -V tovi<enter>" "run mbsync to sync tovi" | |||||
#unmailboxes * | |||||
@ -1,4 +0,0 @@ | |||||
# vim: filetype=neomuttrc | |||||
source /usr/local/share/mutt-wizard/mutt-wizard.muttrc # mw-autogenerated | |||||
source /Users/tovijaeschke-rogers/.config/mutt/accounts/1-tovi.muttrc # mw-autogenerated | |||||
macro index,pager i1 '<sync-mailbox><enter-command>source /Users/tovijaeschke-rogers/.config/mutt/accounts/1-tovi.muttrc<enter><change-folder>!<enter>;<check-stats>' "switch to tovi@tovijaeschke.xyz" # mw-autogenerated |
@ -0,0 +1,25 @@ | |||||
{ | |||||
"languageserver": { | |||||
"ccls": { | |||||
"command": "ccls", | |||||
"filetypes": [ | |||||
"c", | |||||
"cpp", | |||||
"objc", | |||||
"objcpp" | |||||
], | |||||
"rootPatterns": [ | |||||
".ccls", | |||||
"compile_commands.json", | |||||
".vim/", | |||||
".git/", | |||||
".hg/" | |||||
], | |||||
"initializationOptions": { | |||||
"cache": { | |||||
"directory": "/tmp/ccls" | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@ -1,125 +1,175 @@ | |||||
" My awesome vimrc | |||||
let mapleader ="," | let mapleader ="," | ||||
if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) | if ! filereadable(expand('~/.config/nvim/autoload/plug.vim')) | ||||
echo "Downloading junegunn/vim-plug to manage plugins..." | |||||
silent !mkdir -p ~/.config/nvim/autoload/ | |||||
silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim | |||||
autocmd VimEnter * PlugInstall | |||||
echo "Downloading junegunn/vim-plug to manage plugins..." | |||||
silent !mkdir -p ~/.config/nvim/autoload/ | |||||
silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim | |||||
autocmd VimEnter * PlugInstall | |||||
endif | endif | ||||
function! Cond(cond, ...) | |||||
let opts = get(a:000, 0, {}) | |||||
return a:cond ? opts : extend(opts, { 'on': [], 'for': [] }) | |||||
endfunction | |||||
call plug#begin('~/.config/nvim/plugged') | call plug#begin('~/.config/nvim/plugged') | ||||
Plug 'morhetz/gruvbox' | |||||
Plug 'neoclide/coc.nvim', {'branch': 'release'} | |||||
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |||||
Plug 'junegunn/fzf.vim' | |||||
Plug 'ap/vim-css-color' | |||||
if !exists('g:vscode') | |||||
Plug 'neoclide/coc.nvim', Cond(!exists('g:vscode')) | |||||
Plug 'nvim-lua/popup.nvim', Cond(!exists('g:vscode')) | |||||
Plug 'nvim-lua/plenary.nvim', Cond(!exists('g:vscode')) | |||||
Plug 'nvim-telescope/telescope.nvim', Cond(!exists('g:vscode')) | |||||
Plug 'nvim-telescope/telescope-fzy-native.nvim', Cond(!exists('g:vscode')) | |||||
Plug 'vimwiki/vimwiki', Cond(!exists('g:vscode')) | |||||
Plug 'ap/vim-css-color', Cond(!exists('g:vscode')) | |||||
endif | |||||
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } | Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } | ||||
Plug 'darrikonn/vim-gofmt', { 'do': ':GoUpdateBinaries' } | Plug 'darrikonn/vim-gofmt', { 'do': ':GoUpdateBinaries' } | ||||
call plug#end() | |||||
let g:airline_powerline_fonts=1 | |||||
call plug#end() | |||||
" Some basics: | " Some basics: | ||||
set go=a | |||||
set mouse=a | |||||
set nohlsearch | |||||
set clipboard+=unnamedplus | |||||
set incsearch | |||||
set ignorecase | |||||
set smartcase | |||||
set linebreak | |||||
set noswapfile | |||||
set nobackup | |||||
set undodir=~/.config/nvim/undodir | |||||
set undofile | |||||
"let g:gruvbox_contrast_dark = 'hard' | |||||
"if exists('+termguicolors') | |||||
" let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum" | |||||
" let &t_8b = "\<Esc>[38;2;%lu;%lu;%lum" | |||||
"endif | |||||
"let g:gruvbox_invert_selection = '0' | |||||
"colorscheme gruvbox | |||||
"set background=dark | |||||
nnoremap c "_c | |||||
set nocompatible | |||||
filetype plugin on | |||||
syntax on | |||||
set encoding=utf-8 | |||||
set number relativenumber | |||||
" Indent marks | |||||
"set listchars=tab:\|_ | |||||
"set list | |||||
" Tab 2 spaces | |||||
filetype plugin indent on | |||||
set tabstop=2 softtabstop=2 expandtab shiftwidth=2 smarttab | |||||
" Disables automatic commenting on newline: | |||||
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o | |||||
" coc | |||||
inoremap <silent><expr> <TAB> | |||||
\ pumvisible() ? "\<C-n>" : | |||||
\ <SID>check_back_space() ? "\<TAB>" : | |||||
\ coc#refresh() | |||||
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | |||||
function! s:check_back_space() abort | |||||
let col = col('.') - 1 | |||||
return !col || getline('.')[col - 1] =~# '\s' | |||||
endfunction | |||||
nmap <leader>gd <Plug>(coc-definition) | |||||
nmap <leader>gr <Plug>(coc-references) | |||||
nmap <leader>rr <Plug>(coc-rename) | |||||
nnoremap <leader>prw :CocSearch <C-R>=expand("<cword>")<CR><CR> | |||||
inoremap <expr> <C-j> pumvisible() ? "\<Down>" : "\<C-j>" | |||||
inoremap <expr> <C-k> pumvisible() ? "\<Up>" : "\<C-k>" | |||||
" fzf remaps | |||||
"nnoremap <C-p> :GFiles<CR> | |||||
nnoremap <C-q> :GFiles<CR> | |||||
nnoremap <C-a> :Files<CR> | |||||
let g:fzf_layout = { 'window': { 'width': 0.8, 'height': 0.5, 'highlight': 'Comment' } } | |||||
" Spell-check set to <leader>o, 'o' for 'orthography': | |||||
map <leader>o :setlocal spell! spelllang=en_au<CR> | |||||
" Splits open at the bottom and right, which is non-retarded, unlike vim defaults. | |||||
set splitbelow splitright | |||||
" Shortcutting split navigation, saving a keypress: | |||||
nnoremap <C-h> <C-w>h | |||||
nnoremap <C-j> <C-w>j | |||||
nnoremap <C-k> <C-w>k | |||||
nnoremap <C-l> <C-w>l | |||||
" Check file in shellcheck: | |||||
map <leader>s :!clear && shellcheck %<CR> | |||||
" Replace all is aliased to S. | |||||
nnoremap <c-s> :%s//g<Left><Left> | |||||
" For chrome extension development | |||||
" nnoremap <c-h> :set syntax= | |||||
" Navigating with guides | |||||
inoremap <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
vnoremap <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
map <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
" Remember last cursor position | |||||
autocmd BufReadPost * if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif | |||||
" Copy entire document | |||||
noremap <leader>y <Esc>ggyG<C-o> | |||||
map <leader>y <Esc>ggyG<C-o> | |||||
autocmd BufNewFile,BufRead *.gohtml set syntax=html | |||||
set clipboard+=unnamedplus | |||||
set nohlsearch | |||||
set incsearch | |||||
set ignorecase | |||||
if !exists('g:vscode') | |||||
set go=a | |||||
set mouse=a | |||||
set smartcase | |||||
set linebreak | |||||
set noswapfile | |||||
set nobackup | |||||
set undodir=~/.config/nvim/undodir | |||||
set undofile | |||||
nnoremap c "_c | |||||
set nocompatible | |||||
filetype plugin on | |||||
syntax on | |||||
set encoding=utf-8 | |||||
set number relativenumber | |||||
" Tab 2 spaces | |||||
filetype plugin indent on | |||||
set tabstop=4 softtabstop=4 expandtab shiftwidth=4 smarttab | |||||
" Disables automatic commenting on newline: | |||||
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o | |||||
" Remember last cursor position | |||||
autocmd BufReadPost * if @% !~# '\.git[\/\\]COMMIT_EDITMSG$' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g`\"" | endif | |||||
" Copy entire document | |||||
noremap <leader>y <Esc>ggyG<C-o> | |||||
map <leader>y <Esc>ggyG<C-o> | |||||
" Set gohtml template files to html syntax | |||||
autocmd BufNewFile,BufRead *.gohtml set syntax=html | |||||
" NETRW | |||||
let g:netrw_liststyle = 3 | |||||
let g:netrw_banner = 0 | |||||
let g:netrw_browse_split = 4 | |||||
let g:netrw_winsize = 20 | |||||
let g:netrw_altv = 1 | |||||
let g:NetrwIsOpen=0 | |||||
function! ToggleNetrw() | |||||
if g:NetrwIsOpen | |||||
let i = bufnr("$") | |||||
while (i >= 1) | |||||
if (getbufvar(i, "&filetype") == "netrw") | |||||
silent exe "bwipeout " . i | |||||
endif | |||||
let i-=1 | |||||
endwhile | |||||
let g:NetrwIsOpen=0 | |||||
else | |||||
let g:NetrwIsOpen=1 | |||||
silent Lexplore | |||||
endif | |||||
endfunction | |||||
" Add your own mapping. For example: | |||||
noremap <silent> <C-p> :call ToggleNetrw()<CR> | |||||
" coc | |||||
highlight CocErrorSign ctermfg=Black ctermbg=Magenta | |||||
inoremap <silent><expr> <TAB> | |||||
\ pumvisible() ? "\<C-n>" : | |||||
\ <SID>check_back_space() ? "\<TAB>" : | |||||
\ coc#refresh() | |||||
inoremap <expr><S-TAB> pumvisible() ? "\<C-p>" : "\<C-h>" | |||||
function! s:check_back_space() abort | |||||
let col = col('.') - 1 | |||||
return !col || getline('.')[col - 1] =~# '\s' | |||||
endfunction | |||||
nmap <leader>gd <Plug>(coc-definition) | |||||
nmap <leader>gr <Plug>(coc-references) | |||||
nmap <leader>rr <Plug>(coc-rename) | |||||
nnoremap <leader>prw :CocSearch <C-R>=expand("<cword>")<CR><CR> | |||||
inoremap <expr> <C-j> pumvisible() ? "\<Down>" : "\<C-j>" | |||||
inoremap <expr> <C-k> pumvisible() ? "\<Up>" : "\<C-k>" | |||||
try | |||||
nmap <silent> <leader>ej :call CocAction('diagnosticNext')<cr> | |||||
nmap <silent> <leader>ek :call CocAction('diagnosticPrevious')<cr> | |||||
endtry | |||||
" Telescope remaps | |||||
lua require("telescope") | |||||
nnoremap <leader>gs :lua require('telescope.builtin').grep_string({ search = vim.fn.input("Grep For > ")})<CR> | |||||
nnoremap <C-q> :lua require('telescope.builtin').git_files()<CR> | |||||
nnoremap <C-a> :lua require('telescope.builtin').find_files()<CR> | |||||
nnoremap <leader>fb <cmd>lua require('telescope.builtin').buffers()<cr> | |||||
" VimWiki | |||||
let pentest_wiki = {} | |||||
let pentest_wiki.path = '~/Documents/PentestWiki/' | |||||
let pentest_wiki.path_html = '~/Documents/PentestWikiHtml/' | |||||
let pentest_wiki.syntax = 'markdown' | |||||
let pentest_wiki.ext = '.md' | |||||
let pentest_wiki.custom_wiki2html = '~/.local/bin/vimwiki_convert.py' | |||||
let g:vimwiki_list = [pentest_wiki] | |||||
let g:vimwiki_ext2syntax = {'.md': 'markdown', '.markdown': 'markdown', '.mdown': 'markdown'} | |||||
au filetype vimwiki silent! iunmap <buffer> <Tab> | |||||
" Spell-check | |||||
map <leader>o :setlocal spell! spelllang=en_au<CR> | |||||
" Shortcutting split navigation, saving a keypress: | |||||
nnoremap <C-h> <C-w>h | |||||
nnoremap <C-j> <C-w>j | |||||
nnoremap <C-k> <C-w>k | |||||
nnoremap <C-l> <C-w>l | |||||
" Replace all is aliased to S. | |||||
nnoremap <c-s> :%s//g<Left><Left> | |||||
" Navigating with guides | |||||
inoremap <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
vnoremap <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
map <leader><leader> <Esc>/<++><Enter>"_c4l | |||||
endif |
@ -0,0 +1,27 @@ | |||||
local actions = require('telescope.actions') | |||||
require('telescope').setup { | |||||
defaults = { | |||||
file_sorter = require('telescope.sorters').get_fzy_sorter, | |||||
prompt_prefix = ' >', | |||||
color_devicons = true, | |||||
file_previewer = require('telescope.previewers').vim_buffer_cat.new, | |||||
grep_previewer = require('telescope.previewers').vim_buffer_vimgrep.new, | |||||
qflist_previewer = require('telescope.previewers').vim_buffer_qflist.new, | |||||
mappings = { | |||||
i = { | |||||
["<C-x>"] = false, | |||||
["<C-q>"] = actions.send_to_qflist, | |||||
}, | |||||
} | |||||
}, | |||||
extensions = { | |||||
fzy_native = { | |||||
override_generic_sorter = false, | |||||
override_file_sorter = true, | |||||
} | |||||
} | |||||
} | |||||
require('telescope').load_extension('fzy_native') |
@ -1,13 +0,0 @@ | |||||
#!/bin/bash | |||||
~/.local/bin/remap-keys | |||||
#pulseaudio --start & | |||||
dunst & | |||||
xautolock -time 10 -locker slock & | |||||
feh --bg-fill ~/Pictures/wp/$(ls ~/Pictures/wp/ | shuf -n 1) | |||||
#compton -b --backend xrender --config ~/.config/compton/compton.conf & | |||||
unclutter & | |||||
#transmission-daemon & | |||||
#conky -d & | |||||
~/.dwm/dwm-sss & |
@ -1,169 +0,0 @@ | |||||
#!/bin/bash | |||||
# Variables | |||||
blog_dir=~/repos/blog-cms | |||||
check() { | |||||
if [ "$EUID" -ne 0 ] | |||||
then | |||||
echo "Please run as root" | |||||
exit | |||||
fi | |||||
} | |||||
confirm() { | |||||
confirmvar="" | |||||
while [[ "$confirmvar" == "" ]] | |||||
do | |||||
read -p "y/n/q: " confirmvar | |||||
if [ "${confirmvar}" == "y" ] | |||||
then | |||||
echo true | |||||
elif [ "${confirmvar}" == "n" ] | |||||
then | |||||
echo false | |||||
fi | |||||
done | |||||
} | |||||
newpost() { | |||||
c=false | |||||
while [[ ${c} == false ]] | |||||
do | |||||
read -p "Title: " title | |||||
echo -e "Subject 1:\n\t0 - no subject\n\t1 - Programming\n\t2 - Pentesting\n\t3 - Personal" | |||||
sub1=$(subjectselect) | |||||
echo -e "Subject 1:\n\t0 - no subject\n\t1 - Programming\n\t2 - Pentesting\n\t3 - Personal" | |||||
sub2=$(subjectselect) | |||||
echo -e "Title: ${title}\nSubject 1: ${sub1}\nSubject 2: ${sub2}\n\nAre you sure?\n" | |||||
c=$(confirm) | |||||
done | |||||
dirname=$(echo ${title} | sed 's/\ /_/g') | |||||
mkdir -p ${blog_dir}/posts/${dirname}/static | |||||
cd ${blog_dir}/posts/${dirname} | |||||
echo ${title} >> title | |||||
echo ${sub1} >> .sub1 | |||||
echo ${sub2} >> .sub2 | |||||
touch {intro.html,body.html} | |||||
pwd | |||||
ls -al | |||||
} | |||||
subjectselect() { | |||||
read -p "0/1/2/3: " tmpvar | |||||
if [ "$tmpvar" == "1" ] | |||||
then | |||||
echo "Programming" | |||||
elif [ "$tmpvar" == "2" ] | |||||
then | |||||
echo "Pentesting" | |||||
elif [ "$tmpvar" == "3" ] | |||||
then | |||||
echo "Personal" | |||||
elif [ "$tmpvar" == "0" ] | |||||
then | |||||
echo "" | |||||
fi | |||||
} | |||||
listandReturn() { printf "Listing contents of %s.\\n" "$1" | |||||
ls -rc "$1" | awk -F '/' '{print $NF}' | nl | |||||
read -erp "Pick an entry by number to $2, or press ctrl-c to cancel. " number | |||||
chosen="$(ls -rc "$1" | nl | grep -w "$number" | awk '{print $2}')" | |||||
basefile="$(basename "$chosen")" && base="${basefile%.*}" ;} | |||||
upload() { | |||||
#check | |||||
listandReturn ${blog_dir}/posts | |||||
#cd ${blog_dir}/posts/${basefile} | |||||
titlevar=$(cat ${blog_dir}/posts/${basefile}/title) | |||||
subvar1=$(cat ${blog_dir}/posts/${basefile}/.sub1) | |||||
subvar2=$(cat ${blog_dir}/posts/${basefile}/.sub2) | |||||
echo "Add intro pic?" | |||||
if [[ $(confirm) == true ]] | |||||
then | |||||
listandReturn ${blog_dir}/posts/${basefile}/static/ | |||||
picvar=${basefile} | |||||
fi | |||||
echo -n Mysql password: | |||||
read -s sqlpassword | |||||
scp ${blog_dir}/posts/${basefile}/{intro.html,body.html} root@tovijaeschke.xyz:/var/lib/mysql-files/ | |||||
scp ${blog_dir}/posts/${basefile}/static/* root@tovijaeschke.xyz:/usr/share/nginx/personal/static/ | |||||
if [[ "$picvar" == "" ]] | |||||
then | |||||
ssh root@tovijaeschke.xyz "chown mysql:mysql /var/lib/mysql-files/* && | |||||
chmod go+rw /var/lib/mysql-files/* && | |||||
mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"INSERT INTO Posts (subject,subject2,title,intro,body) VALUES ('${subvar1}', '${subvar2}', '${titlevar}', LOAD_FILE('/var/lib/mysql-files/intro.html'), LOAD_FILE('/var/lib/mysql-files/body.html'));\"" | |||||
else | |||||
ssh root@tovijaeschke.xyz "chown mysql:mysql /var/lib/mysql-files/* && | |||||
chmod go+rw /var/lib/mysql-files/* && | |||||
mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"INSERT INTO Posts (subject,subject2,title,pic,intro,body) VALUES ('${subvar1}', '${subvar2}', '${titlevar}', '${picvar}', LOAD_FILE('/var/lib/mysql-files/intro.html'), LOAD_FILE('/var/lib/mysql-files/body.html'));\"" | |||||
fi | |||||
} | |||||
preview() { | |||||
mkdir -p /tmp/preview | |||||
cp -r ${blog_dir}/.preview/* /tmp/preview/ | |||||
listandReturn ${blog_dir}/posts | |||||
title=$(cat ${blog_dir}/posts/${basefile}/title | tr -d '\n') | |||||
intro=$(cat ${blog_dir}/posts/${basefile}/intro.html | tr -d '\n') | |||||
body=$(cat ${blog_dir}/posts/${basefile}/body.html | tr -d '\n') | |||||
cp -r ${blog_dir}/posts/${basefile}/static/ /tmp/preview | |||||
sed -i .bak 's|TITLE_PREVIEW|'"${title}"'|g' /tmp/preview/post.html | |||||
sed -i .bak 's|INTRO_PREVIEW|'"${intro}"'|g' /tmp/preview/post.html | |||||
sed -i .bak 's|BODY_PREVIEW|'"${body}"'|g' /tmp/preview/post.html | |||||
if [[ $(uname) == "Linux" ]]; then | |||||
firefox /tmp/preview/post.html | |||||
else | |||||
open -a firefox -g /tmp/preview/post.html | |||||
fi | |||||
} | |||||
deletedraft() { | |||||
echo "Which draft would you like to delete?" | |||||
listandReturn ${blog_dir}/posts | |||||
echo "Are you sure you want to delete \"$(cat ${blog_dir}/posts/${basefile}/title)?\"" | |||||
c=$(confirm) | |||||
if [ ${c} != false ] | |||||
then | |||||
rm -rf ${blog_dir}/posts/${basefile} | |||||
fi | |||||
} | |||||
deletepost() { | |||||
echo -n Mysql password: | |||||
read -s sqlpassword | |||||
echo -e "\nWhich post would you like to delete?" | |||||
ssh root@tovijaeschke.xyz "mysql -u root -p${sqlpassword} -D PersonalWebsite -B --disable-column-names -e \"SELECT id,title FROM Posts;\"" | |||||
read -p "\nWhich post would you like to delete?" post | |||||
ssh root@tovijaeschke.xyz "mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"DELETE FROM Posts WHERE id=${post};\" && \ | |||||
post=\$(mysql -B -u root -p${sqlpassword} -D PersonalWebsite --disable-column-names -e \"SELECT MAX(id) FROM Posts;\") && \ | |||||
mysql -u root -p${sqlpassword} -D PersonalWebsite -e \"ALTER TABLE Posts AUTO_INCREMENT=\$post;\"" | |||||
} | |||||
helpmsg() { | |||||
printf "\nBLOG UPLOAD SCRIPT\n\n\tn - new draft\n\tp - preview post\n\tu - upload post\n\tdd - delete draft\n\tdp - delete post\n\th - help message\n\n" | |||||
} | |||||
case "$1" in | |||||
n*) newpost ;; | |||||
p*) preview ;; | |||||
u*) upload ;; | |||||
dd*) deletedraft ;; | |||||
dp*) deletepost ;; | |||||
h*) helpmsg ;; | |||||
*) helpmsg ;; | |||||
esac |
@ -1,5 +0,0 @@ | |||||
#!/bin/bash | |||||
F=$(fzf) | |||||
[ -z "$F" ] || nvim "$F" |
@ -1,98 +0,0 @@ | |||||
#!/usr/bin/env bash | |||||
# author: unknown | |||||
# sentby: MoreChannelNoise (https://www.youtube.com/user/MoreChannelNoise) | |||||
# editby: gotbletu (https://www.youtube.com/user/gotbletu) | |||||
# demo: https://www.youtube.com/watch?v=kxJClZIXSnM | |||||
# info: this is a script to launch other rofi scripts, | |||||
# saves us the trouble of binding multiple hotkeys for each script, | |||||
# when we can just use one hotkey for everything. | |||||
declare -A LABELS | |||||
declare -A COMMANDS | |||||
### | |||||
# List of defined 'bangs' | |||||
# launch programs | |||||
COMMANDS["apps"]="dmenu_run -i -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee'" | |||||
LABELS["apps"]="" | |||||
# clipboard | |||||
COMMANDS["clipboard"]="greenclip print | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'clipboard: ' | xclip -selection clipboard" | |||||
LABELS["clipboard"]="" | |||||
# search local files | |||||
COMMANDS["emoji"]="~/.bin/dmenu-scripts/dmenu-emoji" | |||||
LABELS["emoji"]="" | |||||
# mount drives | |||||
COMMANDS["mount"]="sudo ~/.bin/dmenu-scripts/dmenu-mount" | |||||
LABELS["mount"]="" | |||||
# umount drives | |||||
COMMANDS["unmount"]="sudo ~/.bin/dmenu-scripts/dmenu-mount unmount" | |||||
LABELS["unmount"]="" | |||||
# shutdown | |||||
COMMANDS["shutdown"]="sudo ~/.bin/dmenu-scripts/dmenu-shutdown" | |||||
LABELS["shutdown"]="" | |||||
# PDF man pages | |||||
COMMANDS["man"]="~/.bin/dmenu-scripts/dmenu-man" | |||||
LABELS["man"]="" | |||||
# locate files | |||||
COMMANDS["locate"]="~/.bin/dmenu-scripts/dmenu-locate" | |||||
LABELS["locate"]="" | |||||
################################################################################ | |||||
# do not edit below | |||||
################################################################################ | |||||
## | |||||
# Generate menu | |||||
## | |||||
function print_menu() | |||||
{ | |||||
for key in ${!LABELS[@]} | |||||
do | |||||
echo "$key ${LABELS}" | |||||
# echo "$key ${LABELS[$key]}" | |||||
# my top version just shows the first field in labels row, not two words side by side | |||||
done | |||||
} | |||||
## | |||||
# Show rofi. | |||||
## | |||||
function start() | |||||
{ | |||||
print_menu | sort | dmenu -i -m 0 -fn "Inconsolata:size=10" -nb "#222222" -nf "#bbbbbb" -sb "#005577" -sf "#eeeeee" -p "dmenu bangs: " | |||||
} | |||||
# Run it | |||||
value="$(start)" | |||||
# Split input. | |||||
# grab upto first space. | |||||
choice=${value%%\ *} | |||||
# graph remainder, minus space. | |||||
input=${value:$((${#choice}+1))} | |||||
## | |||||
# Cancelled? bail out | |||||
## | |||||
if test -z ${choice} | |||||
then | |||||
exit | |||||
fi | |||||
# check if choice exists | |||||
if test ${COMMANDS[$choice]+isset} | |||||
then | |||||
# Execute the choice | |||||
eval ${COMMANDS[$choice]} | |||||
else | |||||
eval $choice | dmenu | |||||
fi |
@ -1,15 +0,0 @@ | |||||
#!/bin/bash | |||||
#cat ~/.emoji | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'Emoji: ' | |||||
chosen=$(grep -v "#" ~/.emoji | dmenu -i -l 20 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'emoji: ') | |||||
[ "$chosen" != "" ] || exit | |||||
c=$(echo "$chosen" | sed "s/ .*//") | |||||
echo "$c" | tr -d '\n' | xclip -selection clipboard | |||||
notify-send "'$c' copied to clipboard." & | |||||
s=$(echo "$chosen" | sed "s/.*; //" | awk '{print $1}') | |||||
echo "$s" | tr -d '\n' | xclip | |||||
notify-send "'$s' copied to primary." & |
@ -1,3 +0,0 @@ | |||||
#!/bin/bash | |||||
xdg-open $(locate home media | dmenu -l 20 -i -m 0 -fn "Inconsolata:size=10" -nb "#000000" -nf "#bbbbbb" -sb "#0099cc" -sf "#000000" -p "Locate: ") |
@ -1,3 +0,0 @@ | |||||
#!/bin/bash | |||||
man -k . | dmenu -i -m 0 -fn "Inconsolata:size=10" -nb "#000000" -nf "#bbbbbb" -sb "#0099cc" -sf "#000000" -l 20 -p "Man: " | awk '{print $1}' | xargs -r man -Tpdf | zathura - |
@ -1,28 +0,0 @@ | |||||
#!/bin/bash | |||||
COLS="name,type,size,mountpoint" | |||||
if [[ "$1" == "unmount" ]] | |||||
then | |||||
drives="$(lsblk -rpo "$COLS" | awk '$2=="part"&&$4!=""{printf "%s (%s)\n",$1,$3}')" | |||||
[ -z "$drives" ] && exit 1 | |||||
chosen="$(echo "$drives" | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'Drive to unmount: ' | awk '{print $1}')" | |||||
[ -z "$chosen" ] && exit 1 | |||||
umount $chosen && notify-send "$chosen umounted" || notfiy-send "Error unmounting $chosen" | |||||
else | |||||
drives="$(lsblk -rpo "$COLS" | awk '$2=="part"&&$4==""{printf "%s (%s)\n",$1,$3}')" | |||||
[ -z "$drives" ] && exit 1 | |||||
chosen="$(echo "$drives" | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'Drive to mount: ' | awk '{print $1}')" | |||||
[ -z "$chosen" ] && exit 1 | |||||
mount "$chosen" && exit 0 | |||||
mp="$(find /mnt /media /mount /home -type d -maxdepth 1 2>/dev/null | dmenu -i -l 10 -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'Mount point: ' | awk '{print $1}')" | |||||
[ "$mp" = "" ] && exit 1 | |||||
if [ ! -d "$mp" ]; then | |||||
mkdiryn=$(printf "No\\nYes" | dmenu -i -m 0 -fn 'Inconsolata:size=10' -nb '#222222' -nf '#bbbbbb' -sb '#005577' -sf '#eeeeee' -p 'Mount point does not exist, create it?') | |||||
[ "$mkdiryn" = "Yes" ] && sudo -A mkdir -p "$mp" | |||||
fi | |||||
echo $mp | |||||
mount "$chosen" "$mp" && notify-send "$chosen mounted to $mp." || notify-send "Error mounting $chosen to $mp" | |||||
fi | |||||
@ -1,24 +0,0 @@ | |||||
#!/bin/bash | |||||
option=$(echo -e "Lock the screen\nReboot\nShutdown\nHibernate" | dmenu -i -m 0 -fn "Inconsolata:size=10" -nb "#000000" -nf "#bbbbbb" -sb "#0099cc" -sf "#000000" -p "Power menu: ") | |||||
answer=$(echo -e "No\nYes" | dmenu -i -m 0 -fn "Inconsolata:size=10" -nb "#000000" -nf "#bbbbbb" -sb "#0099cc" -sf "#000000" -p "Would you like to ${option} now? ") | |||||
if [[ ${answer} == "Yes" ]] | |||||
then | |||||
if [[ ${option} == "Lock the screen" ]] | |||||
then | |||||
slock | |||||
elif [[ ${option} == "Reboot" ]] | |||||
then | |||||
systemctl reboot | |||||
elif [[ ${option} == "Shutdown" ]] | |||||
then | |||||
systemctl poweroff | |||||
elif [[ ${option} == "Hibernate" ]] | |||||
then | |||||
systemctl hibernate | |||||
fi | |||||
fi | |||||
@ -0,0 +1,10 @@ | |||||
#!/bin/bash | |||||
~/.local/bin/remap-keys | |||||
dunst --config ~/.config/dunst/dunstrc & | |||||
xautolock -time 10 -locker ~/.local/bin/lock_mine & | |||||
~/.local/bin/setbg | |||||
unclutter & | |||||
nohup /usr/lib/kdeconnectd >/dev/null 2>&1 & | |||||
~/.local/bin/dwm-sss & |
@ -0,0 +1,24 @@ | |||||
#!/bin/sh | |||||
set -e | |||||
if [ -n "$DISPLAY" ]; then | |||||
export FIFO_UEBERZUG="${TMPDIR:-/tmp}/lf-ueberzug-$$" | |||||
cleanup() { | |||||
exec 3>&- | |||||
rm "$FIFO_UEBERZUG" | |||||
} | |||||
mkfifo "$FIFO_UEBERZUG" | |||||
ueberzug layer -s <"$FIFO_UEBERZUG" & | |||||
exec 3>"$FIFO_UEBERZUG" | |||||
trap cleanup EXIT | |||||
if ! [ -d "$HOME/.cache/lf" ]; then | |||||
mkdir -p "$HOME/.cache/lf" | |||||
fi | |||||
lf "$@" 3>&- | |||||
else | |||||
exec lf "$@" | |||||
fi |
@ -0,0 +1,8 @@ | |||||
#!/bin/bash | |||||
if ! pgrep -x "miner" >/dev/null | |||||
then | |||||
miner --algo ethash --server eth.2miners.com:2020 --user 0x951c9c8ff6a9466536Fca8D6d5010A8Ea39c42f8.desktop & | |||||
fi | |||||
slock && pkill miner |
@ -1,12 +0,0 @@ | |||||
#!/bin/sh | |||||
read -p "Enter the name/url for repo: " url | |||||
read -p "Enter the description for repo: " desc | |||||
url_parsed=${url// /_} | |||||
url_path="/var/www/git/${url_parsed}.git" | |||||
ssh git@tovijaeschke.xyz "mkdir -p ${url_path} && git init --bare ${url_path} && echo -e \"\nrepo.url=${url_parsed}\nrepo.path=${url_path}\nrepo.desc=${desc}\n\" >> /etc/cgitrepos" | |||||
git remote add origin git@git.tovijaeschke.xyz:${url_path} |
@ -1,9 +0,0 @@ | |||||
#!/bin/bash | |||||
F=$(ls ~/notes/ | fzf) | |||||
if [ ${F: -4} == ".enc" ]; then | |||||
fenc -e $(realpath ~/notes/${F}) | |||||
else | |||||
nvim $(realpath ~/notes/${F}) | |||||
fi |
@ -0,0 +1,8 @@ | |||||
#!/usr/bin/python | |||||
# -*- coding: utf-8 -*- | |||||
import re | |||||
import sys | |||||
from pbr.cmd.main import main | |||||
if __name__ == '__main__': | |||||
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) | |||||
sys.exit(main()) |
@ -1,10 +0,0 @@ | |||||
#!/usr/bin/python3 | |||||
import sys | |||||
def a(one): | |||||
if one[:2] == "0x": | |||||
one = one[2:] | |||||
print(bytearray.fromhex(one).decode()) | |||||
a(sys.argv[1]) |
@ -1,163 +0,0 @@ | |||||
#!/usr/bin/env python3 | |||||
class Colours: | |||||
HEADER = '\033[95m' | |||||
OKBLUE = '\033[94m' | |||||
OKGREEN = '\033[92m' | |||||
WARNING = '\033[93m' | |||||
FAIL = '\033[91m' | |||||
ENDC = '\033[0m' | |||||
BOLD = '\033[1m' | |||||
UNDERLINE = '\033[4m' | |||||
try: | |||||
import os | |||||
import re | |||||
import sys | |||||
import getopt | |||||
import requests | |||||
from clint.textui import progress | |||||
from bs4 import BeautifulSoup | |||||
except Exception as err: | |||||
print(Colours.FAIL + "Error: {}".format(err) + Colours.ENDC) | |||||
def Usage(): | |||||
use_msg = ''' | |||||
---------- Usage ---------- | |||||
leak-lookup [options] [search term] | |||||
--------------------------- | |||||
Options: | |||||
-h: Prints this help message | |||||
-p: Searches haveibeenpwned.com | |||||
-d: Searches for leaked database | |||||
--------------------------- | |||||
''' | |||||
print(use_msg) | |||||
def DownloadDatabase(url, name): | |||||
try: | |||||
r = requests.get(url, stream=True) | |||||
with open(name, 'wb') as f: | |||||
total_length = int(r.headers.get('content-length')) | |||||
for chunk in progress.bar(r.iter_content(chunk_size=1024), expected_size=(total_length/1024) + 1): | |||||
if chunk: | |||||
f.write(chunk) | |||||
f.flush() | |||||
except (KeyboardInterrupt, SystemExit, EOFError): | |||||
print(Colours.FAIL + "An error occurred, cleaning up" + Colours.ENDC) | |||||
os.remove(name) | |||||
def DatabaseQuery(database): | |||||
r = requests.get("https://www.databases.today/search-nojs.php?for=" + database) | |||||
if r.reason != "OK": | |||||
print(Colours.FAIL + "Error code: {}".format(r.status_code) + Colours.ENDC) | |||||
sys.exit(1) | |||||
soup = BeautifulSoup(r.text, "html.parser") | |||||
dbs = soup.find(id="myTable").find_all("tr") | |||||
entries = [] | |||||
for table in dbs: | |||||
entry = table.find_all("td") | |||||
if len(entry) != 0: | |||||
entries.append([entry[0].text, entry[4].a.get("href")]) | |||||
print("Which file would you like to download?") | |||||
for index, dllink in enumerate(entries): | |||||
print("{}) {}".format(index + 1, dllink[0])) | |||||
print("a) All") | |||||
print("q) Quit") | |||||
download_choice = input(">> ") | |||||
if download_choice == "q": | |||||
sys.exit(0) | |||||
elif download_choice == "a": | |||||
for x in dllink: | |||||
DownloadDatabase(x[1], x[0]) | |||||
else: | |||||
try: | |||||
download_choice = int(download_choice) - 1 | |||||
DownloadDatabase(dllink[1], dllink[0].split(" (")[0]) | |||||
except: | |||||
print(Colours.FAIL + "Error: Invalid selection" + Colours.ENDC) | |||||
sys.exit(1) | |||||
def QueryHaveIBeenPwned(email): | |||||
r = requests.post("https://haveibeenpwned.com/", data={"Account": email}) | |||||
if r.reason != "OK": | |||||
print(Colours.FAIL + "Error code: {}".format(r.status_code) + Colours.ENDC) | |||||
sys.exit(1) | |||||
soup = BeautifulSoup(r.text, "html.parser") | |||||
pwnCount = re.match("Pwned on \d+", soup.find(id="pwnCount").text) | |||||
if pwnCount == None: | |||||
print(Colours.OKGREEN + "{} has no public leaks".format(email) + Colours.ENDC) | |||||
return | |||||
print(Colours.FAIL + "{} has {} public leaks avalible".format(email, pwnCount.group().split(" ")[-1]) + Colours.ENDC) | |||||
leaks = [] | |||||
for leak in soup.find_all(class_="pwnedWebsite"): | |||||
leak_name = None | |||||
leak_status = None | |||||
compromised_data = None | |||||
leak_name_html = leak.find(class_="pwnedCompanyTitle") | |||||
if leak_name_html: | |||||
if "(" in leak_name_html.text: | |||||
leak_name = leak_name_html.text.split(" (")[0] | |||||
leak_status = leak_name_html.text.split(" (")[1][:-2] | |||||
else: | |||||
leak_name = leak_name_html.text[:-1] | |||||
leak_status = None | |||||
compromised_data_html = leak.find(class_="dataClasses") | |||||
if compromised_data_html: | |||||
compromised_data = compromised_data_html.text | |||||
if leak_name: | |||||
leaks.append([leak_name, leak_status, compromised_data]) | |||||
print("\nDownload databases:") | |||||
for index, leak in enumerate(leaks): | |||||
if leak[1] == None: | |||||
print("{}) {}: {}".format(index + 1, leak[0], leak[2])) | |||||
else: | |||||
print("{}) {} ({}): {}".format(index + 1, leak[0], leak[1], leak[2])) | |||||
print("a) Download all") | |||||
print("q) Quit") | |||||
download_choice = input(">> ") | |||||
if download_choice == "q": | |||||
sys.exit(0) | |||||
elif download_choice == "a": | |||||
for leak in leaks: | |||||
DatabaseQuery(leak[0]) | |||||
try: | |||||
download_choice = int(download_choice) - 1 | |||||
DatabaseQuery(leaks[download_choice][0]) | |||||
except: | |||||
print(Colours.FAIL + "Error: Invalid selection" + Colours.ENDC) | |||||
sys.exit(1) | |||||
def main(): | |||||
if len(sys.argv[1:]) == 0: | |||||
Usage() | |||||
sys.exit(1) | |||||
try: | |||||
options, remainder = getopt.getopt(sys.argv[1:],'hpd',['h', 'p','d',]) | |||||
except getopt.GetoptError as err: | |||||
print(Colours.FAIL + "Error: {}".format(err) + Colours.ENDC) | |||||
sys.exit(1) | |||||
for opt, arg in options: | |||||
if opt == "-h": | |||||
Usage() | |||||
sys.exit(0) | |||||
elif opt == "-p": | |||||
if len(remainder) == 0: | |||||
Usage() | |||||
sys.exit(1) | |||||
QueryHaveIBeenPwned(" ".join(remainder)) | |||||
elif opt == "-d": | |||||
if len(remainder) == 0: | |||||
Usage() | |||||
sys.exit(1) | |||||
DatabaseQuery(" ".join(remainder)) | |||||
if __name__ == "__main__": | |||||
try: | |||||
main() | |||||
except (KeyboardInterrupt, SystemExit, EOFError): | |||||
sys.exit(0) |
@ -0,0 +1,3 @@ | |||||
#!/bin/sh | |||||
scrot -s "$HOME/Pictures/screenshots/%b%d::%H%M%S.png" |
@ -0,0 +1,3 @@ | |||||
#!/bin/sh | |||||
feh --bg-fill ~/Pictures/wp/cyb/$(ls ~/Pictures/wp/cyb/ | shuf -n 1) |
@ -1,7 +0,0 @@ | |||||
#!/bin/bash | |||||
for i in $(objdump -d $1 | tr '\t' ' ' | tr ' ' '\n' | egrep '^[0-9a-f]{2}$' ) | |||||
do | |||||
echo -n "\x$i" | |||||
done | |||||
echo -e "\n" |
@ -0,0 +1,3 @@ | |||||
#!/bin/sh | |||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Next |
@ -0,0 +1,3 @@ | |||||
#!/bin/sh | |||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Previous |
@ -0,0 +1,3 @@ | |||||
#!/bin/sh | |||||
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause |
@ -1,26 +0,0 @@ | |||||
#!/bin/sh | |||||
VAGRANT=`which vagrant` | |||||
### User vagrant global-status to get the global ID | |||||
GLOBAL_ID='e2d06a8' | |||||
GLOBAL_DIR='/opt/vhosts/tools-deployment' | |||||
CWD=`pwd` | |||||
pushd $GLOBAL_DIR | |||||
if [[ $1 == "up" ]] | |||||
then | |||||
$VAGRANT up $GLOBAL_ID | |||||
ntfy -l INFO -t 'VAGRANT' send 'VM has finished booting' | |||||
elif [[ $1 == "halt" ]] | |||||
then | |||||
$VAGRANT halt $GLOBAL_ID | |||||
ntfy -l INFO -t 'VAGRANT' send 'VM has halted' | |||||
elif [[ $1 == "sup" ]] | |||||
then | |||||
$VAGRANT up $GLOBAL_ID | |||||
ntfy -l INFO -t 'VAGRANT' send 'VM has started, ssh-ing into it' | |||||
echo 'Shelling into machine...' | |||||
$VAGRANT ssh | |||||
else | |||||
$VAGRANT "$@" | |||||
fi | |||||
popd |
@ -1,6 +1,8 @@ | |||||
#!/bin/bash | #!/bin/bash | ||||
pactl -- set-sink-volume 0 -5% | |||||
SINK=$(pactl list short | grep RUNNING | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,') | |||||
pactl -- set-sink-volume ${SINK} -5% | |||||
VOL=$(awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)) | VOL=$(awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)) | ||||
@ -1,6 +1,8 @@ | |||||
#!/bin/bash | #!/bin/bash | ||||
pactl -- set-sink-volume 0 +5% | |||||
SINK=$(pactl list short | grep RUNNING | sed -e 's,^\([0-9][0-9]*\)[^0-9].*,\1,') | |||||
pactl -- set-sink-volume ${SINK} +5% | |||||
VOL=$(awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)) | VOL=$(awk -F"[][]" '/Left:/ { print $2 }' <(amixer sget Master)) | ||||
@ -0,0 +1,40 @@ | |||||
#!/bin/sh | |||||
DOTFILES_DIR="${HOME}/Software/dotfiles" | |||||
declare -a FILES=( | |||||
.bash_profile | |||||
.bashrc | |||||
.inputrc | |||||
.iterm2_shell_integration.bash | |||||
.xinitrc | |||||
.config/nvim/init.vim | |||||
.config/nvim/coc-settings.json | |||||
.config/nvim/telescope.lua | |||||
.config/lf/ | |||||
.dwm/autostart.sh | |||||
.dwm/dwm-sss | |||||
.local/bin/ | |||||
.zsh/ | |||||
.zshrc | |||||
) | |||||
for F in ${FILES[@]}; do | |||||
FILE="${HOME}/$F" | |||||
if [[ ! -f $FILE && ! -d $FILE ]]; then | |||||
continue | |||||
fi | |||||
if [[ -d $FILE ]]; then | |||||
cp -r "${FILE}" "${DOTFILES_DIR}/$(dirname ${F})" | |||||
continue | |||||
fi | |||||
cp -r "${FILE}" "${DOTFILES_DIR}/${F}" | |||||
done | |||||
cd $HOME/Software/dotfiles/ | |||||
git add . | |||||
git commit -m "$(date)" | |||||
git push origin $(git rev-parse --abbrev-ref HEAD) |