diff --git a/flake.lock b/flake.lock index d4e0ac5..c342987 100644 --- a/flake.lock +++ b/flake.lock @@ -127,7 +127,8 @@ "microvm": "microvm", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", - "sops-nix": "sops-nix" + "sops-nix": "sops-nix", + "tmux-yank": "tmux-yank" } }, "rust-analyzer-src": { @@ -167,6 +168,22 @@ "repo": "sops-nix", "type": "github" } + }, + "tmux-yank": { + "flake": false, + "locked": { + "lastModified": 1601619684, + "narHash": "sha256-hRvkBf+YrWycecnDixAsD4CAHg3KsioomfJ/nLl5Zgs=", + "owner": "tmux-plugins", + "repo": "tmux-yank", + "rev": "1b1a436e19f095ae8f825243dbe29800a8acd25c", + "type": "github" + }, + "original": { + "owner": "tmux-plugins", + "repo": "tmux-yank", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index e993e6a..698f435 100644 --- a/flake.nix +++ b/flake.nix @@ -20,6 +20,11 @@ url = "github:nix-community/fenix"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; + + tmux-yank = { + url = "github:tmux-plugins/tmux-yank"; + flake = false; + }; }; outputs = diff --git a/modules/basic-tools/multiplexers.nix b/modules/basic-tools/multiplexers.nix index c089128..ced68a1 100644 --- a/modules/basic-tools/multiplexers.nix +++ b/modules/basic-tools/multiplexers.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: { +{ pkgs, inputs, ... }: { programs.tmux = { enable = true; keyMode = "vi"; @@ -6,6 +6,54 @@ historyLimit = 500000; aggressiveResize = true; terminal = "tmux-256color"; + extraConfig = '' + # all the colors we can get + set-option -g default-terminal "tmux-256color" + set-option -ga terminal-overrides ",foot*:Tc" + + # emacs keys in status + set -g status-keys emacs + + # set focus events + set-option -g focus-events on + + # title + set -g set-titles on + set -g set-titles-string "#T" + + # mouse + set -g mouse on + + # theming + # modes + setw -g clock-mode-colour white + + # panes + set -g pane-border-style 'fg=colour244' + set -g pane-active-border-style 'fg=colour03' + + #bind b break-pane -d + + # statusbar + set -g status-position bottom + set -g status-justify left + set -g status-style 'bg=default fg=colour15' + set -g status-right '[#S][@#H][%H:%M][%Y-%m-%d]' + set -g status-left '(^_^)' + #set -g status-right-length 50 + set -g status-left-length 40 + setw -g window-status-current-style 'fg=brightgreen bg=default bold' + setw -g window-status-current-format ' #I#[fg=colour15]:#W#[fg=brightgreen]#F ' + setw -g window-status-style 'fg=gray bg=default' + setw -g window-status-format ' #I#[fg=colour15]:#W#[fg=gray bold]#F ' + setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold' + + # messages + set -g message-style 'fg=black bg=white bold' + + # copy to clipboard support + run-shell ${inputs.self.inputs.tmux-yank}/yank.tmux + ''; }; programs.zsh.interactiveShellInit = ''