Git Product home page Git Product logo

dotfiles's Introduction

Dotfiles

Welcome to my world! Here you'll find a collection of configuration files for various tools and programs that I use on a daily basis. These dotfiles have been carefully curated and customized to streamline my workflow and improve my productivity. Your results may vary, but feel free to give it a try! Whether you're a fellow developer looking to optimize your setup or just curious about how I organize my digital life, I hope you find something useful in these dotfiles. So take a look around and feel free to borrow, modify, or fork to your heart's content. Happy coding!

Note

Did you arrive here through my YouTube talk, vim + tmux? My dotfiles have changed tremendously since then, but feel free to peruse the state of this repo at the time the video was recorded.

capture-20231114134612

Initial setup

The first thing you need to do is to clone this repo into a location of your choosing. For example, if you have a ~/Developer directory where you clone all of your git repos, that's a good choice for this one, too. This repo is setup to not rely on the location of the dotfiles, so you can place it anywhere.

Note

If you're on macOS, you'll also need to install the XCode CLI tools before continuing.

xcode-select --install
git clone [email protected]:nicknisi/dotfiles.git

Note

This dotfiles configuration is set up in such a way that it shouldn't matter where the repo exists on your system.

The script, install.sh is the one-stop for all things setup, backup, and installation.

> ./install.sh help

Usage: install.sh {backup|link|homebrew|shell|terminfo|macos|all}

backup

./install.sh backup

Create a backup of the current dotfiles (if any) into ~/.dotfiles-backup/. This will scan for the existence of every file that is to be symlinked and will move them over to the backup directory. It will also do the same for vim setups, moving some files in the XDG base directory, (~/.config).

  • ~/.config/nvim/ - The home of neovim configuration
  • ~/.vim/ - The home of vim configuration
  • ~/.vimrc - The main init file for vim

link

./install.sh link

The link command will create symbolic links from the dotfiles directory into the $HOME directory, allowing for all of the configuration to act as if it were there without being there, making it easier to maintain the dotfiles in isolation.

homebrew

./install.sh homebrew

The homebrew command sets up homebrew by downloading and running the homebrew installers script. Homebrew is a macOS package manager, but it also work on linux via Linuxbrew. If the script detects that you're installing the dotfiles on linux, it will use that instead. For consistency between operating systems, linuxbrew is set up but you may want to consider an alternate package manager for your particular system.

Once homebrew is installed, it executes the brew bundle command which will install the packages listed in the Brewfile.

shell

./install.sh shell

The shell command sets up the recommended shell configuration for the dotfiles setup. Specifically, it sets the shell to zsh using the chsh command.

terminfo

./install.sh terminfo

This command uses tic to set up the terminfo, specifically to allow for italics within the terminal. If you don't care about that, you can ignore this command.

macos

./install.sh macos

The macos command sets up macOS-specific configurations using the defaults write commands to change default values for macOS.

  • Finder: show all filename extensions
  • show hidden files by default
  • only use UTF-8 in Terminal.app
  • expand save dialog by default
  • Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
  • Enable subpixel font rendering on non-Apple LCDs
  • Use current directory as default search scope in Finder
  • Show Path bar in Finder
  • Show Status bar in Finder
  • Disable press-and-hold for keys in favor of key repeat
  • Set a blazingly fast keyboard repeat rate
  • Set a shorter Delay until key repeat
  • Enable tap to click (Trackpad)
  • Enable Safari’s debug menu

all

./install.sh all

This command runs all of the installation tasks described above, in full, with the exception of the backup script. You must run that one manually.

ZSH Configuration

The prompt for ZSH is configured in the zshrc.symlink file and performs the following operations.

  • Sets EDITOR to nvim
  • Loads any ~/.terminfo setup
  • Sets CODE_DIR to ~/Developer. This can be changed to the location you use to put your git checkouts, and enables fast cd-ing into it via the c command
  • Recursively searches the $DOTFILES/zsh directory for any .zsh files and sources them
  • Sources a ~/.localrc, if available for configuration that is machine-specific and/or should not ever be checked into git
  • Adds ~/bin and $DOTFILES/bin to the PATH

ZSH plugins

There are a number of plugins in use for ZSH, and they are installed and maintained separately via the zfetch command. zfetch is a custom plugin manager available here. The plugins that are used are listed in the .zshrc and include

Additional plugins can be added to the ~/.zshrc, or to ~/.localrc if you want them to stay out of git.

# Add a line like this and the plugin will automatically be downloaded and sourced
zfetch nicknisi/work-scripts

