Skip to content

ithinkihaveacat/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Config files for various tools I use, or have used in the past, such as fish, git, jed, and Visual Studio Code.

It's very unlikely that anyone will want to use this directly; the more interesting directories are:

  • fish - configuration and startup files for fish shell.
  • bin - bash scripts for various things.
  • fish functions - more scripts, generally those that are awkward/impossible to write in bash.
  • etc/git/templates - git hooks
  • docker - Dockerfile

The idempotent install script handles a few different operating systems and package managers (past and present) has a some interesting constructions that may be useful.

Prerequisites

Getting locale-related errors when going through these steps?

  1. Generate missing locales: locale-gen en_GB.UTF-8
Ubuntu OS X
sudo apt-get install git-core xcode-select --install (or install Xcode)

No sudo? (If, for example, you're on a Gandi VPS.)

  1. Login as root: ssh root@server
  2. Install sudo: apt-get install sudo
  3. Edit /etc/sudoers: visudo
  4. Add the line: mjs ALL=(ALL) NOPASSWD:ALL

Ubuntu

sudo apt-get install fish

OS X

Via brew:

brew install fish
# add fish's full path to /etc/shells
chsh -s /full/path/to/fish

Don't already have brew?

If you want to install into /usr/local ...

See http://brew.sh.

If you want to install somewhere else ...

See alternative installs. (Installing into ~/local/homebrew, and symlinking brew into ~/local/homebrew/bin might be a good option.)

Note that the binaries are symlinked into whatever directory brew is installed into. (So if brew is symlinked into /usr/local/bin, then all executables installed by brew will be symlinked into there as well.) This can be useful if you want to install brew in your home directory, but symlink binaries into /usr/local/bin.

Other Platforms

See http://fishshell.com/.

Installation

$ cd $HOME
$ git clone https://github.com/ithinkihaveacat/dotfiles.git .dotfiles
$ cd $HOME/.dotfiles
# Pull from ro repo, push to rw
$ git remote set-url origin --push [email protected]:ithinkihaveacat/dotfiles.git
$ ./update                                 # if macOS and brew in PATH
$ PATH=~/local/homebrew/bin:$PATH ./update # if macOS and brew not in PATH
# On OS X, logout and login again

Note that update may be destructive—if you have "unmanaged" files in locations such as ~/Library/KeyBindings or ~/Library/Fonts, they will be wiped out!

(Though it is safe to run update multiple times.)

Manual Changes

All Platforms

If you have problems installing jed from packages, it can be installed manually via something like:

# slang
wget http://www.jedsoft.org/snapshots/slang-pre2.3.1-40.tar.gz
# extract
./configure --prefix=$HOME/local --libdir=$HOME/local/homebrew/lib --includedir=$HOME/local/homebrew/include --without-x --without-png
make
make install

# jed
wget http://www.jedsoft.org/snapshots/jed-pre0.99.20-111.tar.gz
# extract
./configure --prefix=$HOME/local --libdir=$HOME/local/homebrew/lib --includedir=$HOME/local/homebrew/include --without-x
make
make install

macOS

(See this script for some tips on how to change some of these settings automatically.)

Configure Terminal

Import the [etc/Solarized Dark.terminal](etc/Solarized Dark.terminal) profile, and set it to the "default". (See this script for some information on how to do this automatically.)

Configure keyboard

  • Open System Preferences > Keyboard
    • Open Shortcuts > Services > File and Folders, enable "New Terminal at Folder".
    • Open Text, disable "Correct spelling automatically".

Add Lock Screen option to Menu Bar

Configure via "Keychain Access" preferences.

Add Volume Controls to Menu Bar

Control Center | Sound | Always Show in Menu Bar.

Disable local Time Machine backups

$ sudo tmutil disablelocal

Install "Network Link Conditioner"

https://developer.apple.com/download/more/?q=Additional%20Tools

This provides a way to simulate degraded network conditions (more info).

Install GitHub theme for iA Writer

See https://ia.net/writer/templates/.

Disable Hot Corners

Via System Preferences.

Install optional fonts

See https://typography.guru/journal/awesome-catalina-fonts/.

Ubuntu

Emacs Keybindings

Get emacs keybindings across all gtk apps (source):

$ gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"

Compose Key

Set the compose key to Caps Lock so that you can e.g. hold down Caps Lock and type --- to get an mdash.

Fonts

Open "System Settings", change the fonts as below:

Fonts

Terminal

Change Colour Scheme

Run the following gconftool commands to set Solarized colours correctly:

http://stackoverflow.com/a/7734960

Change Font

Use "Profile Preferences" to change the default font.

Make Alt Available

Open "Keyboard Shortcuts" and unselect "Enable menu access keys". (Otherwise Alt is used for accessing the menu.)

Change Size

Edit "Default" profile, change custom default terminal size to 100 columns, 60 rows.

Manually Installing Binaries?

Put them in ~/local/bin, and man pages (if you have them) in ~/local/share/man/man?. (man --path lists the man page search path.)

Author

[email protected]