Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
178a51d75e | ||
|
|
d35575326b | ||
|
|
761102fd35 | ||
|
|
665727cb3d | ||
|
|
22600b2ca6 | ||
|
|
30dfcb6141 |
No files matched your search
@@ -1,147 +0,0 @@
|
|||||||
#: Fonts {{{
|
|
||||||
|
|
||||||
font_family Iosevka Term SS08
|
|
||||||
bold_font auto
|
|
||||||
italic_font auto
|
|
||||||
bold_italic_font auto
|
|
||||||
font_size 12.0
|
|
||||||
disable_ligatures never
|
|
||||||
|
|
||||||
# }}}
|
|
||||||
|
|
||||||
#: Cursor {{{
|
|
||||||
|
|
||||||
cursor_shape block
|
|
||||||
cursor_blink_interval 0
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Scrollback {{{
|
|
||||||
|
|
||||||
scrollback_lines 8192
|
|
||||||
scrollbar scrolled
|
|
||||||
scrollback_pager_history_size 1024
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Mouse {{{
|
|
||||||
|
|
||||||
mouse_hide_wait 0.0
|
|
||||||
paste_actions quote-urls-at-prompt
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Performance tuning {{{
|
|
||||||
|
|
||||||
repaint_delay 8
|
|
||||||
input_delay 2
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Terminal bell {{{
|
|
||||||
|
|
||||||
enable_audio_bell yes
|
|
||||||
window_alert_on_bell yes
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Window layout {{{
|
|
||||||
|
|
||||||
remember_window_size no
|
|
||||||
remember_window_position no
|
|
||||||
enabled_layouts *
|
|
||||||
hide_window_decorations yes
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Advanced {{{
|
|
||||||
|
|
||||||
notify_on_cmd_finish unfocused
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: OS specific tweaks {{{
|
|
||||||
|
|
||||||
linux_display_server auto
|
|
||||||
wayland_enable_ime no
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
#: Keyboard shortcuts {{{
|
|
||||||
|
|
||||||
kitty_mod ctrl+shift
|
|
||||||
map kitty_mod+c copy_to_clipboard
|
|
||||||
map kitty_mod+v paste_from_clipboard
|
|
||||||
map cmd+v
|
|
||||||
# map kitty_mod+o pass_selection_to_program
|
|
||||||
# map kitty_mod+o pass_selection_to_program firefox
|
|
||||||
# map kitty_mod+y new_window less @selection
|
|
||||||
map kitty_mod+z scroll_to_prompt -1
|
|
||||||
map kitty_mod+x scroll_to_prompt 1
|
|
||||||
map kitty_mod+h show_scrollback
|
|
||||||
# map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
|
|
||||||
#:: For more details on piping screen and buffer contents to external
|
|
||||||
#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
|
|
||||||
# map kitty_mod+g show_last_command_output
|
|
||||||
# map kitty_mod+enter launch --cwd=current
|
|
||||||
# map cmd+enter
|
|
||||||
# map ctrl+n launch --location=neighbor
|
|
||||||
# map ctrl+f launch --location=first
|
|
||||||
map kitty_mod+n
|
|
||||||
map cmd+n
|
|
||||||
map kitty_mod+w
|
|
||||||
map shift+cmd+d
|
|
||||||
map kitty_mod+]
|
|
||||||
map kitty_mod+[
|
|
||||||
map kitty_mod+f
|
|
||||||
map kitty_mod+b
|
|
||||||
map kitty_mod+`
|
|
||||||
map kitty_mod+r
|
|
||||||
map cmd+r
|
|
||||||
map kitty_mod+1
|
|
||||||
map cmd+1
|
|
||||||
map kitty_mod+2
|
|
||||||
map cmd+2
|
|
||||||
map kitty_mod+3
|
|
||||||
map cmd+3
|
|
||||||
map kitty_mod+4
|
|
||||||
map cmd+4
|
|
||||||
map kitty_mod+5
|
|
||||||
map cmd+5
|
|
||||||
map kitty_mod+6
|
|
||||||
map cmd+6
|
|
||||||
map kitty_mod+7
|
|
||||||
map cmd+7
|
|
||||||
map kitty_mod+8
|
|
||||||
map cmd+8
|
|
||||||
map kitty_mod+9
|
|
||||||
map cmd+9
|
|
||||||
map kitty_mod+0
|
|
||||||
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
|
|
||||||
map cmd+t
|
|
||||||
map kitty_mod+q
|
|
||||||
map cmd+w
|
|
||||||
map kitty_mod+.
|
|
||||||
map kitty_mod+,
|
|
||||||
map kitty_mod+alt+t
|
|
||||||
map shift+cmd+i
|
|
||||||
map kitty_mod+f1
|
|
||||||
map kitty_mod+f11
|
|
||||||
map ctrl+cmd+f
|
|
||||||
map kitty_mod+f10
|
|
||||||
map opt+cmd+s
|
|
||||||
map kitty_mod+u kitten unicode_input
|
|
||||||
map ctrl+cmd+space
|
|
||||||
map kitty_mod+/ kitty_shell window
|
|
||||||
map kitty_mod+f5
|
|
||||||
map kitty_mod+r load_config_file
|
|
||||||
|
|
||||||
map shift+cmd+/
|
|
||||||
map cmd+h
|
|
||||||
map opt+cmd+
|
|
||||||
map cmd+m
|
|
||||||
map cmd+q
|
|
||||||
|
|
||||||
#: }}}
|
|
||||||
|
|
||||||
include ./nvim.conf
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
allow_remote_control socket-only
|
|
||||||
listen_on unix:/tmp/kitty
|
|
||||||
shell_integration enabled
|
|
||||||
|
|
||||||
action_alias kitty_scrollback_nvim kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
|
||||||
map kitty_mod+h kitty_scrollback_nvim
|
|
||||||
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
|
||||||
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
default_keybindings = false
|
|
||||||
flip_status_indicators = true
|
|
||||||
library_tabs = ["tracks", "albums", "artists", "playlists", "browse"] # remove podcasts tab
|
|
||||||
|
|
||||||
[keybindings]
|
|
||||||
"Enter" = "play"
|
|
||||||
" " = "playpause"
|
|
||||||
"S" = "stop"
|
|
||||||
"<" = "seek -10000"
|
|
||||||
">" = "seek +10000"
|
|
||||||
"H" = "previous"
|
|
||||||
"L" = "next"
|
|
||||||
"r" = "repeat"
|
|
||||||
"z" = "shuffle"
|
|
||||||
"d" = "delete"
|
|
||||||
"s" = "save"
|
|
||||||
"O" = "open current"
|
|
||||||
"o" = "open selected"
|
|
||||||
"Backspace" = "back"
|
|
||||||
"A" = "goto artist"
|
|
||||||
"a" = "goto album"
|
|
||||||
"q" = "queue"
|
|
||||||
"J" = "shift down 1"
|
|
||||||
"K" = "shift up 1"
|
|
||||||
"c" = "clear"
|
|
||||||
"=" = "volup 1"
|
|
||||||
"-" = "voldown 1"
|
|
||||||
"1" = "focus queue"
|
|
||||||
"2" = "focus search"
|
|
||||||
"3" = "focus library"
|
|
||||||
"4" = "focus cover"
|
|
||||||
"h" = "move left 1"
|
|
||||||
"j" = "move down 1"
|
|
||||||
"k" = "move up 1"
|
|
||||||
"l" = "move right 1"
|
|
||||||
"g" = "move top"
|
|
||||||
"G" = "move bottom"
|
|
||||||
"t" = "sort added d"
|
|
||||||
"T" = "sort title a"
|
|
||||||
"y" = "share current"
|
|
||||||
"Y" = "share selected"
|
|
||||||
"U" = "update"
|
|
||||||
|
|
||||||
backend="pipe"
|
|
||||||
notify="false"
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
# statusbar
|
|
||||||
setw -g monitor-activity on
|
|
||||||
set -g visual-activity on
|
|
||||||
set -g history-limit 100000
|
|
||||||
set -g default-command "${SHELL}"
|
|
||||||
setw -g aggressive-resize on
|
|
||||||
set -sg escape-time 0
|
|
||||||
|
|
||||||
# keybindings
|
|
||||||
# NOTE: I intend to use defaults whenever feasible
|
|
||||||
# - my prefix key is still C-b
|
|
||||||
# - however, I do use vi mode
|
|
||||||
setw -g mode-keys vi
|
|
||||||
set -g status-keys vi
|
|
||||||
bind r source-file ~/.config/tmux/tmux.conf # reload tmux conf
|
|
||||||
# Splits
|
|
||||||
unbind v
|
|
||||||
unbind s
|
|
||||||
unbind % # vsplit
|
|
||||||
unbind '"' # hsplit
|
|
||||||
bind v split-window -h -c "#{pane_current_path}"
|
|
||||||
bind s split-window -v -c "#{pane_current_path}"
|
|
||||||
bind -r h select-pane -L
|
|
||||||
bind -r j select-pane -D
|
|
||||||
bind -r k select-pane -U
|
|
||||||
bind -r l select-pane -R
|
|
||||||
bind -r H resize-pane -L 4
|
|
||||||
bind -r J resize-pane -D 4
|
|
||||||
bind -r K resize-pane -U 4
|
|
||||||
bind -r L resize-pane -R 4
|
|
||||||
|
|
||||||
bind-key -T root F1 select-window -t 1
|
|
||||||
bind-key -T root F2 select-window -t 2
|
|
||||||
bind-key -T root F3 select-window -t 3
|
|
||||||
bind-key -T root F4 select-window -t 4
|
|
||||||
bind-key -T root F5 select-window -t 5
|
|
||||||
bind-key -T root F6 select-window -t 6
|
|
||||||
bind-key -T root F7 select-window -t 7
|
|
||||||
bind-key -T root F8 select-window -t 8
|
|
||||||
bind-key -T root F9 select-window -t 9
|
|
||||||
|
|
||||||
|
|
||||||
# bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
|
|
||||||
# bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
|
|
||||||
bind-key -T root S-F1 join-pane -s :1
|
|
||||||
bind-key -T root S-F2 join-pane -s :2
|
|
||||||
bind-key -T root S-F3 join-pane -s :3
|
|
||||||
bind-key -T root S-F4 join-pane -s :4
|
|
||||||
bind-key -T root S-F5 join-pane -s :5
|
|
||||||
bind-key -T root S-F6 join-pane -s :6
|
|
||||||
bind-key -T root S-F7 join-pane -s :7
|
|
||||||
bind-key -T root S-F8 join-pane -s :8
|
|
||||||
bind-key -T root S-F9 join-pane -s :9
|
|
||||||
|
|
||||||
# 1-based indexing makes most sense for keyboard layouts (where number row start at 1)
|
|
||||||
set -g base-index 1
|
|
||||||
set -g pane-base-index 1
|
|
||||||
|
|
||||||
# statusbar
|
|
||||||
set -g status-position top
|
|
||||||
set -g status-left-length 20
|
|
||||||
set -g window-status-separator ""
|
|
||||||
%if "#{==:#{host},desktop-arch}"
|
|
||||||
set -g status-left "#[bg=colour235,fg=colour255] #S #[fg=colour235,bg=default] "
|
|
||||||
set -g status-right ""
|
|
||||||
%else
|
|
||||||
set -g status-left '#h '
|
|
||||||
set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a %l:%M:%S %p %Y-%m-%d'
|
|
||||||
%endif
|
|
||||||
|
|
||||||
set -g default-terminal "tmux-256color"
|
|
||||||
|
|
||||||
# Vi copypaste mode
|
|
||||||
if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 4 \)'" 'bind-key -Tcopy-mode-vi v send -X begin-selection; bind-key -Tcopy-mode-vi y send -X copy-selection-and-cancel'
|
|
||||||
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 4\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'bind-key -t vi-copy v begin-selection; bind-key -t vi-copy y copy-selection'
|
|
||||||
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 2\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set-option -g status-utf8 on'
|
|
||||||
|
|
||||||
set -g allow-passthrough on
|
|
||||||
set -s extended-keys on
|
|
||||||
set -as terminal-features 'xterm*:extkeys'
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
dotsPath,
|
osConfig ? null,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -23,10 +23,60 @@ in
|
|||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [ spotifyWithWayland ];
|
home.packages = [ spotifyWithWayland ];
|
||||||
|
|
||||||
programs.ncspot = {
|
programs.ncspot = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = fromTOML (builtins.readFile (dotsPath + "/.config/ncspot/config.toml"));
|
settings = {
|
||||||
|
backend = lib.mkIf (osConfig.audio.enable or false) (lib.mkDefault "pulseaudio");
|
||||||
|
default_keybindings = false;
|
||||||
|
flip_status_indicators = true;
|
||||||
|
library_tabs = [
|
||||||
|
"tracks"
|
||||||
|
"albums"
|
||||||
|
"artists"
|
||||||
|
"playlists"
|
||||||
|
"browse"
|
||||||
|
]; # remove podcasts tab
|
||||||
|
keybindings = {
|
||||||
|
"Enter" = "play";
|
||||||
|
" " = "playpause";
|
||||||
|
"S" = "stop";
|
||||||
|
"<" = "seek -10000";
|
||||||
|
">" = "seek +10000";
|
||||||
|
"H" = "previous";
|
||||||
|
"L" = "next";
|
||||||
|
"r" = "repeat";
|
||||||
|
"z" = "shuffle";
|
||||||
|
"d" = "delete";
|
||||||
|
"s" = "save";
|
||||||
|
"O" = "open current";
|
||||||
|
"o" = "open selected";
|
||||||
|
"Backspace" = "back";
|
||||||
|
"A" = "goto artist";
|
||||||
|
"a" = "goto album";
|
||||||
|
"q" = "queue";
|
||||||
|
"J" = "shift down 1";
|
||||||
|
"K" = "shift up 1";
|
||||||
|
"c" = "clear";
|
||||||
|
"=" = "volup 1";
|
||||||
|
"-" = "voldown 1";
|
||||||
|
"1" = "focus queue";
|
||||||
|
"2" = "focus search";
|
||||||
|
"3" = "focus library";
|
||||||
|
"4" = "focus cover";
|
||||||
|
"h" = "move left 1";
|
||||||
|
"j" = "move down 1";
|
||||||
|
"k" = "move up 1";
|
||||||
|
"l" = "move right 1";
|
||||||
|
"g" = "move top";
|
||||||
|
"G" = "move bottom";
|
||||||
|
"t" = "sort added d";
|
||||||
|
"T" = "sort title a";
|
||||||
|
"y" = "share current";
|
||||||
|
"Y" = "share selected";
|
||||||
|
"U" = "update";
|
||||||
|
notify = "false";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -8,8 +8,6 @@
|
|||||||
{
|
{
|
||||||
config = lib.mkIf config.utils.enable {
|
config = lib.mkIf config.utils.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
ripgrep
|
|
||||||
bat
|
|
||||||
jq
|
jq
|
||||||
entr
|
entr
|
||||||
parallel
|
parallel
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
dotsPath,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -20,10 +19,145 @@ in
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = config.nixgl.wrap pkgs.kitty;
|
package = config.nixgl.wrap pkgs.kitty;
|
||||||
extraConfig = builtins.readFile (dotsPath + "/.config/kitty/kitty.conf");
|
settings = {
|
||||||
|
#: Fonts {{{
|
||||||
|
font_family = "Iosevka Term SS08";
|
||||||
|
bold_font = "auto";
|
||||||
|
italic_font = "auto";
|
||||||
|
bold_italic_font = "auto";
|
||||||
|
font_size = 12.0;
|
||||||
|
disable_ligatures = "never";
|
||||||
|
# }}}
|
||||||
|
|
||||||
|
#: Cursor {{{
|
||||||
|
cursor_shape = "block";
|
||||||
|
cursor_blink_interval = 0;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Scrollback {{{
|
||||||
|
scrollback_lines = 8192;
|
||||||
|
scrollbar = "scrolled";
|
||||||
|
scrollback_pager_history_size = 1024;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Mouse {{{
|
||||||
|
mouse_hide_wait = 0.0;
|
||||||
|
paste_actions = "quote-urls-at-prompt";
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Performance tuning {{{
|
||||||
|
repaint_delay = 8;
|
||||||
|
input_delay = 2;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Terminal bell {{{
|
||||||
|
enable_audio_bell = true;
|
||||||
|
window_alert_on_bell = true;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Window layout {{{
|
||||||
|
remember_window_size = false;
|
||||||
|
remember_window_position = false;
|
||||||
|
enabled_layouts = "*";
|
||||||
|
hide_window_decorations = true;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: Advanced {{{
|
||||||
|
notify_on_cmd_finish = "unfocused";
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
#: OS specific tweaks {{{
|
||||||
|
linux_display_server = "auto";
|
||||||
|
wayland_enable_ime = false;
|
||||||
|
#: }}}
|
||||||
|
|
||||||
|
kitty_mod = "ctrl+shift";
|
||||||
|
allow_remote_control = "socket-only";
|
||||||
|
listen_on = "unix:/tmp/kitty";
|
||||||
|
shell_integration = "enabled";
|
||||||
|
};
|
||||||
|
|
||||||
|
#: Keyboard shortcuts {{{
|
||||||
|
keybindings = {
|
||||||
|
"kitty_mod+c" = "copy_to_clipboard";
|
||||||
|
"kitty_mod+v" = "paste_from_clipboard";
|
||||||
|
"cmd+v" = "";
|
||||||
|
# map kitty_mod+o pass_selection_to_program
|
||||||
|
# map kitty_mod+o pass_selection_to_program firefox
|
||||||
|
# map kitty_mod+y new_window less @selection
|
||||||
|
"kitty_mod+z" = "scroll_to_prompt -1";
|
||||||
|
"kitty_mod+x" = "scroll_to_prompt 1";
|
||||||
|
"kitty_mod+h" = "kitty_scrollback_nvim";
|
||||||
|
# map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R
|
||||||
|
#:: For more details on piping screen and buffer contents to external
|
||||||
|
#:: programs, see launch <https://sw.kovidgoyal.net/kitty/launch/>.
|
||||||
|
# map kitty_mod+g show_last_command_output
|
||||||
|
# map kitty_mod+enter launch --cwd=current
|
||||||
|
# map cmd+enter
|
||||||
|
# map ctrl+n launch --location=neighbor
|
||||||
|
# map ctrl+f launch --location=first
|
||||||
|
"kitty_mod+n" = "";
|
||||||
|
"cmd+n" = "";
|
||||||
|
"kitty_mod+w" = "";
|
||||||
|
"shift+cmd+d" = "";
|
||||||
|
"kitty_mod+]" = "";
|
||||||
|
"kitty_mod+[" = "";
|
||||||
|
"kitty_mod+f" = "";
|
||||||
|
"kitty_mod+b" = "";
|
||||||
|
"kitty_mod+`" = "";
|
||||||
|
"cmd+r" = "";
|
||||||
|
"kitty_mod+1" = "";
|
||||||
|
"cmd+1" = "";
|
||||||
|
"kitty_mod+2" = "";
|
||||||
|
"cmd+2" = "";
|
||||||
|
"kitty_mod+3" = "";
|
||||||
|
"cmd+3" = "";
|
||||||
|
"kitty_mod+4" = "";
|
||||||
|
"cmd+4" = "";
|
||||||
|
"kitty_mod+5" = "";
|
||||||
|
"cmd+5" = "";
|
||||||
|
"kitty_mod+6" = "";
|
||||||
|
"cmd+6" = "";
|
||||||
|
"kitty_mod+7" = "";
|
||||||
|
"cmd+7" = "";
|
||||||
|
"kitty_mod+8" = "";
|
||||||
|
"cmd+8" = "";
|
||||||
|
"kitty_mod+9" = "";
|
||||||
|
"cmd+9" = "";
|
||||||
|
"kitty_mod+0" = "";
|
||||||
|
# map kitty_mod+c new_tab # FIXME: conflict with 'copy'
|
||||||
|
"cmd+t" = "";
|
||||||
|
"kitty_mod+q" = "";
|
||||||
|
"cmd+w" = "";
|
||||||
|
"kitty_mod+." = "";
|
||||||
|
"kitty_mod+," = "";
|
||||||
|
"kitty_mod+alt+t" = "";
|
||||||
|
"shift+cmd+i" = "";
|
||||||
|
"kitty_mod+f1" = "";
|
||||||
|
"kitty_mod+f11" = "";
|
||||||
|
"ctrl+cmd+f" = "";
|
||||||
|
"kitty_mod+f10" = "";
|
||||||
|
"opt+cmd+s" = "";
|
||||||
|
"kitty_mod+u" = "kitten unicode_input";
|
||||||
|
"ctrl+cmd+space" = "";
|
||||||
|
"kitty_mod+/" = "kitty_shell window";
|
||||||
|
"kitty_mod+f5" = "";
|
||||||
|
"kitty_mod+r" = "load_config_file";
|
||||||
|
|
||||||
|
"shift+cmd+/" = "";
|
||||||
|
"cmd+h" = "";
|
||||||
|
"opt+cmd+" = "";
|
||||||
|
"cmd+m" = "";
|
||||||
|
"cmd+q" = "";
|
||||||
|
|
||||||
|
"kitty_mod+g" = "kitty_scrollback_nvim --config ksb_builtin_last_cmd_output";
|
||||||
|
};
|
||||||
|
#: }}}
|
||||||
|
actionAliases.kitty_scrollback_nvim = "kitten ~/.local/share/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py";
|
||||||
|
mouseBindings."ctrl+shift+right press" =
|
||||||
|
"ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file.".config/kitty/nvim.conf".source = dotsPath + "/.config/kitty/nvim.conf";
|
|
||||||
home.file.".local/share/kitty-scrollback.nvim".source = pkgs.vimPlugins.kitty-scrollback-nvim;
|
home.file.".local/share/kitty-scrollback.nvim".source = pkgs.vimPlugins.kitty-scrollback-nvim;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,6 @@
|
|||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
dotsPath,
|
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
@@ -17,7 +16,83 @@
|
|||||||
|
|
||||||
programs.tmux = {
|
programs.tmux = {
|
||||||
enable = true;
|
enable = true;
|
||||||
extraConfig = builtins.readFile (dotsPath + "/.config/tmux/tmux.conf");
|
historyLimit = 100000;
|
||||||
|
aggressiveResize = true;
|
||||||
|
escapeTime = 0;
|
||||||
|
keyMode = "vi";
|
||||||
|
# 1-based indexing makes most sense for keyboard layouts (where number row start at 1)
|
||||||
|
baseIndex = 1;
|
||||||
|
terminal = "tmux-256color";
|
||||||
|
extraConfig = ''
|
||||||
|
# statusbar
|
||||||
|
setw -g monitor-activity on
|
||||||
|
set -g visual-activity on
|
||||||
|
set -g default-command "''${SHELL}"
|
||||||
|
|
||||||
|
# keybindings
|
||||||
|
# NOTE: I intend to use defaults whenever feasible
|
||||||
|
# - my prefix key is still C-b
|
||||||
|
# - however, I do use vi mode
|
||||||
|
bind r source-file ~/.config/tmux/tmux.conf # reload tmux conf
|
||||||
|
# Splits
|
||||||
|
unbind v
|
||||||
|
unbind s
|
||||||
|
unbind % # vsplit
|
||||||
|
unbind '"' # hsplit
|
||||||
|
bind v split-window -h -c "#{pane_current_path}"
|
||||||
|
bind s split-window -v -c "#{pane_current_path}"
|
||||||
|
bind -r h select-pane -L
|
||||||
|
bind -r j select-pane -D
|
||||||
|
bind -r k select-pane -U
|
||||||
|
bind -r l select-pane -R
|
||||||
|
bind -r H resize-pane -L 4
|
||||||
|
bind -r J resize-pane -D 4
|
||||||
|
bind -r K resize-pane -U 4
|
||||||
|
bind -r L resize-pane -R 4
|
||||||
|
|
||||||
|
bind-key -T root F1 select-window -t 1
|
||||||
|
bind-key -T root F2 select-window -t 2
|
||||||
|
bind-key -T root F3 select-window -t 3
|
||||||
|
bind-key -T root F4 select-window -t 4
|
||||||
|
bind-key -T root F5 select-window -t 5
|
||||||
|
bind-key -T root F6 select-window -t 6
|
||||||
|
bind-key -T root F7 select-window -t 7
|
||||||
|
bind-key -T root F8 select-window -t 8
|
||||||
|
bind-key -T root F9 select-window -t 9
|
||||||
|
|
||||||
|
# bind-key j command-prompt -p "join pane from:" "join-pane -s '%%'"
|
||||||
|
# bind-key s command-prompt -p "send pane to:" "join-pane -t '%%'"
|
||||||
|
bind-key -T root S-F1 join-pane -s :1
|
||||||
|
bind-key -T root S-F2 join-pane -s :2
|
||||||
|
bind-key -T root S-F3 join-pane -s :3
|
||||||
|
bind-key -T root S-F4 join-pane -s :4
|
||||||
|
bind-key -T root S-F5 join-pane -s :5
|
||||||
|
bind-key -T root S-F6 join-pane -s :6
|
||||||
|
bind-key -T root S-F7 join-pane -s :7
|
||||||
|
bind-key -T root S-F8 join-pane -s :8
|
||||||
|
bind-key -T root S-F9 join-pane -s :9
|
||||||
|
|
||||||
|
# statusbar
|
||||||
|
set -g status-position top
|
||||||
|
set -g status-left-length 20
|
||||||
|
set -g window-status-separator ""
|
||||||
|
%if "#{==:#{host},desktop-arch}"
|
||||||
|
set -g status-left "#[bg=colour235,fg=colour255] #S #[fg=colour235,bg=default] "
|
||||||
|
set -g status-right ""
|
||||||
|
%else
|
||||||
|
set -g status-left '#h '
|
||||||
|
set -g status-right '#(uptime | cut -f 4-5 -d " " | cut -f 1 -d ",") %a %l:%M:%S %p %Y-%m-%d'
|
||||||
|
%endif
|
||||||
|
|
||||||
|
# Vi copypaste mode
|
||||||
|
if-shell "test '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -ge 4 \)'" 'bind-key -Tcopy-mode-vi v send -X begin-selection; bind-key -Tcopy-mode-vi y send -X copy-selection-and-cancel'
|
||||||
|
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 4\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'bind-key -t vi-copy v begin-selection; bind-key -t vi-copy y copy-selection'
|
||||||
|
if-shell '\( #{$TMUX_VERSION_MAJOR} -eq 2 -a #{$TMUX_VERSION_MINOR} -lt 2\) -o #{$TMUX_VERSION_MAJOR} -le 1' 'set-option -g status-utf8 on'
|
||||||
|
|
||||||
|
set -g allow-passthrough on
|
||||||
|
set -s extended-keys on
|
||||||
|
set -as terminal-features 'xterm*:extkeys'
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user