Prompt

Aloxaf/fzf-tab The prompt is meant to be simple while still providing a lot of information to the user, particularly about the status of the git project, if the PWD is a git project. This prompt sets precmd, PROMPT and RPROMPT. The precmd shows the current working directory in it and the RPROMPT shows the git and suspended jobs info. The main symbol used on the actual prompt line is .

The prompt attempts to speed up certain information lookups by allowing for the prompt itself to be asynchronously rewritten as data comes in. This prevents the prompt from feeling sluggish when, for example, the user is in a large git repo and the git prompt commands take a considerable amount of time.

It does this by writing the actual text that will be displayed int he prompt to a temp file, which is then used to update the prompt information when a signal is trapped.

Git Prompt

The git info shown on the RPROMPT displays the current branch name, along with the following symbols.

  • + - New files were added
  • ! - Existing files were modified
  • ? - Untracked files exist that are not ignored
  • » - Current changes include file renaming
  • - An existing tracked file has been deleted
  • $ - There are currently stashed files
  • = - There are unmerged files
  • - Branch is ahead of the remote (indicating a push is needed)
  • - Branch is behind the remote (indicating a pull is needed)
  • - The branches have diverged (indicating history has changed and maybe a force-push is needed)
  • - The current working directory is clean

Jobs Prompt

The prompt will also display a character in the RPROMPT indicating that there is a suspended job that exists in the background. This is helpful in keeping track of putting vim in the background by pressing CTRL-Z.

Node Prompt

If a package.json file or a node_modules directory exists in the current working directory, display the node symbol, along with the current version of Node. This is useful information when switching between projects that depend on different versions of Node.

Neovim setup

Note

This is no longer a vim setup. The configuration has been moved to be Neovim-specific and (mostly) written in Lua. vim is also set up as an alias to nvim to help with muscle memory.

The simplest way to install Neovim is to install it from homebrew.

brew install neovim

However, it was likely installed already if you ran the ./install.sh brew command provided in the dotfiles.

All of the configuration for Neovim starts at config/nvim/init.lua, which is symlinked into the ~/.config/nvim directory.

Warning

The first time you run nvim with this configuration, it will likely have a lot of errors. This is because it is dependent on a number of plugins being installed.

Installing plugins

On the first run, all required plugins should automaticaly by installed by lazy.nvim, a plugin manager for neovim.

All plugins are listed in plugins.lua. When a plugin is added, it will automatically be installed by lazy.nvim. To interface with lazy.nvim, simply run :Lazy from within vim.

Note

Plugins can be synced in a headless way from the command line using the vimu alias.

tmux configuration

I prefer to run everything inside of tmux. I typically use a large pane on the top for neovim and then multiple panes along the bottom or right side for various commands I may need to run. There are no pre-configured layouts in this repository, as I tend to create them on-the-fly and as needed.

This repo ships with a tm command which provides a list of active session, or provides prompts to create a new one.

> tm
Available sessions
------------------

1) New Session
Please choose your session: 1
Enter new session name: open-source

This configuration provides a bit of style to the tmux bar, along with some additional data such as the currently playing song (from Apple Music or Spotify), the system name, the session name, and the current time.

Note

It also changes the prefix from ⌃-b to ⌃-a (⌃ is the control key). This is because I tend to remap the Caps Lock button to Control, and then having the prefix makes more sense.

tmux key commands

Pressing the Prefix followed by the following will have the following actions in tmux.

Command Description
h Select the pane to the left
j Select the pane to the bottom
k Select the pane to the top
l Select the pane to the right
⇧-H Enlarge the pane to the left
⇧-J Enlarge the pane to the bottom
⇧-K Enlarge the pane to the top
⇧-L Enlarge the pane to the right
- (dash) Create a vertical split
| (pipe) Create a horizontal split

Minimal tmux UI

Setting a $TMUX_MINIMAL environment variable will do some extra work to hide the tmux status bar when there is only a single tmux window open. This is not the default in this repo because it can be confusing, but it is my preferred way to work. To set this, you can use the ~/.localrc file to set it in the following way.

export TMUX_MINIMAL=1

Docker Setup

A Dockerfile exists in the repository as a testing ground for linux support. To set up the image, make sure you have Docker installed and then run the following command.

docker build -t dotfiles --force-rm --build-arg PRIVATE_KEY="$(cat ~/.ssh/id_rsa)" --build-arg PUBLIC_KEY="$(cat ~/.ssh/id_rsa.pub)" .

