Skip to content

craigjperry2/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

Repository files navigation

Previous version archived at https://github.com/CraigJPerry/dotfiles (I lost access to CraigJPerry a good while ago)

My cross platform (Linux, MacOS, Solaris, Windows, FreeBSD, OpenBSD) user configuration files. 2021 Update: some more OS's join AIX & OpenVMS in succumbing to inevitable attrition

Changes for 2022

  • neovim is still my vim of choice but my experiment with neovim + LSP is over, back to VSCode
  • I revisited Intellij (primary IDE 2012-2020) after an 18 month hiatus and i've decided to stay with VSCode for Go, Python & JS/TS
  • VSCode takes on extended responsibilites now as my visual diff & merge tool - i test drove kdiff3, meld & beyond compare before settling on VSCode
  • zsh is still my default shell (was bash 1999-2021) but i'm not sure i exploit it much beyond p10k, the better parameter expansion and marginally better completion vs. bash
  • I've really settled into tmux now
  • Emacs has been catching my eye of late, i've been playing with spacemacs since starting with Common Lisp last year. I don't really want to go all-in on emacs though
  • jq is getting more usage now, i've been doing more JSON stuff and sqlite's json facilities are good but jq is easier usually
  • Still experimenting with various rust tools, bat, exa, delta, dust, fd, hyperfine & ripgrep are all solid:
    • cargo install bandwhich bat broot bottom git-delta deno du-dust exa fd-find gping grex hyperfine procs ripgrep sd tokei xh xsv ytop

Changes for 2021

  • vim is replaced with neovim
  • I've ditched bash, i'm now a zsh kinda guy:
    • I prefer the completion facilities
    • I really like the glob extensions, i can replace find so no more tripping over differences between GNU find and BSD find
    • The zmv, zcalc stuff i'm undecided on whether it's useful
    • The zftp and the zsh modules stuff i will not use - that's taking shell too far IMO, i'd rather use a more ergonomic language like Python for more advanced scripting
    • The more ergonomic parameter expansion could be handy
    • The above is all lies to justify rocking a bling eye-candy powerline10k prompt
  • screen is gone, tmux won
  • I'm more assertive about using vim keybindings everywhere so i don't need to learn new keybindings for every tool

Philosophy

  1. Document everything, use long-hand options where possible. I want to be able to grok even the obscure bits months from now.
  2. Don't be too opinionated, don't go remapping keys willy-nilly, it'll just cause pain when you have to use someone else's session.

Installation

Comes with (optional) ansible playbook install.yml to automate the installation of dotfiles and associated setup tasks.

[testing@r4 ~]$ git clone https://github.com/CraigJPerry/dotfiles.git .dotfiles
[testing@r4 ~]$ cd .dotfiles
[testing@r4 .dotfiles]$ ansible-playbook --connection=local --inventory-file=localhost, install.yml

PLAY [localhost] **************************************************************

GATHERING FACTS ***************************************************************
ok: [localhost]

TASK: [INSTALL DOTFILES | Link New Dotfiles] **********************************
ok: [localhost] => (item={'dest': '.bashrc', 'source': 'bashrc'})
ok: [localhost] => (item={'dest': '.bash_profile', 'source': 'bash_profile'})
ok: [localhost] => (item={'dest': '.bash_logout', 'source': 'bash_logout'})
ok: [localhost] => (item={'dest': '.gitconfig', 'source': 'gitconfig'})
ok: [localhost] => (item={'dest': '.vimrc', 'source': 'vimrc'})
ok: [localhost] => (item={'dest': '.conkyrc', 'source': 'conkyrc'})
ok: [localhost] => (item={'dest': '.config/autostart/conky.desktop', 'source': 'conky.desktop'})

TASK: [CONKY | Install Conky] *************************************************
ok: [localhost]

TASK: [INSTALL VIM PLUGINS | Pre-requisite RPMs] ******************************
ok: [localhost] => (item=vim-enhanced,python-pip)

TASK: [INSTALL VIM PLUGINS | Pre-requisite Python Modules] ********************
ok: [localhost] => (item=jedi)
ok: [localhost] => (item=pylint)
ok: [localhost] => (item=pep8)

TASK: [INSTALL VIM PLUGINS | Vim Bundle Directory] ****************************
ok: [localhost]

TASK: [INSTALL VIM PLUGINS | Vundle Plugin Manager] ***************************
ok: [localhost]

TASK: [INSTALL VIM PLUGINS | Install Vundle Bundles] **************************
skipping: [localhost]

TASK: [DIRS | Github] *********************************************************
ok: [localhost]

TASK: [DIRS | Gists] **********************************************************
ok: [localhost]

TASK: [DIRS | Local] **********************************************************
ok: [localhost]

TASK: [SSH | Check Key] *******************************************************
ok: [localhost]

TASK: [SSH | Make dir] ********************************************************
skipping: [localhost]

TASK: [SSH | Generate Key] ****************************************************
skipping: [localhost]

PLAY RECAP ********************************************************************
localhost                  : ok=11   changed=0    unreachable=0    failed=0

You could copy the files instead, but you'll have to do any other setup manually.

Tools

  • Shell: zsh
  • Editor: neovim, VSCode (with VSCodeVim for now but considering the neovim plugin, i miss my :g command)
  • File Manager: nnn i recompile this with O_NERD=1
  • Terminal Multiplexer: tmux
  • Keyboard Macros
    • Windows: AHK
    • MacOS: Karabiner Elements + MacOS Keyboard Text shortcuts (which i discovered iCloud sync to iOS, natch!!)
  • Misc CLI Handy Tools
    • GNU units: the ultimate conversion calculation tool
    • JSON
      • jq: I still use this as if its only feature were python -m json.tool, i should invest some time
      • gron: Make json grep-able
    • pipx: Don't manually manage virtualenvs for python tools
      • datasette: sqlite+web tool for data analysis
      • poetry: Python dependency management automation
      • httpie: Convenience for working with APIs
      • ansible: i still occasionally have nightmares about CFEngine3, the GitOps ideas are bringing iterative convergence back and i'm shook
    • lnav: logfile navigator, you don't regexp your way to the next minute/hour/error/whatever in a log, it has keybindings and teleports you instantly. The real killer feature is annotating logs with comments. Why did it take me so long to find this tool...

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published