Post tags: | dotfiles |

Using justone/dotfile

Restart to handle changes better

Clone the justone master:
        git clone df
rename origin to upstream
        git remote rename origin upstream
Create repo df at github
        git remote add origin
        git push -u origin master
Create a new user to develop with

Old Notes Follow

This repo is a skeleton/template repo for tracking dotfiles. It contains a utility (dfm) to help with managing and updating your dotfiles.

Notes as of Tue Dec 30 10:42:28 MST 2014

started with fork of

dotfile folders with no secrets

Just import dotfile folders with no secrets.
        cd ~/dotfiles
        bin/dfm import .gitconfig
        bin/dfm import .i3
        bin/dfm import .vim
        bin/dfm import .vimrc

dot files/folders with secrets

Make a list of them.




List them in ~/dotfiles/.gitignore

Arrange to copy them into ~/dotfiles before running dfm install

Essential programs and dotfile candidates

  • build-essential checkinstall
  • git
  • gitlab - private gitlab servers
  • hosts - /etc/host for GCS windows host names
  • i3 - tiled window manager
  • java runtime
  • lightdm - x login manager and seed package
  • music on console
  • remmina - rdp client
  • passworddragon
  • reptyr - A tool for “re-ptying” programs
  • st - suckless simple terminal
  • supervisord - programs for boot time: mocp,weecat
  • tmux
  • vim
  • weechat
  • zsh

Personal Debian package installs

  • vim tmux git
  • build-essential checkinstall libtool automake uuid-dev
  • cifs-utils winbind
  • supervisord


Solarized color scheme

Using Solarized in Vim

terminator using solarized terminator-solarized

A color theme for terminator using Ethan Schoonover’s Solarized color scheme.

        Install the terminiator configuration file:
        mkdir -p ~/.config/terminator/
        cp config ~/.config/terminator/

terminator over ssh using solarized

vim use the power of your “terminal” to draw the characters onto the screen. thus, how the drawn chars look depend largely on what the “terminal” is capable of. the “terminal” uses an enviroment variable to tell the apps running inside it about its capabilities: TERM.

if you want to use vim to use 256 colors you need 2 things:

  • a terminal capable of rendering at least 256 colors
  • the right TERM variable (xterm-256color)
so, try this:
        export TERM=xterm-256color

Use ccrypt to encrypt secrets

There is a deb file available there.

Consider these people

  • qbit
  • Zach Holman - like his subfolder organization
  • Bobby Russel - master of oh-my-zsh - Zach recommended
  • Nate Jones - justone - dotfiles - dfm
  • xero - uses stow - uses subfolders

My thoughts evolve

A git repo for each topic.
Software built from source - not really dotfiles

What about dfm? - justone/dotfiles

This repo is a skeleton/template repo for tracking dotfiles. It contains a utility (dfm) to help with managing and updating your dotfiles.

Where to start

  • Zach Holman - like his subfolder organization
  • Ryan Bates - bash,vim,zsh,rails - Zach recommended
  • Bobby Russel - master of oh-my-zsh - Zach recommended
  • Ryan Tomayko - great documentation - many forks - Zach recommended

People / dotfiles to study

Zach Holman - Dotfiles Are Meant to Be Forked

So, organize it. Do what programmers have been doing for years: make a smart system, follow it, and let others use it too.

There’s a lot of great projects doing this:

Ryan Bates (@rbates)

Ryan Bates (@rbates) fame has his own network of 175 forks. His project centers around bash and zsh, TextMate, Vim, and Rails.

Robby Russell (@robbyrussell)

Robby Russell (@robbyrussell) started up oh-my-zsh, a community of some 250 forks surrounding zsh.

Ryan Tomayko (@rtomayko)

Ryan Tomayko (@rtomayko) open sourced his dotfiles with a great set of documentation and some 150 developers watching the repository.



gnu stow

GNU Stow is a symlink farm manager which takes distinct packages of software and/or data located in separate directories on the filesystem, and makes them appear to be installed in the same place. For example, /usr/local/bin could contain symlinks to files within /usr/local/stow/emacs/bin, /usr/local/stow/perl/bin etc., and likewise recursively for any other subdirectories such as …/share, …/man, and so on.

This is particularly useful for keeping track of system-wide and per-user installations of software built from source, but can also facilitate a more controlled approach to management of configuration files in the user’s home directory, especially when coupled with version control systems.

log on 2015-05-01

ls -R dotfiles
        dbeaver  dfm  irc  passworddragon  pw  sqlworkbench  squirrel
        lib  passworddragon.jar  pwm.ico  readme.html
        BlowfishJ.jar  jhbasic.jar  kunststoff.jar


Wed Aug 9 05:00:41 MDT 2017 [Howto] Managing dotfiles with dfm


The problem of necessary software installation is also relevant for another often mentioned solution: Homesick. Homesick is Ruby based, and works similar to the GNU Stow solution mentioned above: files are stored in a hidden subdirectory, tracked with git, and linked in $HOME. The main feature here is that it can keep the configuration files in various git repositories, called ‘castles’, so you can integrate the work of projects like oh-my-zsh.

While Homesick does offer quite some features, it is Ruby based – and I cannot expect a working Ruby environment on each system, so it is out of question. I can go with Perl or Python, but that’s about it.


Other people had the same Ruby problem and created Homeshick – a Homesick clone spelled with an additional ‘h’ and besides written in Bash. It is quite straight forward and offers all necessary features like listing and tracking various git repositories as source for dotfiles, linking the actual dotfiles to your home, and so on. This one is almost my favorite! I wouldn’t be surprised if it is the favorite for most of the users out there.


But Homeshick is only almost my favorite – meet dfm – a Utility to Manage Dotfiles! It is written in Perl and mainly does the same as mentioned above, even minus the support for more than one repository. But on the plus side it has the capability of ensuring file rights via chmod. I haven’t seen that in any other solution. Additionally it supports arbitrary scripts executed during the update process for example for host specific commands. And last but not least, using a three letter program feels, somehow, right

Try homesick

Wed Aug 9 05:07:34 MDT 2017

Have been using dfm. oh-my-zsh was problem. I do favor ruby.

But oh-my-zsh or bash-it?

Stick with bash, use bash-it

bash-it github repo