This should create a dotfiles image which will set up the base environment with the dotfiles repo cloned. To run, execute the following command.

docker run -it --rm dotfiles

This will open a bash shell in the container which can then be used to manually test the dotfiles installation process with linux.

Preferred software

I almost exclusively work on macOS, so this list will be specific to that operating system, but several of these reccomendations are also available, cross-platform.

  • WezTerm - A GPU-based terminal emulator

Questions

If you have questions, notice issues, or would like to see improvements, please open a new discussion and I'm happy to help you out!

dotfiles's People

Contributors

arcseldon avatar cagmz avatar daxchen avatar fpelletier-gh avatar gsmurf avatar gurran avatar jrowlingson avatar kreditechtill avatar mvanderkamp avatar nerdpad avatar nicknisi avatar peterpme avatar sandroqz avatar sc4ramouche avatar skullface avatar stavarotti 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  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

dotfiles's Issues

xterm-256color-italic

/Users/seabook/.zshrc:51: can't find terminal definition for xterm-256color-italic

I googled, and i dont know how to fix this

nvim plugged file

I noticed in your init.vim you are referencing the following but I do not see being sourced. What is that file?

~/.config/nvim/plugged

Here is the file

https://github.com/nicknisi/dotfiles/blob/master/config/nvim/init.vim

trying to re-install latest configuration

I get errors while installing .dotfile again

Last login: Thu Oct 20 07:48:52 on ttys000
 abhimanyuaryan@Macbook  ~  cd ~/.dotfiles
 abhimanyuaryan@Macbook  ~/.dotfiles   master  ./install.sh
Installing dotfiles
Initializing submodule(s)
Submodule '.config/base16-shell' ([email protected]:chriskempson/base16-shell.git) registered for path '.config/base16-shell'
Cloning into '/Users/abhimanyuaryan/.dotfiles/.config/base16-shell'...
Submodule path '.config/base16-shell': checked out '128d28bf1ec79ed90f30e3ee6596f678e3733f2d'

Creating symlinks
==============================
~/.ackrc already exists... Skipping.
~/.gitconfig already exists... Skipping.
~/.gitignore_global already exists... Skipping.
~/.hyperterm.js already exists... Skipping.
~/.jscsrc already exists... Skipping.
~/.jshintrc already exists... Skipping.
~/.dev.tmux.conf already exists... Skipping.
~/.tmux.conf already exists... Skipping.
~/.zshrc already exists... Skipping.


installing to ~/.config
==============================
~/.config/nvim already exists... Skipping.


Creating vim symlinks
==============================
/Users/abhimanyuaryan/.vim already exists... skipping
/Users/abhimanyuaryan/.vimrc already exists... skipping


Running on OSX


Installing homebrew packages...
==============================
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: ack-2.14 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: tree-1.7.0 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: wget-1.18 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: nginx-1.10.1 already installed, it's just not linked
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: dnsmasq-2.76 already installed, it's just not linked
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: git-2.9.3 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: hub-2.2.5 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: fzf-0.13.5 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: macvim-7.4-106 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: reattach-to-user-namespace-2.5 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: tmux-2.2 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: zsh-5.2 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: highlight-3.31 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: nvm-0.31.6 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: z-1.9 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: markdown-1.0.1 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: diff-so-fancy-0.11.1 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: zsh-syntax-highlighting-0.4.1 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: zsh-autosuggestions-0.3.2 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
Error: /usr/local is not writable. You should change the ownership
and permissions of /usr/local back to your user account:
  sudo chown -R $(whoami) /usr/local
Warning: neovim/neovim/neovim-0.1.5 already installed
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
 abhimanyuaryan@Macbook  ~/.dotfiles   master 

Copy to clipboard tmux->vim broken?

Yanking works fine when vim is running in iterm, it yanks to clipboard. But while running under tmux vim doesn't yank to clipboard.

Does this happen for you as well?

Files with extension brackets bug

When I type "(", "[" or "{" in nvim and start typing, it types it before not inside of brackets, when I go back to normal mode I get First bracket+what I typed without first char+two closing brackets. I noticed It happens just on files with extension(txt, pas, java, ...)

Please help, I like your config too much to give up from it.

Vim presentation

The plugin you are using, when you do :PresentingStart, does it show the slides in markdown code or is it compiled up? Mine just shows the markdown syntax

screen shot 2016-03-28 at 11 47 40 pm

command z not working

I have pulled latest commits from Github. Also z is installed when I do brew list. But when i try to use it command not found: z

Please help me sort this issue what's wrong.

moved osx script

