Some stolen from:
Huge thank you's to the vim-ers and tmux-ers at Clock Limited for the support in getting my setup working smoothly.
Compile the statusline binary: (you will need gcc
and strip
)
$ make
Deploy dotfiles
$ make deploy
After making a change in the repo, you can redeploy the changes simply with:
$ make deploy
- Font: FiraCode Nerd Font Nerd Fonts
- go
- rust (cargo)
- exa - ls replacement Installation
- fzf Installation - NOTE neovim might install this for you in
~/.fzf
so check that first and./install
from there
- ZSH - through your distribution's package manager
- oh-my-zsh - Installation
- Prompt: Spaceship - Follow the
oh-my-zsh
git clone instructions on Spaceship - Getting Started - Plugins: zsh-syntax-highlighting - INSTALL.md
This has only been tested on v2.6. (I'll upgrade to 3.x when you pay me to)
Install TPM
$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Inside TMUX, run prefix + I
to install plugins.
/Users/jack/.tmux.conf:12: invalid option: status-attr
/Users/jack/.tmux.conf:16: invalid option: window-status-fg
/Users/jack/.tmux.conf:21: invalid option: window-status-current-fg
/Users/jack/.tmux.conf:26: invalid option: pane-border-fg
/Users/jack/.tmux.conf:27: invalid option: pane-active-border-fg
/Users/jack/.tmux.conf:30: invalid option: message-bg
/Users/jack/.tmux.conf:31: invalid option: message-fg
Install neovim nightly (>=0.8.1) and required packages
- apt: silversearcher-ag
- pip: neovim msgpack
- github: bat@^0.18.0
- snap: go
$ chmod u+x ./nvim.appimage
$ mv ./nvim.appimage ~/.local/bin/nvim
$ sudo apt install -y silversearcher-ag python3-pip
$ pip3 install neovim msgpack --upgrade
$ sudo snap install go --classic
$ <download and install github packages>
Once in vim, the language servers should be installed automatically. If not, refer to lsp.lua
, and manually install using:
:LspInstall tsserver cssls yamlls clangd bashls html jsonls vimls arduino_language_server
...etc...
# This one is for linting
:LspInstall efm
A number of programs supplement LSP setup in either linting or formatting:
- apt: shellshock
- go: mvdan.cc/sh/v3/cmd/shfmt@latest
For arduino_language_server
:
- Set up the arduino-cli - I set
BINDIR=~/.local/bin
- Add a Makefile like this project
- Run
make compile
, and it will use the output for LSP
<CTRL>+<SPACE>
whilst in insert mode to show autocomplete.
Hover and press K
to view definition
To use the wp
function you'll need to copy .secrets.tpl
to .secrets
and edit accordingly.
This assumes the following files are available and match the format expected:
File | Use |
---|---|
/sys/class/power_supply/AC/online | '1' if AC is connected |
/sys/class/power_supply/BAT0/capacity | Battery % |
/sys/class/hwmon/hwmon5/temp1_input | CPU Temp (make sure this is the right one) |
/proc/acpi/ibm/fan | Fan info, RPM on line 2 |
/proc/net/dev_snmp6/wg0 | Used to infer VPN status, using WireGuard |
In addition to this you must be on Linux with:
- a wireless driver compatible with:
- ioctl
SIOCGIWESSID
to obtain ESSID - ioctl
SIOCGIWSTATS
to obtain signal level
- ioctl
- A kernel that utilises
sys/sysinfo.h
correctly
If you want accurate sunrise/sunset clock colours, edit LAT
and LNG
in statusline.c
.
Awww sheet, you want to use my dotfiles?
prefix
is set to C-a
.
Plugins:
- tmux-plugins/tpm (plugins)
- tmux-plugins/tmux-sensible (sensible defaults)
- tmux-plugins/tmux-resurrect (setup persistence pt 1)
- tmux-plugins/tmux-continuum (setup persistence pt 2)
- tmux-plugins/tmux-sessionist (session management)
- tmux-plugins/tmux-pain-control (easy pane bindings)
- christoomey/vim-tmux-navigator (vim & tmux navigation)
Command | Action |
---|---|
prefix + I |
Install plugins |
prefix + r |
Reload .tmux.conf |
prefix + g |
Switch session with fuzzy matcher |
prefix + s |
View session list |
prefix + S |
Swap to most recent session |
prefix + C |
Create new session |
prefix + c |
Create new window |
prefix + X |
Kill current session |
prefix + # |
Switch to window no. # (where # is a number) |
prefix + - |
Split window horizontally |
prefix + | |
Split window vertically |
prefix + z |
Zoom/unzoom a pane |
prefix + C-s |
Save sessions |
prefix + C-r |
Restore sessions |
prefix + [ |
Swap split right |
prefix + ] |
Swap split left |
prefix + |
todo... |