/dotfiles-mac

These are some of my dotfiles

Primary LanguageShell

dotfiles

Contents

There are several more configuration file than the ones listed in contents. These are the ones that have been configured the most.

Colorschemes

iTerm Color

  • The actual colors may not match the displayed colors
  • The iterm theme file can be found here

Displayed Colors

{b,f}ground Red Green Yellow Blue Magenta Cyan
#221a02 #dc3958 #088649 #f79a32 #733e8b #7e5053 #088649
#221a02 #dc3958 #088649 #f79a32 #733e8b #7e5053 #088649
#c2a383 #f14a68 #a3b95a #f79a32 #dc3958 #fe8019 #4c96a8
#c2a383 #f14a68 #a3b95a #f79a32 #dc3958 #fe8019 #4c96a8

Neovim Color

Plug 'lmburns/kimbox'
colorscheme kimbox

Displayed Colors

#39260E #291804 #EF1D55 #DC3958 #FF5813 #FF9500 #819C3B
#39260E #291804 #EF1D55 #DC3958 #FF5813 #FF9500 #819C3B
#7EB2B1 #4C96A8 #98676A #A06469 #7F5D38 #A89984 #D9AE80
#7EB2B1 #4C96A8 #98676A #A06469 #7F5D38 #A89984 #D9AE80

Karabiner

  • Karabiner is a very useful utility on MacOS that allows for global keybindings.
  • The keybindings that are there mimic Vim's functionality when holding caps lock.
  • When ⇪ Caps lock is held down it is mapped to:
    • ⌃ Control + ⌥ Option + ⌘ Command + ⇧ Shift
  • When ⇪ Caps lock is pressed it is mapped to ⎋ Escape
  • To get ⇪ Caps lock you need to press left ⇧ Shift then right ⇧ Shift
  • While holding ⇪ Caps lock, pressing the following keys will do these actions:
Main Karabiner Mappings
Key Action
j down
k up
h left
l right
0 beginning of line
4 end of line (close enough to $)
gg beginning of document
G end of document
b move backwards a word
w move forward a word
u highlight all words to the left
i highlight one word to the left
o highlight one word the right
p highlight all words to the right
yy copy
J ⌥ Option + ⌃ Control +
K ⌥ Option + ⌃ Control +
Other Karabiner Mappings
Other mappings Action
Cmd + qq quit app
Cmd + ww close window of app

The ⌥ Option + ⌃ Control + Arrow mappings are significant if you have this sequence mapped to changing tabs in iTerm. I just find this a little easier to do instead of moving my fingers off of the home row.


skhd

  • skhdrc
  • Hyper = Ctrl + Alt + Cmd + Shift
Overall keybindings
Keys Action
Ctrl + Alt + Cmd + r Restart yabai
Hyper + Backspace Close window
L-Ctrl + Alt + g Toggle gaps
Swapping windows keybindings
Swapping
Hyper + = Swap south
Hyper + - Swap north
Hyper + [ Swap west
Hyper + ] Swap east
Shift + Alt h Swap west
Shift + Alt j Swap south
Shift + Alt k Swap north
Shift + Alt l Swap east
Focusing windows keybindings
Focusing
Alt + h Focus west
Alt + j Focus south
Alt + k Focus north
Alt + l Focus east
Hyper + a Focus recent
Resizing windows keybindings
Resizing
L-Ctrl + Alt + h Resize -20 left
L-Ctrl + Alt + h Resize -20 right
L-Ctrl + Alt + j Resize 20 bottom
L-Ctrl + Alt + j Resize 20 top
L-Ctrl + Alt + k Resize -20 right
L-Ctrl + Alt + k Resize -20 right
L-Ctrl + Alt + l Resize 20 right
L-Ctrl + Alt + l Resize 20 right
L-Ctrl + Alt + 0 Equalize
Floating windows keybindings
Floating
Shift + Alt + Space Toggle float
Shift + Alt + c Float & Center
Hyper + e Resize floating window
Hyper + 1 Float & keep same position
Moving windows keybindings
Moving Window
Hyper + f Fullscreen
Hyper + r Rotate 90 degrees
Shift + Alt + x Mirror x-axis
Shift + Alt + y Mirror y-axis
Window stacks keybindings
Stacks
Hyper + s Toggle stack
Hyper + m Go to next window (in or out of stack)
Hyper + n Go to prev window (in or out of stack)
Hyper + Space Toggle focus on stack

Neovim

Neovim Keybindings