install.sh line 20 file not found.

install/osx.sh moved to root installosx.sh?

Some issues

Hi,

Coming here from your very nice video
https://www.youtube.com/watch?v=5r6yzFEXajQ

Decided to try a somewhat selective (i.e. trying to understand as much as I can and keep only what I really need at first) rip-off of your setup ;-)

So far I encountered two issues (I'm on a MBP under El Capitan 10.11.4), that I'm reported here in case that may help some other people.

1 - in install.sh the shell changing was not working for me, giving a non-default shell error message

Using information from http://rick.cogley.info/post/use-homebrew-zsh-instead-of-the-osx-default/ I changed that to :

sudo dscl . -create /Users/$USER UserShell $(which zsh)

granted, there's a sudo there, but at least it's working ;-)

2 - typeset -A vimfiles => had to change the capital -A to lowercase -a

Regards,

zplug not working inside tmux session

I took your latest changes, and after install zplug doesn't seem to work inside tmux session.

Does it happen for you as well? Currently I can use nvm 'git aliases etcin tmux session aszplug` itself isn't loaded.

I am not sure how to fix it.

Typo In Comment

In zshrc.symlink , in the Status Line section, the comment has a typo of the word "status"

zsh-syntax-highlighting: unhandled ZLE widget 'newtab'

I had to reinstall dotfiles into a new macbook, and after install I get two issues.

  • ZSH is not set as default shell unless I manually do chsh -s /bin/zsh. which zsh outputs /usr/local/bin/zsh. So setting the default shell to that doesn't work, and outputs ... non standard shell..
  • I get the following error whenever I start a new shell:
zsh-syntax-highlighting: unhandled ZLE widget 'newtab'
                                                                                                                                                 
~
⇨                                                                                                                                               

if I remove the following line from zsh/config.zsh it would go away, but not sure how it worked in the other machine.

bindkey '^[^N' newtab

Versions:

⇨ tmux -V
tmux 2.3
⇨ brew list --versions | grep zsh
zsh 5.2
zsh-autosuggestions 0.3.3
zsh-syntax-highlighting 0.5.0

It's not a blocking issue for me, so no rush.

Troubles with colors in tmux status bar

Hi Nick, merry Christmas!
I got to your repository through your "vim + tmux - OMG!Code" talk. Awesome stuff and great inspiration! I took from it what I liked and did a few minor modifications but unfortunately I am having an issue with the colors in the tmux status bar.
I'm using the Hack font like you and I took the human.sh theme file from your tmux directory.
I've modified it just a little bit (and merged with my .tmux.conf) so that it now looks like this:

set -g default-terminal "screen-256color"
set -g status-utf8 on

# inspiration from https://mutelight.org/practical-tmux

# change prefix key to C-a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# make C-a C-a go to last window
# bind-key C-a last-window

# Start numbering at 1
set -g base-index 1

# automatically renumber
set -g renumber-windows on

set -g mouse on
set -g mouse-utf8 on
bind -n WheelUpPane   select-pane -t= \; copy-mode -e \; send-keys -M
bind -n WheelDownPane select-pane -t= \;                 send-keys -M

# conveniently reload config
bind R source-file ~/.tmux.conf \; display-message "Config reloaded..."

# Lower escape timing from 500ms to 50ms for quicker response to scroll-buffer access.
set -s escape-time 50

# copy and paste on OS X
# Use vim keybindings in copy mode
setw -g mode-keys vi
bind-key -t vi-copy v begin-selection
bind-key -t vi-copy 'y' copy-pipe "pbcopy"
# Bind ']' to use pbpaste
bind ] run "pbpaste | tmux load-buffer - && tmux paste-buffer"

# colors and theme etc
tm_icon="♟"
tm_color_background=colour234
tm_color_active=colour118
tm_color_inactive=colour241
tm_color_feature=colour4
tm_color_music=colour203
tm_color_battery=colour255

# separators
tm_left_separator=''
tm_left_separator_black=''
tm_right_separator=''
tm_right_separator_black=''
tm_session_symbol=''

set -g status-left-length 32
set -g status-right-length 150
set -g status-interval 5

# default statusbar colors
# set-option -g status-bg colour0
set-option -g status-fg $tm_color_active
set-option -g status-bg default
set-option -g status-attr default

# default window title colors
set-window-option -g window-status-fg $tm_color_inactive
set-window-option -g window-status-bg default
set -g window-status-format "#I #W"

