@ -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 | |||
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 ="," | |||
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 | |||
function! Cond(cond, ...) | |||
let opts = get(a:000, 0, {}) | |||
return a:cond ? opts : extend(opts, { 'on': [], 'for': [] }) | |||
endfunction | |||
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 'darrikonn/vim-gofmt', { 'do': ':GoUpdateBinaries' } | |||
call plug#end() | |||
let g:airline_powerline_fonts=1 | |||
call plug#end() | |||
" 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 | |||
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)) | |||
@ -1,6 +1,8 @@ | |||
#!/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)) | |||
@ -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) |