mirror of
https://github.com/softinio/nix-config.git
synced 2025-08-31 14:56:41 -07:00
add tmux back and update
This commit is contained in:
parent
8e6d869217
commit
dfb394ea21
5 changed files with 155 additions and 15 deletions
30
flake.lock
generated
30
flake.lock
generated
|
@ -28,11 +28,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744223888,
|
"lastModified": 1744735751,
|
||||||
"narHash": "sha256-reYpe0J1J+wH34JFs7KKp0G5nP7+XSQ5z0ZLFJcfJr8=",
|
"narHash": "sha256-OPpfgL3qUIbQdbmp1/ZwnlsuTLooHN4or0EABnZTFRY=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "79461936709b12e17adb9c91dd02d1c66d577f09",
|
"rev": "db7738e67a101ad945abbcb447e1310147afaf1b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -48,11 +48,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744224272,
|
"lastModified": 1744478979,
|
||||||
"narHash": "sha256-cqePj5nuC7flJWNncaVAFq1YZncU0PSyO0DEqGn+vYc=",
|
"narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "113883e37d985d26ecb65282766e5719f2539103",
|
"rev": "43975d782b418ebf4969e9ccba82466728c2851b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -63,11 +63,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744157173,
|
"lastModified": 1744536153,
|
||||||
"narHash": "sha256-bWSjxDwq7iVePrhmA7tY2dyMWHuNJo8knkO4y+q4ZkY=",
|
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6a39c6e495eefabc935d8ddf66aa45d85b85fa3f",
|
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -79,11 +79,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744098102,
|
"lastModified": 1744463964,
|
||||||
"narHash": "sha256-tzCdyIJj9AjysC3OuKA+tMD/kDEDAF9mICPDU7ix0JA=",
|
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "c8cd81426f45942bb2906d5ed2fe21d2f19d95b7",
|
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -100,11 +100,11 @@
|
||||||
"treefmt-nix": "treefmt-nix"
|
"treefmt-nix": "treefmt-nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744267403,
|
"lastModified": 1744779422,
|
||||||
"narHash": "sha256-tPzYG/n1PP6Bp4MeJfyp9Ng/bQc4vltIBknBBkwLK3I=",
|
"narHash": "sha256-CQDbwo7yYV5q0iVJ+h8+jrHmAdES2pEQyL5UeQkProE=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "nur",
|
"repo": "nur",
|
||||||
"rev": "cb85fb3dd03d43c2db28dadb43d9bb54857b1150",
|
"rev": "d4312945f8ea7252952fcf694f0c6324acac5334",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
2
home.nix
2
home.nix
|
@ -70,6 +70,7 @@
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
nix-prefetch-git
|
nix-prefetch-git
|
||||||
nodejs
|
nodejs
|
||||||
|
noto-fonts
|
||||||
ollama
|
ollama
|
||||||
openssl
|
openssl
|
||||||
pandoc
|
pandoc
|
||||||
|
@ -96,6 +97,7 @@
|
||||||
tectonic
|
tectonic
|
||||||
texlab
|
texlab
|
||||||
tig
|
tig
|
||||||
|
tmux-sessionizer
|
||||||
tokei
|
tokei
|
||||||
tree
|
tree
|
||||||
tree-sitter
|
tree-sitter
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
./git
|
./git
|
||||||
./jujutsu
|
./jujutsu
|
||||||
./kitty
|
./kitty
|
||||||
|
./tmux
|
||||||
./wezterm
|
./wezterm
|
||||||
./vscode
|
./vscode
|
||||||
./zed
|
./zed
|
||||||
|
|
35
programs/tmux/default.nix
Normal file
35
programs/tmux/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
tmuxConfig = builtins.readFile ./tmux.conf;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
baseIndex = 1;
|
||||||
|
escapeTime = 10;
|
||||||
|
historyLimit = 10000;
|
||||||
|
keyMode = "vi";
|
||||||
|
prefix = "C-a";
|
||||||
|
terminal = "xterm-256color";
|
||||||
|
extraConfig = tmuxConfig;
|
||||||
|
plugins = with pkgs.tmuxPlugins; [
|
||||||
|
sensible
|
||||||
|
yank
|
||||||
|
kanagawa
|
||||||
|
{
|
||||||
|
plugin = kanagawa;
|
||||||
|
extraConfig = ''
|
||||||
|
set -g @kanagawa-theme 'wave'
|
||||||
|
set -g @kanagawa-plugins "cpu-usage git"
|
||||||
|
set -g @kanagawa-show-powerline true
|
||||||
|
set -g @kanagawa-refresh-rate 10
|
||||||
|
|
||||||
|
set -g status-right " #(tms sessions)"
|
||||||
|
bind -r '(' switch-client -p\; refresh-client -S
|
||||||
|
bind -r ')' switch-client -n\; refresh-client -S
|
||||||
|
'';
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
102
programs/tmux/tmux.conf
Normal file
102
programs/tmux/tmux.conf
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
##########################
|
||||||
|
# Configuration
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# use 256 xterm for pretty colors. This enables same colors from iTerm2 within tmux.
|
||||||
|
# This is recommended in neovim :healthcheck
|
||||||
|
# set -g default-terminal "screen-256color"
|
||||||
|
# set -ga terminal-overrides ",xterm-256color:Tc"
|
||||||
|
|
||||||
|
# disable mouse
|
||||||
|
set -g mouse off
|
||||||
|
|
||||||
|
# decrease command delay (increases vim responsiveness)
|
||||||
|
set -sg escape-time 1
|
||||||
|
|
||||||
|
# increase repeat time for repeatable commands
|
||||||
|
set -g repeat-time 1000
|
||||||
|
|
||||||
|
# start pane index at 1 instead of 0
|
||||||
|
setw -g pane-base-index 1
|
||||||
|
|
||||||
|
# highlight window when it has new activity
|
||||||
|
setw -g monitor-activity on
|
||||||
|
set -g visual-activity on
|
||||||
|
|
||||||
|
# re-number windows when one is closed
|
||||||
|
set -g renumber-windows on
|
||||||
|
|
||||||
|
# enable pbcopy and pbpaste
|
||||||
|
# https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard/blob/master/README.md
|
||||||
|
# set-option -g default-command "reattach-to-user-namespace -l zsh"
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Key Bindings
|
||||||
|
###########################
|
||||||
|
|
||||||
|
# Tmux prefix
|
||||||
|
# Current solution is to keep the default
|
||||||
|
# and have term map C-; to C-b. This is the nicest
|
||||||
|
# bind I've found and this is the only way to enable it in tmux
|
||||||
|
# unbind C-b
|
||||||
|
# set -g prefix C-a
|
||||||
|
# bind C-a send-prefix
|
||||||
|
|
||||||
|
# Copy vim style
|
||||||
|
# create 'v' alias for selecting text
|
||||||
|
bind Escape copy-mode
|
||||||
|
bind C-[ copy-mode
|
||||||
|
bind -T copy-mode-vi 'v' send -X begin-selection
|
||||||
|
# copy with 'enter' or 'y' and send to mac os clipboard: http://goo.gl/2Bfn8
|
||||||
|
unbind -T copy-mode-vi Enter
|
||||||
|
bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
|
||||||
|
bind -T copy-mode-vi 'y' send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy"
|
||||||
|
# paste
|
||||||
|
bind p paste-buffer
|
||||||
|
# paste from system clipboard MacOS
|
||||||
|
# bind C-v run \"tmux set-buffer \"$(reattach-to-user-namespace pbpaste)\"; tmux paste-buffer"
|
||||||
|
|
||||||
|
# panes: window splitting
|
||||||
|
unbind %
|
||||||
|
bind "'" split-window -h
|
||||||
|
unbind '"'
|
||||||
|
bind - split-window -v
|
||||||
|
|
||||||
|
# Switch panes with hjkl
|
||||||
|
bind h select-pane -L
|
||||||
|
bind j select-pane -D
|
||||||
|
bind k select-pane -U
|
||||||
|
bind l select-pane -R
|
||||||
|
|
||||||
|
# Quick window selection
|
||||||
|
bind -r C-h select-window -t :-
|
||||||
|
bind -r C-l select-window -t :+
|
||||||
|
|
||||||
|
# resize panes
|
||||||
|
bind -r H resize-pane -L 5
|
||||||
|
bind -r J resize-pane -D 5
|
||||||
|
bind -r K resize-pane -U 5
|
||||||
|
bind -r L resize-pane -R 5
|
||||||
|
|
||||||
|
## Quickly switch panes
|
||||||
|
unbind ^J
|
||||||
|
bind ^J select-pane -t :.+
|
||||||
|
|
||||||
|
############################
|
||||||
|
## Status Bar
|
||||||
|
############################
|
||||||
|
|
||||||
|
# enable UTF-8 support in status bar
|
||||||
|
set -gq status-utf8 on
|
||||||
|
|
||||||
|
# center the status bar
|
||||||
|
set -g status-justify centre
|
||||||
|
|
||||||
|
# show session, window, pane in left status bar
|
||||||
|
set -g status-left-length 40
|
||||||
|
set -g status-left '#[fg=green] #S #[fg=yellow]#I/#[fg=cyan]#P '
|
||||||
|
|
||||||
|
# update status bar info
|
||||||
|
set -g status-interval 60
|
||||||
|
|
||||||
|
set -g default-command /etc/profiles/per-user/salar/bin/fish
|
Loading…
Add table
Add a link
Reference in a new issue