# active window title colors
set-window-option -g  window-status-current-format "#[fg=$tm_color_background,bg=$tm_color_active]$tm_left_separator_black #[fg=colour0,bg=$tm_color_active,bold]#I #W #[bg=$tm_color_background,fg=$tm_color_active]$tm_left_separator_black "

# pane border
set-option -g pane-border-fg $tm_color_inactive
set-option -g pane-active-border-fg $tm_color_active

# message text
set-option -g message-bg default
set-option -g message-fg $tm_color_active

# pane number display
set-option -g display-panes-active-colour $tm_color_active
set-option -g display-panes-colour $tm_color_inactive

tm_itunes="#[fg=$tm_color_music,bg=$tm_color_background]$tm_right_separator_black#[fg=$tm_color_background,bg=$tm_color_music]#(osascript ~/.dotfiles/applescripts/itunes.scpt)"
tm_battery="#[fg=$tm_color_battery,bg=$tm_color_music]$tm_right_separator_black#[bg=$tm_color_battery]#(~/.dotfiles/bin/battery_indicator.sh)"

tm_date="#[fg=$tm_color_inactive,bg=$tm_color_battery]$tm_right_separator_black#[bg=$tm_color_inactive] %R %d %b"
tm_host="#[fg=$tm_color_feature]$tm_right_separator_black#[bg=$tm_color_feature,fg=$tm_color_background,bold] #h "
tm_session_name="#[fg=$tm_color_background,bg=$tm_color_feature]$tm_icon #S #[fg=$tm_color_feature,bg=default,nobold]$tm_left_separator_black"

set -g status-left $tm_session_name
set -g status-right $tm_itunes' '$tm_battery' '$tm_date' '$tm_host

This works (kinda) well, with the exception of the two separators on the right which just don't want to accept the right color:
1__tmux

I've double-checked the colors, I've tried out many things, but I just can't get to have the separators match the bar-colors.

Also, it seems to be an issue of a combination of the background and foreground color. But even after hours of playing around with this, I can not get it right.

I'm on a Mac with iTerm 2. Any hints at what I could be trying out to get the colors of the separators fixed?

Thanks,
Cheers,
Till

tm_icon breaking status line

So in your code you have the following variable which add a cool looking icon. This is breaking the status line for me. If I change that variable to say letter X the status line looks like it should. Is there something special I need to do to use that icon?

tm_icon="🙊"

Wrong 'if' statement in brew.sh

Here are your first few line:

if test ! $(which brew); then
    echo "Installing homebrew"
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
fi

This statement will always ring true because the output will always be a a non null string. For example, if you replaced 'which brew' with 'which foo', it will still evaluate to true because the output returns a non null string "foo not found". You should use if [-e $(which brew) ] instead so it doesn't try and install it if it's already installed.

strange error "zsh-syntax-highlighting"

This exception popped up today. No idea what's this ZLE widget & stuff. How do i fix it?

Last login: Sun Dec 4 21:43:15 on ttys000
zsh-syntax-highlighting: unhandled ZLE widget 'newtab'

suspended jobs

Hi,

I like what you did with you dotfiles, I have taken suspend part from you prompt.zsh file, however when job is suspended icon appears but it's in white colour, no matter what I do I cant get the colour to appear orange.

I was wondering if you could help me out.

Thanks

Mac Terminal vs iterm2

So I notice that default mac terminal looks way blue that what iterm does. Not sure why iterm is adding that grey or maybe it should. Any ideas?

screen shot 2015-11-09 at 10 40 00 pm

[exit] tmux

First line of .tmux.conf brakes tmux. When I run tmux I see [exit] message. In window name I see reattach-to-user-namespace appended to my terminal emulator name. Removing that line fixes thing. What is it for and can I fix that?

NeoVim question and request, and an idea

Nick,

I've been enjoying your dotfiles and have a question, a humble request, and something like a question or a request (depending on how it's entangled).

I can't figure out what is responsible for appending end quotes and closing braces in NeoVim when I type their respective counterparts. If it's a setting in the config file, can you point it out to me?

Perhaps related, if it wouldn't be too much trouble, I'd love even a few words about the plugins. Most are uncommented, but a few are perfect, like these:

Plug 'tpope/vim-sleuth' " detect indent style (tabs vs. spaces)
Plug 'sickill/vim-pasta' " context-aware pasting

Thirdly, this might be a bad idea, but I'm wondering if you considered having your install script move existing dotfiles into a "displaced" folder instead of skipping them. Just a thought (unless you like the idea, in which case it's a humble request).

Regards,
Aaron

Vimrc.symlink

