about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2017-10-20T21·37+0200
committerVincent Ambo <tazjin@gmail.com>2017-10-20T22·05+0200
commit106ca2094072a516a8df820d9c31a9be6bbbc75c (patch)
treed97b0c8e3ac656993313c4c0ff88669d44bb9516
parent7fe75e01386f24385ae9ccc624e3d8561df8bcbb (diff)
feat(dotfiles): Add fish-shell & tmux configuration
-rw-r--r--dotfiles.nix14
-rw-r--r--dotfiles/config.fish27
-rw-r--r--dotfiles/tmux.conf14
3 files changed, 46 insertions, 9 deletions
diff --git a/dotfiles.nix b/dotfiles.nix
index 8ba5f976f7..e999bc2bc1 100644
--- a/dotfiles.nix
+++ b/dotfiles.nix
@@ -12,20 +12,16 @@ let dotfiles = pkgs.stdenv.mkDerivation {
   ];
 
   installPhase = ''
-    mkdir -p $out/dotfiles
-    cp ./* $out/dotfiles/
+    mkdir -p $out
+    cp ./* $out/
   '';
 };
 in {
   # /etc/ is a special place in NixOS!
   # Symlinks that need to be created there must be specified explicitly.
   environment.etc = {
-    "i3/config" = {
-      source = "${dotfiles}/dotfiles/i3.conf";
-      # Setting a mode causes Nix to copy the file instead of symlinking it.
-      # For i3 config in particular this is desirable because I want to be able
-      # to modify and reload it before committing a change.
-      mode = "0644";
-    };
+    "i3/config".source = "${dotfiles}/i3.conf";
+    "tmux.conf".source = "${dotfiles}/tmux.conf";
+    "fish/foreign-env/tazjin".source = "${dotfiles}/config.fish";
   };
 }
diff --git a/dotfiles/config.fish b/dotfiles/config.fish
new file mode 100644
index 0000000000..55809a2ab6
--- /dev/null
+++ b/dotfiles/config.fish
@@ -0,0 +1,27 @@
+# Configure classic prompt
+set fish_color_user --bold blue
+set fish_color_cwd --bold white
+#set __fish_git_prompt_color green
+set __fish_git_prompt_showcolorhints yes
+set __fish_git_prompt_color_prefix purple
+set __fish_git_prompt_color_suffix purple
+
+# Fish configuration
+set fish_greeting ""
+set PATH $HOME/.local/bin $GOPATH/bin $PATH
+
+# Editor configuration
+set -gx EDITOR "emacsclient"
+set -gx ALTERNATE_EDITOR "emacs -q -nw"
+set -gx VISUAL "emacsclient"
+
+# Miscellaneous
+eval (direnv hook fish)
+
+# Useful command aliases
+alias gpr 'git pull --rebase'
+alias gco 'git checkout'
+alias gf 'git fetch'
+alias gap 'git add -p'
+alias pbcopy 'xclip -selection clipboard'
+alias edit 'emacsclient -n'
diff --git a/dotfiles/tmux.conf b/dotfiles/tmux.conf
new file mode 100644
index 0000000000..6c20ae0370
--- /dev/null
+++ b/dotfiles/tmux.conf
@@ -0,0 +1,14 @@
+set -g status off
+set -gw mode-keys emacs
+setw -g mouse on
+
+# Correctly set window titles
+set -g set-titles on
+set -g set-titles-string "#W (#T)"
+
+# List of plugins
+set -g @plugin 'tmux-plugins/tpm'
+set -g @plugin 'tmux-plugins/tmux-yank'
+
+# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
+run '~/.tmux/plugins/tpm/tpm'