From 4d38ca8da3a7de1cf04c6d6f9d4508123b6dc237 Mon Sep 17 00:00:00 2001 From: Dustin Swan Date: Fri, 12 Apr 2019 17:07:35 -0400 Subject: [PATCH] more home manager. tmux --- home.nix | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++- symlinks.sh | 8 ++----- 2 files changed, 68 insertions(+), 7 deletions(-) diff --git a/home.nix b/home.nix index de62217..41e04e2 100644 --- a/home.nix +++ b/home.nix @@ -1,7 +1,7 @@ { pkgs, lib, ... }: { - home.packages = with pkgs; [ bat wget clipit ncmpcpp pandoc silver-searcher tmux tree unzip wirelesstools xcape xsel anki pavucontrol ranger blueman gifsicle networkmanager paprefs steam mpv nnn nodejs pinentry vlc gnupg nitrogen alacritty wine tldr yarn spotify signal-desktop mu mosh ispell google-chrome emacs-all-the-icons-fonts gnupg python3 python37Packages.pip veracrypt bashmount exfat exfat-utils neofetch toot rtv newsboat neomutt i3lock-pixeled nmap p4v killall calc cargo cava diceware magic-wormhole msmtp xorg.xmodmap zip youtube-dl cacert dropbox-cli keepassx2 w3m wireshark-qt khard khal vdirsyncer slack riot-web retroarch ipfs gimp blender urlview + home.packages = with pkgs; [ bat wget clipit ncmpcpp pandoc silver-searcher tree unzip wirelesstools xcape xsel anki pavucontrol ranger blueman gifsicle networkmanager paprefs steam mpv nnn nodejs pinentry vlc gnupg nitrogen alacritty wine tldr yarn spotify signal-desktop mu mosh ispell google-chrome emacs-all-the-icons-fonts gnupg python3 python37Packages.pip veracrypt bashmount exfat exfat-utils neofetch toot rtv newsboat neomutt i3lock-pixeled nmap p4v killall calc cargo cava diceware magic-wormhole msmtp xorg.xmodmap zip youtube-dl cacert dropbox-cli keepassx2 w3m wireshark-qt khard khal vdirsyncer slack riot-web retroarch ipfs gimp blender urlview ]; home.sessionVariables = { @@ -117,6 +117,71 @@ programs.htop.enable = true; programs.jq.enable = true; programs.vscode.enable = true; + programs.tmux = { + enable = true; + shortcut = "a"; + keyMode = "vi"; + baseIndex = 1; + newSession = true; + plugins = with pkgs.tmuxPlugins; [ + sensible resurrect pain-control continuum copycat open urlview + { + plugin = yank; + extraConfig = "set -g @yank_selection_mouse 'primary'"; + } + ]; + extraConfig = '' + bind-key -n C-0 select-window -t :0 + bind-key -n C-1 select-window -t :1 + bind-key -n C-2 select-window -t :2 + bind-key -n C-3 select-window -t :3 + bind-key -n C-4 select-window -t :4 + bind-key -n C-5 select-window -t :5 + bind-key -n C-6 select-window -t :6 + bind-key -n C-7 select-window -t :7 + bind-key -n C-8 select-window -t :8 + bind-key -n C-9 select-window -t :9 + + set -g set-titles on + set -g set-titles-string "#H (#S)" + set -g status-right "" + set -g status-left "" + + set-option -g mouse on + set-option -g status-bg default + set-option -g status-fg "#666666" + set-option -g status-attr default + set-option -g pane-border-fg "#666666" + set-option -g pane-active-border-fg "#666666" + set-option -g message-bg black + set-option -g message-fg white + set-option -g display-panes-active-colour white + set-option -g display-panes-colour white + + set-window-option -g window-status-fg "#666666" + set-window-option -g window-status-bg default + set-window-option -g window-status-current-fg white + set-window-option -g window-status-current-bg default + set-window-option -g window-status-format " #W" + set-window-option -g window-status-current-format " #W" + set-window-option -g window-status-separator " " + set-window-option -g clock-mode-colour white + + # remove when tmux-plugin-navigator plugin is added + is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ + | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" + tmux bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" + tmux bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" + tmux bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" + tmux bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" + tmux bind-key -n C-\\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" + tmux bind-key -T copy-mode-vi C-h select-pane -L + tmux bind-key -T copy-mode-vi C-j select-pane -D + tmux bind-key -T copy-mode-vi C-k select-pane -U + tmux bind-key -T copy-mode-vi C-l select-pane -R + tmux bind-key -T copy-mode-vi C-\\ select-pane -l + ''; + }; # programs.fish = { # enable = true; # shellAliases = { diff --git a/symlinks.sh b/symlinks.sh index 3e103b2..2efe8e3 100644 --- a/symlinks.sh +++ b/symlinks.sh @@ -1,13 +1,9 @@ #!/bin/bash -# ln -sf ~/dotfiles/zshrc ~/.zshrc -mkdir -p ~/.config/fish; ln -sf ~/dotfiles/config.fish ~/.config/fish/config.fish -curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher -ln -sf ~/dotfiles/fishfile ~/.config/fish/fishfile mkdir ~/.ghc; ln -sf ~/dotfiles/ghci.conf ~/.ghc/ghci.conf ln -sf ~/dotfiles/gitconfig ~/.gitconfig -git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm -ln -sf ~/dotfiles/tmux.conf ~/.tmux.conf +# git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm +# ln -sf ~/dotfiles/tmux.conf ~/.tmux.conf mkdir -p ~/.config/khal; ln -sf ~/dotfiles/khal.conf ~/.config/khal/config mkdir ~/.config/vdirsyncer; ln -sf ~/dotfiles/vdirsyncer/config ~/.config/vdirsyncer/config mkdir ~/.gnupg; ln -sf ~/dotfiles/gpg-agent.conf ~/.gnupg/gpg-agent.conf