Compare commits

...

3 Commits

Author SHA1 Message Date
Moritz Böhme 414a3a1fdf
feat(tmux): add tmux-sessionizer 2023-04-26 08:57:59 +02:00
Moritz Böhme af1f1fec2e
feat(programs): add navi 2023-04-25 19:50:28 +02:00
Moritz Böhme 52650a3c84
feat(programs): add tmux 2023-04-25 18:55:15 +02:00
11 changed files with 129 additions and 2 deletions

View File

@ -9,6 +9,7 @@ in
(import ./catppuccin.nix
{
inherit config lib pkgs;
flavor = "mocha";
rosewater = "f2d5cf";
flamingo = "eebebe";
pink = "f4b8e4";

View File

@ -9,6 +9,7 @@ in
(import ./catppuccin.nix
{
inherit config lib pkgs;
flavor = "mocha";
rosewater = "dc8a78";
flamingo = "dd7878";
pink = "ea76cb";

View File

@ -9,6 +9,7 @@ in
(import ./catppuccin.nix
{
inherit config lib pkgs;
flavor = "mocha";
rosewater = "f4dbd6";
flamingo = "f0c6c6";
pink = "f5bde6";

View File

@ -9,6 +9,7 @@ in
(import ./catppuccin.nix
{
inherit config lib pkgs;
flavor = "mocha";
rosewater = "f5e0dc";
flamingo = "f2cdcd";
pink = "f5c2e7";

View File

@ -1,4 +1,6 @@
{ config
, pkgs
, flavor
, rosewater
, flamingo
, pink
@ -127,6 +129,12 @@
color7 #${subtext1}
color15 #${subtext0}
'';
tmux.plugins = with pkgs.tmuxPlugins; [
{
plugin = catppuccin;
extraConfig = "set -g @catppuccin_flavour '${flavor}'";
}
];
zathura.extraConfig = ''
set window-title-basename "true"
set selection-clipboard "clipboard"

View File

@ -1,5 +1,6 @@
{ config
, lib
, pkgs
, ...
}:
@ -97,6 +98,9 @@ in
active_border_color #f8f8f2
inactive_border_color #6272a4
'';
tmux.plugins = with pkgs.tmuxPlugins; [
dracula
];
zathura.extraConfig = ''
set window-title-basename "true"
set selection-clipboard "clipboard"

View File

@ -62,6 +62,8 @@ in
fish.enable = true;
git.enable = true;
gpg.enable = true;
navi.enable = true;
tmux.enable = true;
};
};
@ -98,8 +100,8 @@ in
exa
gparted
neofetch
reptyr
ripgrep
tmux
up
viu
wget
@ -143,7 +145,6 @@ in
];
};
zoxide.enable = true;
navi.enable = true;
};
home = {
username = "moritz";

View File

@ -18,6 +18,7 @@
./ledger
./logseq.nix
./miracast.nix
./navi
./nvim
./python.nix
./rofi
@ -25,6 +26,7 @@
./ssh.nix
./sway.nix
./thunar.nix
./tmux.nix
./zathura.nix
./zsh.nix
];

View File

@ -0,0 +1,6 @@
% tmux, reptyr
# send background process to tmux
bg <process> && disown <process> && tmux new "$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

@ -0,0 +1,20 @@
{ config, lib, ... }:
with lib;
let
cfg = config.my.programs.navi;
in
{
options.my.programs.navi.enable = mkEnableOption "navi";
config = mkIf cfg.enable {
home-manager.users.moritz = {
programs.navi.enable = true;
xdg.dataFile."navi/cheats/personal" = {
enable = true;
recursive = true;
source = ./cheats;
};
};
};
}

82
modules/programs/tmux.nix Normal file
View File

@ -0,0 +1,82 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.my.programs.tmux;
tmux-sessionizer = pkgs.writeShellApplication {
name = "ts";
runtimeInputs = with pkgs; [ tmux findutils coreutils procps fd ];
text = ''
#!/usr/bin/env bash
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(fd -gH '.git' ~/ --min-depth 1 --max-depth 5 --type d --prune --exec dirname {} | fzf)
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
if ! tmux has-session -t="$selected_name" 2> /dev/null; then
tmux new-session -ds "$selected_name" -c "$selected"
fi
if [[ -z ''${TMUX+x} ]]; then
tmux attach -t "$selected_name"
else
tmux switch-client -t "$selected_name"
fi
'';
};
in
{
options.my.programs.tmux = {
enable = mkEnableOption "tmux";
autoAttach = mkEnableOption "autoAttach";
};
config = mkIf cfg.enable {
my.shell.abbreviations.t = "tmux";
home-manager.users.moritz.home.packages = [ tmux-sessionizer ];
home-manager.users.moritz.programs = {
tmux = {
enable = true;
clock24 = true;
customPaneNavigationAndResize = true;
keyMode = "vi";
mouse = true;
newSession = true;
prefix = "C-Space";
sensibleOnTop = false;
plugins = with pkgs.tmuxPlugins; [
sensible
tmux-fzf
yank
];
};
fzf.tmux.enableShellIntegration = true;
fish.interactiveShellInit =
let
insideVariables = [ "$TMUX" "$INSIDE_EMACS" "$EMACS" "$VIM" "$VSCODE_RESOLVING_ENVIRONMENT" ];
insideVariableMissing = concatStringsSep " && " (map (x: "test -z ${x}") insideVariables);
in
mkIf cfg.autoAttach
''
if ! fish_is_root_user && test "$TERM_PROGRAM" != 'vscode' && ${insideVariableMissing}
if test -z $tmux_autostarted
set -x tmux_autostarted true
ts
end
end
'';
};
};
}