summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrigory Shipunov2023-02-14 22:13:52 +0100
committerGrigory Shipunov2023-02-14 22:13:52 +0100
commitc4aefa0182521383068edacfe7d864c3ff9a6078 (patch)
tree41668961a623b91198cbd554eafe0bb9e2e2886d
parentdb45fa36331f575b8266a756eabb5829bdc3d339 (diff)
move tmux config to nix
-rw-r--r--flake.lock19
-rw-r--r--flake.nix5
-rw-r--r--modules/basic-tools/multiplexers.nix50
3 files changed, 72 insertions, 2 deletions
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 = ''