Merge remote-tracking branch 'origin/nixos' into nixos-work

This commit is contained in:
Moritz Böhme 2023-04-28 09:02:22 +02:00
commit 49a2efc9a8
7 changed files with 44 additions and 14 deletions

View file

@ -64,6 +64,19 @@ in
gpg.enable = true;
navi.enable = true;
tmux.enable = true;
tmux.keybinds = {
prefix = {
"-" = "split-window -v";
"|" = "split-window -h";
"C-l" = "send-keys C-l";
"R" = "source-file $XDG_CONFIG_HOME/tmux/tmux.conf \\; display-message 'Reloaded tmux.conf'";
};
copy-mode-vi = {
"v" = "send -X begin-selection";
"V" = "send -X select-line";
"C-v" = "send -X rectangle-toggle";
};
};
};
};

View file

@ -1,4 +1,4 @@
{ lib, ... }:
{ lib, pkgs, ... }:
with lib;
{

View file

@ -1,6 +1,6 @@
% tmux, reptyr
# send background process to tmux
bg <process> && disown <process> && tmux new "$SHELL -c 'reptyr <process>'"
bg <process> && disown <process> && tmux new -d "$SHELL -c 'reptyr <process>'"
$ process: ps x -eo pid,tty,stat | awk '$2 ~ /pts/' | awk '$3 ~ /T/' | cut -d" " -f1 --- --preview "ps -p {} -o cmd"

View file

@ -88,6 +88,7 @@ in
promise-async
vim-fugitive
vim-lion
vim-tmux-navigator
] ++ pluginsWithConfig;
};
};

View file

@ -26,14 +26,6 @@ require("which-key").register({
},
})
-- fast window move
require("which-key").register({
["<C-h>"] = { "<C-w>h", "Move window left" },
["<C-j>"] = { "<C-w>j", "Move window down" },
["<C-k>"] = { "<C-w>k", "Move window up" },
["<C-l>"] = { "<C-w>l", "Move window right" },
})
-- tab
require("which-key").register({
["<tab>"] = {

View file

@ -2,5 +2,4 @@ require("nvim-autopairs").setup()
-- If you want insert `(` after select function or method item
local cmp_autopairs = require("nvim-autopairs.completion.cmp")
local cmp = require("cmp")
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done())
require("cmp").event:on("confirm_done", cmp_autopairs.on_confirm_done())

View file

@ -9,7 +9,7 @@ let
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd ];
text = ''
#!/usr/bin/env bash
options=$(fd -HIg '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf --filter "''$*")
if [[ -z $options ]]; then
@ -43,6 +43,22 @@ in
options.my.programs.tmux = {
enable = mkEnableOption "tmux";
autoAttach = mkEnableOption "autoAttach";
keybinds = mkOption {
type = with types; attrsOf (attrsOf string);
default = { };
description = "Keybinds for tmux";
example = literalExample ''
{
prefix = {
"-" = "split-window -v";
"|" = "split-window -h";
};
copy-mode-vi = {
"v" = "send -X begin-selection";
};
}
'';
};
};
config = mkIf cfg.enable {
@ -62,8 +78,18 @@ in
plugins = with pkgs.tmuxPlugins; [
sensible
tmux-fzf
vim-tmux-navigator
yank
];
extraConfig =
let
mkKeybind = table: mapAttrsToList (keybind: value: "bind-key -T ${table} '${keybind}' ${value}");
keybinds = flatten (mapAttrsToList mkKeybind cfg.keybinds);
in
''
# Keybinds
${concatStringsSep "\n" keybinds}
'';
};
fzf.tmux.enableShellIntegration = true;
fish.interactiveShellInit =
@ -80,7 +106,6 @@ in
end
end
'';
};
};
}