Add some aliases to kitty

This commit is contained in:
Natsu Kagami 2025-04-08 09:52:34 +02:00
parent c5623b5174
commit 4b53af1bf1
Signed by: nki
GPG key ID: 55A032EB38B49ADB
4 changed files with 94 additions and 66 deletions

View file

@ -173,6 +173,7 @@ in
cat = "bat --theme=GitHub "; cat = "bat --theme=GitHub ";
catp = "bat --theme=GitHub -p "; catp = "bat --theme=GitHub -p ";
l = "exa -l --color=always "; l = "exa -l --color=always ";
e = "$EDITOR";
"cp+" = "rsync -avzP"; "cp+" = "rsync -avzP";
}; };
@ -207,13 +208,6 @@ in
echo (__original_fish_title) - fish echo (__original_fish_title) - fish
end end
# Set up an editor alias
if test -n "$EDITOR"
alias e="$EDITOR"
else
alias e="kak"
end
# Source iTerm2 integration # Source iTerm2 integration
if test -e ~/.iterm2_shell_integration.fish; and test $__CFBundleIdentifier = "com.googlecode.iterm2" if test -e ~/.iterm2_shell_integration.fish; and test $__CFBundleIdentifier = "com.googlecode.iterm2"
source ~/.iterm2_shell_integration.fish source ~/.iterm2_shell_integration.fish

View file

@ -32,7 +32,6 @@ in
# Rebind $VISUAL, $EDITOR and e command # Rebind $VISUAL, $EDITOR and e command
set -gx VISUAL "kak -c $kak_session" set -gx VISUAL "kak -c $kak_session"
set -gx EDITOR "kak -c $kak_session" set -gx EDITOR "kak -c $kak_session"
alias e="kak -c $kak_session"
''; '';
kill-kak-session = '' kill-kak-session = ''
@ -47,7 +46,6 @@ in
# Rebind $VISUAL, $EDITOR and e command # Rebind $VISUAL, $EDITOR and e command
set -gx VISUAL "kak" set -gx VISUAL "kak"
set -gx EDITOR "kak" set -gx EDITOR "kak"
alias e="kak"
''; '';
}; };
programs.fish.tide = { programs.fish.tide = {

View file

@ -76,73 +76,106 @@ with lib;
}; };
}; };
config.linux.graphical = mkIf (cfg.enable && cfg.setDefault) { config = mkIf cfg.enable {
defaults.terminal.package = cfg.package; linux.graphical = mkIf cfg.setDefault {
}; defaults.terminal.package = cfg.package;
};
programs.kitty = {
enable = true;
config.programs.kitty = mkIf cfg.enable { package = cfg.package;
enable = true;
package = cfg.package; font.package = pkgs.fantasque-sans-mono;
font.name = "Fantasque Sans Mono";
font.size = cfg.fontSize;
font.package = pkgs.fantasque-sans-mono; settings =
font.name = "Fantasque Sans Mono"; let
font.size = cfg.fontSize; # Background color and transparency
background =
if isNull cfg.background then
{
background_opacity = "0.93";
dynamic_background_opacity = true;
}
else
{
background_image = "${cfg.background}";
background_image_layout = "scaled";
background_tint = "0.85";
};
in
mkMerge [
background
{
# Scrollback (128MBs)
scrollback_pager_history_size = 128;
settings = # Disable Shell integration (leave it for Nix)
let shell_integration = "no-rc";
# Background color and transparency
background =
if isNull cfg.background then
{
background_opacity = "0.93";
dynamic_background_opacity = true;
}
else
{
background_image = "${cfg.background}";
background_image_layout = "scaled";
background_tint = "0.85";
};
in
mkMerge [
background
{
# Scrollback (128MBs)
scrollback_pager_history_size = 128;
# Disable Shell integration (leave it for Nix) # Allow remote control (for kakoune integration)
shell_integration = "no-rc"; allow_remote_control = true;
# Allow remote control (for kakoune integration) # Mouse focus
allow_remote_control = true; focus_follows_mouse = true;
}
];
# Mouse focus keybindings = {
focus_follows_mouse = true; "${cfg.cmd}+shift+equal" = "no_op"; # Not possible with a JIS keyboard
} "${cfg.cmd}+shift+^" = "change_font_size all +2.0"; # ... so use ^ instead
];
keybindings = { ## Clear screen
"${cfg.cmd}+shift+equal" = "no_op"; # Not possible with a JIS keyboard "${cfg.cmd}+backspace" = "clear_terminal to_cursor active";
"${cfg.cmd}+shift+^" = "change_font_size all +2.0"; # ... so use ^ instead "${cfg.cmd}+shift+backspace" = "clear_terminal reset active";
## Clear screen ## Command scrolling
"${cfg.cmd}+backspace" = "clear_terminal to_cursor active"; "${cfg.cmd}+shift+j" = "scroll_to_prompt 1";
"${cfg.cmd}+shift+backspace" = "clear_terminal reset active"; "${cfg.cmd}+shift+k" = "scroll_to_prompt -1";
## Hints };
"${cfg.cmd}+shift+p>n" = "kitten hints --type=linenum --linenum-action=tab kak {path} +{line}";
extraConfig =
let
# Nerd Fonts glyph map
glyphMap = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/Sharparam/dotfiles/main/kitty/.config/kitty/font-nerd-symbols.conf";
hash = "sha256-1OaDWLC3y8ASD2ttRWWgPEpRnfKXu6H6vS3cFVpzT0o=";
};
in
''
include ${glyphMap}
'';
}; };
extraConfig = # Open protocol
let xdg.configFile."kitty/open-actions.conf".text = ''
# Nerd Fonts glyph map protocol file
glyphMap = pkgs.fetchurl { fragment_matches [0-9]+
url = "https://raw.githubusercontent.com/Sharparam/dotfiles/main/kitty/.config/kitty/font-nerd-symbols.conf"; action launch --type=overlay --cwd=current -- $\{EDITOR} +$\{FRAGMENT} -- $\{FILE_PATH}
hash = "sha256-1OaDWLC3y8ASD2ttRWWgPEpRnfKXu6H6vS3cFVpzT0o=";
}; # Open HTML files with xdg-open
in protocol file
'' mime text/html
include ${glyphMap} action launch xdg-open $\{FILE_PATH}
'';
# Open text files without fragments in the editor
protocol file
mime text/*
action launch --type=overlay --cwd=current -- $\{EDITOR} -- $\{FILE_PATH}
# Open other files with xdg-open
protocol file
action launch xdg-open $\{FILE_PATH}
'';
programs.fish.shellAliases = {
e = lib.mkForce "kitten edit-in-kitty";
"ssh+" = "kitten ssh";
"clip" = "kitten clipboard";
"rg" = "kitten hyperlinked-grep";
"icat" = "kitten icat";
"notify" = "kitten notify";
};
}; };
} }

View file

@ -115,6 +115,9 @@
services.dbus.packages = with pkgs; [ gcr ]; services.dbus.packages = with pkgs; [ gcr ];
services.avahi.enable = true;
networking.firewall.allowedTCPPorts = [ 8010 ];
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];