Keybindings
Mapping Action Mode
F1 run file as ./ n
F2 turn on/off wrapping n
F3 turn on/off relative line numbers n
F4 compile markdown using pandoc
F9 get syntax name / attributes of hover n
F10 spellcheck
gkk move to previous blank line n
gjj move to next blank line n
H move to first character on line nv
L move to last character on line nv
ctrl + s save file nvi
S replace all n
Leader + sr replace what's under cursor n
Leader + Q replace single quotes with double n
⇥ Tab indent nvi
⇧ Shift + ⇥ Tab de-indent nvi
d delete line not to clipboard nv
Y yank line without newline n
x cut not to clipboard n
E delete line, keeping cursor on line n
gV reselect text that has just been pasted n
vv select first char to last char on line n
Leader + sa add space after character n
q: / Q: quit n
Q play macro recording nv
qq / q start / stop macro n
Leader + nt create new tab using FZF n
Leader + to leave open only current tab n
Leader + tc close current tab n
Leaader + tn next tab n
Leader + tp previous tab n
ctrl + j move down window ni
ctrl + k move up window ni
ctrl + h move left window n
ctrl + l move right window n
j / k move through wrapped lines n
J / K move selected text through text v
Leader + sc run shellcheck n
Leader + vw navigate to vimwiki index n
Leader + ee coc explorer n
Leader + nn nerdtree toggle n
ctrl + k fuzzy complete word i
ctrl + f fuzzy complete line i
Leader + f fuzzy :Files n
Leader + gf fuzzy :GFiles n
Leader + L fuzzy :Locate n
ctrl + f fuzzy using rg (ripgrep) n
Leader + a fuzzy :Buffers n
Leader + A fuzzy :Windows n
Leader + ; fuzzy :BLines (buffer's lines) n
Leader + hc fuzzy :History: (command history) n
Leader + hf fuzzy :History (file history) n
Leader + mm fuzzy :Maps (view mappings) n
f easymotion - forward char n
s easymotion - vim-sneak n
Leader + G Goyo - on & off n
jk / kj ESC iv
Leader + ut view undotree n
Leader + ma open vim magit (git diffs) n
) / ( next / prev gitgutter hunk n
gm :LivedownToggle (preview html) n
Leader + br open bracey (view live html) n
Leader + r reload bracey window n
Leader + st open startify n
Ctrl + t open native terminal ni
Leader + lf open lf file manager in floatterm n
Leader + rf open ipython split view neoterm n
Leader + rf clear neoterm screen n
Leader + rt toggle neoterm on and off n
Leader + ro reset neoterm size n
Leader + I jump between markdown headers n
Leader + nv edit $MYVIMRC n
Leader + mcs open mkdx cheatsheet n
Leader + o wrap word in (["' etc. n
Leader + ci change to*` n
Alt + b ∫ telescope buffers n
Alt + f ƒ telescope find_files n
Alt + g © telescope git_files n
Alt + r ® telescope live_grep n
Alt + s ß CocFzfList symbols n
Ctrl-x + Ctrl-l CocFzfList n
Leader + y CocList yank n
Ctrl-Shift + Up vista list fzf n
Ctrl-Shift + Left :bprevious n
Ctrl-Shift + Right :bnext n
gt :bnext n
gT :bprevious n
ff open and close fold n
fl open and close all folds n
+ vertical resize +5 n
- vertical resize -5 n
s+ resize +5 n
s- resize -5 n
nt :setl noexpandtab n
re retab selection v
qc quckfix close n

Neovim Functions

Functions
Function Action
SQ SyntaxQuery - get syntax attributes of hover
IndentSize set file specific indents
Format format current buffer
Fold fold current buffer
Prettier format json file
CocMarket open coc marketplace
OR organize imports current buffer
Conf fuzzy find ~/.config
Dots dotbare (dotfile manager) edit files
EE create dir like mkdir -p
RipgrepFZF :RG with preview
PlugHelp fzf all docs for plugins

ZSH Functions

 $ pflist                                                 【  ~/.conf/zs/functions】─╯
======================================================================================
.btitle                    buku - change title
.btm                       buku - remove tags
.btp                       buku -- add tags
@append_dir-history-var    helper function for per-dir-hist
@chwpd_dir-history-var     helper function for per-dir-hist
_ex_cmd                    Helper for vbindkey (taken from marlonrichert)
acc_print                  fancify text
autoenv-files              NICHOLAS85: find all autoenv zsh files and edit
bcp                        delete (one or multiple) selected application(s)
be                         use fzf to edit bookmark with buku
bip                        brew install package fzf
bo                         use fzf to open bookmark with buku
bot                        use fzf to open bookmark with buku (search by tag first)
bow2                       a copy of bow but as a zsh func
bracketed-paste-win-path
bup                        update (one or multiple) selected application(s)
ccheat                     cheatsheet of cheat and tldr
cdown                      countdown timer
cdownq                     countdown timer; no display
cdrc                       my modification of cdr
cdreal                     cd realpath
cf                         Create lazily loaded Functions
cfile                      copy contents of file to clipboard
chpwd_ls                   func ran on every cd
codeline                   get specific lang lines colorized
delta                      delta variable column width side by side
deploy-code
docka                      select a docker container to start and attach to
dockrm                     select a docker container to remove
dockrmi                    select a docker image or images to remove
docks                      select a running docker container to stop
exchange                   swap files
fbd                        cd to selected parent directory
fcd                        change directories with fzf
fcd-zle                    change directories with fzf
fcq                        use copyq to copy clipboard with fzf
fcs                        get git commit sha
fed                        open the selected file with the default editor
fenv                       search environment vars with fzf
ffig                       figlet font selector
fif                        using ripgrep combined with preview
fim                        open script in editor (this one does functions)
fjj                        autojump fzf
fjrnl                      search JRNL headlines
fkill                      interactively kill process with fzf
flc                        lolcate fzf
fld                        lolcate fzf default (HOME)
flg                        lolcate fzf
flp                        lolcate fzf projects
fman                       fzf man pages
fmas                       install app with mas and fzf
fmates                     use fzf with mates contacts open mutt
fmpc                       fzf mpd
fpdf                       search directory for pdf and open in zathura
frd                        fzf recent directories
from-where                 tells from-where a zsh completion is coming from
fsearch                    search fonts on system
fssh                       fzf ssh
ftags                      search ctags
ftm                        create new tmux session, or switch
fzf-close                  interactively close window with fzf
g1all                      Iterates over .git directories, runs git "$@"
g1zip                      Creates basename pwd-date archive
getpid                     get pid and pipe to pstree
gkey                       print keyboard shortcuts to application - iteractive option
gman                       wrapper for gman to colorize
gnubin_off                 removes gnubins from $PATH
gnubin_on                  adds gnubins to PATH
gsha                       show sha of branch
hgrep                      grep history
hist_stat                  zsh history stats
id_process                 get num of process by id
iso2dmg                    Converts file  (iso) to .dmg
listening                  listen on port entered
listports                  list open ports
lowercasecurdir            lowercase every file in current dir
manfind                    find location of manpage
mp3                        use youtube-dl to get audio
ngu                        get git repo url
old_fk                     fzf rualdi and dirstack combined
osx-ls-download-history    list download history
paleta                     escape codes instead of prompt expansion
palette                    display colors
palette2                   palette alternative
palette::colortest         print full palette with blocks
pblist                     lists mybin funcs with their embedded descriptions
perldoc                    wrapper to colorize perldoc man pages
pflist                     lists ZDOTDIR/functions/* with their embedded descriptions
printc                     escape code for colors
prompt_my_per_dir_status   helper function for per-dir-hist
psfind                     queries mdfind by kMDItemDisplayName
rm                         remove wrapper depending on if root
rmhist                     remove a line from history
run-multi                  run tasks in parallel
sudo                       sudo wrapper to allow aliases
tab                        open new terminal tab in current dir
tm                         attach to tmux session or create new
um                         wrapper to colorize um man pages
urlshort                   shorten url with tinyurl
vbindkey                   vim bindkey
vii                        open file interactively with twf
whichcomp                  tell which completion a command is using
whim                       edit script from path
wtag                       use wutag to either edit a file or cd to dir
zdr                        fzf-extras cd to parent directory
zicompinit_fast            faster & more efficient compinit
zman                       Searches zshall with special keyword () matching
zsh-help                   easier way to access zsh manual - taken from ZSH
zstyle++
ztes                       Searches zshall with special keyword () matching
======================================================================================

All Scripts

 $ pblist                                                                              【  ~/mybin】─╯
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
backup_calcurse      bash      backup calcurse reminders
backup_crontab       sh        backup crontab
backup_pkgs          bash      backup packages from brew, cargo, gem, go, npm, pip
backup_task          sh        backup task folder
brew-pkg-size        bash      brew packages and their sizes
brew-why             bash      list all installed apps & dependencies
btc-price            bash      send email to myself of current bitcoin price
bunch_fzf            bash      bunch of
checkdns             bash      check dnsmas, stubby, and dns servers
clean-my-mac         bash      clean macos cache
compiler             sh        compiles various kinds of documents
cps                  zsh       when using a git alias for tracking dotfiles, send to multiple remotes
cryptocheck          sh        check crypocurrency prices
cryptonotify         zsh       send a notification of cryptocurrency prices
downl                sh        uses dragon to download files
fast-pp              bash      fast-p pdf finder source code
flist                bash      fzf view of script directory with descriptions
free                 python    get free memory like debian's 'free'
frm                  bash      fuzzy remove files - trash-put
ftr                  zsh       fzf trash-restore
fzf_pdf              bash      search directory for pdfs, open with zathura
gclp                 bash      git clone from clipboard
glsha                bash      copy a git commits shasum
grm                  sh        git repo manager for self-hosted git servers
gstatd               sh        directory size information
guprj                bash      upload projects to google drive
gutxt                bash      upload text files to google drive
guwww                bash      upload server to google drive
harden               sh        harden a link (convert it to a singly linked file)
html5check.py        python3   check html5 syntax
image-mag-gen        sh        search for font files and add to imagemagick
index-gen            bash      generate template for my website when creating new repo
jupsync              sh        sync jupyter notebook and python file
killport             sh        kills all processes running on the specified port
launchd-creator      bash      generate launch daemon/agent
lctl                 bash      a launchctl wrapper
lf-chdir             bash      change directories with lf file manager
lf-select            sh        reads file names from stdin and selects them in lf
lf-updater-script    sh        update lf file manager
linkhandler          sh        handle urls and do some action
lockscreen           bash      lockscreen, change wallpaper
macho                sh        fzf man pages macOS
macho-pdf            sh        fzf man pages macOS - view in zathura
mailboxes_sync       sh        count mail with mutt
manp                 bash      view manpage in zathura
manp1                bash      output manpage and view in zathura
mbsync-hook          sh        mbsync hook
mbsync-pre-post      sh        mbsync pre-post hooks
mksc                 bash      generate a script in script directory
my-pinentry          bash      choose pinentry depending on PINENTRY_USER_DATA
newsb-notifier       sh        notifications for newsboat
not-touch-hd         sh        use something without it touching harddrive
notmuch-tagging.sh   bash      tag notmuch mail
nv                   bash      open most recently viewed files in nvim with fzf
open-mutt            bash      open neomutt in new iterm window
opout                sh        open output of file for vim
osx-cmds             bash      general rules for macos
passcomp.zsh         zsh       adds call to _pass-vera completion from _pass completion
perlii               perl
pfctl-rules          sh        manipulate pfctl firewall
port-scan            bash      performs port scan using nmap
post-receive         sh        generic git post-receive hook
ppkill               sh        interactive process killer
pretty_csv           bash      create a pretty csv
proxstat             bash      see if dnsmasq stuby privoxy are on
pzz                  bash      search directory for pdf and open in zathura
qndl                 sh        queue up tasks for urls
rclg                 sh        general rclone copier
remind               bash      add reminders from command line
rf                   sh        search directory for files using ripgrep (obsolte, used fd)
rga-fzf              bash      ripgrep preview matches with fzf
rgf                  bash      interactively search files with rg (with reload)
rgfa                 bash      interactively search for files (preview on size)
rglf                 bash      ripgrep search directory for lf file manager
rgn                  bash      interactively search files with rg (with reload) no preview
rmcrap               bash      deletes .DS_Store and __MACOSX directories
rotdir               sh        rotate image order with sxiv
rss-notify           python    parse rss feeds and get notified
rssadd               zsh       add url to newsboat, mod Luke Smiths to add tags
santa-rules          bash      whitelist/blacklist apps with santactl
santa-uninstall      bash      uninstall santa-ctl
shortcuts            sh        update all shortcuts when one file is updated
small_funcs          bash      list of all kinds of small functions to work on
srv-bkp              bash      backup server
srv-up               bash      backup server
synctask             bash      sync tasks from taskwarrior to Reminders.app
take                 zsh       create directory and cd into it
todos                sh        grep for vim comments
tomb                 bash      tomb but for macOS
tordone              bash      notifier of finished torrent
torque               bash      torque - minimal tui for transmission-daemon
transadd             bash      add torrent to transmission
trns                 zsh       transission wrapper
update_block         bash      update block lists
updb                 bash      updatedb for bash, macOS is sh which it is not
webpull              sh        make a local archive of an entire website
wim                  sh        open script in editor
yabai-codesign       bash      codesign yabai
ymld                 bash      parse a yaml file
zm                   zsh       search zshall more efficiently
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

More Scripts

jupview

Meant to be used with terminal file managers (lf, nnn, ranger, vifm) without any parameters given. For example:

#!/bin/sh

handle_other() {
  case "${1}" in
    *.ipynb) jupview "${1}";;
  esac
}

This will show a preview of the .ipynb file in the terminal.

jupview preview

Usage

Options:
    -P, --pager             View .ipynb file with a pager instead of stdout
    -I, --no-input          Clear input cells of .ipynb file
    -p, --no-prompt         Clear input / output prompts
    -O, --clear-output      Clear output cells of .ipynb file
    -t, --theme             Change syntax highlighting theme (gruvbox default)