Giter Site home page Giter Site logo

cictema / dotfiles-reference Goto Github PK

View Code? Open in Web Editor NEW

This project forked from davidosomething/dotfiles

0.0 0.0 0.0 84.47 MB

mac OS, Arch Linux, and Debian/Ubuntu

Home Page: https://github.com/davidosomething/dotfiles

Shell 12.19% JavaScript 40.80% Ruby 0.06% Perl 0.06% PHP 0.15% Lua 7.39% CoffeeScript 0.01% TypeScript 0.05% CSS 4.81% HTML 10.33% Vim Script 24.15% Rich Text Format 0.01% Vim Snippet 0.01%

dotfiles-reference's Introduction

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

dotfiles-reference's People

Contributors

davidosomething avatar renovate-bot avatar pyup-bot avatar dotrakoun-clearstreet avatar renovate[bot] avatar greenkeeper[bot] avatar dependabot[bot] avatar cystema avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.