dotfiles icon indicating copy to clipboard operation
dotfiles copied to clipboard

my humble dotfiles

= Humble dotfiles

Born 2013. Written and cherry-picked with love.

== What's inside

Mostly tmux, vim, git, zsh, ruby. Should work in most Linux'es, OSX and BSD. Tested on ArchLinux, OSX 10.14 and OpenBSD.

With Awesome WM on ArchLinux:

image::.config/screenshot.jpg[Screenshot]

== Installation

git clone --recursive --depth 1 --single-branch https://github.com/pirj/dotfiles .

=== OSX specific

Tell iTunes http://superuser.com/questions/31925/what-can-i-do-to-stop-the-play-pause-button-from-opening-itunes/827710#827710[not to grab the keys]:

sudo su -
cd /Applications/iTunes.app/Contents/MacOS
mv iTunes iTunes.bak
touch iTunes
chflags uchg iTunes
chflags schg iTunes

Prevent Chrome from emailing the page when mistyping Command+Option+I with Command+Shift+I:

defaults write com.google.Chrome NSUserKeyEquivalents -dict-add 'Email Page Location' '\0'
defaults write com.google.Chrome.canary NSUserKeyEquivalents -dict-add 'Email Page Location' '\0'

https://github.com/pirj/noclamshell[No clamshell mode] (installed via brew) and https://github.com/pirj/nobacklight[no backlight trick]:

curl https://raw.githubusercontent.com/pirj/nobacklight/master/nobacklight.plist > ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/noclamshell.plist

Add the following to .ssh/config:

UseKeychain yes

== Archlinux-specific

When bootstrapping the system with pacstrap, add base-devel, git, neovim and iwd to the list of packages to install.

=== Network connection

systemctl enable iwd
systemctl start iwd

Create /etc/iwd/main.conf:

[Scan]
DisablePeriodicScan=true
[General]
EnableNetworkConfiguration=true

And run iwctl:

station wlan0 scan
station wlan0 connect <hotspot>

== Inspiration sources

I use to browse repositories on Github, and check other people's dotfiles. dotshare.it is another interesting source.

== Packages

=== On ArchLinux (pacman)

Query (-Q) package list without version numbers (-q), only those explicitly installed (-t) and not required directly by other packages (-tt), native (-n) and foreign (-m):

pacman -Qqettn >! .packages.native
pacman -Qqettm >! .packages.foreign

Install:

sudo pacman -S $(< .packages.native )
git clone https://aur.archlinux.org/aurget.git
(cd aurget && makepkg -si)
aurget -S $(< .packages.foreign )

=== On OSX (homebrew)

Show installed formulae that are not dependencies of another installed formula:

brew bundle dump

Install:

brew bundle --no-lock

== How it works

Vundle that handles Vim plugins and Antidote that handles Zsh plugins are fetched as submodules. Antidote fetches all configured Zsh plugins on first start. In Vim, :PluginInstall installs all plugins.

NeoVim requires a specific Python package to run Python plugins:

python3 -m pip install --user --upgrade pynvim

For Ruby I'm currently using RVM, but it's not in Homebrew, and it has to be installed by hand. It's tempting to switch to rbenv+ruby-build

I really hope the rest of the configuration is self-explanatory.

== About me

Phil Pirozhkov, software engineer