Giter VIP home page Giter VIP logo

dotzsh's Introduction

dotphiles

A community driven framework of dotfiles, for the usual terminal apps and shells, designed to work across multiple platforms and degrade for older versions of software or O/S, allowing you to use the same settings on all your machines.

  • Backup, restore, and sync the prefs and settings for your toolbox. Your dotfiles might be the most important files on your machine.
  • Learn from the community. Discover new tools for your toolbox and new tricks for the ones you already use.
  • Share what you've learned with the rest of us.

Example dotfiles for:

  • zsh
  • vim nano
  • git mercurial subversion
  • python ruby perl
  • screen tmux
  • mutt irssi
  • and many more!

Installation

  1. Sign up for an account on github and fork the project.

  2. Clone your fork.

    git clone --recursive [email protected]:*username*/dotphiles.git ~/.dotfiles

  3. Setup your terminal and the dotfiles you want to use, see below.

  4. Edit dotsyncrc and enable dotfiles to use.

  5. Run dotsync ./.dotfiles/dotsync/bin/dotsync -L

  6. Start a new login shell.

Configuration

dotfiles

These are the minimum files you'll want to edit

  • dotsyncrc settings for dotsync
  • zsh/zshrc settings for dotzsh
  • vim/vimrc settings for dotvim
  • and any dotfiles you enable in dotsyncrc

These are stable and reported working ...

  • aptitude - Configure aptitude
  • bin - ~/bin for scripts etc
  • ctags - Configure ctags
  • git - Configure git
  • gnupg - Configure gnupg
  • grc - Configure grc
  • input - Configure input
  • mercurial - Configure mercurial
  • mysql - Configure mysql client
  • python - Configure python
  • rpm - Configure rpm
  • ruby - Configure ruby
  • screen - Configure screen
  • shell - Generic shell config files
  • sqlite - Configure sqlite client
  • ssh - Configure ssh client
  • subversion - Configure subversion
  • tmux - Configure tmux

These probably work ...

  • ack - Configure ack - i dont use it
  • cmus - Configure cmus - i dont use it
  • curl - Configure curl - didnt work multiplatform, i dont use it anymore
  • irssi - Configure irssi - i dont use it
  • mutt - Configure mutt - i dont use it
  • nano - Configure nano - i dont use it, should work though
  • task - Configure taskwarrior - i dont use it
  • wget - Configure wget - didnt work multiplatform, i dont use it anymore

terminal

dotphiles uses the base16 color theme by default, install the colour schemes for your terminal. See deploy/terminal

vim-airline requires patched fonts for the 'fancy fonts' options, you can find links to them to install here and configure your terminal to use one, Meslo works great.

ignores

Some files that will be auto generated into the symlinked dotfiles directory should never be commited and uploaded to github.

The included .gitignore and .rsyncignore files, ignore the majority, but make sure when commiting that you dont include any personal info you dont want in public!

deploy

  • deploy/osx setup osx and install ports & brews (only use one)
  • deploy/linux setup linux and install packages
    • packages/macports add ports to be installed by osx (select one)
    • packages/homebrew add brews to be installed by osx (select one)
    • packages/apt add packages to be installed by linux on apt based systems

dotsync

See the documentation for dotsync for more information.

  • dotsyncrc

    Add dotfiles to dotsyncrc like

    [files]
    ...
    dotfile
    dir
    dir/dotfile
    ...
    [endfiles]
    

    dotsync will look for

     ~/$DOTFILES/dotfile.d/localhost
     ~/$DOTFILES/dotfile.d/$HOSTNAME
     ~/$DOTFILES/dotfile.d/$DZHOST
     ~/$DOTFILES/dotfile.d/$DOMAIN
     ~/$DOTFILES/dotfile
    

And link the first one it finds instead of the standard dotfile. The localhost dotfile will be excluded from your repo.

$DZHOST is passed to remote hosts and contains the hostname as entered in dotsyncrc

  • Usage

    Dotsync can be used to link your dotfiles into place

    • dotsync -L symlink dotfiles into place
    • dotsync -U update from github

    And update remote machines

    • dotsync -I -H hostname initialise hostname with the set of dotfiles
    • dotsync -U -H hostname update dotfiles on hostname from github
    • dotsync -I -H hostname -r initialise hostname with the set of dotfiles with rsync
    • dotsync -U -H hostname -r update dotfiles on hostname with rsync
    • dotsync -A update dotfiles on all hosts
  • Backups

    Any existing ~/.dotfiles will be backed up into ~/.backup/dotfiles/ if found

Editing

When you edit your dotfiles, you should commit the changes to git with

git commit -a

And periodically push the changes to github

git push

Updating

To keep your fork up to date with additions to the dotphiles repo, do the following

cd ~/.dotfiles
git remote add upstream https://github.com/dotphiles/dotphiles
git fetch upstream
git merge upstream/master

License

Copyright (c) 2012 dotphiles contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

dotzsh's People

Contributors

benohara avatar micampe avatar thelonelyghost avatar wesalvaro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotzsh's Issues

vim insert mode on multiline commands

When using vim bindings and in a command such as

bohara at bens-macbook-pro in ~/.dotfiles/zsh (git:masterx)

for i in 1 2 3
for> do
for> echo $i

Switching to vim command mode doesnt reflect in the RPROMPT.

how to prepend $PATH

What is the right way to do it with dotzsh? ie, i would like to add my $HOME/node_modules/bin to my $PATH. Should it be done in my customized zshenv? When I try with a simple export PATH="$HOME/$NODE_MODULES/bin:$PATH" I can see it has been included twice...

Multiple ZSH prompts with dotphiles theme

Sometimes, randomly -- after I've been using dotphiles's theme working properly for a while, this happens.

screen shot 2015-03-23 at 11 24 25 pm

I'm not sure how to debug it. It looks like two prompts are created when I'm in half screen, but when I expand it out, it shows that its actually one prompt

screen shot 2015-03-23 at 11 27 02 pm

Once it happens once, it happens over and over again, and sometimes gets bigger.
screen shot 2015-03-23 at 11 29 19 pm

Again, looks like seperate lines, but isn't, here is the same screen in a wider view.
screen shot 2015-03-23 at 11 32 00 pm

It resets on starting a new terminal, and I can't find a single cause.

Any suggestions of what I can do to figure out why it is happening?

Filesystem littered with directories named '~'

Apparently ~ does not mean the same thing as $HOME at all points in the ZSH configuration.

Expectation:

  • zsh completion stores cache in dotfile in home directory

Actual result:

  • zsh creates directory called ~ in current working directory where command was executed, then creates associated dotfiles for cache

tab_color call prints garbage to terminal

I've just forked and setup this project - which looks awesome. but my prompt is printing ]6;1;bg;*;default% on the line above the cursor.

my locale and unicode seem to be correct.
en_US.UTF-8

It seems to be line 145 of modules/terminal/init.zsh that is causing the issue
tab_reset() { echo -n -e "\033]6;1;bg;*;default\a" }

What do I have configured wrong?

Unable to use scroll wheel in man/less

I've been looking at dotzsh as a replacement to oh-my-zsh, however something I've not been able to get working is that with oh-my-zsh I can use my scroll wheel to navigate man/less. Additionally, when I quit out, the output from man/less doesn't stay in the terminal window. Not sure if theres a configuration that needs to be set, or if there's a better way to get this working.

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.