All Projects → davidosomething → dotfiles

davidosomething / dotfiles

Licence: other
mac OS, Arch Linux, and Debian/Ubuntu

Programming Languages

Vim Script
2826 projects
shell
77523 projects
lua
6591 projects
javascript
184084 projects - #8 most used programming language
PHP
23972 projects - #3 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to dotfiles

Fzf
🌸 A command-line fuzzy finder
Stars: ✭ 40,965 (+14223.43%)
Mutual labels:  tmux, fzf
Black Void Zsh
🔮 Awesome, Customable Zsh Starter Kit 🌠🌠
Stars: ✭ 206 (-27.97%)
Mutual labels:  tmux, fzf
Dotfiles
If there is a shell, there is a way!
Stars: ✭ 112 (-60.84%)
Mutual labels:  tmux, hammerspoon
tmuxinator-fzf-start
Uses fzf to provide a selection list for starting tmuxinator projects
Stars: ✭ 31 (-89.16%)
Mutual labels:  tmux, fzf
dotstow
dotfiles managed with stow
Stars: ✭ 60 (-79.02%)
Mutual labels:  tmux, fzf
Dotfiles
My dotfiles 🚀. Includes configs for neovim, tmux, zsh, alacritty and more.
Stars: ✭ 47 (-83.57%)
Mutual labels:  tmux, fzf
Tmux 1password
🔑 Access your 1Password login items within tmux!
Stars: ✭ 167 (-41.61%)
Mutual labels:  tmux, fzf
dotfiles
🗿 dotfilery, configuration, environment settings, automation, etc. 🛖
Stars: ✭ 67 (-76.57%)
Mutual labels:  tmux, hammerspoon
dotfiles
The config that makes me a productivity whiz 🧙‍♂️
Stars: ✭ 36 (-87.41%)
Mutual labels:  tmux, hammerspoon
dotfiles
github.com/casprwang/dotfiles
Stars: ✭ 30 (-89.51%)
Mutual labels:  tmux, hammerspoon
Fzf Tab
Replace zsh's default completion selection menu with fzf!
Stars: ✭ 761 (+166.08%)
Mutual labels:  tmux, fzf
nvim configration
Neovim diy develop enviroment.This project integrates neovim tmux zsh and some very useful plugs of them including YouCompleteMe FZF auto pairs nerdtree ncm2 and so on.
Stars: ✭ 22 (-92.31%)
Mutual labels:  tmux, fzf
Jarvis
Dotfiles for a powerful, web development-focused environment powered by Neovim, iTerm2, tmux, and zsh
Stars: ✭ 617 (+115.73%)
Mutual labels:  tmux, fzf
Dotfiles
Workstation configuration, provisioning and tools
Stars: ✭ 67 (-76.57%)
Mutual labels:  tmux, fzf
Tmux Fzf
Use fzf to manage your tmux work environment!
Stars: ✭ 266 (-6.99%)
Mutual labels:  tmux, fzf
Dots
Personal *nix configuration files
Stars: ✭ 136 (-52.45%)
Mutual labels:  tmux, fzf
viconf
My (n)Vim config files
Stars: ✭ 18 (-93.71%)
Mutual labels:  tmux, fzf
dotfiles
💎 My vim/neovim, fish, git, and tmux configuration files
Stars: ✭ 49 (-82.87%)
Mutual labels:  tmux, hammerspoon
Tmux Fzf Url
🚀 Quickly open urls on your terminal screen!
Stars: ✭ 227 (-20.63%)
Mutual labels:  tmux, fzf
dotfiles
No description or website provided.
Stars: ✭ 20 (-93.01%)
Mutual labels:  tmux, fzf

dotfiles

My dotfiles. https://github.com/davidosomething/dotfiles

terminal screenshot

Screenshot of my ZSH prompt

My /uses post my be of interest to you!

Installation

See macOS specific notes in mac/README.md

Generally:

git clone https://github.com/davidosomething/dotfiles ~/.dotfiles

Then, run the bootstrap/symlink script for linux or bootstrap/mac for macOS.

After symlinking, bootstrap/cleanup can detect and move pre-existing dotfiles that conflict with these (mac does this).

Dev environment setup

After symlinking and restarting shell, aliases will be available. The sshkeygen alias will help in generating a new SSH key.

ruby

For user-land ruby, install ruby-build, its dependencies, and asdf and asdf-ruby. Use asdf to install ruby.

node

For user-land node, install fnm using bootstrap/fnm

python

For user-land python, use pyenv-installer to install pyenv and pyenv-virtualenv.

Create virtualenvs for Neovim using bootstrap/pyenv

Provisioning scripts

These will assist in installing packages and dotfiles. Best to have the environment set up first.

Updating

u is an alias to dot. Use u without arguments for usage.

Notes

  • bin/
    • There's a readme in bin/ describing each script/binary. This directory is in the $PATH.
  • local/
    • Unversioned folder, put zshrc, bashrc, npmrc, and gitconfig here and they will be automatically sourced, LAST, by the default scripts. No dots on the filenames.
  • git/
    • The comment character is # instead of ; so I can use Markdown in my commit messages without trimming the headers as comments. This is also reflected in a custom Vim highlighting syntax in vim/after/syntax/gitcommit.vim.
  • python/
  • vim/
    • If curl and git are available, vim-plug can automatically download and install itself on first run. See vim/README.md for more information.

rc script source order

If you have node installed, the dkosourced command will show you (not exhaustively) the order scripts get sourced. Without node echo $DKO_SOURCE works.

For X apps (no terminal) the value may be:

/etc/profile
.xprofile
  shell/vars
    shell/xdg

Shell script code style

  • Script architecture
    • Use the #!/usr/bin/env bash shebang and write with bash compatibility
    • Create a private main function with the same name as the shell script. E.g. for a script called fun, there should be a __fun() that gets called with the original arguments __fun $@
    • Two space indents
    • Prefer . over source
  • Function names
    • For private functions in a script, use two underscores __private_func() These function names are safe to reuse after running the script once. When namespaced, they are in the form of __dko_function_name().
  • Variable interpolation
    • Always use curly braces around the variable name when interpolating in double quotes.
  • Variable names
    • Stick to nouns, lower camel case
  • Variable scope
    • Use local and readonly variables as much as possible over global/shell-scoped variables.
  • Comparison
    • Not strict on POSIX, but portability
    • Do NOT use BASH arrays, use ZSH or Python if need something complicated
    • Use BASH == for string comparison
    • Use BASH (( A == 2 )) for integer comparison (note not $A, $ not needed)

Credits

Logo from jglovier/dotfiles-logo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].