In the vimrc.symlink , there is a typo, in the part where you set the history. There is either a typo in the comment, or there is an extra 0 in 1000.

what are the controls for nerdtree

I couldn't figure out the controls for nerdtree in vim. Also what if I want to change the controls. Which file has those shortcuts setup?

terminals database is inaccessible

newbie advice 🙊

after i run install.sh in my OSX El Capitan getting
terminals database is inaccessible after i hit clear at the console any advice

[link.sh] Issue with creating vim symlinks

On LinuxMint 17.3 the link.sh script doesn't link the vim files correctly.

Issue
~/.vim links to itself! Not to ~/.dotfiles/config/nvim
The same goes for .vimrc

Solution:
Line 54 should look like this:

        ln -s ${vimfiles[$file]} $file

I don't know whether this change affects other systems or whether it still works on Mac OSX.

Regards,

Andre

nvim <leader>ev targets vimrc?

Just curious why in .config/nvim/init.vim does this...

map ev :e! ~/.vimrc

...and not this...

map ev :e! ~/.config/nvim/init.vim

P.S. thanks for sharing this stuff. I'm enjoying it.

exit 0 in brew.sh

I was just wondering in the install.sh you are sourcing brew.sh, nvm.sh, zsh.sh etc.

But in brew.sh you have exit 0 at the end which will not source next files listed in the install.sh

Is it intended?

Theme issue in Tmux

The theme doesn't match while running inside tmux. Does this happen for you too?

The top is iTerm -> tmux -> vim, and the bottom one is iterm -> vim

screen shot 2016-11-01 at 3 30 55 pm

$TERM values are set correctly though.

In Tmux:

⇨ echo $TERM                                                                                                                                                                          ✔ feature/fix-aws-env
tmux-256color-italic

Outside Tmux:

⇨ echo $TERM
xterm-256color-italic

Leader t gfiles

So I like in your config you have decided to use gfiles for searching for a file to edit, but I have noticed an issue that when I create a new file that has not been committed yet, Gfiles wont see it. So how do you get around this? I have been just doing :FZF but then that gets ugly cause then it loads the search with all the node and bower component stuff.

Just interested how you get around this

Zplug git clone failed

git clone [email protected]:zplug/zplug.git ~/.zplug

Got following error

Cloning into '/Users/seabook/.zplug'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists

From the zplug README, they changed to

$ export ZPLUG_HOME=/path/to/.zplug
$ git clone https://github.com/zplug/zplug $ZPLUG_HOME

How do you get Neomake working?

I like your talk of Vim, and I have learned a lot by reading your .vimrc.

How do you get Neomake working with JSCS?

When running :Neomake, nothing comes back.
When running :Neomake!, it says Neomake: makeprg complete with exit code 2. But nothing happens to my file, no warning, no error.

I tried all, ESlint, JShint and JSCS.

Comments not italic

I am not sure what I did wrong. I was getting italic comments earlier in nvim, but I merged my fork from your master, and installed again.

I am not sure why I am not getting italic comments. I have installed the terminfo files.

italic font for some words

Hi Nick finally bought Operator font but i don't see italic font. I see you have selected Operator Mono SSm Medium font. What font is that? It have only got 10 fonts

screen shot 2017-01-02 at 2 08 59 pm

install/link.sh issue

Creating vim symlinks

install/link.sh: line 45: typeset: -A: invalid option
typeset: usage: typeset [-afFirtx] [-p] name[=value] ...
install/link.sh: line 46: /Users/wilson/.vim: syntax error: operand expected (error token is "/Users/wilson/.vim")

Updated File paths

install.sh has incorrect file paths

scripts/brew.sh --> install/brew.sh
scripts/osx.sh --> install/scripts/osx.sh

see my fork for example

Snipmate is not working

In a javascript file, if I type log and hit tab, its not autocompleting. Thoughts?

If I run

:imap

It looks like tab is set to

<Tab>       * pumvisible() ? "\<C-N>" : "\<Tab>"

OS X script call - new location, old name?

It seems like you moved and renamed the OS X install script but call it from install.sh in the new location but with the old name. Am I missing something?

Thanks again for sharing this stuff.

Aaron

Press ENTER or type command to continue on launch of Nvim

When I launch NVIM after using your .nvimrc file I get the followng output before it launches:

default
Press ENTER or type command to continue

I cant find where the "default" is being printed out to cause this. I have nvim setup really well thanks to your dotfiles except for this one thing. Any help you can offer would be greatly appreciated.

Thank you,
Jon

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.