tmux revamp

This commit is contained in:
ringofstorms 2024-04-01 00:50:59 -05:00
parent f43d436602
commit 4d473f4088
7 changed files with 143 additions and 44 deletions

View file

@ -30,6 +30,8 @@
- copy over this systems ssh public key ( /etc/shh/*ed25519* ) into the ./secrets/secrets.nix file - push those up, using another computer re-key all the secrets, push up again - copy over this systems ssh public key ( /etc/shh/*ed25519* ) into the ./secrets/secrets.nix file - push those up, using another computer re-key all the secrets, push up again
- pull new secrets down with new added keys and rebuild - pull new secrets down with new added keys and rebuild
- clone neovim setup...
# Later updates # Later updates
- `nix flake update /etc/nixos` - `nix flake update /etc/nixos`

View file

@ -48,6 +48,8 @@ in
# Some basics # Some basics
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
# wayland clipboard in terminal
wl-clipboard
# Basics # Basics
neovim neovim
vim vim

View file

@ -57,6 +57,7 @@
services.xserver.displayManager.gdm = { services.xserver.displayManager.gdm = {
enable = true; enable = true;
autoSuspend = false; autoSuspend = false;
wayland = true;
}; };
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
services.gnome.core-utilities.enable = false; services.gnome.core-utilities.enable = false;
@ -78,4 +79,48 @@
environment.shellAliases = { environment.shellAliases = {
wifi = "nmtui"; wifi = "nmtui";
}; };
# nvidia gfx
# =========
# Enable OpenGL
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = ["nvidia"];
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
} }

View file

@ -0,0 +1,51 @@
{ ... }:
{
# More of an experiment to try out since wezterm is being weird on wayland...
#
#
programs.alacritty = {
enable = true;
settings = {
window = {
decorations = "None";
dynamic_title = false;
};
colors = {
primary = {
foreground = "#e0e0e0";
background = "#262626";
cursor = "#171717";
vi_mode_cursor = "#636363";
};
normal = {
# Catppuccin Coal
black = "#1f1f1f";
red = "#f38ba8";
green = "#a6e3a1";
yellow = "#f9e2af";
blue = "#89b4fa";
magenta = "#cba6f7";
cyan = "#89dceb";
white = "#e0e0e0";
};
};
font = {
normal = { family = "JetBrainsMonoNL Nerd Font"; style = "Regular"; };
size = 12.0;
## TODO use 16 on macos ...
};
# TODO revisit... none of this is working.
keyboard.bindings = [
# { key = "m"; mods = "Command"; chars = "test"; }
# { key = "t"; mods = "Control"; action = { SendString = "\\x01t"; }; }
# { key = "w"; mods = "Control"; action = { SendString = "\\x01w"; }; }
# { key = "o"; mods = "Control"; action = { SendString = "testing123"; }; }
# { key = "w"; mods = "Control"; chars = "\\\\x01w"; }
# { key = "o"; mods = "Control"; chars = "\\\\x01o"; }
# { key = "1"; mods = "Control"; chars = "\\\\x011"; }
# { key = "2"; mods = "Control"; chars = "\\\\x012"; }
];
};
};
}

View file

@ -1,9 +1,17 @@
# Reset everything then add what we want exactly # Reset everything then add what we want exactly
unbind-key -a unbind-key -a
bind C-Space send-prefix
# Window stuff # Windows
bind -r H previous-window bind -r p previous-window
bind -r L next-window bind -r n next-window
bind -r & kill-window
bind -r c new-window
bind ',' command-prompt "rename-window %%"
bind -r '"' split-window -v -c "#{pane_current_path}"
bind -r % split-window -h -c "#{pane_current_path}"
# bind "'" command-prompt -T window-target -p index { select-window it ":%%" }
bind w choose-tree -Zw
bind -r 1 select-window -t:1 bind -r 1 select-window -t:1
bind -r 2 select-window -t:2 bind -r 2 select-window -t:2
bind -r 3 select-window -t:3 bind -r 3 select-window -t:3
@ -13,41 +21,38 @@ bind -r 6 select-window -t:6
bind -r 7 select-window -t:7 bind -r 7 select-window -t:7
bind -r 8 select-window -t:8 bind -r 8 select-window -t:8
bind -r 9 select-window -t:9 bind -r 9 select-window -t:9
bind r command-prompt "rename-window %%" # custom
bind | split-window -h -c "#{pane_current_path}"
bind \\ split-window -v -c "#{pane_current_path}"
bind t new-window
bind T command-prompt -p "window name:" "new-window; rename-window '%%'"
bind m command-prompt -p "Swap with window index:" "swap-window -t '%%'" bind m command-prompt -p "Swap with window index:" "swap-window -t '%%'"
bind -r [ swap-window -t -1 \; previous-window bind -r [ swap-window -t -1 \; previous-window
bind -r ] swap-window -t +1 \; next-window bind -r ] swap-window -t +1 \; next-window
# Sessions
bind C-s command-prompt -p "session name:" "new-session -s '%%'"
bind C-r command-prompt "rename-session %%"
bind -r C-L switch-client -n
bind -r C-H switch-client -p
# Pane stuff # Panes
bind ! break-pane
bind -r left select-pane -L
bind -r down select-pane -D
bind -r up select-pane -U
bind -r right select-pane -R
bind -r x kill-pane
bind z resize-pane -Z
# custom
bind e select-layout tiled
bind -r h select-pane -L bind -r h select-pane -L
bind -r j select-pane -D bind -r j select-pane -D
bind -r k select-pane -U bind -r k select-pane -U
bind -r l select-pane -R bind -r l select-pane -R
bind -r , resize-pane -L 20
bind -r . resize-pane -R 20
bind -r - resize-pane -D 7 # Sessions
bind -r = resize-pane -U 7 bind $ command-prompt "rename-session %%"
bind q kill-pane bind -r ) switch-client -n
bind w kill-window bind -r ( switch-client -p
bind x swap-pane -D
# Tmux util # Tmux util
bind p paste-buffer
bind X source-file ~/.config/tmux/tmux.conf bind X source-file ~/.config/tmux/tmux.conf
bind z resize-pane -Z
bind : command-prompt bind : command-prompt
bind ^Q detach bind C-D detach
# ========== # ==========
# My options # My options
set-option -g terminal-overrides ',xterm-256color:RGB' set-option -g terminal-overrides ',xterm-256color:RGB'

View file

@ -12,8 +12,9 @@ in
# Revisit this later, permission denied to make anything in `/run` as my user... # Revisit this later, permission denied to make anything in `/run` as my user...
secureSocket = false; secureSocket = false;
shortcut = "a"; # default is B switch to space for easier dual hand use
prefix = "C-a"; shortcut = "Space";
prefix = "C-Space";
baseIndex = 1; baseIndex = 1;
mouse = true; mouse = true;
keyMode = "vi"; keyMode = "vi";
@ -23,24 +24,15 @@ in
aggressiveResize = true; aggressiveResize = true;
plugins = [ plugins = [
{
plugin = tmux.sessionist;
extraConfig = ''
set -g @sessionist-join-pane "j"
set -g @sessionist-goto "o"
set -g @default_key_bindings_new "UNSET"
'';
}
tmux.yank tmux.yank
tmux.tmux-thumbs # tmux.tmux-thumbs
{ # {
plugin = tmux.fzf-tmux-url; # plugin = tmux.fzf-tmux-url;
extraConfig = '' # extraConfig = ''
set -g @fzf-url-fzf-options '-p 60%,30% --prompt = " " - -border-label=" Open URL "' # set -g @fzf-url-fzf-options '-p 60%,30% --prompt = " " - -border-label=" Open URL "'
set -g @fzf-url-history-limit '2000' # set -g @fzf-url-history-limit '2000'
''; # '';
} # }
{ {
plugin = tmux.catppuccin.overrideAttrs (_: { plugin = tmux.catppuccin.overrideAttrs (_: {
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {

View file

@ -106,6 +106,8 @@ if isMac then
config.font_size = 16 config.font_size = 16
config.window_decorations = "RESIZE" config.window_decorations = "RESIZE"
elseif isNix then elseif isNix then
config.enable_wayland = true
config.window_decorations = "NONE" config.window_decorations = "NONE"
-- Fix for cursor disappearing in gnome -- Fix for cursor disappearing in gnome