From 677855a21a1b8a181a7c9e1886c2290e16f5dd4a Mon Sep 17 00:00:00 2001 From: Rabbit Date: Wed, 25 Feb 2026 00:26:10 +0300 Subject: [PATCH] xdg-user-dirs --- .bashrc | 5 - .config/btop/btop.conf | 272 -- .config/btop/themes/tokyonight_storm.theme | 73 - .config/fastfetch/Silly_Cat_(Character).webp | Bin 46246 -> 0 bytes .config/fastfetch/config.jsonc | 135 - .config/fastfetch/logo.png | Bin 139169 -> 0 bytes .config/fastfetch/term-test.sh | 2 - .config/fish/conf.d/fish_frozen_theme.fish | 33 - .config/fish/conf.d/omf.fish | 7 - .config/fish/config.fish | 12 - .config/fish/fish_variables | 14 - .../functions/fish_command_not_found.fish | 12 - .config/fish/functions/fish_greeting.fish | 14 - .config/ghostty/config | 6 - .config/hypr/animations.conf | 36 - .config/hypr/bindings.conf | 7 - .config/hypr/hypr.conf | 162 - .config/hypr/hyprland.conf | 12 - .config/hypr/input.conf | 12 - .config/hypr/looknfeel.conf | 55 - .config/hypr/rules.conf | 0 .config/hypr/sys-bindings.conf | 14 - .config/hypr/tiling.conf | 101 - .config/kitty/base.conf | 3004 ----------------- .config/kitty/cat.png | 1 - .config/kitty/current-theme.conf | 50 - .config/kitty/kitty.conf | 4 - .config/kitty/kitty.conf.bak | 2997 ---------------- .config/kitty/solid.conf | 3 - .config/nvim/init.lua | 10 - .config/nvim/lazy-lock.json | 6 - .config/nvim/lua/config/lazy.lua | 29 - .config/nvim/lua/plugins/line.lua | 62 - .config/nvim/lua/plugins/theme.lua | 14 - .config/omf/bundle | 4 - .config/omf/channel | 1 - .config/omf/theme | 1 - .config/xdg-terminals.list | 2 - .config/zellij/config.kdl | 536 --- .config/zellij/themes/tokyonight_storm.kdl | 22 - .gitconfig | 5 - .gitignore | 4 +- .ssh/config | 7 - kitten | 0 .../.config}/user-dirs.dirs | 0 .../.config}/user-dirs.locale | 0 46 files changed, 2 insertions(+), 7744 deletions(-) delete mode 100644 .bashrc delete mode 100644 .config/btop/btop.conf delete mode 100644 .config/btop/themes/tokyonight_storm.theme delete mode 100644 .config/fastfetch/Silly_Cat_(Character).webp delete mode 100644 .config/fastfetch/config.jsonc delete mode 100644 .config/fastfetch/logo.png delete mode 100755 .config/fastfetch/term-test.sh delete mode 100644 .config/fish/conf.d/fish_frozen_theme.fish delete mode 100644 .config/fish/conf.d/omf.fish delete mode 100644 .config/fish/config.fish delete mode 100644 .config/fish/fish_variables delete mode 100644 .config/fish/functions/fish_command_not_found.fish delete mode 100644 .config/fish/functions/fish_greeting.fish delete mode 100644 .config/ghostty/config delete mode 100644 .config/hypr/animations.conf delete mode 100644 .config/hypr/bindings.conf delete mode 100644 .config/hypr/hypr.conf delete mode 100644 .config/hypr/hyprland.conf delete mode 100644 .config/hypr/input.conf delete mode 100644 .config/hypr/looknfeel.conf delete mode 100644 .config/hypr/rules.conf delete mode 100644 .config/hypr/sys-bindings.conf delete mode 100644 .config/hypr/tiling.conf delete mode 100644 .config/kitty/base.conf delete mode 120000 .config/kitty/cat.png delete mode 100644 .config/kitty/current-theme.conf delete mode 100644 .config/kitty/kitty.conf delete mode 100644 .config/kitty/kitty.conf.bak delete mode 100644 .config/kitty/solid.conf delete mode 100644 .config/nvim/init.lua delete mode 100644 .config/nvim/lazy-lock.json delete mode 100644 .config/nvim/lua/config/lazy.lua delete mode 100644 .config/nvim/lua/plugins/line.lua delete mode 100644 .config/nvim/lua/plugins/theme.lua delete mode 100644 .config/omf/bundle delete mode 100644 .config/omf/channel delete mode 100644 .config/omf/theme delete mode 100644 .config/xdg-terminals.list delete mode 100644 .config/zellij/config.kdl delete mode 100644 .config/zellij/themes/tokyonight_storm.kdl delete mode 100644 .gitconfig delete mode 100644 .ssh/config delete mode 100644 kitten rename {.config => xdg-user-dirs/.config}/user-dirs.dirs (100%) rename {.config => xdg-user-dirs/.config}/user-dirs.locale (100%) diff --git a/.bashrc b/.bashrc deleted file mode 100644 index aa9afb2..0000000 --- a/.bashrc +++ /dev/null @@ -1,5 +0,0 @@ -[[ $- != *i* ]] && return - -alias ls='lsd' -alias grep='grep --color=auto' -PS1='[\u@\h \W]\$ ' diff --git a/.config/btop/btop.conf b/.config/btop/btop.conf deleted file mode 100644 index e88d8fa..0000000 --- a/.config/btop/btop.conf +++ /dev/null @@ -1,272 +0,0 @@ -#? Config file for btop v.1.4.6 - -#* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. -#* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" -color_theme = "/home/arch/.config/btop/themes/tokyonight_storm.theme" - -#* If the theme set background should be shown, set to False if you want terminal background transparency. -theme_background = true - -#* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. -truecolor = true - -#* Set to true to force tty mode regardless if a real tty has been detected or not. -#* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. -force_tty = false - -#* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. -#* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. -#* Use whitespace " " as separator between different presets. -#* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" -presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" - -#* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. -#* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. -vim_keys = false - -#* Rounded corners on boxes, is ignored if TTY mode is ON. -rounded_corners = true - -#* Use terminal synchronized output sequences to reduce flickering on supported terminals. -terminal_sync = true - -#* Default symbols to use for graph creation, "braille", "block" or "tty". -#* "braille" offers the highest resolution but might not be included in all fonts. -#* "block" has half the resolution of braille but uses more common characters. -#* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. -#* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. -graph_symbol = "braille" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_cpu = "default" - -# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". -graph_symbol_gpu = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_mem = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_net = "default" - -# Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". -graph_symbol_proc = "default" - -#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. -shown_boxes = "cpu mem net proc" - -#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. -update_ms = 2000 - -#* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", -#* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "cpu lazy" - -#* Reverse sorting order, True or False. -proc_reversed = false - -#* Show processes as a tree. -proc_tree = false - -#* Use the cpu graph colors in the process list. -proc_colors = true - -#* Use a darkening gradient in the process list. -proc_gradient = true - -#* If process cpu usage should be of the core it's running on or usage of the total available cpu power. -proc_per_core = false - -#* Show process memory as bytes instead of percent. -proc_mem_bytes = true - -#* Show cpu graph for each process. -proc_cpu_graphs = true - -#* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) -proc_info_smaps = false - -#* Show proc box on left side of screen instead of right. -proc_left = false - -#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). -proc_filter_kernel = false - -#* In tree-view, always accumulate child process resources in the parent process. -proc_aggregate = false - -#* Should cpu and memory usage display be preserved for dead processes when paused. -keep_dead_proc_usage = false - -#* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. -#* Select from a list of detected attributes from the options menu. -cpu_graph_upper = "Auto" - -#* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. -#* Select from a list of detected attributes from the options menu. -cpu_graph_lower = "Auto" - -#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". -show_gpu_info = "Auto" - -#* Toggles if the lower CPU graph should be inverted. -cpu_invert_lower = true - -#* Set to True to completely disable the lower CPU graph. -cpu_single_graph = false - -#* Show cpu box at bottom of screen instead of top. -cpu_bottom = false - -#* Shows the system uptime in the CPU box. -show_uptime = true - -#* Shows the CPU package current power consumption in watts. Requires running `make setcap` or `make setuid` or running with sudo. -show_cpu_watts = true - -#* Show cpu temperature. -check_temp = true - -#* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. -cpu_sensor = "Auto" - -#* Show temperatures for cpu cores also if check_temp is True and sensors has been found. -show_coretemp = true - -#* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. -#* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. -#* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. -#* Example: "4:0 5:1 6:3" -cpu_core_map = "" - -#* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". -temp_scale = "celsius" - -#* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. -base_10_sizes = false - -#* Show CPU frequency. -show_cpu_freq = true - -#* How to calculate CPU frequency, available values: "first", "range", "lowest", "highest" and "average". -freq_mode = "first" - -#* Draw a clock at top of screen, formatting according to strftime, empty string to disable. -#* Special formatting: /host = hostname | /user = username | /uptime = system uptime -clock_format = "%X" - -#* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. -background_update = true - -#* Custom cpu model name, empty string to disable. -custom_cpu_name = "" - -#* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". -#* Only disks matching the filter will be shown. Prepend exclude= to only show disks not matching the filter. Examples: disk_filter="/boot /home/user", disks_filter="exclude=/boot /home/user" -disks_filter = "" - -#* Show graphs instead of meters for memory values. -mem_graphs = true - -#* Show mem box below net box instead of above. -mem_below_net = false - -#* Count ZFS ARC in cached and available memory. -zfs_arc_cached = true - -#* If swap memory should be shown in memory box. -show_swap = true - -#* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. -swap_disk = true - -#* If mem box should be split to also show disks info. -show_disks = true - -#* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. -only_physical = true - -#* Read disks list from /etc/fstab. This also disables only_physical. -use_fstab = true - -#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) -zfs_hide_datasets = false - -#* Set to true to show available disk space for privileged users. -disk_free_priv = false - -#* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. -show_io_stat = true - -#* Toggles io mode for disks, showing big graphs for disk read/write speeds. -io_mode = false - -#* Set to True to show combined read/write io graphs in io mode. -io_graph_combined = false - -#* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". -#* Example: "/mnt/media:100 /:20 /boot:1". -io_graph_speeds = "" - -#* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. -net_download = 100 - -net_upload = 100 - -#* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. -net_auto = true - -#* Sync the auto scaling for download and upload to whichever currently has the highest scale. -net_sync = true - -#* Starts with the Network Interface specified here. -net_iface = "" - -#* "True" shows bitrates in base 10 (Kbps, Mbps). "False" shows bitrates in binary sizes (Kibps, Mibps, etc.). "Auto" uses base_10_sizes. -base_10_bitrate = "Auto" - -#* Show battery stats in top right if battery is present. -show_battery = true - -#* Which battery to use if multiple are present. "Auto" for auto detection. -selected_battery = "Auto" - -#* Show power stats of battery next to charge indicator. -show_battery_watts = true - -#* Set loglevel for "~/.local/state/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". -#* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. -log_level = "WARNING" - -#* Automatically save current settings to config file on exit. -save_config_on_exit = true - -#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. -nvml_measure_pcie_speeds = true - -#* Measure PCIe throughput on AMD cards, may impact performance on certain cards. -rsmi_measure_pcie_speeds = true - -#* Horizontally mirror the GPU graph. -gpu_mirror_graph = true - -#* Set which GPU vendors to show. Available values are "nvidia amd intel" -shown_gpus = "nvidia amd intel" - -#* Custom gpu0 model name, empty string to disable. -custom_gpu_name0 = "" - -#* Custom gpu1 model name, empty string to disable. -custom_gpu_name1 = "" - -#* Custom gpu2 model name, empty string to disable. -custom_gpu_name2 = "" - -#* Custom gpu3 model name, empty string to disable. -custom_gpu_name3 = "" - -#* Custom gpu4 model name, empty string to disable. -custom_gpu_name4 = "" - -#* Custom gpu5 model name, empty string to disable. -custom_gpu_name5 = "" diff --git a/.config/btop/themes/tokyonight_storm.theme b/.config/btop/themes/tokyonight_storm.theme deleted file mode 100644 index 2fd2f6b..0000000 --- a/.config/btop/themes/tokyonight_storm.theme +++ /dev/null @@ -1,73 +0,0 @@ -# Theme: tokyonight_storm -# By: Folke Lemaitre - -theme[main_bg]="#24283b" -theme[main_fg]="#c0caf5" - -# Title color for boxes -theme[title]="#c0caf5" - -# Highlight color for keyboard shortcuts -theme[hi_fg]="#ff9e64" - -# Selected item in processes box -theme[selected_bg]="#292e42" -theme[selected_fg]="#7dcfff" - -# Misc colors for processes box including mini cpu graphs, details memory graph and details status text -theme[proc_misc]="#7dcfff" - -# Cpu box outline color -theme[cpu_box]="#29a4bd" - -# Memory/disks box outline color -theme[mem_box]="#29a4bd" - -# Net up/down box outline color -theme[net_box]="#29a4bd" - -# Processes box outline color -theme[proc_box]="#29a4bd" - -# Box divider line and small boxes line color -theme[div_line]="#29a4bd" - -# Temperature graph colors -theme[temp_start]="#9ece6a" -theme[temp_mid]="#e0af68" -theme[temp_end]="#f7768e" - -# CPU graph colors -theme[cpu_start]="#9ece6a" -theme[cpu_mid]="#e0af68" -theme[cpu_end]="#f7768e" - -# Mem/Disk free meter -theme[free_start]="#9ece6a" -theme[free_mid]="#e0af68" -theme[free_end]="#f7768e" - -# Mem/Disk cached meter -theme[cached_start]="#9ece6a" -theme[cached_mid]="#e0af68" -theme[cached_end]="#f7768e" - -# Mem/Disk available meter -theme[available_start]="#9ece6a" -theme[available_mid]="#e0af68" -theme[available_end]="#f7768e" - -# Mem/Disk used meter -theme[used_start]="#9ece6a" -theme[used_mid]="#e0af68" -theme[used_end]="#f7768e" - -# Download graph colors -theme[download_start]="#9ece6a" -theme[download_mid]="#e0af68" -theme[download_end]="#f7768e" - -# Upload graph colors -theme[upload_start]="#9ece6a" -theme[upload_mid]="#e0af68" -theme[upload_end]="#f7768e" \ No newline at end of file diff --git a/.config/fastfetch/Silly_Cat_(Character).webp b/.config/fastfetch/Silly_Cat_(Character).webp deleted file mode 100644 index dca173154f63a2c92c06d567c4f30fbc044958fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46246 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

aV-`Z?4d*-FtvWg#x*$CIqM1j(F2muDF|{%~65 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 Q9pKO0*!tK*LrnDl0N%Qa5dZ)H diff --git a/.config/fastfetch/term-test.sh b/.config/fastfetch/term-test.sh deleted file mode 100755 index 0b09c81..0000000 --- a/.config/fastfetch/term-test.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -if [[ -n $DISPLAY ]]; then echo $HOME/.dotfiles/.config/fastfetch/logo.png; fi diff --git a/.config/fish/conf.d/fish_frozen_theme.fish b/.config/fish/conf.d/fish_frozen_theme.fish deleted file mode 100644 index a63c61f..0000000 --- a/.config/fish/conf.d/fish_frozen_theme.fish +++ /dev/null @@ -1,33 +0,0 @@ -# Don't edit this file, as it will be written by the web-config tool (`fish_config`). -# To customize your theme, delete this file and see -# help interactive#syntax-highlighting -# or -# man fish-interactive | less +/^SYNTAX.HIGHLIGHTING -# for appropriate commands to add to ~/.config/fish/config.fish instead. - -set --global fish_color_autosuggestion 8a8a8a -set --global fish_color_cancel --reverse -set --global fish_color_command normal -set --global fish_color_comment red -set --global fish_color_cwd green -set --global fish_color_cwd_root red -set --global fish_color_end green -set --global fish_color_error brred -set --global fish_color_escape brcyan -set --global fish_color_history_current --bold -set --global fish_color_host normal -set --global fish_color_host_remote yellow -set --global fish_color_normal normal -set --global fish_color_operator brcyan -set --global fish_color_param cyan -set --global fish_color_quote yellow -set --global fish_color_redirection cyan --bold -set --global fish_color_search_match white --bold --background=brblack -set --global fish_color_selection white --bold --background=brblack -set --global fish_color_status red -set --global fish_color_user brgreen -set --global fish_color_valid_path --underline=single -set --global fish_pager_color_description yellow --italics -set --global fish_pager_color_prefix normal --bold --underline=single -set --global fish_pager_color_progress brwhite --bold --background=cyan -set --global fish_pager_color_selected_background --reverse diff --git a/.config/fish/conf.d/omf.fish b/.config/fish/conf.d/omf.fish deleted file mode 100644 index 3e0f6d6..0000000 --- a/.config/fish/conf.d/omf.fish +++ /dev/null @@ -1,7 +0,0 @@ -# Path to Oh My Fish install. -set -q XDG_DATA_HOME - and set -gx OMF_PATH "$XDG_DATA_HOME/omf" - or set -gx OMF_PATH "$HOME/.local/share/omf" - -# Load Oh My Fish configuration. -source $OMF_PATH/init.fish diff --git a/.config/fish/config.fish b/.config/fish/config.fish deleted file mode 100644 index 13ac943..0000000 --- a/.config/fish/config.fish +++ /dev/null @@ -1,12 +0,0 @@ -set -g theme_display_git_default_branch yes -set -g theme_display_git_ahead_verbose yes -set -g theme_display_git_dirty_verbose yes -set -g theme_nerd_fonts yes -set -g theme_color_scheme dark -set -g theme_display_user ssh -set -g theme_show_exit_status yes - -if status is-interactive - alias ls lsd - alias vim nvim -end diff --git a/.config/fish/fish_variables b/.config/fish/fish_variables deleted file mode 100644 index 6dc80bb..0000000 --- a/.config/fish/fish_variables +++ /dev/null @@ -1,14 +0,0 @@ -# This file contains fish universal variable definitions. -# VERSION: 3.0 -SETUVAR __fish_initialized:4300 -SETUVAR __fish_webconfig_theme_notification:set\x2dtheme\x2dv1\x2d\x231 -SETUVAR budspencer_colors:000000\x1e083743\x1e445659\x1efdf6e3\x1eb58900\x1ecb4b16\x1edc121f\x1eaf005f\x1e6c71c4\x1e268bd2\x1e2aa198\x1e859900 -SETUVAR budspencer_cursors:\x5c033\x5d12\x3b\x23268bd2\x5c007\x1e\x5c033\x5d12\x3b\x23b58900\x5c007\x1e\x5c033\x5d12\x3b\x23af005f\x5c007\x1e\x5c033\x5d12\x3b\x236c71c4\x5c007 -SETUVAR budspencer_day:000000\x1e333333\x1e666666\x1effffff\x1effff00\x1eff6600\x1eff0000\x1eff0033\x1e3300ff\x1e00aaff\x1e00ffff\x1e00ff00 -SETUVAR budspencer_night:000000\x1e083743\x1e445659\x1efdf6e3\x1eb58900\x1ecb4b16\x1edc121f\x1eaf005f\x1e6c71c4\x1e268bd2\x1e2aa198\x1e859900 -SETUVAR budspencer_nocmdhist:c\x1ed\x1ell\x1els\x1em\x1es -SETUVAR budspencer_nogreeting:\x1d -SETUVAR budspencer_pwdstyle:short\x1elong\x1enone -SETUVAR budspencer_sessions_active:\x1d -SETUVAR budspencer_sessions_active_pid:\x1d -SETUVAR fish_greeting:\x1d diff --git a/.config/fish/functions/fish_command_not_found.fish b/.config/fish/functions/fish_command_not_found.fish deleted file mode 100644 index bc978ff..0000000 --- a/.config/fish/functions/fish_command_not_found.fish +++ /dev/null @@ -1,12 +0,0 @@ -function fish_command_not_found - set cmd $argv - - if set pkgs (pkgfile -bv -- "$cmd" 2>/dev/null) - printf '%s may be found in the following packages:\n' "$cmd" - for pkg in $pkgs - printf ' %s\n' "$pkg" - end - else - __fish_default_command_not_found_handler "$cmd" - end -end diff --git a/.config/fish/functions/fish_greeting.fish b/.config/fish/functions/fish_greeting.fish deleted file mode 100644 index 31b6b11..0000000 --- a/.config/fish/functions/fish_greeting.fish +++ /dev/null @@ -1,14 +0,0 @@ -function fish_greeting - if test (string match -r 'kitty|ghostty' $TERM) - omf t bobthefish - fastfetch --logo-type kitty -l ~/.config/fastfetch/logo.png - if test $HYPRLAND_INSTANCE_SIGNATURE; echo -e "\e[34m \e[39m""$(hyprctl splash)"; end - else - if test $TERM = 'linux' - omf t '' - fastfetch -c none - else - fastfetch - end - end -end diff --git a/.config/ghostty/config b/.config/ghostty/config deleted file mode 100644 index 7761afc..0000000 --- a/.config/ghostty/config +++ /dev/null @@ -1,6 +0,0 @@ -theme = TokyoNight Storm -background-opacity = 0.5 -font-size = 11.5 -font-family = JetBrainsMono Nerd Font -#window-save-state = always -working-directory = inherit diff --git a/.config/hypr/animations.conf b/.config/hypr/animations.conf deleted file mode 100644 index 99cd01a..0000000 --- a/.config/hypr/animations.conf +++ /dev/null @@ -1,36 +0,0 @@ -animations { - enabled = yes, please :) - - # Animations curves - bezier = linear, 0, 0, 1, 1 - bezier = md3_standard, 0.2, 0, 0, 1 - bezier = md3_decel, 0.05, 0.7, 0.1, 1 - bezier = md3_accel, 0.3, 0, 0.8, 0.15 - bezier = overshot, 0.05, 0.9, 0.1, 1.1 - bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 - bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 - bezier = menu_decel, 0.1, 1, 0, 1 - bezier = menu_accel, 0.38, 0.04, 1, 0.07 - bezier = easeInOutCirc, 0.85, 0, 0.15, 1 - bezier = easeOutCirc, 0, 0.55, 0.45, 1 - bezier = easeOutExpo, 0.16, 1, 0.3, 1 - bezier = softAcDecel, 0.26, 0.26, 0.15, 1 - bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration - - # Animation configs - animation = windows, 1, 3, md3_decel, popin 60% - animation = windowsIn, 1, 3, md3_decel, popin 60% - animation = windowsOut, 1, 3, md3_accel, popin 60% - animation = border, 1, 10, default - animation = fade, 1, 3, md3_decel - animation = layers, 1, 2, md3_decel, slide - animation = layersIn, 1, 3, menu_decel, slide - animation = layersOut, 1, 1.6, menu_accel - animation = fadeLayersIn, 1, 2, menu_decel - animation = fadeLayersOut, 1, 4.5, menu_accel - animation = workspaces, 1, 7, menu_decel, slide - animation = workspaces, 1, 2.5, softAcDecel, slide - animation = workspaces, 1, 7, menu_decel, slidefade 15% - animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% - animation = specialWorkspace, 1, 3, md3_decel, slidevert -} diff --git a/.config/hypr/bindings.conf b/.config/hypr/bindings.conf deleted file mode 100644 index b9b33b6..0000000 --- a/.config/hypr/bindings.conf +++ /dev/null @@ -1,7 +0,0 @@ -bind = SUPER, RETURN, exec, runapp xdg-terminal-exec --app-id=app.ghostty -bind = SUPER, E, exec, runapp nautilus -bind = SUPER, B, exec, runapp zen -bind = SUPER, T, exec, runapp Telegram -bind = SUPER, F1, exec, pkexec awg-quick up awg0 -bind = SUPER, F2, exec, pkexec awg-quick down awg0 -bind = , PRINT, exec, hyprshot -m region diff --git a/.config/hypr/hypr.conf b/.config/hypr/hypr.conf deleted file mode 100644 index a625024..0000000 --- a/.config/hypr/hypr.conf +++ /dev/null @@ -1,162 +0,0 @@ -gesture = 3, horizontal, workspace -env = XCURSOR_SIZE,24 -env = HYPRCURSOR_SIZE,24 -##################### -### LOOK AND FEEL ### -##################### - -#general { -# gaps_in = 5 -# gaps_out = 20 -# -# border_size = 2 -# -# col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg -# col.inactive_border = rgba(595959aa) -# -# # Set to true enable resizing windows by clicking and dragging on borders and gaps -# resize_on_border = false -# -# # Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on -# allow_tearing = false -# -# layout = dwindle -#} - -#decoration { -# rounding = 10 -# rounding_power = 2 -# -# # Change transparency of focused and unfocused windows -# active_opacity = 1.0 -# inactive_opacity = 1.0 -# -# shadow { -# enabled = true -# range = 4 -# render_power = 3 -# color = rgba(1a1a1aee) -# } -# -# # https://wiki.hypr.land/Configuring/Variables/#blur -# blur { -# enabled = true -# size = 4 -# passes = 2 -# popups = true -# special = true -# brightness = 0.75 -# } -#} -# -#animations { -# enabled = yes, please :) -# -# # Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves -# # NAME, X0, Y0, X1, Y1 -# bezier = easeOutQuint, 0.23, 1, 0.32, 1 -# bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 -# bezier = linear, 0, 0, 1, 1 -# bezier = almostLinear, 0.5, 0.5, 0.75, 1 -# bezier = quick, 0.15, 0, 0.1, 1 -# -# # Default animations, see https://wiki.hypr.land/Configuring/Animations/ -# # NAME, ONOFF, SPEED, CURVE, [STYLE] -# animation = global, 1, 10, default -# animation = border, 1, 5.39, easeOutQuint -# animation = windows, 1, 4.79, easeOutQuint -# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% -# animation = windowsOut, 1, 1.49, linear, popin 87% -# animation = fadeIn, 1, 1.73, almostLinear -# animation = fadeOut, 1, 1.46, almostLinear -# animation = fade, 1, 3.03, quick -# animation = layers, 1, 3.81, easeOutQuint -# animation = layersIn, 1, 4, easeOutQuint, fade -# animation = layersOut, 1, 1.5, linear, fade -# animation = fadeLayersIn, 1, 1.79, almostLinear -# animation = fadeLayersOut, 1, 1.39, almostLinear -# animation = workspaces, 1, 1.94, almostLinear, fade -# animation = workspacesIn, 1, 1.21, almostLinear, fade -# animation = workspacesOut, 1, 1.94, almostLinear, fade -# animation = zoomFactor, 1, 7, quick -#} -# -# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/ -# "Smart gaps" / "No gaps when only" -# uncomment all if you wish to use that. -# workspace = w[tv1], gapsout:0, gapsin:0 -# workspace = f[1], gapsout:0, gapsin:0 -# windowrule { -# name = no-gaps-wtv1 -# match:float = false -# match:workspace = w[tv1] -# -# border_size = 0 -# rounding = 0 -# } -# -# windowrule { -# name = no-gaps-f1 -# match:float = false -# match:workspace = f[1] -# -# border_size = 0 -# rounding = 0 -# } - -# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more -#dwindle { -# pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below -# preserve_split = true # You probably want this -#} -# -## See https://wiki.hypr.land/Configuring/Master-Layout/ for more -#master { -# new_status = master -#} -# -## https://wiki.hypr.land/Configuring/Variables/#misc -#misc { -# force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers -# disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :( -#} - -############################## -### WINDOWS AND WORKSPACES ### -############################## - -# See https://wiki.hypr.land/Configuring/Window-Rules/ for more -# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules - -# Example windowrules that are useful - -windowrule { - # Ignore maximize requests from all apps. You'll probably like this. - name = suppress-maximize-events - match:class = .* - - suppress_event = maximize -} - -windowrule { - # Fix some dragging issues with XWayland - name = fix-xwayland-drags - match:class = ^$ - match:title = ^$ - match:xwayland = true - match:float = true - match:fullscreen = false - match:pin = false - - no_focus = true -} - -# Hyprland-run windowrule -windowrule { - name = move-hyprland-run - - match:class = hyprland-run - - move = 20 monitor_h-120 - float = yes -} diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf deleted file mode 100644 index 583a2b0..0000000 --- a/.config/hypr/hyprland.conf +++ /dev/null @@ -1,12 +0,0 @@ -monitor = eDP-1, 1920x1080@60, 0x0, 1 -watchdog_timeout = 0 -misc:vfr = true - -source = ~/.config/hypr/input.conf -source = ~/.config/hypr/tiling.conf -source = ~/.config/hypr/sys-bindings.conf -source = ~/.config/hypr/bindings.conf -source = ~/.config/hypr/looknfeel.conf -source = ~/.config/hypr/animations.conf -source = ~/.config/hypr/rules.conf -source = ~/.config/hypr/hypr.conf diff --git a/.config/hypr/input.conf b/.config/hypr/input.conf deleted file mode 100644 index 06ae895..0000000 --- a/.config/hypr/input.conf +++ /dev/null @@ -1,12 +0,0 @@ -input { - kb_layout = us,ru - kb_options = grp:alt_caps_toggle,compose:ralt - - sensitivity = 0.5 - follow_mouse = 1 - - touchpad { - natural_scroll = true - middle_button_emulation = true - } -} diff --git a/.config/hypr/looknfeel.conf b/.config/hypr/looknfeel.conf deleted file mode 100644 index f6cdff2..0000000 --- a/.config/hypr/looknfeel.conf +++ /dev/null @@ -1,55 +0,0 @@ -general { - border_size = 2 - col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - col.inactive_border = rgba(595959aa) - - gaps_in = 5 - gaps_out = 8 - - layout = dwindle - - snap { - enabled = true - monitor_gap = 20 - respect_gaps = true - } -} - -decoration { - rounding = 8 - active_opacity = 1#0.93 - inactive_opacity = 1#0.96 - #fullscreen_opacity = 0.95 - - #dim_inactive = true - #dim_strength = 0.1 - - blur { - enabled = true - size = 4 - passes = 2 - popups = true - special = true - brightness = 0.75 - } - - shadow { - enabled = true - range = 8 - render_power = 3 - color = rgba(42aaffee) - } -} - -dwindle { - pseudotile = true - preserve_split = true -} - -misc { - enable_swallow = true - swallow_regex = ^(app.ghostty)$ - swallow_exception_regex = (wev).* -} - -render:cm_sdr_eotf = 2 diff --git a/.config/hypr/rules.conf b/.config/hypr/rules.conf deleted file mode 100644 index e69de29..0000000 diff --git a/.config/hypr/sys-bindings.conf b/.config/hypr/sys-bindings.conf deleted file mode 100644 index 9156d9a..0000000 --- a/.config/hypr/sys-bindings.conf +++ /dev/null @@ -1,14 +0,0 @@ -# Multimedia keys for volume and LCD brightness -bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ -bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- -bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle -bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle -bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+ -bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%- - -# Playerctl -bindl = , XF86AudioNext, exec, playerctl next -bindl = , XF86AudioPause, exec, playerctl play-pause -bindl = , XF86AudioPlay, exec, playerctl play-pause -bindl = , XF86AudioPrev, exec, playerctl previous - diff --git a/.config/hypr/tiling.conf b/.config/hypr/tiling.conf deleted file mode 100644 index c6f7c99..0000000 --- a/.config/hypr/tiling.conf +++ /dev/null @@ -1,101 +0,0 @@ -bind = SUPER, W, killactive, -bind = SUPER, P, pseudo, -bind = SUPER, J, togglesplit, -bind = SUPER, F, togglefloating, -bind = SUPER, H, resizewindowpixel,100 100, -bind = SUPER SHIFT, F, fullscreenstate, 3 3 -bind = SUPER ALT, F, fullscreenstate, 0 3 - -bind = SUPER, O, togglefloating, -bind = SUPER, O, pin, - -# Move focus -bind = SUPER, left, movefocus, l -bind = SUPER, right, movefocus, r -bind = SUPER, up, movefocus, u -bind = SUPER, down, movefocus, d - -#Cycle through applications on active workspace (ПЕРЕРАБОТАТЬ) -bind = ALT, TAB, cyclenext, -bind = ALT SHIFT, TAB, cyclenext, prev -bind = ALT, TAB, bringactivetotop, -bind = ALT SHIFT, TAB, bringactivetotop, - -# Switch workspaces -bind = SUPER, 1, workspace, 1 -bind = SUPER, 2, workspace, 2 -bind = SUPER, 3, workspace, 3 -bind = SUPER, 4, workspace, 4 -bind = SUPER, 5, workspace, 5 -bind = SUPER, 6, workspace, 6 -bind = SUPER, 7, workspace, 7 -bind = SUPER, 8, workspace, 8 -bind = SUPER, 9, workspace, 9 -bind = SUPER, 0, workspace, 10 - -# TAB between workspaces -bind = SUPER, TAB, workspace, e+1 -bind = SUPER SHIFT, TAB, workspace, e-1 -bind = SUPER ALT, TAB, workspace, previous - -# Scroll through existing workspaces -bind = SUPER, mouse_down, workspace, e+1 -bind = SUPER, mouse_up, workspace, e-1 - -# Swap active window -bind = SUPER SHIFT, left, swapwindow, l -bind = SUPER SHIFT, right, swapwindow, r -bind = SUPER SHIFT, up, swapwindow, u -bind = SUPER SHIFT, down, swapwindow, d - -#Move window with mouse -bindm = SUPER, mouse:272, movewindow - -# Move active window to a workspace -bind = SUPER SHIFT, 1, movetoworkspace, 1 -bind = SUPER SHIFT, 2, movetoworkspace, 2 -bind = SUPER SHIFT, 3, movetoworkspace, 3 -bind = SUPER SHIFT, 4, movetoworkspace, 4 -bind = SUPER SHIFT, 5, movetoworkspace, 5 -bind = SUPER SHIFT, 6, movetoworkspace, 6 -bind = SUPER SHIFT, 7, movetoworkspace, 7 -bind = SUPER SHIFT, 8, movetoworkspace, 8 -bind = SUPER SHIFT, 9, movetoworkspace, 9 -bind = SUPER SHIFT, 0, movetoworkspace, 10 - -# Move active window silently to a workspace -bind = SUPER SHIFT ALT, 1, movetoworkspacesilent, 1 -bind = SUPER SHIFT ALT, 2, movetoworkspacesilent, 2 -bind = SUPER SHIFT ALT, 3, movetoworkspacesilent, 3 -bind = SUPER SHIFT ALT, 4, movetoworkspacesilent, 4 -bind = SUPER SHIFT ALT, 5, movetoworkspacesilent, 5 -bind = SUPER SHIFT ALT, 6, movetoworkspacesilent, 6 -bind = SUPER SHIFT ALT, 7, movetoworkspacesilent, 7 -bind = SUPER SHIFT ALT, 8, movetoworkspacesilent, 8 -bind = SUPER SHIFT ALT, 9, movetoworkspacesilent, 9 -bind = SUPER SHIFT ALT, 0, movetoworkspacesilent, 10 - -# Special workspace (scratchpad) -bind = SUPER, S, togglespecialworkspace, scratchpad -bind = SUPER SHIFT, S, movetoworkspace, special:scratchpad - -# ДОБАВИТЬ КОНФИГУРАЦИЮ ДЛЯ НЕСКОЛЬКИХ МОНИТОРОВ -# ДОБАВИТЬ КОНФИГУРАЦИЮ ГРУПП - -# Resize -bind = ALT, R, submap, resize -submap = resize - -binde = , right, resizeactive, 10 0 -binde = , left, resizeactive, -10 0 -binde = , up, resizeactive, 0 -10 -binde = , down, resizeactive, 0 10 -binde = SHIFT, right, resizeactive, 100 0 -binde = SHIFT, left, resizeactive, -100 0 -binde = SHIFT, up, resizeactive, 0 -100 -binde = SHIFT, down, resizeactive, 0 100 - -bind = , escape, submap, reset -submap = reset - -bindm = SUPER, mouse:273, resizewindow diff --git a/.config/kitty/base.conf b/.config/kitty/base.conf deleted file mode 100644 index d838773..0000000 --- a/.config/kitty/base.conf +++ /dev/null @@ -1,3004 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker - -# BEGIN_KITTY_THEME -# Tokyo Night Storm -include current-theme.conf -# END_KITTY_THEME - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. The easiest way to select fonts is to run the `kitten -#: choose-fonts` command which will present a nice UI for you to -#: select the fonts you want with previews and support for selecting -#: variable fonts and font features. If you want to learn to select -#: fonts manually, read the font specification syntax -#: . - -# font_size 11.0 - -#: Font size (in pts). - -# force_ltr no - -#: kitty does not support BIDI (bidirectional text), however, for RTL -#: scripts, words are automatically displayed in RTL. That is to say, -#: in an RTL script, the words "HELLO WORLD" display in kitty as -#: "WORLD HELLO", and if you try to select a substring of an RTL- -#: shaped string, you will get the character that would be there had -#: the string been LTR. For example, assuming the Hebrew word ירושלים, -#: selecting the character that on the screen appears to be ם actually -#: writes into the selection buffer the character י. kitty's default -#: behavior is useful in conjunction with a filter to reverse the word -#: order, however, if you wish to manipulate RTL glyphs, it can be -#: very challenging to work with, so this option is provided to turn -#: it off. Furthermore, this option can be used with the command line -#: program GNU FriBidi -#: to get BIDI support, because it will force kitty to always treat -#: the text as LTR, which FriBidi expects for terminals. - -# symbol_map - -#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - -#: Map the specified Unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each Unicode code -#: point is specified in the form `U+`. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. This option can be specified multiple times. -#: The syntax is:: - -#: symbol_map codepoints Font Family Name - -# narrow_symbols - -#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 - -#: Usually, for Private Use Unicode characters and some symbol/dingbat -#: characters, if the character is followed by one or more spaces, -#: kitty will use those extra cells to render the character larger, if -#: the character in the font has a wide aspect ratio. Using this -#: option you can force kitty to restrict the specified code points to -#: render in the specified number of cells (defaulting to one cell). -#: This option can be specified multiple times. The syntax is:: - -#: narrow_symbols codepoints [optionally the number of cells] - -# disable_ligatures never - -#: Choose how you want to handle multi-character ligatures. The -#: default is to always render them. You can tell kitty to not render -#: them when the cursor is over them by using cursor to make editing -#: easier, or have kitty never render them at all by using always, if -#: you don't like them. The ligature strategy can be set per-window -#: either using the kitty remote control facility or by defining -#: shortcuts for it in kitty.conf, for example:: - -#: map alt+1 disable_ligatures_in active always -#: map alt+2 disable_ligatures_in all never -#: map alt+3 disable_ligatures_in tab cursor - -#: Note that this refers to programming ligatures, typically -#: implemented using the calt OpenType feature. For disabling general -#: ligatures, use the font_features option. - -# font_features - -#: E.g. font_features none - -#: Choose exactly which OpenType features to enable or disable. Note -#: that for the main fonts, features can be specified when selecting -#: the font using the choose-fonts kitten. This setting is useful for -#: fallback fonts. - -#: Some fonts might have features worthwhile in a terminal. For -#: example, Fira Code includes a discretionary feature, zero, which in -#: that font changes the appearance of the zero (0), to make it more -#: easily distinguishable from Ø. Fira Code also includes other -#: discretionary features known as Stylistic Sets which have the tags -#: ss01 through ss20. - -#: For the exact syntax to use for individual features, see the -#: HarfBuzz documentation . - -#: Note that this code is indexed by PostScript name, and not the font -#: family. This allows you to define very precise feature settings; -#: e.g. you can disable a feature in the italic font but not in the -#: regular font. - -#: On Linux, font features are first read from the FontConfig database -#: and then this option is applied, so they can be configured in a -#: single, central place. - -#: To get the PostScript name for a font, use the `fc-scan file.ttf` -#: command on Linux or the `Font Book tool on macOS -#: `__. - -#: Enable alternate zero and oldstyle numerals:: - -#: font_features FiraCode-Retina +zero +onum - -#: Enable only alternate zero in the bold font:: - -#: font_features FiraCode-Bold +zero - -#: Disable the normal ligatures, but keep the calt feature which (in -#: this font) breaks up monotony:: - -#: font_features TT2020StyleB-Regular -liga +calt - -#: In conjunction with force_ltr, you may want to disable Arabic -#: shaping entirely, and only look at their isolated forms if they -#: show up in a document. You can do this with e.g.:: - -#: font_features UnifontMedium +isol -medi -fina -init - -# modify_font - -#: Modify font characteristics such as the position or thickness of -#: the underline and strikethrough. The modifications can have the -#: suffix px for pixels or % for percentage of original value. No -#: suffix means use pts. For example:: - -#: modify_font underline_position -2 -#: modify_font underline_thickness 150% -#: modify_font strikethrough_position 2px - -#: Additionally, you can modify the size of the cell in which each -#: font glyph is rendered and the baseline at which the glyph is -#: placed in the cell. For example:: - -#: modify_font cell_width 80% -#: modify_font cell_height -2px -#: modify_font baseline 3 - -#: Note that modifying the baseline will automatically adjust the -#: underline and strikethrough positions by the same amount. -#: Increasing the baseline raises glyphs inside the cell and -#: decreasing it lowers them. Decreasing the cell size might cause -#: rendering artifacts, so use with care. - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: The sizes of the lines used for the box drawing Unicode characters. -#: These values are in pts. They will be scaled by the monitor DPI to -#: arrive at a pixel value. There must be four values corresponding to -#: thin, normal, thick, and very thick lines. - -# undercurl_style thin-sparse - -#: The style with which undercurls are rendered. This option takes the -#: form (thin|thick)-(sparse|dense). Thin and thick control the -#: thickness of the undercurl. Sparse and dense control how often the -#: curl oscillates. With sparse the curl will peak once per character, -#: with dense twice. Changing this option dynamically via reloading -#: the config or remote control is undefined. - -# underline_exclusion 1 - -#: By default kitty renders gaps in underlines when they overlap with -#: descenders (the parts of letters below the baseline, such as for y, -#: q, p etc.). This option controls the thickness of the gaps. It can -#: be either a unitless number in which case it is a fraction of the -#: underline thickness as specified in the font or it can have a -#: suffix of px for pixels or pt for points. Set to zero to disable -#: the gaps. Changing this option dynamically via reloading the config -#: or remote control is undefined. - -# text_composition_strategy platform - -#: Control how kitty composites text glyphs onto the background color. -#: The default value of platform tries for text rendering as close to -#: "native" for the platform kitty is running on as possible. - -#: A value of legacy uses the old (pre kitty 0.28) strategy for how -#: glyphs are composited. This will make dark text on light -#: backgrounds look thicker and light text on dark backgrounds -#: thinner. It might also make some text appear like the strokes are -#: uneven. - -#: You can fine tune the actual contrast curve used for glyph -#: composition by specifying up to two space-separated numbers for -#: this setting. - -#: The first number is the gamma adjustment, which controls the -#: thickness of dark text on light backgrounds. Increasing the value -#: will make text appear thicker. The default value for this is 1.0 on -#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result -#: is scaled based on the luminance difference between the background -#: and the foreground. Dark text on light backgrounds receives the -#: full impact of the curve while light text on dark backgrounds is -#: affected very little. - -#: The second number is an additional multiplicative contrast. It is -#: percentage ranging from 0 to 100. The default value is 0 on Linux -#: and 30 on macOS. - -#: If you wish to achieve similar looking thickness in light and dark -#: themes, a good way to experiment is start by setting the value to -#: 1.0 0 and use a dark theme. Then adjust the second parameter until -#: it looks good. Then switch to a light theme and adjust the first -#: parameter until the perceived thickness matches the dark theme. - -# text_fg_override_threshold 0 - -#: A setting to prevent low contrast between foreground and background -#: colors. Useful when working with applications that use colors that -#: do not contrast well with your preferred color scheme. The default -#: value is 0, which means no color overriding is performed. There are -#: two modes of operation: - -#: A value with the suffix ratio represents the minimum accepted -#: contrast ratio between the foreground and background color. -#: Possible values range from 0.0 ratio to 21.0 ratio. For example, to -#: meet WCAG level AA -#: -#: a value of 4.5 ratio can be provided. The algorithm is implemented -#: using HSLuv which enables it to change the -#: perceived lightness of a color just as much as needed without -#: really changing its hue and saturation. - -#: A value with the suffix % represents the minimum accepted -#: difference in luminance between the foreground and background -#: color, below which kitty will override the foreground color. It is -#: percentage ranging from 0 % to 100 %. If the difference in -#: luminance of the foreground and background is below this threshold, -#: the foreground color will be set to white if the background is dark -#: or black if the background is light. - -#: WARNING: Some programs use characters (such as block characters) -#: for graphics display and may expect to be able to set the -#: foreground and background to the same color (or similar colors). If -#: you see unexpected stripes, dots, lines, incorrect color, no color -#: where you expect color, or any kind of graphic display problem try -#: setting text_fg_override_threshold to 0 to see if this is the cause -#: of the problem or consider using the ratio mode of operation -#: described above instead of the % mode of operation. - -#: }}} - -#: Text cursor customization {{{ - -# cursor #cccccc - -#: Default text cursor color. If set to the special value none the -#: cursor will be rendered with a "reverse video" effect. Its color -#: will be the color of the text in the cell it is over and the text -#: will be rendered with the background color of the cell. Note that -#: if the program running in the terminal sets a cursor color, this -#: takes precedence. Also, the cursor colors are modified if the cell -#: background and foreground colors have very low contrast. Note that -#: some themes set this value, so if you want to override it, place -#: your value after the lines where the theme file is included. - -# cursor_text_color #111111 - -#: The color of text under the cursor. If you want it rendered with -#: the background color of the cell underneath instead, use the -#: special keyword: `background`. Note that if cursor is set to none -#: then this option is ignored. Note that some themes set this value, -#: so if you want to override it, place your value after the lines -#: where the theme file is included. - -# cursor_shape block - -#: The cursor shape can be one of block, beam, underline. Note that -#: when reloading the config this will be changed only if the cursor -#: shape has not been set by the program running in the terminal. This -#: sets the default cursor shape, applications running in the terminal -#: can override it. In particular, shell integration -#: in kitty sets -#: the cursor shape to beam at shell prompts. You can avoid this by -#: setting shell_integration to no-cursor. - -# cursor_shape_unfocused hollow - -#: Defines the text cursor shape when the OS window is not focused. -#: The unfocused cursor shape can be one of block, beam, underline, -#: hollow and unchanged (leave the cursor shape as it is). - -# cursor_beam_thickness 1.5 - -#: The thickness of the beam cursor (in pts). - -# cursor_underline_thickness 2.0 - -#: The thickness of the underline cursor (in pts). - -# cursor_blink_interval -1 - -#: The interval to blink the cursor (in seconds). Set to zero to -#: disable blinking. Negative values mean use system default. Note -#: that the minimum interval will be limited to repaint_delay. You can -#: also animate the cursor blink by specifying an easing function. For -#: example, setting this to option to 0.5 ease-in-out will cause the -#: cursor blink to be animated over a second, in the first half of the -#: second it will go from opaque to transparent and then back again -#: over the next half. You can specify different easing functions for -#: the two halves, for example: -1 linear ease-out. kitty supports all -#: the CSS easing functions . Note that turning on animations -#: uses extra power as it means the screen is redrawn multiple times -#: per blink interval. See also, cursor_stop_blinking_after. This -#: setting also controls blinking text, which blinks in exact rhythm -#: with the cursor. - -# cursor_stop_blinking_after 15.0 - -#: Stop blinking cursor after the specified number of seconds of -#: keyboard inactivity. Set to zero to never stop blinking. This -#: setting also controls blinking text, which blinks in exact rhythm -#: with the cursor. - -# cursor_trail 0 - -#: Set this to a value larger than zero to enable a "cursor trail" -#: animation. This is an animation that shows a "trail" following the -#: movement of the text cursor. It makes it easy to follow large -#: cursor jumps and makes for a cool visual effect of the cursor -#: zooming around the screen. The actual value of this option controls -#: when the animation is triggered. It is a number of milliseconds. -#: The trail animation only follows cursors that have stayed in their -#: position for longer than the specified number of milliseconds. This -#: prevents trails from appearing for cursors that rapidly change -#: their positions during UI updates in complex applications. See -#: cursor_trail_decay to control the animation speed and -#: cursor_trail_start_threshold to control when a cursor trail is -#: started. - -# cursor_trail_decay 0.1 0.4 - -#: Controls the decay times for the cursor trail effect when the -#: cursor_trail is enabled. This option accepts two positive float -#: values specifying the fastest and slowest decay times in seconds. -#: The first value corresponds to the fastest decay time (minimum), -#: and the second value corresponds to the slowest decay time -#: (maximum). The second value must be equal to or greater than the -#: first value. Smaller values result in a faster decay of the cursor -#: trail. Adjust these values to control how quickly the cursor trail -#: fades away. - -# cursor_trail_start_threshold 2 - -#: Set the distance threshold for starting the cursor trail. This -#: option accepts a positive integer value that represents the minimum -#: number of cells the cursor must move before the trail is started. -#: When the cursor moves less than this threshold, the trail is -#: skipped, reducing unnecessary cursor trail animation. - -# cursor_trail_color none - -#: Set the color of the cursor trail when cursor_trail is enabled. If -#: set to 'none' (the default), the cursor trail will use the cursor's -#: background color. Otherwise, specify a color value (e.g., #ff0000 -#: for red, or a named color like 'red'). This allows you to customize -#: the appearance of the cursor trail independently of the cursor -#: color. - -#: }}} - -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. Negative numbers are (effectively) -#: infinite scrollback. Note that using very large scrollback is not -#: recommended as it can slow down performance of the terminal and -#: also use large amounts of RAM. Instead, consider using -#: scrollback_pager_history_size. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollbar scrolled - -#: Control when the scrollbar is displayed. - -#: scrolled -#: means when the scrolling backwards has started. -#: hovered -#: means when the mouse is hovering on the right edge of the window. -#: scrolled-and-hovered -#: means when the mouse is over the scrollbar region *and* scrolling backwards has started. -#: always -#: means whenever any scrollback is present -#: never -#: means disable the scrollbar. - -# scrollbar_interactive yes - -#: If disabled, the scrollbar will not be controllable via th emouse -#: and all mouse events will pass through the scrollbar. - -# scrollbar_jump_on_click yes - -#: When enabled clicking in the scrollbar track will cause the scroll -#: position to jump to the clicked location, otherwise the scroll -#: position will only move towards the position by a single screenful, -#: which is how traditional scrollbars behave. - -# scrollbar_width 0.5 - -#: The width of the scroll bar in units of cell width. - -# scrollbar_hover_width 1 - -#: The width of the scroll bar when the mouse is hovering over it, in -#: units of cell width. - -# scrollbar_handle_opacity 0.5 - -#: The opacity of the scrollbar handle, 0 being fully transparent and -#: 1 being full opaque. - -# scrollbar_radius 0.3 - -#: The radius (curvature) of the scrollbar handle in units of cell -#: width. Should be less than scrollbar_width. - -# scrollbar_gap 0.1 - -#: The gap between the scrollbar and the window edge in units of cell -#: width. - -# scrollbar_min_handle_height 1 - -#: The minimum height of the scrollbar handle in units of cell height. -#: Prevents the handle from becoming too small when there is a lot of -#: scrollback. - -# scrollbar_hitbox_expansion 0.25 - -#: The extra area around the handle to allow easier grabbing of the -#: scollbar in units of cell width. - -# scrollbar_track_opacity 0 - -#: The opacity of the scrollbar track, 0 being fully transparent and 1 -#: being full opaque. - -# scrollbar_track_hover_opacity 0.1 - -#: The opacity of the scrollbar track when the mouse is over the -#: scrollbar, 0 being fully transparent and 1 being full opaque. - -# scrollbar_handle_color foreground - -#: The color of the scrollbar handle. A value of foreground means to -#: use the current foreground text color, a value of -#: selection_background means to use the current selection background -#: color. Also, you can use an arbitrary color, such as #12af59 or -#: red. - -# scrollbar_track_color foreground - -#: The color of the scrollbar track. A value of foreground means to -#: use the current foreground text color, a value of -#: selection_background means to use the current selection background -#: color. Also, you can use an arbitrary color, such as #12af59 or -#: red. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. Similarly CURSOR_LINE and -#: CURSOR_COLUMN will be replaced by the current cursor position or -#: set to 0 if there is no cursor, for example, when showing the last -#: command output. - -#: If you would rather use neovim to view the scrollback, use -#: something like this:: - -#: scrollback_pager nvim --cmd 'set eventignore=FileType' +'nnoremap q ZQ' +'call nvim_open_term(0, {})' +'set nomodified nolist' +'$' - - -#: The above works for neovim 0.12 and newer. There is also a -#: dedicated plugin kitty-scrollback.nvim -#: you can use -#: with more features that works with older neovim as well. - -# scrollback_pager_history_size 0 - -#: Separate scrollback history size (in MB), used only for browsing -#: the scrollback buffer with pager. This separate buffer is not -#: available for interactive scrolling but will be piped to the pager -#: program when viewing scrollback buffer in a separate window. The -#: current implementation stores the data in UTF-8, so approximately -#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, -#: unformatted text. A value of zero or less disables this feature. -#: The maximum allowed size is 4GB. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_fill_enlarged_window no - -#: Fill new space with lines from the scrollback buffer after -#: enlarging a window. - -# wheel_scroll_multiplier 5.0 - -#: Multiplier for the number of lines scrolled by the mouse wheel. -#: Note that this is only used for low precision scrolling devices, -#: not for high precision scrolling devices on platforms such as macOS -#: and Wayland. Use negative numbers to change scroll direction. See -#: also wheel_scroll_min_lines. - -# wheel_scroll_min_lines 1 - -#: The minimum number of lines scrolled by the mouse wheel. The scroll -#: multiplier wheel_scroll_multiplier only takes effect after it -#: reaches this number. Note that this is only used for low precision -#: scrolling devices like wheel mice that scroll by very small amounts -#: when using the wheel. With a negative number, the minimum number of -#: lines will always be added. - -# touch_scroll_multiplier 1.0 - -#: Multiplier for the number of lines scrolled by a touchpad. Note -#: that this is only used for high precision scrolling devices on -#: platforms such as macOS and Wayland. Use negative numbers to change -#: scroll direction. - -#: }}} - -#: Mouse {{{ - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. -#: Set to a negative value to hide the mouse cursor immediately when -#: typing text. Disabled by default on macOS as getting it to work -#: robustly with the ever-changing sea of bugs that is Cocoa is too -#: much effort. - -#: By default, once the cursor is hidden, it is immediately unhidden -#: on any further mouse events. - -#: Two formats are supported: -#: - -#: - - -#: To change the unhide behavior, the optional parameters , , and may be set. - -#: -#: Waits for the specified number of seconds after mouse events before unhiding the -#: mouse cursor. Set to zero to unhide mouse cursor immediately on mouse activity. -#: This is useful to prevent the mouse cursor from unhiding on accidental swipes on -#: the trackpad. - -#: -#: Sets the threshold of mouse activity required to unhide the mouse cursor, when -#: the option is non-zero. When is zero, this has no -#: effect. - -#: For example, if is 40 and is 2.5, when kitty -#: detects a mouse event, it records the number of mouse events in the next 2.5 -#: seconds, and checks if that exceeds 40 * 2.5 = 100. If it does, then the mouse -#: cursor is unhidden, otherwise nothing happens. - -#: -#: Controls what mouse events may unhide the mouse cursor. If enabled, both scroll -#: and movement events may unhide the cursor. If disabled, only mouse movements can -#: unhide the cursor. - -#: Examples of valid values: -#: - 0.0 -#: - 1.0 -#: - -1.0 -#: - 0.1 3.0 40 yes - -# url_color #0087bd -# url_style curly - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, straight, double, curly, dotted, dashed. - -# open_url_with default - -#: The program to open clicked URLs. The special value default will -#: first look for any URL handlers defined via the open_actions -#: facility and if non -#: are found, it will use the Operating System's default URL handler -#: (open on macOS and xdg-open on Linux). - -# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh - -#: The set of URL prefixes to look for when detecting a URL under the -#: mouse cursor. - -# detect_urls yes - -#: Detect URLs under the mouse. Detected URLs are highlighted with an -#: underline and the mouse cursor becomes a hand over them. Even if -#: this option is disabled, URLs are still clickable. See also the -#: underline_hyperlinks option to control how hyperlinks (as opposed -#: to plain text URLs) are displayed. - -# url_excluded_characters - -#: Additional characters to be disallowed from URLs, when detecting -#: URLs under the mouse cursor. By default, all characters that are -#: legal in URLs are allowed. Additionally, newlines are allowed (but -#: stripped). This is to accommodate programs such as mutt that add -#: hard line breaks even for continued lines. \n can be added to this -#: option to disable this behavior. Special characters can be -#: specified using backslash escapes, to specify a backslash use a -#: double backslash. - -# show_hyperlink_targets no - -#: When the mouse hovers over a terminal hyperlink, show the actual -#: URL that will be activated when the hyperlink is clicked. - -# underline_hyperlinks hover - -#: Control how hyperlinks are underlined. They can either be -#: underlined on mouse hover, always (i.e. permanently underlined) or -#: never which means that kitty will not apply any underline styling -#: to hyperlinks. Note that the value of always only applies to real -#: (OSC 8) hyperlinks not text that is detected to be a URL on mouse -#: hover. Uses the url_style and url_color settings for the underline -#: style. Note that reloading the config and changing this value -#: to/from always will only affect text subsequently received by -#: kitty. - -# copy_on_select no - -#: Copy to clipboard or a private buffer on select. With this set to -#: clipboard, selecting text with the mouse will cause the text to be -#: copied to clipboard. Useful on platforms such as macOS that do not -#: have the concept of primary selection. You can instead specify a -#: name such as a1 to copy to a private kitty buffer. Map a shortcut -#: with the paste_from_buffer action to paste from this private -#: buffer. For example:: - -#: copy_on_select a1 -#: map shift+cmd+v paste_from_buffer a1 - -#: Note that copying to the clipboard is a security risk, as all -#: programs, including websites open in your browser can read the -#: contents of the system clipboard. - -# clear_selection_on_clipboard_loss no - -#: When the contents of the clipboard no longer reflect the current -#: selection, clear it. This is primarily useful on platforms such as -#: Linux where selecting text automatically copies it to a special -#: "primary selection" clipboard or if you have copy_on_select set to -#: clipboard. - -#: Note that on macOS the system does not provide notifications when -#: the clipboard owner is changed, so there, copying to clipboard in a -#: non-kitty application will not clear selections even if -#: copy_on_select is enabled. - -# paste_actions quote-urls-at-prompt,confirm - -#: A comma separated list of actions to take when pasting text into -#: the terminal. The supported paste actions are: - -#: quote-urls-at-prompt: -#: If the text being pasted is a URL and the cursor is at a shell prompt, -#: automatically quote the URL (needs shell_integration). -#: replace-dangerous-control-codes -#: Replace dangerous control codes from pasted text, without confirmation. -#: replace-newline -#: Replace the newline character from pasted text, without confirmation. -#: confirm: -#: Confirm the paste if the text to be pasted contains any terminal control codes -#: as this can be dangerous, leading to code execution if the shell/program running -#: in the terminal does not properly handle these. -#: confirm-if-large -#: Confirm the paste if it is very large (larger than 16KB) as pasting -#: large amounts of text into shells can be very slow. -#: filter: -#: Run the filter_paste() function from the file paste-actions.py in -#: the kitty config directory on the pasted text. The text returned by the -#: function will be actually pasted. -#: no-op: -#: Has no effect. - -# strip_trailing_spaces never - -#: Remove spaces at the end of lines when copying to clipboard. A -#: value of smart will do it when using normal selections, but not -#: rectangle selections. A value of always will always do it. - -# select_by_word_characters @-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alphanumeric character in the Unicode database will be matched. - -# select_by_word_characters_forward - -#: Characters considered part of a word when extending the selection -#: forward on double clicking. In addition to these characters any -#: character that is marked as an alphanumeric character in the -#: Unicode database will be matched. - -#: If empty (default) select_by_word_characters will be used for both -#: directions. - -# click_interval -1.0 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds). Negative numbers will use the system default -#: instead, if available, or fallback to 0.5. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around. On macOS, this will also cause the OS Window under -#: the mouse to be focused automatically when the mouse enters it. - -# pointer_shape_when_grabbed arrow - -#: The shape of the mouse pointer when the program running in the -#: terminal grabs the mouse. - -# default_pointer_shape beam - -#: The default shape of the mouse pointer. - -# pointer_shape_when_dragging beam crosshair - -#: The default shape of the mouse pointer when dragging across text. -#: The optional second value sets the shape when dragging in -#: rectangular selection mode. - -#: Mouse actions {{{ - -#: Mouse buttons can be mapped to perform arbitrary actions. The -#: syntax is: - -#: .. code-block:: none - -#: mouse_map button-name event-type modes action - -#: Where button-name is one of left, middle, right, b1 ... b8 with -#: added keyboard modifiers. For example: ctrl+shift+left refers to -#: holding the Ctrl+Shift keys while clicking with the left mouse -#: button. The value b1 ... b8 can be used to refer to up to eight -#: buttons on a mouse. - -#: event-type is one of press, release, doublepress, triplepress, -#: click, doubleclick. modes indicates whether the action is performed -#: when the mouse is grabbed by the program running in the terminal, -#: or not. The values are grabbed or ungrabbed or a comma separated -#: combination of them. grabbed refers to when the program running in -#: the terminal has requested mouse events. Note that the click and -#: double click events have a delay of click_interval to disambiguate -#: from double and triple presses. - -#: You can run kitty with the kitty --debug-input command line option -#: to see mouse events. See the builtin actions below to get a sense -#: of what is possible. - -#: If you want to unmap a button, map it to nothing. For example, to -#: disable opening of URLs with a plain click:: - -#: mouse_map left click ungrabbed - -#: See all the mappable actions including mouse actions here -#: . - -#: .. note:: -#: Once a selection is started, releasing the button that started it will -#: automatically end it and no release event will be dispatched. - -# clear_all_mouse_actions no - -#: Remove all mouse action definitions up to this point. Useful, for -#: instance, to remove the default mouse actions. - -#: Click the link under the mouse or move the cursor - -# mouse_map left click ungrabbed mouse_handle_click selection link prompt - -#:: First check for a selection and if one exists do nothing. Then -#:: check for a link under the mouse cursor and if one exists, click -#:: it. Finally check if the click happened at the current shell -#:: prompt and if so, move the cursor to the click location. Note -#:: that this requires shell integration -#:: to work. - -#: Click the link under the mouse or move the cursor even when grabbed - -# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt - -#:: Same as above, except that the action is performed even when the -#:: mouse is grabbed by the program running in the terminal. - -#: Click the link under the mouse cursor - -# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link - -#:: Variant with Ctrl+Shift is present because the simple click based -#:: version has an unavoidable delay of click_interval, to -#:: disambiguate clicks from double clicks. - -#: Discard press event for link click - -# mouse_map ctrl+shift+left press grabbed discard_event - -#:: Prevent this press event from being sent to the program that has -#:: grabbed the mouse, as the corresponding release event is used to -#:: open a URL. - -#: Paste from the primary selection - -# mouse_map middle release ungrabbed paste_from_selection - -#: Start selecting text - -# mouse_map left press ungrabbed mouse_selection normal - -#: Start selecting text in a rectangle - -# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle - -#: Select a word - -# mouse_map left doublepress ungrabbed mouse_selection word - -#: Select a line - -# mouse_map left triplepress ungrabbed mouse_selection line - -#: Select line from point - -# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line. If you -#:: would like to select the word at the point and then extend to the -#:: rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection - -# mouse_map right press ungrabbed mouse_selection extend - -#:: If you want only the end of the selection to be moved instead of -#:: the nearest boundary, use move-end instead of extend. - -#: Paste from the primary selection even when grabbed - -# mouse_map shift+middle release ungrabbed,grabbed paste_selection -# mouse_map shift+middle press grabbed discard_event - -#: Start selecting text even when grabbed - -# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal - -#: Start selecting text in a rectangle even when grabbed - -# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle - -#: Select a word even when grabbed - -# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word - -#: Select a line even when grabbed - -# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line - -#: Select line from point even when grabbed - -# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line even when -#:: grabbed. If you would like to select the word at the point and -#:: then extend to the rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection even when grabbed - -# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend - -#: Show clicked command output in pager - -# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay between screen updates (in milliseconds). Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS, you have to -#: either set sync_to_monitor to no or use a monitor with a high -#: refresh rate. Also, to minimize latency when there is pending input -#: to be processed, this option is ignored. - -# input_delay 3 - -#: Delay before input from the program running in the terminal is -#: processed (in milliseconds). Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. -#: This setting is ignored when the input buffer is almost full. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents screen tearing -#: when scrolling. -#: However, it limits the rendering speed to the refresh rate of your -#: monitor. With a very high speed mouse/high keyboard repeat rate, -#: you may notice some slight input latency. If so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes - -#: The audio bell. Useful to disable it in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: The visual bell duration (in seconds). Flash the screen when a bell -#: occurs for the specified number of seconds. Set to zero to disable. -#: The flash is animated, fading in and out over the specified -#: duration. The easing function used for the fading can be -#: controlled. For example, 2.0 linear will casuse the flash to fade -#: in and out linearly. The default if unspecified is to use ease-in- -#: out which fades slowly at the start, middle and end. You can -#: specify different easing functions for the fade-in and fade-out -#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS -#: easing functions . - -# visual_bell_color none - -#: The color used by visual bell. Set to none will fall back to -#: selection background color. If you feel that the visual bell is too -#: bright, you can set it to a darker color. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on Linux. - -# bell_on_tab "🔔 " - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has a bell. If you want to use leading -#: or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -#: For backwards compatibility, values of yes, y and true are -#: converted to the default bell symbol and no, n, false and none are -#: converted to the empty string. - -# command_on_bell none - -#: Program to run when a bell occurs. The environment variable -#: KITTY_CHILD_CMDLINE can be used to get the program running in the -#: window in which the bell occurred. - -# bell_path none - -#: Path to a sound file to play as the bell sound. If set to none, the -#: system default bell sound is used. Must be in a format supported by -#: the operating systems sound API, such as WAV or OGA on Linux -#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound). Relative -#: paths are resolved with respect to the kitty config directory. - -# linux_bell_theme __custom - -#: The XDG Sound Theme kitty will use to play the bell sound. On -#: Wayland, when the compositor supports it, it is asked to play the -#: system default bell sound, and this setting has no effect. Note -#: that Hyprland claims to support this protocol, but does not -#: actually play a sound -#: . This setting -#: defaults to the custom theme name specified in the XDG Sound theme -#: specification , falling back to the default -#: freedesktop theme if it does not exist. To change your sound theme -#: desktop wide, create -#: :file:~/.local/share/sounds/__custom/index.theme` with the -#: contents: - -#: [Sound Theme] - -#: Inherits=name-of-the-sound-theme-you-want-to-use - -#: Replace name-of-the-sound-theme-you-want-to-use with the actual -#: theme name. Now all compliant applications should use sounds from -#: this theme. - -#: }}} - -#: Window layout {{{ - - remember_window_size yes - initial_window_width 640 - initial_window_height 400 - -#: If enabled, the OS Window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the OS Window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# remember_window_position no - -#: If enabled, the OS Window position will be remembered so that new -#: instances of kitty will have the same position as the previous -#: instance. If disabled, the OS Window will be placed by the window -#: manager. Note that remembering of position only works if the -#: underlying desktop environment/window manager supports it. It never -#: works on Wayland. See also kitty --position to specify the position -#: when launching kitty. - -enabled_layouts grid,* - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value all means all layouts. The first listed layout -#: will be used as the startup layout. Default configuration is all -#: layouts in alphabetical order. For a list of available layouts, see -#: the layouts . - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing kitty windows in a layout with the shortcut -#: start_resizing_window. The cells value is used for horizontal -#: resizing, and the lines value is used for vertical resizing. - -# window_border_width 0.5pt - -#: The width of window borders. Can be either in pixels (px) or pts -#: (pt). Values in pts will be rounded to the nearest number of pixels -#: based on screen resolution. If not specified, the unit is assumed -#: to be pts. Note that borders are displayed only when more than one -#: window is visible. They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: borders that separate the window from a neighbor are drawn. Note -#: that setting a non-zero window_margin_width overrides this and -#: causes all borders to be drawn. - -# draw_window_borders_for_single_window no - -#: Draw borders around a window even when there is only a single -#: window visible. When enabled and there is only a single window, -#: full borders are drawn around it (as if draw_minimal_borders is -#: false). The border will show in the active color when the window is -#: focused and the OS window has focus, and in the inactive color when -#: the OS window loses focus. This provides a clear visual indicator -#: of whether the kitty window is focused. When there are multiple -#: windows visible, this option has no effect and normal border -#: drawing rules apply. - -# window_margin_width 0 - -#: The window margin (in pts) (blank area outside the border). A -#: single value sets all four sides. Two values set the vertical and -#: horizontal sides. Three values set top, horizontal and bottom. Four -#: values set top, right, bottom and left. - -# single_window_margin_width -1 - -#: The window margin to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_margin_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# window_padding_width 0 - -#: The window padding (in pts) (blank area between the text and the -#: window border). A single value sets all four sides. Two values set -#: the vertical and horizontal sides. Three values set top, horizontal -#: and bottom. Four values set top, right, bottom and left. - -# single_window_padding_width -1 - -#: The window padding to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_padding_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# placement_strategy center - -#: When the window size is not an exact multiple of the cell size, the -#: cell area of the terminal window will have some extra padding on -#: the sides. You can control how that padding is distributed with -#: this option. Using a value of center means the cell area will be -#: placed centrally. A value of top-left means the padding will be -#: only at the bottom and right edges. The value can be one of: top- -#: left, top, top-right, left, center, right, bottom-left, bottom, -#: bottom-right. - -# active_border_color #00ff00 - -#: The color for the border of the active window. Set this to none to -#: not draw borders around the active window. - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows. - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred. - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -# hide_window_decorations no - -#: Hide the window decorations (title-bar and window borders) with -#: yes. On macOS, titlebar-only and titlebar-and-corners can be used -#: to only hide the titlebar and the rounded corners. Whether this -#: works and exactly what effect it has depends on the window -#: manager/operating system. Note that the effects of changing this -#: option when reloading config are undefined. When using titlebar- -#: only, it is useful to also set window_margin_width and -#: placement_strategy to prevent the rounded corners from clipping -#: text. Or use titlebar-and-corners. - -#window_logo_path none - -#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format. -#: Relative paths are interpreted relative to the kitty config -#: directory. The logo is displayed in a corner of every kitty window. -#: The position is controlled by window_logo_position. Individual -#: windows can be configured to have different logos either using the -#: launch action or the remote control -#: facility. - -# window_logo_position bottom-right - -#: Where to position the window logo in the window. The value can be -#: one of: top-left, top, top-right, left, center, right, bottom-left, -#: bottom, bottom-right. - -# window_logo_alpha 0.5 - -#: The amount the logo should be faded into the background. With zero -#: being fully faded and one being fully opaque. - -# window_logo_scale 100 - -#: The percentage (0-100] of the window size to which the logo should -#: scale. Using a single number means the logo is scaled to that -#: percentage of the shortest window dimension, while preserving -#: aspect ratio of the logo image. - -#: Using two numbers means the width and height of the logo are scaled -#: to the respective percentage of the window's width and height. - -#: Using zero as the percentage disables scaling in that dimension. A -#: single zero (the default) disables all scaling of the window logo. - -# resize_debounce_time 0.1 0.5 - -#: The time to wait (in seconds) before asking the program running in -#: kitty to resize and redraw the screen during a live resize of the -#: OS window, when no new resize events have been received, i.e. when -#: resizing is either paused or finished. On platforms such as macOS, -#: where the operating system sends events corresponding to the start -#: and end of a live resize, the second number is used for redraw- -#: after-pause since kitty can distinguish between a pause and end of -#: resizing. On such systems the first number is ignored and redraw is -#: immediate after end of resize. On other systems only the first -#: number is used so that kitty is "ready" quickly after the end of -#: resizing, while not also continuously redrawing, to save energy. - -# resize_in_steps no - -#: Resize the OS window in steps as large as the cells, instead of -#: with the usual pixel accuracy. Combined with initial_window_width -#: and initial_window_height in number of cells, this option can be -#: used to keep the margins as small as possible when resizing the OS -#: window. Note that this does not currently work on Wayland. - -# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - -#: The list of characters for visual window selection. For example, -#: for selecting a window to focus on with focus_visible_window. The -#: value should be a series of unique numbers or alphabets, case -#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your -#: preference as a string of characters. - -# confirm_os_window_close -1 - -#: Ask for confirmation when closing an OS window or a tab with at -#: least this number of kitty windows in it by window manager (e.g. -#: clicking the window close button or pressing the operating system -#: shortcut to close windows) or by the close_tab action. A value of -#: zero disables confirmation. This confirmation also applies to -#: requests to quit the entire application (all OS windows, via the -#: quit action). Negative values are converted to positive ones, -#: however, with shell_integration enabled, using negative values -#: means windows sitting at a shell prompt are not counted, only -#: windows where some command is currently running. You can also have -#: backgrounded jobs prevent closing, by adding count-background to -#: the setting, for example: -1 count-background. Note that if you -#: want confirmation when closing individual windows, you can map the -#: close_window_with_confirmation action. - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: The edge to show the tab bar on, top or bottom. - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts). - -# tab_bar_margin_height 0.0 0.0 - -#: The margin above and below the tab bar (in pts). The first number -#: is the margin between the edge of the OS Window and the tab bar. -#: The second number is the margin between the tab bar and the -#: contents of the current tab. - -# tab_bar_style fade - -#: The tab bar style, can be one of: - -#: fade -#: Each tab's edges fade into the background color. (See also tab_fade) -#: slant -#: Tabs look like the tabs in a physical file. -#: separator -#: Tabs are separated by a configurable separator. (See also -#: tab_separator) -#: powerline -#: Tabs are shown as a continuous line with "fancy" separators. -#: (See also tab_powerline_style) -#: custom -#: A user-supplied Python function called draw_tab is loaded from the file -#: tab_bar.py in the kitty config directory. For examples of how to -#: write such a function, see the functions named draw_tab_with_* in -#: kitty's source code: kitty/tab_bar.py. See also -#: this discussion -#: for examples from kitty users. -#: hidden -#: The tab bar is hidden. If you use this, you might want to create -#: a mapping for the select_tab action which presents you with a list of -#: tabs and allows for easy switching to a tab. - -# tab_bar_filter - -#: A search expression . Only tabs that match this expression will -#: be shown in the tab bar. The currently active tab is always shown, -#: regardless of whether it matches or not. When using this option, -#: the tab bar may be displayed with less tabs than specified in -#: tab_bar_min_tabs, as evaluating the filter is expensive and is done -#: only at display time. This is most useful when using sessions -#: . An expression of -#: session:~ or session:^$ will show only tabs that belong to the -#: current session or no session. The various tab navigation actions -#: such as goto_tab, next_tab, previous_tab, etc. are automatically -#: restricted to work only on matching tabs. - -# tab_bar_align left - -#: The horizontal alignment of the tab bar, can be one of: left, -#: center, right. - -# tab_bar_min_tabs 2 - -#: The minimum number of tabs that must exist before the tab bar is -#: shown. - -# tab_switch_strategy previous - -#: The algorithm to use when switching to a tab when the current tab -#: is closed. The default of previous will switch to the last used -#: tab. A value of left will switch to the tab to the left of the -#: closed tab. A value of right will switch to the tab to the right of -#: the closed tab. A value of last will switch to the right-most tab. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# tab_powerline_style angled - -#: The powerline separator style between tabs in the tab bar when -#: using powerline as the tab_bar_style, can be one of: angled, -#: slanted, round. - -# tab_activity_symbol none - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has some activity. If you want to use -#: leading or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -# tab_title_max_length 0 - -#: The maximum number of cells that can be used to render the text in -#: a tab. A value of zero means that no limit is applied. - -# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}" - -#: A template to render the tab title. The default just renders the -#: title with optional symbols for bell and activity. If you wish to -#: include the tab-index as well, use something like: {index}:{title}. -#: Useful if you have shortcuts mapped for goto_tab N. If you prefer -#: to see the index as a superscript, use {sup.index}. All data -#: available is: - -#: title -#: The current tab title. -#: index -#: The tab index usable with goto_tab N goto_tab shortcuts. -#: layout_name -#: The current layout name. -#: session_name -#: The name of the kitty session file from which this tab was created, if any. -#: active_session_name -#: The name of the kitty session file from which the active window in this tab was created, if any. -#: num_windows -#: The number of windows in the tab. -#: num_window_groups -#: The number of window groups (a window group is a window and all of its overlay windows) in the tab. -#: tab.active_wd -#: The working directory of the currently active window in the tab -#: (expensive, requires syscall). Use tab.active_oldest_wd to get -#: the directory of the oldest foreground process rather than the newest. -#: tab.active_exe -#: The name of the executable running in the foreground of the currently -#: active window in the tab (expensive, requires syscall). Use -#: tab.active_oldest_exe for the oldest foreground process. -#: max_title_length -#: The maximum title length available. -#: keyboard_mode -#: The name of the current keyboard mode or the empty string if no keyboard mode is active. -#: tab.last_focused_progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from the most recently focused window in the tab. Empty string if no progress is reported. -#: tab.progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from all windows in the tab, averaged. Empty string is no progress is reported. -#: custom -#: This will call a function named draw_title(data) from the file tab_bar.py placed in -#: the kitty config directory. The function will be passed a dictionary of data, the same data that -#: can be used in this template. It can then perform arbitrarily complex processing and return a string. -#: For example: tab_title_template "{custom}" will use the output of the function as the tab title. -#: Any print statements in the draw_title() will print to the STDOUT of the kitty process, useful -#: for debugging. - - -#: Note that formatting is done by Python's string formatting -#: machinery, so you can use, for instance, {layout_name[:2].upper()} -#: to show only the first two letters of the layout name, upper-cased. -#: If you want to style the text, you can use styling directives, for -#: example: -#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. -#: Similarly, for bold and italic: -#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. -#: The 256 eight terminal colors can be used as `fmt.fg.color0` -#: through `fmt.fg.color255`. Note that for backward compatibility, if -#: {bell_symbol} or {activity_symbol} are not present in the template, -#: they are prepended to it. - -# active_tab_title_template none - -#: Template to use for active tabs. If not specified falls back to -#: tab_title_template. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles. - -# tab_bar_background none - -#: Background color for the tab bar. Defaults to using the terminal -#: background color. - -# tab_bar_margin_color none - -#: Color for the tab bar margin area. Defaults to using the terminal -#: background color for margins above and below the tab bar. For side -#: margins the default color is chosen to match the background color -#: of the neighboring tab. - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 - -#: The foreground and background colors. - -#background_opacity 0.5 - -#: The opacity of the terminal background color. A number between zero -#: and one, where one is opaque and zero is fully transparent. This -#: will only work if supported by the OS (for instance, when using a -#: compositor under X11). Note that it only sets the background -#: color's opacity in cells that have the same background color as the -#: default terminal background, so that things like the status bar in -#: vim, powerline prompts, etc. still look good. But it means that if -#: you use a color theme with a background color in your editor, it -#: will not be rendered as transparent. Instead you should change the -#: default background color in your kitty config and not use a -#: background color in the editor color scheme. Or use the escape -#: codes to set the terminals default colors in a shell script to -#: launch your editor. See also transparent_background_colors. Be -#: aware that using a value less than 1.0 is a (possibly significant) -#: performance hit. When using a low value for this setting, it is -#: desirable that you set the background color to a color the matches -#: the general color of the desktop background, for best text -#: rendering. Note also, that this setting does not apply to the -#: background_image, if any. The background image can itself have -#: transparency via its alpha channel if desired, and that will be -#: respected. - -#: If you want to dynamically change transparency of windows, set -#: dynamic_background_opacity to yes (this is off by default as it has -#: a performance cost). Changing this option when reloading the config -#: will only work if dynamic_background_opacity was enabled in the -#: original config. - -# background_blur 0 - -#: Set to a positive value to enable background blur (blurring of the -#: visuals behind a transparent window) on platforms that support it. -#: Only takes effect when background_opacity is less than one. On -#: macOS, this will also control the blur radius (amount of blurring). -#: Setting it to too high a value will cause severe performance issues -#: and/or rendering artifacts. Usually, values up to 64 work well. -#: Note that this might cause performance issues, depending on how the -#: platform implements it, so use with care. Currently supported on -#: macOS and KDE. - -# transparent_background_colors #292E42@0.7 #2e3c64@0.9 - -#: A space separated list of upto 7 colors, with opacity. When the -#: background color of a cell matches one of these colors, it is -#: rendered semi-transparent using the specified opacity. - -#: Useful in more complex UIs like editors where you could want more -#: than a single background color to be rendered as transparent, for -#: instance, for a cursor highlight line background or a highlighted -#: block. Terminal applications can set this color using The kitty -#: color control escape code. - -#: The syntax for specifying colors is: color@opacity, where the -#: @opacity part is optional. When unspecified, the value of -#: background_opacity is used. For example:: - -#: transparent_background_colors red@0.5 #00ff00@0.3 - -#: Note that you must also set background_opacity to something less -#: than 1 for this setting to work properly. - -dynamic_background_opacity yes - -#: Allow changing of the background_opacity dynamically, using either -#: keyboard shortcuts (increase_background_opacity and -#: decrease_background_opacity) or the remote control facility. -#: Changing this option by reloading the config is not supported. - -# background_image none - -#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP -#: format. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_image_layout tiled - -#: Whether to tile, scale or clamp the background image. The value can -#: be one of tiled, mirror-tiled, scaled, clamped, centered or -#: cscaled. The scaled and cscaled values scale the image to the -#: window size, with cscaled preserving the image aspect ratio. Note -#: that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_tint 0.0 - -#: How much to tint the background image by the background color. This -#: option makes it easier to read the text. Tinting is done using the -#: current background color for each window. This option applies only -#: if background_image is set. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_tint_gaps 1.0 - -#: How much to tint the background image at the window gaps by the -#: background color, after applying background_tint. Since this is -#: multiplicative with background_tint, it can be used to lighten the -#: tint over the window gaps for a *separated* look. Note that when -#: using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# dim_opacity 0.4 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #fffacd - -#: The foreground and background colors for text selected with the -#: mouse. Setting both of these to none will cause a "reverse video" -#: effect for selections, where the selection will be the cell text -#: color and the text will become the cell background color. Setting -#: only selection_foreground to none will cause the foreground color -#: to be used unchanged. Note that these colors can be overridden by -#: the program running in the terminal. - -#: The color table {{{ - -#: The 256 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version, for the first 16 colors. You can set the -#: remaining 240 colors as color16 to color255. - -# color0 #000000 -# color8 #767676 - -#: black - -# color1 #cc0403 -# color9 #f2201f - -#: red - -# color2 #19cb00 -# color10 #23fd00 - -#: green - -# color3 #cecb00 -# color11 #fffd00 - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff - -#: cyan - -# color7 #dddddd -# color15 #ffffff - -#: white - -# mark1_foreground black - -#: Color for marks of type 1 - -# mark1_background #98d3cb - -#: Color for marks of type 1 (light steel blue) - -# mark2_foreground black - -#: Color for marks of type 2 - -# mark2_background #f2dcd3 - -#: Color for marks of type 1 (beige) - -# mark3_foreground black - -#: Color for marks of type 3 - -# mark3_background #f274bc - -#: Color for marks of type 3 (violet) - -#: }}} - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: the value of of the SHELL environment variable or if unset, -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login and --interactive to ensure that the shell starts in -#: interactive mode and reads its startup rc files. Environment -#: variables are expanded in this setting. - -# editor . - -#: The terminal based text editor (such as vim or nano) to use when -#: editing the kitty config file or similar tasks. - -#: The default value of . means to use the environment variables -#: VISUAL and EDITOR in that order. If these variables aren't set, -#: kitty will run your shell ($SHELL -l -i -c env) to see if your -#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, -#: kitty will cycle through various known editors (vim, emacs, etc.) -#: and take the first one that exists on your system. - -# close_on_child_death no - -#: Close the window when the child process (usually the shell) exits. -#: With the default value no, the terminal will remain open when the -#: child exits as long as there are still other processes outputting -#: to the terminal (for example disowned or backgrounded processes). -#: When enabled with yes, the window will close as soon as the child -#: process exits. Note that setting it to yes means that any -#: background processes still using the terminal can fail silently -#: because their stdout/stderr/stdin no longer work. - -# remote_control_password - -#: Allow other programs to control kitty using passwords. This option -#: can be specified multiple times to add multiple passwords. If no -#: passwords are present kitty will ask the user for permission if a -#: program tries to use remote control with a password. A password can -#: also *optionally* be associated with a set of allowed remote -#: control actions. For example:: - -#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab - -#: Only the specified actions will be allowed when using this -#: password. Glob patterns can be used too, for example:: - -#: remote_control_password "my passphrase" set-tab-* resize-* - -#: To get a list of available actions, run:: - -#: kitten @ --help - -#: A set of actions to be allowed when no password is sent can be -#: specified by using an empty password. For example:: - -#: remote_control_password "" *-colors - -#: Finally, the path to a python module can be specified that provides -#: a function is_cmd_allowed that is used to check every remote -#: control command. For example:: - -#: remote_control_password "my passphrase" my_rc_command_checker.py - -#: Relative paths are resolved from the kitty configuration directory. -#: See rc_custom_auth for details. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on, other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over SSH -#: connections. The default setting of no prevents any form of remote -#: control. The meaning of the various values are: - -#: password -#: Remote control requests received over both the TTY device and the socket -#: are confirmed based on passwords, see remote_control_password. - -#: socket-only -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are denied. -#: See listen_on. - -#: socket -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are confirmed based on -#: password. - -#: no -#: Remote control is completely disabled. - -#: yes -#: Remote control requests are always accepted. - -# listen_on none - -#: Listen to the specified socket for remote control connections. Note -#: that this will apply to all kitty instances. It can be overridden -#: by the kitty --listen-on command line option. For UNIX sockets, -#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). -#: Environment variables are expanded and relative paths are resolved -#: with respect to the temporary directory. If {kitty_pid} is present, -#: then it is replaced by the PID of the kitty process, otherwise the -#: PID of the kitty process is appended to the value, with a hyphen. -#: For TCP sockets such as tcp:localhost:0 a random port is always -#: used even if a non-zero port number is specified. See the help for -#: kitty --listen-on for more details. Note that this will be ignored -#: unless allow_remote_control is set to either: yes, socket or -#: socket-only. Changing this option by reloading the config is not -#: supported. - -# env - -#: Specify the environment variables to be set in all child processes. -#: Using the name with an equal sign (e.g. env VAR=) will set it to -#: the empty string. Specifying only the name (e.g. env VAR) will -#: remove the variable from the child process' environment. Note that -#: environment variables are expanded recursively, for example:: - -#: env VAR1=a -#: env VAR2=${HOME}/${VAR1}/b - -#: The value of VAR2 will be /a/b. - -#: Use the special value read_from_shell to have kitty read the -#: specified variables from your login shell shell configuration. -#: Useful if your shell startup files setup a bunch of environment -#: variables that you want available to kitty and in kitty session -#: files. Each variable name is treated as a glob pattern to match. -#: For example: env read_from_shell=PATH LANG LC_* XDG_* EDITOR -#: VISUAL. Note that these variables are only read after the -#: configuration is fully processed, thus they are not available for -#: recursive expansion and they will override any variables set by -#: other env directives. - -# filter_notification - -#: Specify rules to filter out notifications sent by applications -#: running in kitty. Can be specified multiple times to create -#: multiple filter rules. A rule specification is of the form -#: field:regexp. A filter rule can match on any of the fields: title, -#: body, app, type. The special value of all filters out all -#: notifications. Rules can be combined using Boolean operators. Some -#: examples:: - -#: filter_notification title:hello or body:"abc.*def" -#: # filter out notification from vim except for ones about updates, (?i) -#: # makes matching case insensitive. -#: filter_notification app:"[ng]?vim" and not body:"(?i)update" -#: # filter out all notifications -#: filter_notification all - -#: The field app is the name of the application sending the -#: notification and type is the type of the notification. Not all -#: applications will send these fields, so you can also match on the -#: title and body of the notification text. More sophisticated -#: programmatic filtering and custom actions on notifications can be -#: done by creating a notifications.py file in the kitty config -#: directory (~/.config/kitty). An annotated sample is available -#: . - -# watcher - -#: Path to python file which will be loaded for watchers -#: . Can be -#: specified more than once to load multiple watchers. The watchers -#: will be added to every kitty window. Relative paths are resolved -#: relative to the kitty config directory. Note that reloading the -#: config will only affect windows created after the reload. - -# exe_search_path - -#: Control where kitty finds the programs to run. The default search -#: order is: First search the system wide PATH, then ~/.local/bin and -#: ~/bin. If still not found, the PATH defined in the login shell -#: after sourcing all its startup files is tried. Finally, if present, -#: the PATH specified by the env option is tried. - -#: This option allows you to prepend, append, or remove paths from -#: this search order. It can be specified multiple times for multiple -#: paths. A simple path will be prepended to the search order. A path -#: that starts with the + sign will be append to the search order, -#: after ~/bin above. A path that starts with the - sign will be -#: removed from the entire search order. For example:: - -#: exe_search_path /some/prepended/path -#: exe_search_path +/some/appended/path -#: exe_search_path -/some/excluded/path - -# update_check_interval 24 - -#: The interval to periodically check if an update to kitty is -#: available (in hours). If an update is found, a system notification -#: is displayed informing you of the available update. The default is -#: to check every 24 hours, set to zero to disable. Update checking is -#: only done by the official binary builds. Distro packages or source -#: builds do not do update checking. Changing this option by reloading -#: the config is not supported. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session =none command line option -#: for individual instances. See sessions -#: in the kitty -#: documentation for details. Note that relative paths are interpreted -#: with respect to the kitty config directory. Environment variables -#: in the path are expanded. Changing this option by reloading the -#: config is not supported. Note that if kitty is invoked with command -#: line arguments specifying a command to run, this option is ignored. - -# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: possible actions are: write-clipboard, read-clipboard, write- -#: primary, read-primary, read-clipboard-ask, read-primary-ask. The -#: default is to allow writing to the clipboard and primary selection -#: and to ask for permission when a program tries to read from the -#: clipboard. Note that disabling the read confirmation is a security -#: risk as it means that any program, even the ones running on a -#: remote server via SSH can read your clipboard. See also -#: clipboard_max_size. - -# clipboard_max_size 512 - -#: The maximum size (in MB) of data from programs running in kitty -#: that will be stored for writing to the system clipboard. A value of -#: zero means no size limit is applied. See also clipboard_control. - -# file_transfer_confirmation_bypass - -#: The password that can be supplied to the file transfer kitten -#: to skip the -#: transfer confirmation prompt. This should only be used when -#: initiating transfers from trusted computers, over trusted networks -#: or encrypted transports, as it allows any programs running on the -#: remote machine to read/write to the local filesystem, without -#: permission. - -# allow_hyperlinks yes - -#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 -#: escape sequences are ignored. Otherwise they become clickable -#: links, that you can click with the mouse or by using the hints -#: kitten . The -#: special value of ask means that kitty will ask before opening the -#: link when clicked. - -# shell_integration enabled - -#: Enable shell integration on supported shells. This enables features -#: such as jumping to previous prompts, browsing the output of the -#: previous command in a pager, etc. on supported shells. Set to -#: disabled to turn off shell integration, completely. It is also -#: possible to disable individual features, set to a space separated -#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- -#: prompt-mark, no-complete, no-sudo. See Shell integration -#: for details. - -# allow_cloning ask - -#: Control whether programs running in the terminal can request new -#: windows to be created. The canonical example is clone-in-kitty -#: . -#: By default, kitty will ask for permission for each clone request. -#: Allowing cloning unconditionally gives programs running in the -#: terminal (including over SSH) permission to execute arbitrary code, -#: as the user who is running the terminal, on the computer that the -#: terminal is running on. - -# clone_source_strategies venv,conda,env_var,path - -#: Control what shell code is sourced when running clone-in-kitty in -#: the newly cloned window. The supported strategies are: - -#: venv -#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the -#: Python stdlib venv module and allows cloning venvs automatically. -#: conda -#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual -#: environments created by conda. -#: env_var -#: Execute the contents of the environment variable -#: KITTY_CLONE_SOURCE_CODE with eval. -#: path -#: Source the file pointed to by the environment variable -#: KITTY_CLONE_SOURCE_PATH. - -#: This option must be a comma separated list of the above values. -#: Only the first valid match, in the order specified, is sourced. - -# notify_on_cmd_finish never - -#: Show a desktop notification when a long-running command finishes -#: (needs shell_integration). The possible values are: - -#: never -#: Never send a notification. - -#: unfocused -#: Only send a notification when the window does not have keyboard focus. - -#: invisible -#: Only send a notification when the window both is unfocused and not visible -#: to the user, for example, because it is in an inactive tab or its OS window -#: is not currently visible (on platforms that support OS window visibility querying -#: this considers an OS Window visible iff it is active). - -#: always -#: Always send a notification, regardless of window state. - -#: There are two optional arguments: - -#: First, the minimum duration for what is considered a long running -#: command. The default is 5 seconds. Specify a second argument to set -#: the duration. For example: invisible 15. Do not set the value too -#: small, otherwise a command that launches a new OS Window and exits -#: will spam a notification. - -#: Second, the action to perform. The default is notify. The possible -#: values are: - -#: notify -#: Send a desktop notification. The subsequent arguments are optional and specify when -#: the notification is automatically cleared. The set of possible events when the notification is -#: cleared are: focus and next. focus means that when the notification -#: policy is unfocused or invisible the notification is automatically cleared -#: when the window regains focus. The value of next means that the previous notification -#: is cleared when the next notification is shown. The default when no arguments are specified -#: is: focus next. - -#: bell -#: Ring the terminal bell. - -#: notify-bell -#: Send a desktop notification and ring the terminal bell. -#: The arguments are the same as for `notify`. - -#: command -#: Run a custom command. All subsequent arguments are the cmdline to run. - -#: Some more examples:: - -#: # Send a notification when a command takes more than 5 seconds in an unfocused window -#: notify_on_cmd_finish unfocused -#: # Send a notification when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 -#: # Ring a bell when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 bell -#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window -#: # Here %c is replaced by the current command line and %s by the job exit code -#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c -#: # Do not clear previous notification when next command finishes or window regains focus -#: notify_on_cmd_finish invisible 5.0 notify - -# term xterm-kitty - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on "Stack Overflow" -#: to change it. The TERM variable is used by various programs to get -#: information about the capabilities and behavior of the terminal. If -#: you change it, depending on what programs you run, and how -#: different the terminal you are changing it to is, various things -#: from key-presses, to colors, to various advanced features may not -#: work. Changing this option by reloading the config will only affect -#: newly created windows. - -# terminfo_type path - -#: The value of the TERMINFO environment variable to set. This -#: variable is used by programs running in the terminal to search for -#: terminfo databases. The default value of path causes kitty to set -#: it to a filesystem location containing the kitty terminfo database. -#: A value of direct means put the entire database into the env var -#: directly. This can be useful when connecting to containers, for -#: example. But, note that not all software supports this. A value of -#: none means do not touch the variable. - -# forward_stdio no - -#: Forward STDOUT and STDERR of the kitty process to child processes. -#: This is useful for debugging as it allows child processes to print -#: to kitty's STDOUT directly. For example, echo hello world -#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent -#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment -#: variable so child processes know about the forwarding. Note that on -#: macOS this prevents the shell from being run via the login utility -#: so getlogin() will not work in programs run in this session. - -# menu_map - -#: Specify entries for various menus in kitty. Currently only the -#: global menubar on macOS is supported. For example:: - -#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world" - -#: This will create a menu entry named "Launch something special" in -#: an "Actions" menu in the macOS global menubar. Sub-menus can be -#: created by adding more levels separated by the :: characters. - -#: }}} - -#: OS specific tweaks {{{ - -# wayland_titlebar_color system - -#: The color of the kitty window's titlebar on Wayland systems with -#: client side window decorations such as GNOME. A value of system -#: means to use the default system colors, a value of background means -#: to use the background color of the currently active kitty window -#: and finally you can use an arbitrary color, such as #12af59 or red. - -# macos_titlebar_color system - -#: The color of the kitty window's titlebar on macOS. A value of -#: system means to use the default system color, light or dark can -#: also be used to set it explicitly. A value of background means to -#: use the background color of the currently active window and finally -#: you can use an arbitrary color, such as #12af59 or red. - -# macos_option_as_alt no - -#: Use the Option key as an Alt key on macOS. With this set to no, -#: kitty will use the macOS native Option+Key to enter Unicode -#: character behavior. This will break any Alt+Key keyboard shortcuts -#: in your terminal programs, but you can use the macOS Unicode input -#: technique. You can use the values: left, right or both to use only -#: the left, right or both Option keys as Alt, instead. Note that -#: kitty itself always treats Option the same as Alt. This means you -#: cannot use this option to configure different kitty shortcuts for -#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using -#: Option/Alt+Key will take priority, so that any such key presses -#: will not be passed to terminal programs running inside kitty. -#: Changing this option by reloading the config is not supported. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks on macOS (⌘+Tab and the -#: Dock). Changing this option by reloading the config is not -#: supported. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed on macOS. -#: By default, kitty will stay running, even with no open windows, as -#: is the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level OS windows to not be -#: resizable on macOS. - -# macos_thicken_font 0 - -#: Draw an extra border around the font with the given width, to -#: increase legibility at small font sizes on macOS. For example, a -#: value of 0.75 will result in rendering that looks similar to sub- -#: pixel antialiasing at common font sizes. Note that in modern kitty, -#: this option is obsolete (although still supported). Consider using -#: text_composition_strategy instead. - -# macos_traditional_fullscreen no - -#: Use the macOS traditional full-screen transition, that is faster, -#: but less pretty. - -# macos_show_window_title_in all - -#: Control where the window title is displayed on macOS. A value of -#: window will show the title of the currently active window at the -#: top of the macOS window. A value of menubar will show the title of -#: the currently active window in the macOS global menu bar, making -#: use of otherwise wasted space. A value of all will show the title -#: in both places, and none hides the title. See -#: macos_menubar_title_max_length for how to control the length of the -#: title in the menu bar. - -# macos_menubar_title_max_length 0 - -#: The maximum number of characters from the window title to show in -#: the macOS global menu bar. Values less than one means that there is -#: no maximum limit. - -# macos_custom_beam_cursor no - -#: Use a custom mouse cursor for macOS that is easier to see on both -#: light and dark backgrounds. Nowadays, the default macOS cursor -#: already comes with a white border. WARNING: this might make your -#: mouse cursor invisible on dual GPU machines. Changing this option -#: by reloading the config is not supported. - -# macos_colorspace srgb - -#: The colorspace in which to interpret terminal colors. The default -#: of srgb will cause colors to match those seen in web browsers. The -#: value of default will use whatever the native colorspace of the -#: display is. The value of displayp3 will use Apple's special -#: snowflake display P3 color space, which will result in over -#: saturated (brighter) colors with some color shift. Reloading -#: configuration will change this value only for newly created OS -#: windows. - -# linux_display_server auto - -#: Choose between Wayland and X11 backends. By default, an appropriate -#: backend based on the system state is chosen automatically. Set it -#: to x11 or wayland to force the choice. Changing this option by -#: reloading the config is not supported. - -# wayland_enable_ime yes - -#: Enable Input Method Extension on Wayland. This is typically used -#: for inputting text in East Asian languages. However, its -#: implementation in Wayland is often buggy and introduces latency -#: into the input loop, so disable this if you know you dont need it. -#: Changing this option by reloading the config is not supported, it -#: will not have any effect. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: Keys are identified simply by their lowercase Unicode characters. -#: For example: a for the A key, [ for the left square bracket key, -#: etc. For functional keys, such as Enter or Escape, the names are -#: present at Functional key definitions -#: . -#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt -#: (opt, option, ⌥), super (cmd, command, ⌘). - -#: Simple shortcut mapping is done with the map directive. For full -#: details on advanced mapping including modal and per application -#: maps, see mapping . Some -#: quick examples to illustrate common tasks:: - -#: # unmap a keyboard shortcut, passing it to the program running in kitty -#: map kitty_mod+space -#: # completely ignore a keyboard event -#: map ctrl+alt+f1 discard_event -#: # combine multiple actions -#: map kitty_mod+e combine : new_window : next_layout -#: # multi-key shortcuts -#: map ctrl+x>ctrl+y>z action - -#: The full list of actions that can be mapped to key presses is -#: available here . - -# kitty_mod ctrl+shift - -#: Special modifier key alias for default shortcuts. You can change -#: the value of this option to alter all default shortcuts that use -#: kitty_mod. - -# clear_all_shortcuts no - -#: Remove all shortcut definitions up to this point. Useful, for -#: instance, to remove the default shortcuts. - -# action_alias - -#: E.g. action_alias launch_tab launch --type=tab --cwd=current - -#: Define action aliases to avoid repeating the same options in -#: multiple mappings. Aliases can be defined for any action and will -#: be expanded recursively. For example, the above alias allows you to -#: create mappings to launch a new tab in the current working -#: directory without duplication:: - -#: map f1 launch_tab vim -#: map f2 launch_tab emacs - -#: Similarly, to alias kitten invocation:: - -#: action_alias hints kitten hints --hints-offset=0 - -# kitten_alias - -#: E.g. kitten_alias hints hints --hints-offset=0 - -#: Like action_alias above, but specifically for kittens. Generally, -#: prefer to use action_alias. This option is a legacy version, -#: present for backwards compatibility. It causes all invocations of -#: the aliased kitten to be substituted. So the example above will -#: cause all invocations of the hints kitten to have the --hints- -#: offset=0 option applied. - -#: Clipboard {{{ - -#: Copy to clipboard - -# map kitty_mod+c copy_to_clipboard - -#:: There is also a copy_or_interrupt action that can be optionally -#:: mapped to Ctrl+C. It will copy only if there is a selection and -#:: send an interrupt otherwise. Similarly, -#:: copy_and_clear_or_interrupt will copy and clear the selection or -#:: send an interrupt if there is no selection. The copy_or_noop -#:: action will copy if there is a selection and pass the key through -#:: to the application running in the terminal if there is no -#:: selection. - -#: Copy to clipboard or pass through - -# map cmd+c copy_or_noop - -#: Paste from clipboard - -# map kitty_mod+v paste_from_clipboard -# map cmd+v paste_from_clipboard - -#: Paste from selection - -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection - -#: Pass selection to program - -# map kitty_mod+o pass_selection_to_program - -#:: You can also pass the contents of the current selection to any -#:: program with pass_selection_to_program. By default, the system's -#:: open program is used, but you can specify your own, the selection -#:: will be passed as a command line argument to the program. For -#:: example:: - -#:: map kitty_mod+o pass_selection_to_program firefox - -#:: You can pass the current selection to a terminal program running -#:: in a new kitty window, by using the @selection placeholder:: - -#:: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -#: Scroll line up - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map opt+cmd+page_up scroll_line_up -# map cmd+up scroll_line_up - -#: Scroll line down - -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map opt+cmd+page_down scroll_line_down -# map cmd+down scroll_line_down - -#: Scroll page up - -# map kitty_mod+page_up scroll_page_up -# map cmd+page_up scroll_page_up - -#: Scroll page down - -# map kitty_mod+page_down scroll_page_down -# map cmd+page_down scroll_page_down - -#: Scroll to top - -# map kitty_mod+home scroll_home -# map cmd+home scroll_home - -#: Scroll to bottom - -# map kitty_mod+end scroll_end -# map cmd+end scroll_end - -#: Scroll to previous shell prompt - -# map kitty_mod+z scroll_to_prompt -1 - -#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last -#:: jumped to or the last clicked position. Requires shell -#:: integration -#:: to work. - -#: Scroll to next shell prompt - -# map kitty_mod+x scroll_to_prompt 1 - -#: Browse scrollback buffer in pager - -# map kitty_mod+h show_scrollback - -#:: You can pipe the contents of the current screen and history -#:: buffer as STDIN to an arbitrary program using launch --stdin- -#:: source. For example, the following opens the scrollback buffer in -#:: less in an overlay window:: - -#:: 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 . - -#: Browse output of the last shell command in pager - -# map kitty_mod+g show_last_command_output - -#:: You can also define additional shortcuts to get the command -#:: output. For example, to get the first command output on screen:: - -#:: map f1 show_first_command_output_on_screen - -#:: To get the command output that was last accessed by a keyboard -#:: action or mouse action:: - -#:: map f1 show_last_visited_command_output - -#:: You can pipe the output of the last command run in the shell -#:: using the launch action. For example, the following opens the -#:: output in less in an overlay window:: - -#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R - -#:: To get the output of the first command on the screen, use -#:: @first_cmd_output_on_screen. To get the output of the last jumped -#:: to command, use @last_visited_cmd_output. - -#:: Requires shell integration -#:: to work. - -#: Search the scrollback within a pager - -# map kitty_mod+/ search_scrollback -# map cmd+f search_scrollback - -#:: Search for currently selected text in the scrollback using the -#:: configured scrollback_pager. Assumes that pressing the / key -#:: triggers search mode in the pager. If you want to create a manual -#:: mapping with a special pager for this, you can use something -#:: like: - -#:: map f1 combine : launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay mypager : send_key / - -#:: For more sophisticated control, such as using the current -#:: selection, use remote_control_script. - -#: }}} - -#: Window management {{{ - -#: New window - -# map kitty_mod+enter new_window -# map cmd+enter new_window - -#:: You can open a new kitty window running an arbitrary program, for -#:: example:: - -#:: map kitty_mod+y launch mutt - -#:: You can open a new window with the current working directory set -#:: to the working directory of the current window using:: - -#:: map ctrl+alt+enter launch --cwd=current - -#:: You can open a new window that is allowed to control kitty via -#:: the kitty remote control facility with launch --allow-remote- -#:: control. Any programs running in that window will be allowed to -#:: control kitty. For example:: - -#:: map ctrl+enter launch --allow-remote-control some_program - -#:: You can open a new window next to the currently active window or -#:: as the first window, with:: - -#:: map ctrl+n launch --location=neighbor -#:: map ctrl+f launch --location=first - -#:: For more details, see launch -#:: . - -#: New OS window - -# map kitty_mod+n new_os_window -# map cmd+n new_os_window - -#:: Works like new_window above, except that it opens a top-level OS -#:: window. In particular you can use new_os_window_with_cwd to open -#:: a window with the current working directory. - -#: Close window - -# map kitty_mod+w close_window -# map shift+cmd+d close_window - -#: Next window - -# map kitty_mod+] next_window - -#: Previous window - -# map kitty_mod+[ previous_window - -#: Move window forward - -# map kitty_mod+f move_window_forward - -#: Move window backward - -# map kitty_mod+b move_window_backward - -#: Move window to top - -# map kitty_mod+` move_window_to_top - -#: Start resizing window - -# map kitty_mod+r start_resizing_window -# map cmd+r start_resizing_window - -#: First window - -# map kitty_mod+1 first_window -# map cmd+1 first_window - -#: Second window - -# map kitty_mod+2 second_window -# map cmd+2 second_window - -#: Third window - -# map kitty_mod+3 third_window -# map cmd+3 third_window - -#: Fourth window - -# map kitty_mod+4 fourth_window -# map cmd+4 fourth_window - -#: Fifth window - -# map kitty_mod+5 fifth_window -# map cmd+5 fifth_window - -#: Sixth window - -# map kitty_mod+6 sixth_window -# map cmd+6 sixth_window - -#: Seventh window - -# map kitty_mod+7 seventh_window -# map cmd+7 seventh_window - -#: Eighth window - -# map kitty_mod+8 eighth_window -# map cmd+8 eighth_window - -#: Ninth window - -# map kitty_mod+9 ninth_window -# map cmd+9 ninth_window - -#: Tenth window - -# map kitty_mod+0 tenth_window - -#: Visually select and focus window - -# map kitty_mod+f7 focus_visible_window - -#:: Display overlay numbers and alphabets on the window, and switch -#:: the focus to the window when you press the key. When there are -#:: only two windows, the focus will be switched directly without -#:: displaying the overlay. You can change the overlay characters and -#:: their order with option visual_window_select_characters. - -#: Visually swap window with another - -# map kitty_mod+f8 swap_with_window - -#:: Works like focus_visible_window above, but swaps the window. - -#: }}} - -#: Tab management {{{ - -#: Next tab - -# map kitty_mod+right next_tab -# map shift+cmd+] next_tab -# map ctrl+tab next_tab - -#: Previous tab - -# map kitty_mod+left previous_tab -# map shift+cmd+[ previous_tab -# map ctrl+shift+tab previous_tab - -#: New tab - -# map kitty_mod+t new_tab -# map cmd+t new_tab - -#: Close tab - -# map kitty_mod+q close_tab -# map cmd+w close_tab - -#: Close OS window - -# map shift+cmd+w close_os_window - -#: Move tab forward - -# map kitty_mod+. move_tab_forward - -#: Move tab backward - -# map kitty_mod+, move_tab_backward - -#: Set tab title - -# map kitty_mod+alt+t set_tab_title -# map shift+cmd+i set_tab_title - - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab, 2 the second tab and -1 being the previously active -#: tab, -2 being the tab active before the previously active tab and -#: so on. Any number larger than the number of tabs goes to the last -#: tab and any number less than the number of previously used tabs in -#: the history goes to the oldest previously used tab in the history:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and new_tab_with_cwd. -#: Finally, if you want the new tab to open next to the current tab -#: rather than at the end of the tabs list, use:: - -#: map ctrl+t new_tab !neighbor [optional cmd to run] -#: }}} - -#: Layout management {{{ - -#: Next layout - -# map kitty_mod+l next_layout - - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack - -#: Similarly, to switch back to the previous layout:: - -#: map ctrl+alt+p last_used_layout - -#: There is also a toggle_layout action that switches to the named -#: layout or back to the previous layout if in the named layout. -#: Useful to temporarily "zoom" the active window by switching to the -#: stack layout:: - -#: map ctrl+alt+z toggle_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty OS windows at -#: a time or only the current one. - -#: Increase font size - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+plus change_font_size all +2.0 -# map kitty_mod+kp_add change_font_size all +2.0 -# map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 -# map shift+cmd+equal change_font_size all +2.0 - -#: Decrease font size - -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 -# map shift+cmd+minus change_font_size all -2.0 - -#: Reset font size - -# map kitty_mod+backspace change_font_size all 0 -# map cmd+0 change_font_size all 0 - - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current OS window's font -#: size:: - -#: map kitty_mod+f6 change_font_size current 10.0 - -#: To setup shortcuts to multiply/divide the font size:: - -#: map kitty_mod+f6 change_font_size all *2.0 -#: map kitty_mod+f6 change_font_size all /2.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -#: Open URL - -# map kitty_mod+e open_url_with_hints - -#:: Open a currently visible URL using the keyboard. The program used -#:: to open the URL is specified in open_url_with. - -#: Insert selected path - -# map kitty_mod+p>f kitten hints --type path --program - - -#:: Select a path/filename and insert it into the terminal. Useful, -#:: for instance to run git commands on a filename output from a -#:: previous git command. - -#: Open selected path - -# map kitty_mod+p>shift+f kitten hints --type path - -#:: Select a path/filename and open it with the default open program. - -#: Insert chosen file - -# map kitty_mod+p>c kitten choose-files - -#:: Select a file using the choose-files -#:: kitten -#:: and insert it into the terminal. - -#: Insert chosen directory - -# map kitty_mod+p>d kitten choose-files --mode=dir - -#:: Select a directory using the choose-files -#:: kitten -#:: and insert it into the terminal. - -#: Insert selected line - -# map kitty_mod+p>l kitten hints --type line --program - - -#:: Select a line of text and insert it into the terminal. Useful for -#:: the output of things like: `ls -1`. - -#: Insert selected word - -# map kitty_mod+p>w kitten hints --type word --program - - -#:: Select words and insert into terminal. - -#: Insert selected hash - -# map kitty_mod+p>h kitten hints --type hash --program - - -#:: Select something that looks like a hash and insert it into the -#:: terminal. Useful with git, which uses SHA1 hashes to identify -#:: commits. - -#: Open the selected file at the selected line - -# map kitty_mod+p>n kitten hints --type linenum - -#:: Select something that looks like filename:linenum and open it in -#:: your default editor at the specified line number. - -#: Open the selected hyperlink - -# map kitty_mod+p>y kitten hints --type hyperlink - -#:: Select a hyperlink (i.e. a URL that has been marked as such by -#:: the terminal program, for example, by `ls --hyperlink=auto`). - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see hints kitten -#: . -#: }}} - -#: Miscellaneous {{{ - -#: Show documentation - -# map kitty_mod+f1 show_kitty_doc overview - -#: Toggle fullscreen - -# map kitty_mod+f11 toggle_fullscreen -# map ctrl+cmd+f toggle_fullscreen - -#: Toggle maximized - -# map kitty_mod+f10 toggle_maximized - -#: Toggle macOS secure keyboard entry - -# map opt+cmd+s toggle_macos_secure_keyboard_entry - -#: macOS Cycle through OS Windows - -# map cmd+` macos_cycle_through_os_windows - -#: macOS Cycle through OS Windows backwards - -# map cmd+shift+` macos_cycle_through_os_windows_backwards - -#: Unicode input - -# map kitty_mod+u kitten unicode_input -# map ctrl+cmd+space kitten unicode_input - -#: Edit config file - -# map kitty_mod+f2 edit_config_file -# map cmd+, edit_config_file - -#: Open the kitty command shell - -# map kitty_mod+escape kitty_shell window - -#:: Open the kitty shell in a new window / tab / overlay / os_window -#:: to control kitty using commands. - -#: Increase background opacity - -# map kitty_mod+a>m set_background_opacity +0.1 - -#: Decrease background opacity - -# map kitty_mod+a>l set_background_opacity -0.1 - -#: Make background fully opaque - -# map kitty_mod+a>1 set_background_opacity 1 - -#: Reset background opacity - -# map kitty_mod+a>d set_background_opacity default - -#: Reset the terminal - -# map kitty_mod+delete clear_terminal reset active -# map opt+cmd+r clear_terminal reset active - -#:: You can create shortcuts to clear/reset the terminal. For -#:: example:: - -#:: # Reset the terminal -#:: map f1 clear_terminal reset active -#:: # Clear the terminal screen by erasing all contents -#:: map f1 clear_terminal clear active -#:: # Clear the terminal scrollback by erasing it -#:: map f1 clear_terminal scrollback active -#:: # Scroll the contents of the screen into the scrollback -#:: map f1 clear_terminal scroll active -#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration) -#:: map f1 clear_terminal to_cursor active -#:: # Same as above except cleared lines are moved into scrollback -#:: map f1 clear_terminal to_cursor_scroll active -#:: # Erase the last command and its output (needs shell integration to work) -#:: map f1 clear_terminal last_command active - -#:: If you want to operate on all kitty windows instead of just the -#:: current one, use all instead of active. - -#:: Some useful functions that can be defined in the shell rc files -#:: to perform various kinds of clearing of the current window: - -#:: .. code-block:: sh - -#:: clear-only-screen() { -#:: printf "\e[H\e[2J" -#:: } - -#:: clear-screen-and-scrollback() { -#:: printf "\e[H\e[3J" -#:: } - -#:: clear-screen-saving-contents-in-scrollback() { -#:: printf "\e[H\e[22J" -#:: } - -#:: For instance, using these escape codes, it is possible to remap -#:: Ctrl+L to both scroll the current screen contents into the -#:: scrollback buffer and clear the screen, instead of just clearing -#:: the screen. For ZSH, in ~/.zshrc, add: - -#:: .. code-block:: zsh - -#:: ctrl_l() { -#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY" -#:: builtin zle .reset-prompt -#:: builtin zle -R -#:: } -#:: zle -N ctrl_l -#:: bindkey '^l' ctrl_l - -#:: Alternatively, you can just add map ctrl+l clear_terminal -#:: to_cursor_scroll active to kitty.conf which works with no changes -#:: to the shell rc files, but only clears up to the prompt, it does -#:: not clear any text at the prompt itself. - -#: Clear to start - -# map cmd+k clear_terminal to_cursor active - -#: Clear scrollback - -# map option+cmd+k clear_terminal scrollback active - -#: Clear the last command - -# map cmd+l clear_terminal last_command active - -#: Clear screen - -# map cmd+ctrl+l clear_terminal to_cursor_scroll active - -#: Reload kitty.conf - -# map ctrl+cmd+, load_config_file - -#:: Reload kitty.conf, applying any changes since the last time it -#:: was loaded. Note that a handful of options cannot be dynamically -#:: changed and require a full restart of kitty. Particularly, when -#:: changing shortcuts for actions located on the macOS global menu -#:: bar, a full restart is needed. You can also map a keybinding to -#:: load a different config file, for example:: - -#:: map f5 load_config /path/to/alternative/kitty.conf - -#:: Note that all options from the original kitty.conf are discarded, -#:: in other words the new configuration *replace* the old ones. - -#: Debug kitty configuration - -# map kitty_mod+f6 debug_config -# map opt+cmd+, debug_config - -#:: Show details about exactly what configuration kitty is running -#:: with and its host environment. Useful for debugging issues. - -#: Send arbitrary text on key presses - -#:: E.g. map ctrl+shift+alt+h send_text all Hello World - -#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#:: client program when pressing specified shortcut keys. For -#:: example:: - -#:: map ctrl+alt+a send_text all Special text - -#:: This will send "Special text" when you press the Ctrl+Alt+A key -#:: combination. The text to be sent decodes ANSI C escapes -#:: so you can use escapes like \e to send control -#:: codes or \u21fb to send Unicode characters (or you can just input -#:: the Unicode characters directly as UTF-8 text). You can use -#:: `kitten show-key` to get the key escape codes you want to -#:: emulate. - -#:: The first argument to send_text is the keyboard modes in which to -#:: activate the shortcut. The possible values are normal, -#:: application, kitty or a comma separated combination of them. The -#:: modes normal and application refer to the DECCKM cursor key mode -#:: for terminals, and kitty refers to the kitty extended keyboard -#:: protocol. The special value all means all of them. - -#:: Some more examples:: - -#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) -#:: map ctrl+alt+a send_text normal Word\e[H -#:: map ctrl+alt+a send_text application Word\eOH -#:: # Run a command at a shell prompt (like typing the command and pressing Enter) -#:: map ctrl+alt+a send_text normal,application some command with arguments\r - -#: Open kitty Website - -# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ - -#: Hide macOS kitty application - -# map cmd+h hide_macos_app - -#: Hide macOS other applications - -# map opt+cmd+h hide_macos_other_apps - -#: Minimize macOS window - -# map cmd+m minimize_macos_window - -#: Quit kitty - -# map cmd+q quit - -#: }}} - -#: }}} - - -# BEGIN_KITTY_FONTS -font_family family="JetBrainsMono Nerd Font" -bold_font auto -italic_font auto -bold_italic_font auto -# END_KITTY_FONTS diff --git a/.config/kitty/cat.png b/.config/kitty/cat.png deleted file mode 120000 index 8078b05..0000000 --- a/.config/kitty/cat.png +++ /dev/null @@ -1 +0,0 @@ -../../.dotfiles/.config/kitty/cat.png \ No newline at end of file diff --git a/.config/kitty/current-theme.conf b/.config/kitty/current-theme.conf deleted file mode 100644 index ef68b50..0000000 --- a/.config/kitty/current-theme.conf +++ /dev/null @@ -1,50 +0,0 @@ -# vim:ft=kitty - -## name: Tokyo Night Storm -## license: MIT -## author: Folke Lemaitre -## upstream: https://github.com/folke/tokyonight.nvim/raw/main/extras/kitty/tokyonight_storm.conf - - -background #24283b -foreground #c0caf5 -selection_background #2e3c64 -selection_foreground #c0caf5 -url_color #73daca -cursor #c0caf5 -cursor_text_color #24283b - -# Tabs -active_tab_background #7aa2f7 -active_tab_foreground #1f2335 -inactive_tab_background #292e42 -inactive_tab_foreground #545c7e -#tab_bar_background #1d202f - -# Windows -active_border_color #7aa2f7 -inactive_border_color #292e42 - -# normal -color0 #1d202f -color1 #f7768e -color2 #9ece6a -color3 #e0af68 -color4 #7aa2f7 -color5 #bb9af7 -color6 #7dcfff -color7 #a9b1d6 - -# bright -color8 #414868 -color9 #ff899d -color10 #9fe044 -color11 #faba4a -color12 #8db0ff -color13 #c7a9ff -color14 #a4daff -color15 #c0caf5 - -# extended colors -color16 #ff9e64 -color17 #db4b4b diff --git a/.config/kitty/kitty.conf b/.config/kitty/kitty.conf deleted file mode 100644 index b9549b6..0000000 --- a/.config/kitty/kitty.conf +++ /dev/null @@ -1,4 +0,0 @@ -include base.conf -background_opacity 0.5 -transparent_background_colors #292E42@0.7 #2e3c64@0.9 #3B4261@0.7 -map f5 load_config_file /home/arch/.config/kitty/solid.conf diff --git a/.config/kitty/kitty.conf.bak b/.config/kitty/kitty.conf.bak deleted file mode 100644 index a7fd524..0000000 --- a/.config/kitty/kitty.conf.bak +++ /dev/null @@ -1,2997 +0,0 @@ -# vim:fileencoding=utf-8:foldmethod=marker - -# BEGIN_KITTY_THEME -# Tokyo Night Storm -include current-theme.conf -# END_KITTY_THEME - -#: Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -# font_family monospace -# bold_font auto -# italic_font auto -# bold_italic_font auto - -#: You can specify different fonts for the bold/italic/bold-italic -#: variants. The easiest way to select fonts is to run the `kitten -#: choose-fonts` command which will present a nice UI for you to -#: select the fonts you want with previews and support for selecting -#: variable fonts and font features. If you want to learn to select -#: fonts manually, read the font specification syntax -#: . - -# font_size 11.0 - -#: Font size (in pts). - -# force_ltr no - -#: kitty does not support BIDI (bidirectional text), however, for RTL -#: scripts, words are automatically displayed in RTL. That is to say, -#: in an RTL script, the words "HELLO WORLD" display in kitty as -#: "WORLD HELLO", and if you try to select a substring of an RTL- -#: shaped string, you will get the character that would be there had -#: the string been LTR. For example, assuming the Hebrew word ירושלים, -#: selecting the character that on the screen appears to be ם actually -#: writes into the selection buffer the character י. kitty's default -#: behavior is useful in conjunction with a filter to reverse the word -#: order, however, if you wish to manipulate RTL glyphs, it can be -#: very challenging to work with, so this option is provided to turn -#: it off. Furthermore, this option can be used with the command line -#: program GNU FriBidi -#: to get BIDI support, because it will force kitty to always treat -#: the text as LTR, which FriBidi expects for terminals. - -# symbol_map - -#: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols - -#: Map the specified Unicode codepoints to a particular font. Useful -#: if you need special rendering for some symbols, such as for -#: Powerline. Avoids the need for patched fonts. Each Unicode code -#: point is specified in the form `U+`. You -#: can specify multiple code points, separated by commas and ranges -#: separated by hyphens. This option can be specified multiple times. -#: The syntax is:: - -#: symbol_map codepoints Font Family Name - -# narrow_symbols - -#: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 - -#: Usually, for Private Use Unicode characters and some symbol/dingbat -#: characters, if the character is followed by one or more spaces, -#: kitty will use those extra cells to render the character larger, if -#: the character in the font has a wide aspect ratio. Using this -#: option you can force kitty to restrict the specified code points to -#: render in the specified number of cells (defaulting to one cell). -#: This option can be specified multiple times. The syntax is:: - -#: narrow_symbols codepoints [optionally the number of cells] - -# disable_ligatures never - -#: Choose how you want to handle multi-character ligatures. The -#: default is to always render them. You can tell kitty to not render -#: them when the cursor is over them by using cursor to make editing -#: easier, or have kitty never render them at all by using always, if -#: you don't like them. The ligature strategy can be set per-window -#: either using the kitty remote control facility or by defining -#: shortcuts for it in kitty.conf, for example:: - -#: map alt+1 disable_ligatures_in active always -#: map alt+2 disable_ligatures_in all never -#: map alt+3 disable_ligatures_in tab cursor - -#: Note that this refers to programming ligatures, typically -#: implemented using the calt OpenType feature. For disabling general -#: ligatures, use the font_features option. - -# font_features - -#: E.g. font_features none - -#: Choose exactly which OpenType features to enable or disable. Note -#: that for the main fonts, features can be specified when selecting -#: the font using the choose-fonts kitten. This setting is useful for -#: fallback fonts. - -#: Some fonts might have features worthwhile in a terminal. For -#: example, Fira Code includes a discretionary feature, zero, which in -#: that font changes the appearance of the zero (0), to make it more -#: easily distinguishable from Ø. Fira Code also includes other -#: discretionary features known as Stylistic Sets which have the tags -#: ss01 through ss20. - -#: For the exact syntax to use for individual features, see the -#: HarfBuzz documentation . - -#: Note that this code is indexed by PostScript name, and not the font -#: family. This allows you to define very precise feature settings; -#: e.g. you can disable a feature in the italic font but not in the -#: regular font. - -#: On Linux, font features are first read from the FontConfig database -#: and then this option is applied, so they can be configured in a -#: single, central place. - -#: To get the PostScript name for a font, use the `fc-scan file.ttf` -#: command on Linux or the `Font Book tool on macOS -#: `__. - -#: Enable alternate zero and oldstyle numerals:: - -#: font_features FiraCode-Retina +zero +onum - -#: Enable only alternate zero in the bold font:: - -#: font_features FiraCode-Bold +zero - -#: Disable the normal ligatures, but keep the calt feature which (in -#: this font) breaks up monotony:: - -#: font_features TT2020StyleB-Regular -liga +calt - -#: In conjunction with force_ltr, you may want to disable Arabic -#: shaping entirely, and only look at their isolated forms if they -#: show up in a document. You can do this with e.g.:: - -#: font_features UnifontMedium +isol -medi -fina -init - -# modify_font - -#: Modify font characteristics such as the position or thickness of -#: the underline and strikethrough. The modifications can have the -#: suffix px for pixels or % for percentage of original value. No -#: suffix means use pts. For example:: - -#: modify_font underline_position -2 -#: modify_font underline_thickness 150% -#: modify_font strikethrough_position 2px - -#: Additionally, you can modify the size of the cell in which each -#: font glyph is rendered and the baseline at which the glyph is -#: placed in the cell. For example:: - -#: modify_font cell_width 80% -#: modify_font cell_height -2px -#: modify_font baseline 3 - -#: Note that modifying the baseline will automatically adjust the -#: underline and strikethrough positions by the same amount. -#: Increasing the baseline raises glyphs inside the cell and -#: decreasing it lowers them. Decreasing the cell size might cause -#: rendering artifacts, so use with care. - -# box_drawing_scale 0.001, 1, 1.5, 2 - -#: The sizes of the lines used for the box drawing Unicode characters. -#: These values are in pts. They will be scaled by the monitor DPI to -#: arrive at a pixel value. There must be four values corresponding to -#: thin, normal, thick, and very thick lines. - -# undercurl_style thin-sparse - -#: The style with which undercurls are rendered. This option takes the -#: form (thin|thick)-(sparse|dense). Thin and thick control the -#: thickness of the undercurl. Sparse and dense control how often the -#: curl oscillates. With sparse the curl will peak once per character, -#: with dense twice. Changing this option dynamically via reloading -#: the config or remote control is undefined. - -# underline_exclusion 1 - -#: By default kitty renders gaps in underlines when they overlap with -#: descenders (the parts of letters below the baseline, such as for y, -#: q, p etc.). This option controls the thickness of the gaps. It can -#: be either a unitless number in which case it is a fraction of the -#: underline thickness as specified in the font or it can have a -#: suffix of px for pixels or pt for points. Set to zero to disable -#: the gaps. Changing this option dynamically via reloading the config -#: or remote control is undefined. - -# text_composition_strategy platform - -#: Control how kitty composites text glyphs onto the background color. -#: The default value of platform tries for text rendering as close to -#: "native" for the platform kitty is running on as possible. - -#: A value of legacy uses the old (pre kitty 0.28) strategy for how -#: glyphs are composited. This will make dark text on light -#: backgrounds look thicker and light text on dark backgrounds -#: thinner. It might also make some text appear like the strokes are -#: uneven. - -#: You can fine tune the actual contrast curve used for glyph -#: composition by specifying up to two space-separated numbers for -#: this setting. - -#: The first number is the gamma adjustment, which controls the -#: thickness of dark text on light backgrounds. Increasing the value -#: will make text appear thicker. The default value for this is 1.0 on -#: Linux and 1.7 on macOS. Valid values are 0.01 and above. The result -#: is scaled based on the luminance difference between the background -#: and the foreground. Dark text on light backgrounds receives the -#: full impact of the curve while light text on dark backgrounds is -#: affected very little. - -#: The second number is an additional multiplicative contrast. It is -#: percentage ranging from 0 to 100. The default value is 0 on Linux -#: and 30 on macOS. - -#: If you wish to achieve similar looking thickness in light and dark -#: themes, a good way to experiment is start by setting the value to -#: 1.0 0 and use a dark theme. Then adjust the second parameter until -#: it looks good. Then switch to a light theme and adjust the first -#: parameter until the perceived thickness matches the dark theme. - -# text_fg_override_threshold 0 - -#: A setting to prevent low contrast between foreground and background -#: colors. Useful when working with applications that use colors that -#: do not contrast well with your preferred color scheme. The default -#: value is 0, which means no color overriding is performed. There are -#: two modes of operation: - -#: A value with the suffix ratio represents the minimum accepted -#: contrast ratio between the foreground and background color. -#: Possible values range from 0.0 ratio to 21.0 ratio. For example, to -#: meet WCAG level AA -#: -#: a value of 4.5 ratio can be provided. The algorithm is implemented -#: using HSLuv which enables it to change the -#: perceived lightness of a color just as much as needed without -#: really changing its hue and saturation. - -#: A value with the suffix % represents the minimum accepted -#: difference in luminance between the foreground and background -#: color, below which kitty will override the foreground color. It is -#: percentage ranging from 0 % to 100 %. If the difference in -#: luminance of the foreground and background is below this threshold, -#: the foreground color will be set to white if the background is dark -#: or black if the background is light. - -#: WARNING: Some programs use characters (such as block characters) -#: for graphics display and may expect to be able to set the -#: foreground and background to the same color (or similar colors). If -#: you see unexpected stripes, dots, lines, incorrect color, no color -#: where you expect color, or any kind of graphic display problem try -#: setting text_fg_override_threshold to 0 to see if this is the cause -#: of the problem or consider using the ratio mode of operation -#: described above instead of the % mode of operation. - -#: }}} - -#: Text cursor customization {{{ - -# cursor #cccccc - -#: Default text cursor color. If set to the special value none the -#: cursor will be rendered with a "reverse video" effect. Its color -#: will be the color of the text in the cell it is over and the text -#: will be rendered with the background color of the cell. Note that -#: if the program running in the terminal sets a cursor color, this -#: takes precedence. Also, the cursor colors are modified if the cell -#: background and foreground colors have very low contrast. Note that -#: some themes set this value, so if you want to override it, place -#: your value after the lines where the theme file is included. - -# cursor_text_color #111111 - -#: The color of text under the cursor. If you want it rendered with -#: the background color of the cell underneath instead, use the -#: special keyword: `background`. Note that if cursor is set to none -#: then this option is ignored. Note that some themes set this value, -#: so if you want to override it, place your value after the lines -#: where the theme file is included. - -# cursor_shape block - -#: The cursor shape can be one of block, beam, underline. Note that -#: when reloading the config this will be changed only if the cursor -#: shape has not been set by the program running in the terminal. This -#: sets the default cursor shape, applications running in the terminal -#: can override it. In particular, shell integration -#: in kitty sets -#: the cursor shape to beam at shell prompts. You can avoid this by -#: setting shell_integration to no-cursor. - -# cursor_shape_unfocused hollow - -#: Defines the text cursor shape when the OS window is not focused. -#: The unfocused cursor shape can be one of block, beam, underline, -#: hollow and unchanged (leave the cursor shape as it is). - -# cursor_beam_thickness 1.5 - -#: The thickness of the beam cursor (in pts). - -# cursor_underline_thickness 2.0 - -#: The thickness of the underline cursor (in pts). - -# cursor_blink_interval -1 - -#: The interval to blink the cursor (in seconds). Set to zero to -#: disable blinking. Negative values mean use system default. Note -#: that the minimum interval will be limited to repaint_delay. You can -#: also animate the cursor blink by specifying an easing function. For -#: example, setting this to option to 0.5 ease-in-out will cause the -#: cursor blink to be animated over a second, in the first half of the -#: second it will go from opaque to transparent and then back again -#: over the next half. You can specify different easing functions for -#: the two halves, for example: -1 linear ease-out. kitty supports all -#: the CSS easing functions . Note that turning on animations -#: uses extra power as it means the screen is redrawn multiple times -#: per blink interval. See also, cursor_stop_blinking_after. This -#: setting also controls blinking text, which blinks in exact rhythm -#: with the cursor. - -# cursor_stop_blinking_after 15.0 - -#: Stop blinking cursor after the specified number of seconds of -#: keyboard inactivity. Set to zero to never stop blinking. This -#: setting also controls blinking text, which blinks in exact rhythm -#: with the cursor. - -# cursor_trail 0 - -#: Set this to a value larger than zero to enable a "cursor trail" -#: animation. This is an animation that shows a "trail" following the -#: movement of the text cursor. It makes it easy to follow large -#: cursor jumps and makes for a cool visual effect of the cursor -#: zooming around the screen. The actual value of this option controls -#: when the animation is triggered. It is a number of milliseconds. -#: The trail animation only follows cursors that have stayed in their -#: position for longer than the specified number of milliseconds. This -#: prevents trails from appearing for cursors that rapidly change -#: their positions during UI updates in complex applications. See -#: cursor_trail_decay to control the animation speed and -#: cursor_trail_start_threshold to control when a cursor trail is -#: started. - -# cursor_trail_decay 0.1 0.4 - -#: Controls the decay times for the cursor trail effect when the -#: cursor_trail is enabled. This option accepts two positive float -#: values specifying the fastest and slowest decay times in seconds. -#: The first value corresponds to the fastest decay time (minimum), -#: and the second value corresponds to the slowest decay time -#: (maximum). The second value must be equal to or greater than the -#: first value. Smaller values result in a faster decay of the cursor -#: trail. Adjust these values to control how quickly the cursor trail -#: fades away. - -# cursor_trail_start_threshold 2 - -#: Set the distance threshold for starting the cursor trail. This -#: option accepts a positive integer value that represents the minimum -#: number of cells the cursor must move before the trail is started. -#: When the cursor moves less than this threshold, the trail is -#: skipped, reducing unnecessary cursor trail animation. - -# cursor_trail_color none - -#: Set the color of the cursor trail when cursor_trail is enabled. If -#: set to 'none' (the default), the cursor trail will use the cursor's -#: background color. Otherwise, specify a color value (e.g., #ff0000 -#: for red, or a named color like 'red'). This allows you to customize -#: the appearance of the cursor trail independently of the cursor -#: color. - -#: }}} - -#: Scrollback {{{ - -# scrollback_lines 2000 - -#: Number of lines of history to keep in memory for scrolling back. -#: Memory is allocated on demand. Negative numbers are (effectively) -#: infinite scrollback. Note that using very large scrollback is not -#: recommended as it can slow down performance of the terminal and -#: also use large amounts of RAM. Instead, consider using -#: scrollback_pager_history_size. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollbar scrolled - -#: Control when the scrollbar is displayed. - -#: scrolled -#: means when the scrolling backwards has started. -#: hovered -#: means when the mouse is hovering on the right edge of the window. -#: scrolled-and-hovered -#: means when the mouse is over the scrollbar region *and* scrolling backwards has started. -#: always -#: means whenever any scrollback is present -#: never -#: means disable the scrollbar. - -# scrollbar_interactive yes - -#: If disabled, the scrollbar will not be controllable via th emouse -#: and all mouse events will pass through the scrollbar. - -# scrollbar_jump_on_click yes - -#: When enabled clicking in the scrollbar track will cause the scroll -#: position to jump to the clicked location, otherwise the scroll -#: position will only move towards the position by a single screenful, -#: which is how traditional scrollbars behave. - -# scrollbar_width 0.5 - -#: The width of the scroll bar in units of cell width. - -# scrollbar_hover_width 1 - -#: The width of the scroll bar when the mouse is hovering over it, in -#: units of cell width. - -# scrollbar_handle_opacity 0.5 - -#: The opacity of the scrollbar handle, 0 being fully transparent and -#: 1 being full opaque. - -# scrollbar_radius 0.3 - -#: The radius (curvature) of the scrollbar handle in units of cell -#: width. Should be less than scrollbar_width. - -# scrollbar_gap 0.1 - -#: The gap between the scrollbar and the window edge in units of cell -#: width. - -# scrollbar_min_handle_height 1 - -#: The minimum height of the scrollbar handle in units of cell height. -#: Prevents the handle from becoming too small when there is a lot of -#: scrollback. - -# scrollbar_hitbox_expansion 0.25 - -#: The extra area around the handle to allow easier grabbing of the -#: scollbar in units of cell width. - -# scrollbar_track_opacity 0 - -#: The opacity of the scrollbar track, 0 being fully transparent and 1 -#: being full opaque. - -# scrollbar_track_hover_opacity 0.1 - -#: The opacity of the scrollbar track when the mouse is over the -#: scrollbar, 0 being fully transparent and 1 being full opaque. - -# scrollbar_handle_color foreground - -#: The color of the scrollbar handle. A value of foreground means to -#: use the current foreground text color, a value of -#: selection_background means to use the current selection background -#: color. Also, you can use an arbitrary color, such as #12af59 or -#: red. - -# scrollbar_track_color foreground - -#: The color of the scrollbar track. A value of foreground means to -#: use the current foreground text color, a value of -#: selection_background means to use the current selection background -#: color. Also, you can use an arbitrary color, such as #12af59 or -#: red. - -# scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER - -#: Program with which to view scrollback in a new window. The -#: scrollback buffer is passed as STDIN to this program. If you change -#: it, make sure the program you use can handle ANSI escape sequences -#: for colors and text formatting. INPUT_LINE_NUMBER in the command -#: line above will be replaced by an integer representing which line -#: should be at the top of the screen. Similarly CURSOR_LINE and -#: CURSOR_COLUMN will be replaced by the current cursor position or -#: set to 0 if there is no cursor, for example, when showing the last -#: command output. - -#: If you would rather use neovim to view the scrollback, use -#: something like this:: - -#: scrollback_pager nvim --cmd 'set eventignore=FileType' +'nnoremap q ZQ' +'call nvim_open_term(0, {})' +'set nomodified nolist' +'$' - - -#: The above works for neovim 0.12 and newer. There is also a -#: dedicated plugin kitty-scrollback.nvim -#: you can use -#: with more features that works with older neovim as well. - -# scrollback_pager_history_size 0 - -#: Separate scrollback history size (in MB), used only for browsing -#: the scrollback buffer with pager. This separate buffer is not -#: available for interactive scrolling but will be piped to the pager -#: program when viewing scrollback buffer in a separate window. The -#: current implementation stores the data in UTF-8, so approximately -#: 10000 lines per megabyte at 100 chars per line, for pure ASCII, -#: unformatted text. A value of zero or less disables this feature. -#: The maximum allowed size is 4GB. Note that on config reload if this -#: is changed it will only affect newly created windows, not existing -#: ones. - -# scrollback_fill_enlarged_window no - -#: Fill new space with lines from the scrollback buffer after -#: enlarging a window. - -# wheel_scroll_multiplier 5.0 - -#: Multiplier for the number of lines scrolled by the mouse wheel. -#: Note that this is only used for low precision scrolling devices, -#: not for high precision scrolling devices on platforms such as macOS -#: and Wayland. Use negative numbers to change scroll direction. See -#: also wheel_scroll_min_lines. - -# wheel_scroll_min_lines 1 - -#: The minimum number of lines scrolled by the mouse wheel. The scroll -#: multiplier wheel_scroll_multiplier only takes effect after it -#: reaches this number. Note that this is only used for low precision -#: scrolling devices like wheel mice that scroll by very small amounts -#: when using the wheel. With a negative number, the minimum number of -#: lines will always be added. - -# touch_scroll_multiplier 1.0 - -#: Multiplier for the number of lines scrolled by a touchpad. Note -#: that this is only used for high precision scrolling devices on -#: platforms such as macOS and Wayland. Use negative numbers to change -#: scroll direction. - -#: }}} - -#: Mouse {{{ - -# mouse_hide_wait 3.0 - -#: Hide mouse cursor after the specified number of seconds of the -#: mouse not being used. Set to zero to disable mouse cursor hiding. -#: Set to a negative value to hide the mouse cursor immediately when -#: typing text. Disabled by default on macOS as getting it to work -#: robustly with the ever-changing sea of bugs that is Cocoa is too -#: much effort. - -#: By default, once the cursor is hidden, it is immediately unhidden -#: on any further mouse events. - -#: Two formats are supported: -#: - -#: - - -#: To change the unhide behavior, the optional parameters , , and may be set. - -#: -#: Waits for the specified number of seconds after mouse events before unhiding the -#: mouse cursor. Set to zero to unhide mouse cursor immediately on mouse activity. -#: This is useful to prevent the mouse cursor from unhiding on accidental swipes on -#: the trackpad. - -#: -#: Sets the threshold of mouse activity required to unhide the mouse cursor, when -#: the option is non-zero. When is zero, this has no -#: effect. - -#: For example, if is 40 and is 2.5, when kitty -#: detects a mouse event, it records the number of mouse events in the next 2.5 -#: seconds, and checks if that exceeds 40 * 2.5 = 100. If it does, then the mouse -#: cursor is unhidden, otherwise nothing happens. - -#: -#: Controls what mouse events may unhide the mouse cursor. If enabled, both scroll -#: and movement events may unhide the cursor. If disabled, only mouse movements can -#: unhide the cursor. - -#: Examples of valid values: -#: - 0.0 -#: - 1.0 -#: - -1.0 -#: - 0.1 3.0 40 yes - -# url_color #0087bd -# url_style curly - -#: The color and style for highlighting URLs on mouse-over. url_style -#: can be one of: none, straight, double, curly, dotted, dashed. - -# open_url_with default - -#: The program to open clicked URLs. The special value default will -#: first look for any URL handlers defined via the open_actions -#: facility and if non -#: are found, it will use the Operating System's default URL handler -#: (open on macOS and xdg-open on Linux). - -# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh - -#: The set of URL prefixes to look for when detecting a URL under the -#: mouse cursor. - -# detect_urls yes - -#: Detect URLs under the mouse. Detected URLs are highlighted with an -#: underline and the mouse cursor becomes a hand over them. Even if -#: this option is disabled, URLs are still clickable. See also the -#: underline_hyperlinks option to control how hyperlinks (as opposed -#: to plain text URLs) are displayed. - -# url_excluded_characters - -#: Additional characters to be disallowed from URLs, when detecting -#: URLs under the mouse cursor. By default, all characters that are -#: legal in URLs are allowed. Additionally, newlines are allowed (but -#: stripped). This is to accommodate programs such as mutt that add -#: hard line breaks even for continued lines. \n can be added to this -#: option to disable this behavior. Special characters can be -#: specified using backslash escapes, to specify a backslash use a -#: double backslash. - -# show_hyperlink_targets no - -#: When the mouse hovers over a terminal hyperlink, show the actual -#: URL that will be activated when the hyperlink is clicked. - -# underline_hyperlinks hover - -#: Control how hyperlinks are underlined. They can either be -#: underlined on mouse hover, always (i.e. permanently underlined) or -#: never which means that kitty will not apply any underline styling -#: to hyperlinks. Note that the value of always only applies to real -#: (OSC 8) hyperlinks not text that is detected to be a URL on mouse -#: hover. Uses the url_style and url_color settings for the underline -#: style. Note that reloading the config and changing this value -#: to/from always will only affect text subsequently received by -#: kitty. - -# copy_on_select no - -#: Copy to clipboard or a private buffer on select. With this set to -#: clipboard, selecting text with the mouse will cause the text to be -#: copied to clipboard. Useful on platforms such as macOS that do not -#: have the concept of primary selection. You can instead specify a -#: name such as a1 to copy to a private kitty buffer. Map a shortcut -#: with the paste_from_buffer action to paste from this private -#: buffer. For example:: - -#: copy_on_select a1 -#: map shift+cmd+v paste_from_buffer a1 - -#: Note that copying to the clipboard is a security risk, as all -#: programs, including websites open in your browser can read the -#: contents of the system clipboard. - -# clear_selection_on_clipboard_loss no - -#: When the contents of the clipboard no longer reflect the current -#: selection, clear it. This is primarily useful on platforms such as -#: Linux where selecting text automatically copies it to a special -#: "primary selection" clipboard or if you have copy_on_select set to -#: clipboard. - -#: Note that on macOS the system does not provide notifications when -#: the clipboard owner is changed, so there, copying to clipboard in a -#: non-kitty application will not clear selections even if -#: copy_on_select is enabled. - -# paste_actions quote-urls-at-prompt,confirm - -#: A comma separated list of actions to take when pasting text into -#: the terminal. The supported paste actions are: - -#: quote-urls-at-prompt: -#: If the text being pasted is a URL and the cursor is at a shell prompt, -#: automatically quote the URL (needs shell_integration). -#: replace-dangerous-control-codes -#: Replace dangerous control codes from pasted text, without confirmation. -#: replace-newline -#: Replace the newline character from pasted text, without confirmation. -#: confirm: -#: Confirm the paste if the text to be pasted contains any terminal control codes -#: as this can be dangerous, leading to code execution if the shell/program running -#: in the terminal does not properly handle these. -#: confirm-if-large -#: Confirm the paste if it is very large (larger than 16KB) as pasting -#: large amounts of text into shells can be very slow. -#: filter: -#: Run the filter_paste() function from the file paste-actions.py in -#: the kitty config directory on the pasted text. The text returned by the -#: function will be actually pasted. -#: no-op: -#: Has no effect. - -# strip_trailing_spaces never - -#: Remove spaces at the end of lines when copying to clipboard. A -#: value of smart will do it when using normal selections, but not -#: rectangle selections. A value of always will always do it. - -# select_by_word_characters @-./_~?&=%+# - -#: Characters considered part of a word when double clicking. In -#: addition to these characters any character that is marked as an -#: alphanumeric character in the Unicode database will be matched. - -# select_by_word_characters_forward - -#: Characters considered part of a word when extending the selection -#: forward on double clicking. In addition to these characters any -#: character that is marked as an alphanumeric character in the -#: Unicode database will be matched. - -#: If empty (default) select_by_word_characters will be used for both -#: directions. - -# click_interval -1.0 - -#: The interval between successive clicks to detect double/triple -#: clicks (in seconds). Negative numbers will use the system default -#: instead, if available, or fallback to 0.5. - -# focus_follows_mouse no - -#: Set the active window to the window under the mouse when moving the -#: mouse around. On macOS, this will also cause the OS Window under -#: the mouse to be focused automatically when the mouse enters it. - -# pointer_shape_when_grabbed arrow - -#: The shape of the mouse pointer when the program running in the -#: terminal grabs the mouse. - -# default_pointer_shape beam - -#: The default shape of the mouse pointer. - -# pointer_shape_when_dragging beam crosshair - -#: The default shape of the mouse pointer when dragging across text. -#: The optional second value sets the shape when dragging in -#: rectangular selection mode. - -#: Mouse actions {{{ - -#: Mouse buttons can be mapped to perform arbitrary actions. The -#: syntax is: - -#: .. code-block:: none - -#: mouse_map button-name event-type modes action - -#: Where button-name is one of left, middle, right, b1 ... b8 with -#: added keyboard modifiers. For example: ctrl+shift+left refers to -#: holding the Ctrl+Shift keys while clicking with the left mouse -#: button. The value b1 ... b8 can be used to refer to up to eight -#: buttons on a mouse. - -#: event-type is one of press, release, doublepress, triplepress, -#: click, doubleclick. modes indicates whether the action is performed -#: when the mouse is grabbed by the program running in the terminal, -#: or not. The values are grabbed or ungrabbed or a comma separated -#: combination of them. grabbed refers to when the program running in -#: the terminal has requested mouse events. Note that the click and -#: double click events have a delay of click_interval to disambiguate -#: from double and triple presses. - -#: You can run kitty with the kitty --debug-input command line option -#: to see mouse events. See the builtin actions below to get a sense -#: of what is possible. - -#: If you want to unmap a button, map it to nothing. For example, to -#: disable opening of URLs with a plain click:: - -#: mouse_map left click ungrabbed - -#: See all the mappable actions including mouse actions here -#: . - -#: .. note:: -#: Once a selection is started, releasing the button that started it will -#: automatically end it and no release event will be dispatched. - -# clear_all_mouse_actions no - -#: Remove all mouse action definitions up to this point. Useful, for -#: instance, to remove the default mouse actions. - -#: Click the link under the mouse or move the cursor - -# mouse_map left click ungrabbed mouse_handle_click selection link prompt - -#:: First check for a selection and if one exists do nothing. Then -#:: check for a link under the mouse cursor and if one exists, click -#:: it. Finally check if the click happened at the current shell -#:: prompt and if so, move the cursor to the click location. Note -#:: that this requires shell integration -#:: to work. - -#: Click the link under the mouse or move the cursor even when grabbed - -# mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt - -#:: Same as above, except that the action is performed even when the -#:: mouse is grabbed by the program running in the terminal. - -#: Click the link under the mouse cursor - -# mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link - -#:: Variant with Ctrl+Shift is present because the simple click based -#:: version has an unavoidable delay of click_interval, to -#:: disambiguate clicks from double clicks. - -#: Discard press event for link click - -# mouse_map ctrl+shift+left press grabbed discard_event - -#:: Prevent this press event from being sent to the program that has -#:: grabbed the mouse, as the corresponding release event is used to -#:: open a URL. - -#: Paste from the primary selection - -# mouse_map middle release ungrabbed paste_from_selection - -#: Start selecting text - -# mouse_map left press ungrabbed mouse_selection normal - -#: Start selecting text in a rectangle - -# mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle - -#: Select a word - -# mouse_map left doublepress ungrabbed mouse_selection word - -#: Select a line - -# mouse_map left triplepress ungrabbed mouse_selection line - -#: Select line from point - -# mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line. If you -#:: would like to select the word at the point and then extend to the -#:: rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection - -# mouse_map right press ungrabbed mouse_selection extend - -#:: If you want only the end of the selection to be moved instead of -#:: the nearest boundary, use move-end instead of extend. - -#: Paste from the primary selection even when grabbed - -# mouse_map shift+middle release ungrabbed,grabbed paste_selection -# mouse_map shift+middle press grabbed discard_event - -#: Start selecting text even when grabbed - -# mouse_map shift+left press ungrabbed,grabbed mouse_selection normal - -#: Start selecting text in a rectangle even when grabbed - -# mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle - -#: Select a word even when grabbed - -# mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word - -#: Select a line even when grabbed - -# mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line - -#: Select line from point even when grabbed - -# mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point - -#:: Select from the clicked point to the end of the line even when -#:: grabbed. If you would like to select the word at the point and -#:: then extend to the rest of the line, change `line_from_point` to -#:: `word_and_line_from_point`. - -#: Extend the current selection even when grabbed - -# mouse_map shift+right press ungrabbed,grabbed mouse_selection extend - -#: Show clicked command output in pager - -# mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output - -#:: Requires shell integration -#:: to work. - -#: }}} - -#: }}} - -#: Performance tuning {{{ - -# repaint_delay 10 - -#: Delay between screen updates (in milliseconds). Decreasing it, -#: increases frames-per-second (FPS) at the cost of more CPU usage. -#: The default value yields ~100 FPS which is more than sufficient for -#: most uses. Note that to actually achieve 100 FPS, you have to -#: either set sync_to_monitor to no or use a monitor with a high -#: refresh rate. Also, to minimize latency when there is pending input -#: to be processed, this option is ignored. - -# input_delay 3 - -#: Delay before input from the program running in the terminal is -#: processed (in milliseconds). Note that decreasing it will increase -#: responsiveness, but also increase CPU usage and might cause flicker -#: in full screen programs that redraw the entire screen on each loop, -#: because kitty is so fast that partial screen updates will be drawn. -#: This setting is ignored when the input buffer is almost full. - -# sync_to_monitor yes - -#: Sync screen updates to the refresh rate of the monitor. This -#: prevents screen tearing -#: when scrolling. -#: However, it limits the rendering speed to the refresh rate of your -#: monitor. With a very high speed mouse/high keyboard repeat rate, -#: you may notice some slight input latency. If so, set this to no. - -#: }}} - -#: Terminal bell {{{ - -# enable_audio_bell yes - -#: The audio bell. Useful to disable it in environments that require -#: silence. - -# visual_bell_duration 0.0 - -#: The visual bell duration (in seconds). Flash the screen when a bell -#: occurs for the specified number of seconds. Set to zero to disable. -#: The flash is animated, fading in and out over the specified -#: duration. The easing function used for the fading can be -#: controlled. For example, 2.0 linear will casuse the flash to fade -#: in and out linearly. The default if unspecified is to use ease-in- -#: out which fades slowly at the start, middle and end. You can -#: specify different easing functions for the fade-in and fade-out -#: parts, like this: 2.0 ease-in linear. kitty supports all the CSS -#: easing functions . - -# visual_bell_color none - -#: The color used by visual bell. Set to none will fall back to -#: selection background color. If you feel that the visual bell is too -#: bright, you can set it to a darker color. - -# window_alert_on_bell yes - -#: Request window attention on bell. Makes the dock icon bounce on -#: macOS or the taskbar flash on Linux. - -# bell_on_tab "🔔 " - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has a bell. If you want to use leading -#: or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -#: For backwards compatibility, values of yes, y and true are -#: converted to the default bell symbol and no, n, false and none are -#: converted to the empty string. - -# command_on_bell none - -#: Program to run when a bell occurs. The environment variable -#: KITTY_CHILD_CMDLINE can be used to get the program running in the -#: window in which the bell occurred. - -# bell_path none - -#: Path to a sound file to play as the bell sound. If set to none, the -#: system default bell sound is used. Must be in a format supported by -#: the operating systems sound API, such as WAV or OGA on Linux -#: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound). Relative -#: paths are resolved with respect to the kitty config directory. - -# linux_bell_theme __custom - -#: The XDG Sound Theme kitty will use to play the bell sound. On -#: Wayland, when the compositor supports it, it is asked to play the -#: system default bell sound, and this setting has no effect. Note -#: that Hyprland claims to support this protocol, but does not -#: actually play a sound -#: . This setting -#: defaults to the custom theme name specified in the XDG Sound theme -#: specification , falling back to the default -#: freedesktop theme if it does not exist. To change your sound theme -#: desktop wide, create -#: :file:~/.local/share/sounds/__custom/index.theme` with the -#: contents: - -#: [Sound Theme] - -#: Inherits=name-of-the-sound-theme-you-want-to-use - -#: Replace name-of-the-sound-theme-you-want-to-use with the actual -#: theme name. Now all compliant applications should use sounds from -#: this theme. - -#: }}} - -#: Window layout {{{ - -# remember_window_size yes -# initial_window_width 640 -# initial_window_height 400 - -#: If enabled, the OS Window size will be remembered so that new -#: instances of kitty will have the same size as the previous -#: instance. If disabled, the OS Window will initially have size -#: configured by initial_window_width/height, in pixels. You can use a -#: suffix of "c" on the width/height values to have them interpreted -#: as number of cells instead of pixels. - -# remember_window_position no - -#: If enabled, the OS Window position will be remembered so that new -#: instances of kitty will have the same position as the previous -#: instance. If disabled, the OS Window will be placed by the window -#: manager. Note that remembering of position only works if the -#: underlying desktop environment/window manager supports it. It never -#: works on Wayland. See also kitty --position to specify the position -#: when launching kitty. - -# enabled_layouts * - -#: The enabled window layouts. A comma separated list of layout names. -#: The special value all means all layouts. The first listed layout -#: will be used as the startup layout. Default configuration is all -#: layouts in alphabetical order. For a list of available layouts, see -#: the layouts . - -# window_resize_step_cells 2 -# window_resize_step_lines 2 - -#: The step size (in units of cell width/cell height) to use when -#: resizing kitty windows in a layout with the shortcut -#: start_resizing_window. The cells value is used for horizontal -#: resizing, and the lines value is used for vertical resizing. - -# window_border_width 0.5pt - -#: The width of window borders. Can be either in pixels (px) or pts -#: (pt). Values in pts will be rounded to the nearest number of pixels -#: based on screen resolution. If not specified, the unit is assumed -#: to be pts. Note that borders are displayed only when more than one -#: window is visible. They are meant to separate multiple windows. - -# draw_minimal_borders yes - -#: Draw only the minimum borders needed. This means that only the -#: borders that separate the window from a neighbor are drawn. Note -#: that setting a non-zero window_margin_width overrides this and -#: causes all borders to be drawn. - -# draw_window_borders_for_single_window no - -#: Draw borders around a window even when there is only a single -#: window visible. When enabled and there is only a single window, -#: full borders are drawn around it (as if draw_minimal_borders is -#: false). The border will show in the active color when the window is -#: focused and the OS window has focus, and in the inactive color when -#: the OS window loses focus. This provides a clear visual indicator -#: of whether the kitty window is focused. When there are multiple -#: windows visible, this option has no effect and normal border -#: drawing rules apply. - -# window_margin_width 0 - -#: The window margin (in pts) (blank area outside the border). A -#: single value sets all four sides. Two values set the vertical and -#: horizontal sides. Three values set top, horizontal and bottom. Four -#: values set top, right, bottom and left. - -# single_window_margin_width -1 - -#: The window margin to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_margin_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# window_padding_width 0 - -#: The window padding (in pts) (blank area between the text and the -#: window border). A single value sets all four sides. Two values set -#: the vertical and horizontal sides. Three values set top, horizontal -#: and bottom. Four values set top, right, bottom and left. - -# single_window_padding_width -1 - -#: The window padding to use when only a single window is visible (in -#: pts). Negative values will cause the value of window_padding_width -#: to be used instead. A single value sets all four sides. Two values -#: set the vertical and horizontal sides. Three values set top, -#: horizontal and bottom. Four values set top, right, bottom and left. - -# placement_strategy center - -#: When the window size is not an exact multiple of the cell size, the -#: cell area of the terminal window will have some extra padding on -#: the sides. You can control how that padding is distributed with -#: this option. Using a value of center means the cell area will be -#: placed centrally. A value of top-left means the padding will be -#: only at the bottom and right edges. The value can be one of: top- -#: left, top, top-right, left, center, right, bottom-left, bottom, -#: bottom-right. - -# active_border_color #00ff00 - -#: The color for the border of the active window. Set this to none to -#: not draw borders around the active window. - -# inactive_border_color #cccccc - -#: The color for the border of inactive windows. - -# bell_border_color #ff5a00 - -#: The color for the border of inactive windows in which a bell has -#: occurred. - -# inactive_text_alpha 1.0 - -#: Fade the text in inactive windows by the specified amount (a number -#: between zero and one, with zero being fully faded). - -# hide_window_decorations no - -#: Hide the window decorations (title-bar and window borders) with -#: yes. On macOS, titlebar-only and titlebar-and-corners can be used -#: to only hide the titlebar and the rounded corners. Whether this -#: works and exactly what effect it has depends on the window -#: manager/operating system. Note that the effects of changing this -#: option when reloading config are undefined. When using titlebar- -#: only, it is useful to also set window_margin_width and -#: placement_strategy to prevent the rounded corners from clipping -#: text. Or use titlebar-and-corners. - -# window_logo_path none - -#: Path to a logo image. Must be in PNG/JPEG/WEBP/GIF/TIFF/BMP format. -#: Relative paths are interpreted relative to the kitty config -#: directory. The logo is displayed in a corner of every kitty window. -#: The position is controlled by window_logo_position. Individual -#: windows can be configured to have different logos either using the -#: launch action or the remote control -#: facility. - -# window_logo_position bottom-right - -#: Where to position the window logo in the window. The value can be -#: one of: top-left, top, top-right, left, center, right, bottom-left, -#: bottom, bottom-right. - -# window_logo_alpha 0.5 - -#: The amount the logo should be faded into the background. With zero -#: being fully faded and one being fully opaque. - -# window_logo_scale 0 - -#: The percentage (0-100] of the window size to which the logo should -#: scale. Using a single number means the logo is scaled to that -#: percentage of the shortest window dimension, while preserving -#: aspect ratio of the logo image. - -#: Using two numbers means the width and height of the logo are scaled -#: to the respective percentage of the window's width and height. - -#: Using zero as the percentage disables scaling in that dimension. A -#: single zero (the default) disables all scaling of the window logo. - -# resize_debounce_time 0.1 0.5 - -#: The time to wait (in seconds) before asking the program running in -#: kitty to resize and redraw the screen during a live resize of the -#: OS window, when no new resize events have been received, i.e. when -#: resizing is either paused or finished. On platforms such as macOS, -#: where the operating system sends events corresponding to the start -#: and end of a live resize, the second number is used for redraw- -#: after-pause since kitty can distinguish between a pause and end of -#: resizing. On such systems the first number is ignored and redraw is -#: immediate after end of resize. On other systems only the first -#: number is used so that kitty is "ready" quickly after the end of -#: resizing, while not also continuously redrawing, to save energy. - -# resize_in_steps no - -#: Resize the OS window in steps as large as the cells, instead of -#: with the usual pixel accuracy. Combined with initial_window_width -#: and initial_window_height in number of cells, this option can be -#: used to keep the margins as small as possible when resizing the OS -#: window. Note that this does not currently work on Wayland. - -# visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - -#: The list of characters for visual window selection. For example, -#: for selecting a window to focus on with focus_visible_window. The -#: value should be a series of unique numbers or alphabets, case -#: insensitive, from the set 0-9A-Z\-=[];',./\\`. Specify your -#: preference as a string of characters. - -# confirm_os_window_close -1 - -#: Ask for confirmation when closing an OS window or a tab with at -#: least this number of kitty windows in it by window manager (e.g. -#: clicking the window close button or pressing the operating system -#: shortcut to close windows) or by the close_tab action. A value of -#: zero disables confirmation. This confirmation also applies to -#: requests to quit the entire application (all OS windows, via the -#: quit action). Negative values are converted to positive ones, -#: however, with shell_integration enabled, using negative values -#: means windows sitting at a shell prompt are not counted, only -#: windows where some command is currently running. You can also have -#: backgrounded jobs prevent closing, by adding count-background to -#: the setting, for example: -1 count-background. Note that if you -#: want confirmation when closing individual windows, you can map the -#: close_window_with_confirmation action. - -#: }}} - -#: Tab bar {{{ - -# tab_bar_edge bottom - -#: The edge to show the tab bar on, top or bottom. - -# tab_bar_margin_width 0.0 - -#: The margin to the left and right of the tab bar (in pts). - -# tab_bar_margin_height 0.0 0.0 - -#: The margin above and below the tab bar (in pts). The first number -#: is the margin between the edge of the OS Window and the tab bar. -#: The second number is the margin between the tab bar and the -#: contents of the current tab. - -# tab_bar_style fade - -#: The tab bar style, can be one of: - -#: fade -#: Each tab's edges fade into the background color. (See also tab_fade) -#: slant -#: Tabs look like the tabs in a physical file. -#: separator -#: Tabs are separated by a configurable separator. (See also -#: tab_separator) -#: powerline -#: Tabs are shown as a continuous line with "fancy" separators. -#: (See also tab_powerline_style) -#: custom -#: A user-supplied Python function called draw_tab is loaded from the file -#: tab_bar.py in the kitty config directory. For examples of how to -#: write such a function, see the functions named draw_tab_with_* in -#: kitty's source code: kitty/tab_bar.py. See also -#: this discussion -#: for examples from kitty users. -#: hidden -#: The tab bar is hidden. If you use this, you might want to create -#: a mapping for the select_tab action which presents you with a list of -#: tabs and allows for easy switching to a tab. - -# tab_bar_filter - -#: A search expression . Only tabs that match this expression will -#: be shown in the tab bar. The currently active tab is always shown, -#: regardless of whether it matches or not. When using this option, -#: the tab bar may be displayed with less tabs than specified in -#: tab_bar_min_tabs, as evaluating the filter is expensive and is done -#: only at display time. This is most useful when using sessions -#: . An expression of -#: session:~ or session:^$ will show only tabs that belong to the -#: current session or no session. The various tab navigation actions -#: such as goto_tab, next_tab, previous_tab, etc. are automatically -#: restricted to work only on matching tabs. - -# tab_bar_align left - -#: The horizontal alignment of the tab bar, can be one of: left, -#: center, right. - -# tab_bar_min_tabs 2 - -#: The minimum number of tabs that must exist before the tab bar is -#: shown. - -# tab_switch_strategy previous - -#: The algorithm to use when switching to a tab when the current tab -#: is closed. The default of previous will switch to the last used -#: tab. A value of left will switch to the tab to the left of the -#: closed tab. A value of right will switch to the tab to the right of -#: the closed tab. A value of last will switch to the right-most tab. - -# tab_fade 0.25 0.5 0.75 1 - -#: Control how each tab fades into the background when using fade for -#: the tab_bar_style. Each number is an alpha (between zero and one) -#: that controls how much the corresponding cell fades into the -#: background, with zero being no fade and one being full fade. You -#: can change the number of cells used by adding/removing entries to -#: this list. - -# tab_separator " ┇" - -#: The separator between tabs in the tab bar when using separator as -#: the tab_bar_style. - -# tab_powerline_style angled - -#: The powerline separator style between tabs in the tab bar when -#: using powerline as the tab_bar_style, can be one of: angled, -#: slanted, round. - -# tab_activity_symbol none - -#: Some text or a Unicode symbol to show on the tab if a window in the -#: tab that does not have focus has some activity. If you want to use -#: leading or trailing spaces, surround the text with quotes. See -#: tab_title_template for how this is rendered. - -# tab_title_max_length 0 - -#: The maximum number of cells that can be used to render the text in -#: a tab. A value of zero means that no limit is applied. - -# tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{tab.last_focused_progress_percent}{title}" - -#: A template to render the tab title. The default just renders the -#: title with optional symbols for bell and activity. If you wish to -#: include the tab-index as well, use something like: {index}:{title}. -#: Useful if you have shortcuts mapped for goto_tab N. If you prefer -#: to see the index as a superscript, use {sup.index}. All data -#: available is: - -#: title -#: The current tab title. -#: index -#: The tab index usable with goto_tab N goto_tab shortcuts. -#: layout_name -#: The current layout name. -#: session_name -#: The name of the kitty session file from which this tab was created, if any. -#: active_session_name -#: The name of the kitty session file from which the active window in this tab was created, if any. -#: num_windows -#: The number of windows in the tab. -#: num_window_groups -#: The number of window groups (a window group is a window and all of its overlay windows) in the tab. -#: tab.active_wd -#: The working directory of the currently active window in the tab -#: (expensive, requires syscall). Use tab.active_oldest_wd to get -#: the directory of the oldest foreground process rather than the newest. -#: tab.active_exe -#: The name of the executable running in the foreground of the currently -#: active window in the tab (expensive, requires syscall). Use -#: tab.active_oldest_exe for the oldest foreground process. -#: max_title_length -#: The maximum title length available. -#: keyboard_mode -#: The name of the current keyboard mode or the empty string if no keyboard mode is active. -#: tab.last_focused_progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from the most recently focused window in the tab. Empty string if no progress is reported. -#: tab.progress_percent -#: If a command running in a window reports the progress for a task, show this progress as a percentage -#: from all windows in the tab, averaged. Empty string is no progress is reported. -#: custom -#: This will call a function named draw_title(data) from the file tab_bar.py placed in -#: the kitty config directory. The function will be passed a dictionary of data, the same data that -#: can be used in this template. It can then perform arbitrarily complex processing and return a string. -#: For example: tab_title_template "{custom}" will use the output of the function as the tab title. -#: Any print statements in the draw_title() will print to the STDOUT of the kitty process, useful -#: for debugging. - - -#: Note that formatting is done by Python's string formatting -#: machinery, so you can use, for instance, {layout_name[:2].upper()} -#: to show only the first two letters of the layout name, upper-cased. -#: If you want to style the text, you can use styling directives, for -#: example: -#: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. -#: Similarly, for bold and italic: -#: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. -#: The 256 eight terminal colors can be used as `fmt.fg.color0` -#: through `fmt.fg.color255`. Note that for backward compatibility, if -#: {bell_symbol} or {activity_symbol} are not present in the template, -#: they are prepended to it. - -# active_tab_title_template none - -#: Template to use for active tabs. If not specified falls back to -#: tab_title_template. - -# active_tab_foreground #000 -# active_tab_background #eee -# active_tab_font_style bold-italic -# inactive_tab_foreground #444 -# inactive_tab_background #999 -# inactive_tab_font_style normal - -#: Tab bar colors and styles. - -# tab_bar_background none - -#: Background color for the tab bar. Defaults to using the terminal -#: background color. - -# tab_bar_margin_color none - -#: Color for the tab bar margin area. Defaults to using the terminal -#: background color for margins above and below the tab bar. For side -#: margins the default color is chosen to match the background color -#: of the neighboring tab. - -#: }}} - -#: Color scheme {{{ - -# foreground #dddddd -# background #000000 - -#: The foreground and background colors. - -background_opacity 0.5 - -#: The opacity of the terminal background color. A number between zero -#: and one, where one is opaque and zero is fully transparent. This -#: will only work if supported by the OS (for instance, when using a -#: compositor under X11). Note that it only sets the background -#: color's opacity in cells that have the same background color as the -#: default terminal background, so that things like the status bar in -#: vim, powerline prompts, etc. still look good. But it means that if -#: you use a color theme with a background color in your editor, it -#: will not be rendered as transparent. Instead you should change the -#: default background color in your kitty config and not use a -#: background color in the editor color scheme. Or use the escape -#: codes to set the terminals default colors in a shell script to -#: launch your editor. See also transparent_background_colors. Be -#: aware that using a value less than 1.0 is a (possibly significant) -#: performance hit. When using a low value for this setting, it is -#: desirable that you set the background color to a color the matches -#: the general color of the desktop background, for best text -#: rendering. Note also, that this setting does not apply to the -#: background_image, if any. The background image can itself have -#: transparency via its alpha channel if desired, and that will be -#: respected. - -#: If you want to dynamically change transparency of windows, set -#: dynamic_background_opacity to yes (this is off by default as it has -#: a performance cost). Changing this option when reloading the config -#: will only work if dynamic_background_opacity was enabled in the -#: original config. - -# background_blur 0 - -#: Set to a positive value to enable background blur (blurring of the -#: visuals behind a transparent window) on platforms that support it. -#: Only takes effect when background_opacity is less than one. On -#: macOS, this will also control the blur radius (amount of blurring). -#: Setting it to too high a value will cause severe performance issues -#: and/or rendering artifacts. Usually, values up to 64 work well. -#: Note that this might cause performance issues, depending on how the -#: platform implements it, so use with care. Currently supported on -#: macOS and KDE. - -# transparent_background_colors - -#: A space separated list of upto 7 colors, with opacity. When the -#: background color of a cell matches one of these colors, it is -#: rendered semi-transparent using the specified opacity. - -#: Useful in more complex UIs like editors where you could want more -#: than a single background color to be rendered as transparent, for -#: instance, for a cursor highlight line background or a highlighted -#: block. Terminal applications can set this color using The kitty -#: color control escape code. - -#: The syntax for specifying colors is: color@opacity, where the -#: @opacity part is optional. When unspecified, the value of -#: background_opacity is used. For example:: - -#: transparent_background_colors red@0.5 #00ff00@0.3 - -#: Note that you must also set background_opacity to something less -#: than 1 for this setting to work properly. - -# dynamic_background_opacity no - -#: Allow changing of the background_opacity dynamically, using either -#: keyboard shortcuts (increase_background_opacity and -#: decrease_background_opacity) or the remote control facility. -#: Changing this option by reloading the config is not supported. - -# background_image none - -#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP -#: format. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_image_layout tiled - -#: Whether to tile, scale or clamp the background image. The value can -#: be one of tiled, mirror-tiled, scaled, clamped, centered or -#: cscaled. The scaled and cscaled values scale the image to the -#: window size, with cscaled preserving the image aspect ratio. Note -#: that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_tint 0.0 - -#: How much to tint the background image by the background color. This -#: option makes it easier to read the text. Tinting is done using the -#: current background color for each window. This option applies only -#: if background_image is set. Note that when using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# background_tint_gaps 1.0 - -#: How much to tint the background image at the window gaps by the -#: background color, after applying background_tint. Since this is -#: multiplicative with background_tint, it can be used to lighten the -#: tint over the window gaps for a *separated* look. Note that when -#: using auto_color_scheme -#: -#: this option is overridden by the color scheme file and must be set -#: inside it to take effect. - -# dim_opacity 0.4 - -#: How much to dim text that has the DIM/FAINT attribute set. One -#: means no dimming and zero means fully dimmed (i.e. invisible). - -# selection_foreground #000000 -# selection_background #fffacd - -#: The foreground and background colors for text selected with the -#: mouse. Setting both of these to none will cause a "reverse video" -#: effect for selections, where the selection will be the cell text -#: color and the text will become the cell background color. Setting -#: only selection_foreground to none will cause the foreground color -#: to be used unchanged. Note that these colors can be overridden by -#: the program running in the terminal. - -#: The color table {{{ - -#: The 256 terminal colors. There are 8 basic colors, each color has a -#: dull and bright version, for the first 16 colors. You can set the -#: remaining 240 colors as color16 to color255. - -# color0 #000000 -# color8 #767676 - -#: black - -# color1 #cc0403 -# color9 #f2201f - -#: red - -# color2 #19cb00 -# color10 #23fd00 - -#: green - -# color3 #cecb00 -# color11 #fffd00 - -#: yellow - -# color4 #0d73cc -# color12 #1a8fff - -#: blue - -# color5 #cb1ed1 -# color13 #fd28ff - -#: magenta - -# color6 #0dcdcd -# color14 #14ffff - -#: cyan - -# color7 #dddddd -# color15 #ffffff - -#: white - -# mark1_foreground black - -#: Color for marks of type 1 - -# mark1_background #98d3cb - -#: Color for marks of type 1 (light steel blue) - -# mark2_foreground black - -#: Color for marks of type 2 - -# mark2_background #f2dcd3 - -#: Color for marks of type 1 (beige) - -# mark3_foreground black - -#: Color for marks of type 3 - -# mark3_background #f274bc - -#: Color for marks of type 3 (violet) - -#: }}} - -#: }}} - -#: Advanced {{{ - -# shell . - -#: The shell program to execute. The default value of . means to use -#: the value of of the SHELL environment variable or if unset, -#: whatever shell is set as the default shell for the current user. -#: Note that on macOS if you change this, you might need to add -#: --login and --interactive to ensure that the shell starts in -#: interactive mode and reads its startup rc files. Environment -#: variables are expanded in this setting. - -# editor . - -#: The terminal based text editor (such as vim or nano) to use when -#: editing the kitty config file or similar tasks. - -#: The default value of . means to use the environment variables -#: VISUAL and EDITOR in that order. If these variables aren't set, -#: kitty will run your shell ($SHELL -l -i -c env) to see if your -#: shell startup rc files set VISUAL or EDITOR. If that doesn't work, -#: kitty will cycle through various known editors (vim, emacs, etc.) -#: and take the first one that exists on your system. - -# close_on_child_death no - -#: Close the window when the child process (usually the shell) exits. -#: With the default value no, the terminal will remain open when the -#: child exits as long as there are still other processes outputting -#: to the terminal (for example disowned or backgrounded processes). -#: When enabled with yes, the window will close as soon as the child -#: process exits. Note that setting it to yes means that any -#: background processes still using the terminal can fail silently -#: because their stdout/stderr/stdin no longer work. - -# remote_control_password - -#: Allow other programs to control kitty using passwords. This option -#: can be specified multiple times to add multiple passwords. If no -#: passwords are present kitty will ask the user for permission if a -#: program tries to use remote control with a password. A password can -#: also *optionally* be associated with a set of allowed remote -#: control actions. For example:: - -#: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab - -#: Only the specified actions will be allowed when using this -#: password. Glob patterns can be used too, for example:: - -#: remote_control_password "my passphrase" set-tab-* resize-* - -#: To get a list of available actions, run:: - -#: kitten @ --help - -#: A set of actions to be allowed when no password is sent can be -#: specified by using an empty password. For example:: - -#: remote_control_password "" *-colors - -#: Finally, the path to a python module can be specified that provides -#: a function is_cmd_allowed that is used to check every remote -#: control command. For example:: - -#: remote_control_password "my passphrase" my_rc_command_checker.py - -#: Relative paths are resolved from the kitty configuration directory. -#: See rc_custom_auth for details. - -# allow_remote_control no - -#: Allow other programs to control kitty. If you turn this on, other -#: programs can control all aspects of kitty, including sending text -#: to kitty windows, opening new windows, closing windows, reading the -#: content of windows, etc. Note that this even works over SSH -#: connections. The default setting of no prevents any form of remote -#: control. The meaning of the various values are: - -#: password -#: Remote control requests received over both the TTY device and the socket -#: are confirmed based on passwords, see remote_control_password. - -#: socket-only -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are denied. -#: See listen_on. - -#: socket -#: Remote control requests received over a socket are accepted -#: unconditionally. Requests received over the TTY are confirmed based on -#: password. - -#: no -#: Remote control is completely disabled. - -#: yes -#: Remote control requests are always accepted. - -# listen_on none - -#: Listen to the specified socket for remote control connections. Note -#: that this will apply to all kitty instances. It can be overridden -#: by the kitty --listen-on command line option. For UNIX sockets, -#: such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). -#: Environment variables are expanded and relative paths are resolved -#: with respect to the temporary directory. If {kitty_pid} is present, -#: then it is replaced by the PID of the kitty process, otherwise the -#: PID of the kitty process is appended to the value, with a hyphen. -#: For TCP sockets such as tcp:localhost:0 a random port is always -#: used even if a non-zero port number is specified. See the help for -#: kitty --listen-on for more details. Note that this will be ignored -#: unless allow_remote_control is set to either: yes, socket or -#: socket-only. Changing this option by reloading the config is not -#: supported. - -# env - -#: Specify the environment variables to be set in all child processes. -#: Using the name with an equal sign (e.g. env VAR=) will set it to -#: the empty string. Specifying only the name (e.g. env VAR) will -#: remove the variable from the child process' environment. Note that -#: environment variables are expanded recursively, for example:: - -#: env VAR1=a -#: env VAR2=${HOME}/${VAR1}/b - -#: The value of VAR2 will be /a/b. - -#: Use the special value read_from_shell to have kitty read the -#: specified variables from your login shell shell configuration. -#: Useful if your shell startup files setup a bunch of environment -#: variables that you want available to kitty and in kitty session -#: files. Each variable name is treated as a glob pattern to match. -#: For example: env read_from_shell=PATH LANG LC_* XDG_* EDITOR -#: VISUAL. Note that these variables are only read after the -#: configuration is fully processed, thus they are not available for -#: recursive expansion and they will override any variables set by -#: other env directives. - -# filter_notification - -#: Specify rules to filter out notifications sent by applications -#: running in kitty. Can be specified multiple times to create -#: multiple filter rules. A rule specification is of the form -#: field:regexp. A filter rule can match on any of the fields: title, -#: body, app, type. The special value of all filters out all -#: notifications. Rules can be combined using Boolean operators. Some -#: examples:: - -#: filter_notification title:hello or body:"abc.*def" -#: # filter out notification from vim except for ones about updates, (?i) -#: # makes matching case insensitive. -#: filter_notification app:"[ng]?vim" and not body:"(?i)update" -#: # filter out all notifications -#: filter_notification all - -#: The field app is the name of the application sending the -#: notification and type is the type of the notification. Not all -#: applications will send these fields, so you can also match on the -#: title and body of the notification text. More sophisticated -#: programmatic filtering and custom actions on notifications can be -#: done by creating a notifications.py file in the kitty config -#: directory (~/.config/kitty). An annotated sample is available -#: . - -# watcher - -#: Path to python file which will be loaded for watchers -#: . Can be -#: specified more than once to load multiple watchers. The watchers -#: will be added to every kitty window. Relative paths are resolved -#: relative to the kitty config directory. Note that reloading the -#: config will only affect windows created after the reload. - -# exe_search_path - -#: Control where kitty finds the programs to run. The default search -#: order is: First search the system wide PATH, then ~/.local/bin and -#: ~/bin. If still not found, the PATH defined in the login shell -#: after sourcing all its startup files is tried. Finally, if present, -#: the PATH specified by the env option is tried. - -#: This option allows you to prepend, append, or remove paths from -#: this search order. It can be specified multiple times for multiple -#: paths. A simple path will be prepended to the search order. A path -#: that starts with the + sign will be append to the search order, -#: after ~/bin above. A path that starts with the - sign will be -#: removed from the entire search order. For example:: - -#: exe_search_path /some/prepended/path -#: exe_search_path +/some/appended/path -#: exe_search_path -/some/excluded/path - -# update_check_interval 24 - -#: The interval to periodically check if an update to kitty is -#: available (in hours). If an update is found, a system notification -#: is displayed informing you of the available update. The default is -#: to check every 24 hours, set to zero to disable. Update checking is -#: only done by the official binary builds. Distro packages or source -#: builds do not do update checking. Changing this option by reloading -#: the config is not supported. - -# startup_session none - -#: Path to a session file to use for all kitty instances. Can be -#: overridden by using the kitty --session =none command line option -#: for individual instances. See sessions -#: in the kitty -#: documentation for details. Note that relative paths are interpreted -#: with respect to the kitty config directory. Environment variables -#: in the path are expanded. Changing this option by reloading the -#: config is not supported. Note that if kitty is invoked with command -#: line arguments specifying a command to run, this option is ignored. - -# clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask - -#: Allow programs running in kitty to read and write from the -#: clipboard. You can control exactly which actions are allowed. The -#: possible actions are: write-clipboard, read-clipboard, write- -#: primary, read-primary, read-clipboard-ask, read-primary-ask. The -#: default is to allow writing to the clipboard and primary selection -#: and to ask for permission when a program tries to read from the -#: clipboard. Note that disabling the read confirmation is a security -#: risk as it means that any program, even the ones running on a -#: remote server via SSH can read your clipboard. See also -#: clipboard_max_size. - -# clipboard_max_size 512 - -#: The maximum size (in MB) of data from programs running in kitty -#: that will be stored for writing to the system clipboard. A value of -#: zero means no size limit is applied. See also clipboard_control. - -# file_transfer_confirmation_bypass - -#: The password that can be supplied to the file transfer kitten -#: to skip the -#: transfer confirmation prompt. This should only be used when -#: initiating transfers from trusted computers, over trusted networks -#: or encrypted transports, as it allows any programs running on the -#: remote machine to read/write to the local filesystem, without -#: permission. - -# allow_hyperlinks yes - -#: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 -#: escape sequences are ignored. Otherwise they become clickable -#: links, that you can click with the mouse or by using the hints -#: kitten . The -#: special value of ask means that kitty will ask before opening the -#: link when clicked. - -# shell_integration enabled - -#: Enable shell integration on supported shells. This enables features -#: such as jumping to previous prompts, browsing the output of the -#: previous command in a pager, etc. on supported shells. Set to -#: disabled to turn off shell integration, completely. It is also -#: possible to disable individual features, set to a space separated -#: list of these values: no-rc, no-cursor, no-title, no-cwd, no- -#: prompt-mark, no-complete, no-sudo. See Shell integration -#: for details. - -# allow_cloning ask - -#: Control whether programs running in the terminal can request new -#: windows to be created. The canonical example is clone-in-kitty -#: . -#: By default, kitty will ask for permission for each clone request. -#: Allowing cloning unconditionally gives programs running in the -#: terminal (including over SSH) permission to execute arbitrary code, -#: as the user who is running the terminal, on the computer that the -#: terminal is running on. - -# clone_source_strategies venv,conda,env_var,path - -#: Control what shell code is sourced when running clone-in-kitty in -#: the newly cloned window. The supported strategies are: - -#: venv -#: Source the file $VIRTUAL_ENV/bin/activate. This is used by the -#: Python stdlib venv module and allows cloning venvs automatically. -#: conda -#: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual -#: environments created by conda. -#: env_var -#: Execute the contents of the environment variable -#: KITTY_CLONE_SOURCE_CODE with eval. -#: path -#: Source the file pointed to by the environment variable -#: KITTY_CLONE_SOURCE_PATH. - -#: This option must be a comma separated list of the above values. -#: Only the first valid match, in the order specified, is sourced. - -# notify_on_cmd_finish never - -#: Show a desktop notification when a long-running command finishes -#: (needs shell_integration). The possible values are: - -#: never -#: Never send a notification. - -#: unfocused -#: Only send a notification when the window does not have keyboard focus. - -#: invisible -#: Only send a notification when the window both is unfocused and not visible -#: to the user, for example, because it is in an inactive tab or its OS window -#: is not currently visible (on platforms that support OS window visibility querying -#: this considers an OS Window visible iff it is active). - -#: always -#: Always send a notification, regardless of window state. - -#: There are two optional arguments: - -#: First, the minimum duration for what is considered a long running -#: command. The default is 5 seconds. Specify a second argument to set -#: the duration. For example: invisible 15. Do not set the value too -#: small, otherwise a command that launches a new OS Window and exits -#: will spam a notification. - -#: Second, the action to perform. The default is notify. The possible -#: values are: - -#: notify -#: Send a desktop notification. The subsequent arguments are optional and specify when -#: the notification is automatically cleared. The set of possible events when the notification is -#: cleared are: focus and next. focus means that when the notification -#: policy is unfocused or invisible the notification is automatically cleared -#: when the window regains focus. The value of next means that the previous notification -#: is cleared when the next notification is shown. The default when no arguments are specified -#: is: focus next. - -#: bell -#: Ring the terminal bell. - -#: notify-bell -#: Send a desktop notification and ring the terminal bell. -#: The arguments are the same as for `notify`. - -#: command -#: Run a custom command. All subsequent arguments are the cmdline to run. - -#: Some more examples:: - -#: # Send a notification when a command takes more than 5 seconds in an unfocused window -#: notify_on_cmd_finish unfocused -#: # Send a notification when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 -#: # Ring a bell when a command takes more than 10 seconds in a invisible window -#: notify_on_cmd_finish invisible 10.0 bell -#: # Run 'notify-send' when a command takes more than 10 seconds in a invisible window -#: # Here %c is replaced by the current command line and %s by the job exit code -#: notify_on_cmd_finish invisible 10.0 command notify-send "job finished with status: %s" %c -#: # Do not clear previous notification when next command finishes or window regains focus -#: notify_on_cmd_finish invisible 5.0 notify - -# term xterm-kitty - -#: The value of the TERM environment variable to set. Changing this -#: can break many terminal programs, only change it if you know what -#: you are doing, not because you read some advice on "Stack Overflow" -#: to change it. The TERM variable is used by various programs to get -#: information about the capabilities and behavior of the terminal. If -#: you change it, depending on what programs you run, and how -#: different the terminal you are changing it to is, various things -#: from key-presses, to colors, to various advanced features may not -#: work. Changing this option by reloading the config will only affect -#: newly created windows. - -# terminfo_type path - -#: The value of the TERMINFO environment variable to set. This -#: variable is used by programs running in the terminal to search for -#: terminfo databases. The default value of path causes kitty to set -#: it to a filesystem location containing the kitty terminfo database. -#: A value of direct means put the entire database into the env var -#: directly. This can be useful when connecting to containers, for -#: example. But, note that not all software supports this. A value of -#: none means do not touch the variable. - -# forward_stdio no - -#: Forward STDOUT and STDERR of the kitty process to child processes. -#: This is useful for debugging as it allows child processes to print -#: to kitty's STDOUT directly. For example, echo hello world -#: >&$KITTY_STDIO_FORWARDED in a shell will print to the parent -#: kitty's STDOUT. Sets the KITTY_STDIO_FORWARDED=fdnum environment -#: variable so child processes know about the forwarding. Note that on -#: macOS this prevents the shell from being run via the login utility -#: so getlogin() will not work in programs run in this session. - -# menu_map - -#: Specify entries for various menus in kitty. Currently only the -#: global menubar on macOS is supported. For example:: - -#: menu_map global "Actions::Launch something special" launch --hold --type=os-window sh -c "echo hello world" - -#: This will create a menu entry named "Launch something special" in -#: an "Actions" menu in the macOS global menubar. Sub-menus can be -#: created by adding more levels separated by the :: characters. - -#: }}} - -#: OS specific tweaks {{{ - -# wayland_titlebar_color system - -#: The color of the kitty window's titlebar on Wayland systems with -#: client side window decorations such as GNOME. A value of system -#: means to use the default system colors, a value of background means -#: to use the background color of the currently active kitty window -#: and finally you can use an arbitrary color, such as #12af59 or red. - -# macos_titlebar_color system - -#: The color of the kitty window's titlebar on macOS. A value of -#: system means to use the default system color, light or dark can -#: also be used to set it explicitly. A value of background means to -#: use the background color of the currently active window and finally -#: you can use an arbitrary color, such as #12af59 or red. - -# macos_option_as_alt no - -#: Use the Option key as an Alt key on macOS. With this set to no, -#: kitty will use the macOS native Option+Key to enter Unicode -#: character behavior. This will break any Alt+Key keyboard shortcuts -#: in your terminal programs, but you can use the macOS Unicode input -#: technique. You can use the values: left, right or both to use only -#: the left, right or both Option keys as Alt, instead. Note that -#: kitty itself always treats Option the same as Alt. This means you -#: cannot use this option to configure different kitty shortcuts for -#: Option+Key vs. Alt+Key. Also, any kitty shortcuts using -#: Option/Alt+Key will take priority, so that any such key presses -#: will not be passed to terminal programs running inside kitty. -#: Changing this option by reloading the config is not supported. - -# macos_hide_from_tasks no - -#: Hide the kitty window from running tasks on macOS (⌘+Tab and the -#: Dock). Changing this option by reloading the config is not -#: supported. - -# macos_quit_when_last_window_closed no - -#: Have kitty quit when all the top-level windows are closed on macOS. -#: By default, kitty will stay running, even with no open windows, as -#: is the expected behavior on macOS. - -# macos_window_resizable yes - -#: Disable this if you want kitty top-level OS windows to not be -#: resizable on macOS. - -# macos_thicken_font 0 - -#: Draw an extra border around the font with the given width, to -#: increase legibility at small font sizes on macOS. For example, a -#: value of 0.75 will result in rendering that looks similar to sub- -#: pixel antialiasing at common font sizes. Note that in modern kitty, -#: this option is obsolete (although still supported). Consider using -#: text_composition_strategy instead. - -# macos_traditional_fullscreen no - -#: Use the macOS traditional full-screen transition, that is faster, -#: but less pretty. - -# macos_show_window_title_in all - -#: Control where the window title is displayed on macOS. A value of -#: window will show the title of the currently active window at the -#: top of the macOS window. A value of menubar will show the title of -#: the currently active window in the macOS global menu bar, making -#: use of otherwise wasted space. A value of all will show the title -#: in both places, and none hides the title. See -#: macos_menubar_title_max_length for how to control the length of the -#: title in the menu bar. - -# macos_menubar_title_max_length 0 - -#: The maximum number of characters from the window title to show in -#: the macOS global menu bar. Values less than one means that there is -#: no maximum limit. - -# macos_custom_beam_cursor no - -#: Use a custom mouse cursor for macOS that is easier to see on both -#: light and dark backgrounds. Nowadays, the default macOS cursor -#: already comes with a white border. WARNING: this might make your -#: mouse cursor invisible on dual GPU machines. Changing this option -#: by reloading the config is not supported. - -# macos_colorspace srgb - -#: The colorspace in which to interpret terminal colors. The default -#: of srgb will cause colors to match those seen in web browsers. The -#: value of default will use whatever the native colorspace of the -#: display is. The value of displayp3 will use Apple's special -#: snowflake display P3 color space, which will result in over -#: saturated (brighter) colors with some color shift. Reloading -#: configuration will change this value only for newly created OS -#: windows. - -# linux_display_server auto - -#: Choose between Wayland and X11 backends. By default, an appropriate -#: backend based on the system state is chosen automatically. Set it -#: to x11 or wayland to force the choice. Changing this option by -#: reloading the config is not supported. - -# wayland_enable_ime yes - -#: Enable Input Method Extension on Wayland. This is typically used -#: for inputting text in East Asian languages. However, its -#: implementation in Wayland is often buggy and introduces latency -#: into the input loop, so disable this if you know you dont need it. -#: Changing this option by reloading the config is not supported, it -#: will not have any effect. - -#: }}} - -#: Keyboard shortcuts {{{ - -#: Keys are identified simply by their lowercase Unicode characters. -#: For example: a for the A key, [ for the left square bracket key, -#: etc. For functional keys, such as Enter or Escape, the names are -#: present at Functional key definitions -#: . -#: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt -#: (opt, option, ⌥), super (cmd, command, ⌘). - -#: Simple shortcut mapping is done with the map directive. For full -#: details on advanced mapping including modal and per application -#: maps, see mapping . Some -#: quick examples to illustrate common tasks:: - -#: # unmap a keyboard shortcut, passing it to the program running in kitty -#: map kitty_mod+space -#: # completely ignore a keyboard event -#: map ctrl+alt+f1 discard_event -#: # combine multiple actions -#: map kitty_mod+e combine : new_window : next_layout -#: # multi-key shortcuts -#: map ctrl+x>ctrl+y>z action - -#: The full list of actions that can be mapped to key presses is -#: available here . - -# kitty_mod ctrl+shift - -#: Special modifier key alias for default shortcuts. You can change -#: the value of this option to alter all default shortcuts that use -#: kitty_mod. - -# clear_all_shortcuts no - -#: Remove all shortcut definitions up to this point. Useful, for -#: instance, to remove the default shortcuts. - -# action_alias - -#: E.g. action_alias launch_tab launch --type=tab --cwd=current - -#: Define action aliases to avoid repeating the same options in -#: multiple mappings. Aliases can be defined for any action and will -#: be expanded recursively. For example, the above alias allows you to -#: create mappings to launch a new tab in the current working -#: directory without duplication:: - -#: map f1 launch_tab vim -#: map f2 launch_tab emacs - -#: Similarly, to alias kitten invocation:: - -#: action_alias hints kitten hints --hints-offset=0 - -# kitten_alias - -#: E.g. kitten_alias hints hints --hints-offset=0 - -#: Like action_alias above, but specifically for kittens. Generally, -#: prefer to use action_alias. This option is a legacy version, -#: present for backwards compatibility. It causes all invocations of -#: the aliased kitten to be substituted. So the example above will -#: cause all invocations of the hints kitten to have the --hints- -#: offset=0 option applied. - -#: Clipboard {{{ - -#: Copy to clipboard - -# map kitty_mod+c copy_to_clipboard - -#:: There is also a copy_or_interrupt action that can be optionally -#:: mapped to Ctrl+C. It will copy only if there is a selection and -#:: send an interrupt otherwise. Similarly, -#:: copy_and_clear_or_interrupt will copy and clear the selection or -#:: send an interrupt if there is no selection. The copy_or_noop -#:: action will copy if there is a selection and pass the key through -#:: to the application running in the terminal if there is no -#:: selection. - -#: Copy to clipboard or pass through - -# map cmd+c copy_or_noop - -#: Paste from clipboard - -# map kitty_mod+v paste_from_clipboard -# map cmd+v paste_from_clipboard - -#: Paste from selection - -# map kitty_mod+s paste_from_selection -# map shift+insert paste_from_selection - -#: Pass selection to program - -# map kitty_mod+o pass_selection_to_program - -#:: You can also pass the contents of the current selection to any -#:: program with pass_selection_to_program. By default, the system's -#:: open program is used, but you can specify your own, the selection -#:: will be passed as a command line argument to the program. For -#:: example:: - -#:: map kitty_mod+o pass_selection_to_program firefox - -#:: You can pass the current selection to a terminal program running -#:: in a new kitty window, by using the @selection placeholder:: - -#:: map kitty_mod+y new_window less @selection - -#: }}} - -#: Scrolling {{{ - -#: Scroll line up - -# map kitty_mod+up scroll_line_up -# map kitty_mod+k scroll_line_up -# map opt+cmd+page_up scroll_line_up -# map cmd+up scroll_line_up - -#: Scroll line down - -# map kitty_mod+down scroll_line_down -# map kitty_mod+j scroll_line_down -# map opt+cmd+page_down scroll_line_down -# map cmd+down scroll_line_down - -#: Scroll page up - -# map kitty_mod+page_up scroll_page_up -# map cmd+page_up scroll_page_up - -#: Scroll page down - -# map kitty_mod+page_down scroll_page_down -# map cmd+page_down scroll_page_down - -#: Scroll to top - -# map kitty_mod+home scroll_home -# map cmd+home scroll_home - -#: Scroll to bottom - -# map kitty_mod+end scroll_end -# map cmd+end scroll_end - -#: Scroll to previous shell prompt - -# map kitty_mod+z scroll_to_prompt -1 - -#:: Use a parameter of 0 for scroll_to_prompt to scroll to the last -#:: jumped to or the last clicked position. Requires shell -#:: integration -#:: to work. - -#: Scroll to next shell prompt - -# map kitty_mod+x scroll_to_prompt 1 - -#: Browse scrollback buffer in pager - -# map kitty_mod+h show_scrollback - -#:: You can pipe the contents of the current screen and history -#:: buffer as STDIN to an arbitrary program using launch --stdin- -#:: source. For example, the following opens the scrollback buffer in -#:: less in an overlay window:: - -#:: 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 . - -#: Browse output of the last shell command in pager - -# map kitty_mod+g show_last_command_output - -#:: You can also define additional shortcuts to get the command -#:: output. For example, to get the first command output on screen:: - -#:: map f1 show_first_command_output_on_screen - -#:: To get the command output that was last accessed by a keyboard -#:: action or mouse action:: - -#:: map f1 show_last_visited_command_output - -#:: You can pipe the output of the last command run in the shell -#:: using the launch action. For example, the following opens the -#:: output in less in an overlay window:: - -#:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R - -#:: To get the output of the first command on the screen, use -#:: @first_cmd_output_on_screen. To get the output of the last jumped -#:: to command, use @last_visited_cmd_output. - -#:: Requires shell integration -#:: to work. - -#: Search the scrollback within a pager - -# map kitty_mod+/ search_scrollback -# map cmd+f search_scrollback - -#:: Search for currently selected text in the scrollback using the -#:: configured scrollback_pager. Assumes that pressing the / key -#:: triggers search mode in the pager. If you want to create a manual -#:: mapping with a special pager for this, you can use something -#:: like: - -#:: map f1 combine : launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay mypager : send_key / - -#:: For more sophisticated control, such as using the current -#:: selection, use remote_control_script. - -#: }}} - -#: Window management {{{ - -#: New window - -# map kitty_mod+enter new_window -# map cmd+enter new_window - -#:: You can open a new kitty window running an arbitrary program, for -#:: example:: - -#:: map kitty_mod+y launch mutt - -#:: You can open a new window with the current working directory set -#:: to the working directory of the current window using:: - -#:: map ctrl+alt+enter launch --cwd=current - -#:: You can open a new window that is allowed to control kitty via -#:: the kitty remote control facility with launch --allow-remote- -#:: control. Any programs running in that window will be allowed to -#:: control kitty. For example:: - -#:: map ctrl+enter launch --allow-remote-control some_program - -#:: You can open a new window next to the currently active window or -#:: as the first window, with:: - -#:: map ctrl+n launch --location=neighbor -#:: map ctrl+f launch --location=first - -#:: For more details, see launch -#:: . - -#: New OS window - -# map kitty_mod+n new_os_window -# map cmd+n new_os_window - -#:: Works like new_window above, except that it opens a top-level OS -#:: window. In particular you can use new_os_window_with_cwd to open -#:: a window with the current working directory. - -#: Close window - -# map kitty_mod+w close_window -# map shift+cmd+d close_window - -#: Next window - -# map kitty_mod+] next_window - -#: Previous window - -# map kitty_mod+[ previous_window - -#: Move window forward - -# map kitty_mod+f move_window_forward - -#: Move window backward - -# map kitty_mod+b move_window_backward - -#: Move window to top - -# map kitty_mod+` move_window_to_top - -#: Start resizing window - -# map kitty_mod+r start_resizing_window -# map cmd+r start_resizing_window - -#: First window - -# map kitty_mod+1 first_window -# map cmd+1 first_window - -#: Second window - -# map kitty_mod+2 second_window -# map cmd+2 second_window - -#: Third window - -# map kitty_mod+3 third_window -# map cmd+3 third_window - -#: Fourth window - -# map kitty_mod+4 fourth_window -# map cmd+4 fourth_window - -#: Fifth window - -# map kitty_mod+5 fifth_window -# map cmd+5 fifth_window - -#: Sixth window - -# map kitty_mod+6 sixth_window -# map cmd+6 sixth_window - -#: Seventh window - -# map kitty_mod+7 seventh_window -# map cmd+7 seventh_window - -#: Eighth window - -# map kitty_mod+8 eighth_window -# map cmd+8 eighth_window - -#: Ninth window - -# map kitty_mod+9 ninth_window -# map cmd+9 ninth_window - -#: Tenth window - -# map kitty_mod+0 tenth_window - -#: Visually select and focus window - -# map kitty_mod+f7 focus_visible_window - -#:: Display overlay numbers and alphabets on the window, and switch -#:: the focus to the window when you press the key. When there are -#:: only two windows, the focus will be switched directly without -#:: displaying the overlay. You can change the overlay characters and -#:: their order with option visual_window_select_characters. - -#: Visually swap window with another - -# map kitty_mod+f8 swap_with_window - -#:: Works like focus_visible_window above, but swaps the window. - -#: }}} - -#: Tab management {{{ - -#: Next tab - -# map kitty_mod+right next_tab -# map shift+cmd+] next_tab -# map ctrl+tab next_tab - -#: Previous tab - -# map kitty_mod+left previous_tab -# map shift+cmd+[ previous_tab -# map ctrl+shift+tab previous_tab - -#: New tab - -# map kitty_mod+t new_tab -# map cmd+t new_tab - -#: Close tab - -# map kitty_mod+q close_tab -# map cmd+w close_tab - -#: Close OS window - -# map shift+cmd+w close_os_window - -#: Move tab forward - -# map kitty_mod+. move_tab_forward - -#: Move tab backward - -# map kitty_mod+, move_tab_backward - -#: Set tab title - -# map kitty_mod+alt+t set_tab_title -# map shift+cmd+i set_tab_title - - -#: You can also create shortcuts to go to specific tabs, with 1 being -#: the first tab, 2 the second tab and -1 being the previously active -#: tab, -2 being the tab active before the previously active tab and -#: so on. Any number larger than the number of tabs goes to the last -#: tab and any number less than the number of previously used tabs in -#: the history goes to the oldest previously used tab in the history:: - -#: map ctrl+alt+1 goto_tab 1 -#: map ctrl+alt+2 goto_tab 2 - -#: Just as with new_window above, you can also pass the name of -#: arbitrary commands to run when using new_tab and new_tab_with_cwd. -#: Finally, if you want the new tab to open next to the current tab -#: rather than at the end of the tabs list, use:: - -#: map ctrl+t new_tab !neighbor [optional cmd to run] -#: }}} - -#: Layout management {{{ - -#: Next layout - -# map kitty_mod+l next_layout - - -#: You can also create shortcuts to switch to specific layouts:: - -#: map ctrl+alt+t goto_layout tall -#: map ctrl+alt+s goto_layout stack - -#: Similarly, to switch back to the previous layout:: - -#: map ctrl+alt+p last_used_layout - -#: There is also a toggle_layout action that switches to the named -#: layout or back to the previous layout if in the named layout. -#: Useful to temporarily "zoom" the active window by switching to the -#: stack layout:: - -#: map ctrl+alt+z toggle_layout stack -#: }}} - -#: Font sizes {{{ - -#: You can change the font size for all top-level kitty OS windows at -#: a time or only the current one. - -#: Increase font size - -# map kitty_mod+equal change_font_size all +2.0 -# map kitty_mod+plus change_font_size all +2.0 -# map kitty_mod+kp_add change_font_size all +2.0 -# map cmd+plus change_font_size all +2.0 -# map cmd+equal change_font_size all +2.0 -# map shift+cmd+equal change_font_size all +2.0 - -#: Decrease font size - -# map kitty_mod+minus change_font_size all -2.0 -# map kitty_mod+kp_subtract change_font_size all -2.0 -# map cmd+minus change_font_size all -2.0 -# map shift+cmd+minus change_font_size all -2.0 - -#: Reset font size - -# map kitty_mod+backspace change_font_size all 0 -# map cmd+0 change_font_size all 0 - - -#: To setup shortcuts for specific font sizes:: - -#: map kitty_mod+f6 change_font_size all 10.0 - -#: To setup shortcuts to change only the current OS window's font -#: size:: - -#: map kitty_mod+f6 change_font_size current 10.0 - -#: To setup shortcuts to multiply/divide the font size:: - -#: map kitty_mod+f6 change_font_size all *2.0 -#: map kitty_mod+f6 change_font_size all /2.0 -#: }}} - -#: Select and act on visible text {{{ - -#: Use the hints kitten to select text and either pass it to an -#: external program or insert it into the terminal or copy it to the -#: clipboard. - -#: Open URL - -# map kitty_mod+e open_url_with_hints - -#:: Open a currently visible URL using the keyboard. The program used -#:: to open the URL is specified in open_url_with. - -#: Insert selected path - -# map kitty_mod+p>f kitten hints --type path --program - - -#:: Select a path/filename and insert it into the terminal. Useful, -#:: for instance to run git commands on a filename output from a -#:: previous git command. - -#: Open selected path - -# map kitty_mod+p>shift+f kitten hints --type path - -#:: Select a path/filename and open it with the default open program. - -#: Insert chosen file - -# map kitty_mod+p>c kitten choose-files - -#:: Select a file using the choose-files -#:: kitten -#:: and insert it into the terminal. - -#: Insert chosen directory - -# map kitty_mod+p>d kitten choose-files --mode=dir - -#:: Select a directory using the choose-files -#:: kitten -#:: and insert it into the terminal. - -#: Insert selected line - -# map kitty_mod+p>l kitten hints --type line --program - - -#:: Select a line of text and insert it into the terminal. Useful for -#:: the output of things like: `ls -1`. - -#: Insert selected word - -# map kitty_mod+p>w kitten hints --type word --program - - -#:: Select words and insert into terminal. - -#: Insert selected hash - -# map kitty_mod+p>h kitten hints --type hash --program - - -#:: Select something that looks like a hash and insert it into the -#:: terminal. Useful with git, which uses SHA1 hashes to identify -#:: commits. - -#: Open the selected file at the selected line - -# map kitty_mod+p>n kitten hints --type linenum - -#:: Select something that looks like filename:linenum and open it in -#:: your default editor at the specified line number. - -#: Open the selected hyperlink - -# map kitty_mod+p>y kitten hints --type hyperlink - -#:: Select a hyperlink (i.e. a URL that has been marked as such by -#:: the terminal program, for example, by `ls --hyperlink=auto`). - - -#: The hints kitten has many more modes of operation that you can map -#: to different shortcuts. For a full description see hints kitten -#: . -#: }}} - -#: Miscellaneous {{{ - -#: Show documentation - -# map kitty_mod+f1 show_kitty_doc overview - -#: Toggle fullscreen - -# map kitty_mod+f11 toggle_fullscreen -# map ctrl+cmd+f toggle_fullscreen - -#: Toggle maximized - -# map kitty_mod+f10 toggle_maximized - -#: Toggle macOS secure keyboard entry - -# map opt+cmd+s toggle_macos_secure_keyboard_entry - -#: macOS Cycle through OS Windows - -# map cmd+` macos_cycle_through_os_windows - -#: macOS Cycle through OS Windows backwards - -# map cmd+shift+` macos_cycle_through_os_windows_backwards - -#: Unicode input - -# map kitty_mod+u kitten unicode_input -# map ctrl+cmd+space kitten unicode_input - -#: Edit config file - -# map kitty_mod+f2 edit_config_file -# map cmd+, edit_config_file - -#: Open the kitty command shell - -# map kitty_mod+escape kitty_shell window - -#:: Open the kitty shell in a new window / tab / overlay / os_window -#:: to control kitty using commands. - -#: Increase background opacity - -# map kitty_mod+a>m set_background_opacity +0.1 - -#: Decrease background opacity - -# map kitty_mod+a>l set_background_opacity -0.1 - -#: Make background fully opaque - -# map kitty_mod+a>1 set_background_opacity 1 - -#: Reset background opacity - -# map kitty_mod+a>d set_background_opacity default - -#: Reset the terminal - -# map kitty_mod+delete clear_terminal reset active -# map opt+cmd+r clear_terminal reset active - -#:: You can create shortcuts to clear/reset the terminal. For -#:: example:: - -#:: # Reset the terminal -#:: map f1 clear_terminal reset active -#:: # Clear the terminal screen by erasing all contents -#:: map f1 clear_terminal clear active -#:: # Clear the terminal scrollback by erasing it -#:: map f1 clear_terminal scrollback active -#:: # Scroll the contents of the screen into the scrollback -#:: map f1 clear_terminal scroll active -#:: # Clear everything on screen up to the line with the cursor or the start of the current prompt (needs shell integration) -#:: map f1 clear_terminal to_cursor active -#:: # Same as above except cleared lines are moved into scrollback -#:: map f1 clear_terminal to_cursor_scroll active -#:: # Erase the last command and its output (needs shell integration to work) -#:: map f1 clear_terminal last_command active - -#:: If you want to operate on all kitty windows instead of just the -#:: current one, use all instead of active. - -#:: Some useful functions that can be defined in the shell rc files -#:: to perform various kinds of clearing of the current window: - -#:: .. code-block:: sh - -#:: clear-only-screen() { -#:: printf "\e[H\e[2J" -#:: } - -#:: clear-screen-and-scrollback() { -#:: printf "\e[H\e[3J" -#:: } - -#:: clear-screen-saving-contents-in-scrollback() { -#:: printf "\e[H\e[22J" -#:: } - -#:: For instance, using these escape codes, it is possible to remap -#:: Ctrl+L to both scroll the current screen contents into the -#:: scrollback buffer and clear the screen, instead of just clearing -#:: the screen. For ZSH, in ~/.zshrc, add: - -#:: .. code-block:: zsh - -#:: ctrl_l() { -#:: builtin print -rn -- $'\r\e[0J\e[H\e[22J' >"$TTY" -#:: builtin zle .reset-prompt -#:: builtin zle -R -#:: } -#:: zle -N ctrl_l -#:: bindkey '^l' ctrl_l - -#:: Alternatively, you can just add map ctrl+l clear_terminal -#:: to_cursor_scroll active to kitty.conf which works with no changes -#:: to the shell rc files, but only clears up to the prompt, it does -#:: not clear any text at the prompt itself. - -#: Clear to start - -# map cmd+k clear_terminal to_cursor active - -#: Clear scrollback - -# map option+cmd+k clear_terminal scrollback active - -#: Clear the last command - -# map cmd+l clear_terminal last_command active - -#: Clear screen - -# map cmd+ctrl+l clear_terminal to_cursor_scroll active - -#: Reload kitty.conf - -# map kitty_mod+f5 load_config_file -# map ctrl+cmd+, load_config_file - -#:: Reload kitty.conf, applying any changes since the last time it -#:: was loaded. Note that a handful of options cannot be dynamically -#:: changed and require a full restart of kitty. Particularly, when -#:: changing shortcuts for actions located on the macOS global menu -#:: bar, a full restart is needed. You can also map a keybinding to -#:: load a different config file, for example:: - -#:: map f5 load_config /path/to/alternative/kitty.conf - -#:: Note that all options from the original kitty.conf are discarded, -#:: in other words the new configuration *replace* the old ones. - -#: Debug kitty configuration - -# map kitty_mod+f6 debug_config -# map opt+cmd+, debug_config - -#:: Show details about exactly what configuration kitty is running -#:: with and its host environment. Useful for debugging issues. - -#: Send arbitrary text on key presses - -#:: E.g. map ctrl+shift+alt+h send_text all Hello World - -#:: You can tell kitty to send arbitrary (UTF-8) encoded text to the -#:: client program when pressing specified shortcut keys. For -#:: example:: - -#:: map ctrl+alt+a send_text all Special text - -#:: This will send "Special text" when you press the Ctrl+Alt+A key -#:: combination. The text to be sent decodes ANSI C escapes -#:: so you can use escapes like \e to send control -#:: codes or \u21fb to send Unicode characters (or you can just input -#:: the Unicode characters directly as UTF-8 text). You can use -#:: `kitten show-key` to get the key escape codes you want to -#:: emulate. - -#:: The first argument to send_text is the keyboard modes in which to -#:: activate the shortcut. The possible values are normal, -#:: application, kitty or a comma separated combination of them. The -#:: modes normal and application refer to the DECCKM cursor key mode -#:: for terminals, and kitty refers to the kitty extended keyboard -#:: protocol. The special value all means all of them. - -#:: Some more examples:: - -#:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) -#:: map ctrl+alt+a send_text normal Word\e[H -#:: map ctrl+alt+a send_text application Word\eOH -#:: # Run a command at a shell prompt (like typing the command and pressing Enter) -#:: map ctrl+alt+a send_text normal,application some command with arguments\r - -#: Open kitty Website - -# map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ - -#: Hide macOS kitty application - -# map cmd+h hide_macos_app - -#: Hide macOS other applications - -# map opt+cmd+h hide_macos_other_apps - -#: Minimize macOS window - -# map cmd+m minimize_macos_window - -#: Quit kitty - -# map cmd+q quit - -#: }}} - -#: }}} diff --git a/.config/kitty/solid.conf b/.config/kitty/solid.conf deleted file mode 100644 index f7a6ed2..0000000 --- a/.config/kitty/solid.conf +++ /dev/null @@ -1,3 +0,0 @@ -include base.conf -background_opacity 1 -map f5 load_config_file /home/arch/.config/kitty/kitty.conf diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua deleted file mode 100644 index 3b6a12e..0000000 --- a/.config/nvim/init.lua +++ /dev/null @@ -1,10 +0,0 @@ -vim.o.number = true -vim.o.relativenumber = true -vim.o.cursorline = true -vim.o.wrap = false -vim.o.tabstop = 2 -vim.o.softtabstop = 2 -vim.o.shiftwidth = 2 - --- Plugins bootstrap -require("config.lazy") diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json deleted file mode 100644 index 32b4349..0000000 --- a/.config/nvim/lazy-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, - "lualine.nvim": { "branch": "master", "commit": "47f91c416daef12db467145e16bed5bbfe00add8" }, - "nvim-web-devicons": { "branch": "master", "commit": "746ffbb17975ebd6c40142362eee1b0249969c5c" }, - "tokyonight.nvim": { "branch": "main", "commit": "5da1b76e64daf4c5d410f06bcb6b9cb640da7dfd" } -} diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua deleted file mode 100644 index 5e6c81b..0000000 --- a/.config/nvim/lua/config/lazy.lua +++ /dev/null @@ -1,29 +0,0 @@ --- Bootstrap lazy.nvim -local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" -if not (vim.uv or vim.loop).fs_stat(lazypath) then - local lazyrepo = "https://github.com/folke/lazy.nvim.git" - local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) - if vim.v.shell_error ~= 0 then - vim.api.nvim_echo({ - { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, - { out, "WarningMsg" }, - { "\nPress any key to exit..." }, - }, true, {}) - vim.fn.getchar() - os.exit(1) - end -end -vim.opt.rtp:prepend(lazypath) - --- Setup lazy.nvim -require("lazy").setup({ - spec = { - -- import plugins - { import = "plugins" }, - }, - -- Configure any other settings. - -- colorscheme that will be used when installing plugins. - install = { colorscheme = { "tokyonight" } }, - -- automatically check for plugin updates - checker = { enabled = true, notify = true }, -}) diff --git a/.config/nvim/lua/plugins/line.lua b/.config/nvim/lua/plugins/line.lua deleted file mode 100644 index b9b4d36..0000000 --- a/.config/nvim/lua/plugins/line.lua +++ /dev/null @@ -1,62 +0,0 @@ -return { - { - 'nvim-lualine/lualine.nvim', - dependencies = { 'nvim-tree/nvim-web-devicons' }, - opts = function() - return { - options = { - icons_enabled = true, - theme = 'auto', - component_separators = { left = '', right = ''}, - section_separators = { left = '', right = ''}, - disabled_filetypes = { - statusline = {}, - winbar = {}, - }, - ignore_focus = {}, - always_divide_middle = true, - always_show_tabline = true, - globalstatus = false, - refresh = { - statusline = 1000, - tabline = 1000, - winbar = 1000, - refresh_time = 16, -- ~60fps - events = { - 'WinEnter', - 'BufEnter', - 'BufWritePost', - 'SessionLoadPost', - 'FileChangedShellPost', - 'VimResized', - 'Filetype', - 'CursorMoved', - 'CursorMovedI', - 'ModeChanged', - }, - }, - }, - sections = { - lualine_a = {'mode'}, - lualine_b = {'branch', 'diff', 'diagnostics'}, - lualine_c = {'filename'}, - lualine_x = {'encoding', 'fileformat', 'filetype'}, - lualine_y = {'progress'}, - lualine_z = {'location'} - }, - inactive_sections = { - lualine_a = {}, - lualine_b = {}, - lualine_c = {'filename'}, - lualine_x = {'location'}, - lualine_y = {}, - lualine_z = {} - }, - tabline = {}, - winbar = {}, - inactive_winbar = {}, - extensions = {} - } - end - } -} diff --git a/.config/nvim/lua/plugins/theme.lua b/.config/nvim/lua/plugins/theme.lua deleted file mode 100644 index 1d8545a..0000000 --- a/.config/nvim/lua/plugins/theme.lua +++ /dev/null @@ -1,14 +0,0 @@ -return { - { - "folke/tokyonight.nvim", - lazy = false, - priority = 1000, - opts = {}, - config = function() - if os.getenv("TERM") ~= "linux" then - vim.cmd.colorscheme("tokyonight-storm") - end - end - } -} - diff --git a/.config/omf/bundle b/.config/omf/bundle deleted file mode 100644 index af1df51..0000000 --- a/.config/omf/bundle +++ /dev/null @@ -1,4 +0,0 @@ -theme agnoster -theme bobthefish -theme budspencer -theme default diff --git a/.config/omf/channel b/.config/omf/channel deleted file mode 100644 index 2bf5ad0..0000000 --- a/.config/omf/channel +++ /dev/null @@ -1 +0,0 @@ -stable diff --git a/.config/omf/theme b/.config/omf/theme deleted file mode 100644 index ff8a58d..0000000 --- a/.config/omf/theme +++ /dev/null @@ -1 +0,0 @@ -bobthefish diff --git a/.config/xdg-terminals.list b/.config/xdg-terminals.list deleted file mode 100644 index 578a836..0000000 --- a/.config/xdg-terminals.list +++ /dev/null @@ -1,2 +0,0 @@ -kitty.desktop -com.mitchellh.ghostty.desktop diff --git a/.config/zellij/config.kdl b/.config/zellij/config.kdl deleted file mode 100644 index 1b3fca2..0000000 --- a/.config/zellij/config.kdl +++ /dev/null @@ -1,536 +0,0 @@ -// -// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/arch/.config/zellij/config.kdl.bak -// -theme "tokyonight_storm" -keybinds clear-defaults=true { - locked { - bind "Ctrl g" { SwitchToMode "normal"; } - } - pane { - bind "left" { MoveFocus "left"; } - bind "down" { MoveFocus "down"; } - bind "up" { MoveFocus "up"; } - bind "right" { MoveFocus "right"; } - bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; } - bind "d" { NewPane "down"; SwitchToMode "normal"; } - bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; } - bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; } - bind "h" { MoveFocus "left"; } - bind "i" { TogglePanePinned; SwitchToMode "normal"; } - bind "j" { MoveFocus "down"; } - bind "k" { MoveFocus "up"; } - bind "l" { MoveFocus "right"; } - bind "n" { NewPane; SwitchToMode "normal"; } - bind "p" { SwitchFocus; } - bind "Ctrl p" { SwitchToMode "normal"; } - bind "r" { NewPane "right"; SwitchToMode "normal"; } - bind "s" { NewPane "stacked"; SwitchToMode "normal"; } - bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; } - bind "z" { TogglePaneFrames; SwitchToMode "normal"; } - } - tab { - bind "left" { GoToPreviousTab; } - bind "down" { GoToNextTab; } - bind "up" { GoToPreviousTab; } - bind "right" { GoToNextTab; } - bind "1" { GoToTab 1; SwitchToMode "normal"; } - bind "2" { GoToTab 2; SwitchToMode "normal"; } - bind "3" { GoToTab 3; SwitchToMode "normal"; } - bind "4" { GoToTab 4; SwitchToMode "normal"; } - bind "5" { GoToTab 5; SwitchToMode "normal"; } - bind "6" { GoToTab 6; SwitchToMode "normal"; } - bind "7" { GoToTab 7; SwitchToMode "normal"; } - bind "8" { GoToTab 8; SwitchToMode "normal"; } - bind "9" { GoToTab 9; SwitchToMode "normal"; } - bind "[" { BreakPaneLeft; SwitchToMode "normal"; } - bind "]" { BreakPaneRight; SwitchToMode "normal"; } - bind "b" { BreakPane; SwitchToMode "normal"; } - bind "h" { GoToPreviousTab; } - bind "j" { GoToNextTab; } - bind "k" { GoToPreviousTab; } - bind "l" { GoToNextTab; } - bind "n" { NewTab; SwitchToMode "normal"; } - bind "r" { SwitchToMode "renametab"; TabNameInput 0; } - bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; } - bind "Ctrl t" { SwitchToMode "normal"; } - bind "x" { CloseTab; SwitchToMode "normal"; } - bind "tab" { ToggleTab; } - } - resize { - bind "left" { Resize "Increase left"; } - bind "down" { Resize "Increase down"; } - bind "up" { Resize "Increase up"; } - bind "right" { Resize "Increase right"; } - bind "+" { Resize "Increase"; } - bind "-" { Resize "Decrease"; } - bind "=" { Resize "Increase"; } - bind "H" { Resize "Decrease left"; } - bind "J" { Resize "Decrease down"; } - bind "K" { Resize "Decrease up"; } - bind "L" { Resize "Decrease right"; } - bind "h" { Resize "Increase left"; } - bind "j" { Resize "Increase down"; } - bind "k" { Resize "Increase up"; } - bind "l" { Resize "Increase right"; } - bind "Ctrl n" { SwitchToMode "normal"; } - } - move { - bind "left" { MovePane "left"; } - bind "down" { MovePane "down"; } - bind "up" { MovePane "up"; } - bind "right" { MovePane "right"; } - bind "h" { MovePane "left"; } - bind "Ctrl h" { SwitchToMode "normal"; } - bind "j" { MovePane "down"; } - bind "k" { MovePane "up"; } - bind "l" { MovePane "right"; } - bind "n" { MovePane; } - bind "p" { MovePaneBackwards; } - bind "tab" { MovePane; } - } - scroll { - bind "e" { EditScrollback; SwitchToMode "normal"; } - bind "s" { SwitchToMode "entersearch"; SearchInput 0; } - } - search { - bind "c" { SearchToggleOption "CaseSensitivity"; } - bind "n" { Search "down"; } - bind "o" { SearchToggleOption "WholeWord"; } - bind "p" { Search "up"; } - bind "w" { SearchToggleOption "Wrap"; } - } - session { - bind "a" { - LaunchOrFocusPlugin "zellij:about" { - floating true - move_to_focused_tab true - } - SwitchToMode "normal" - } - bind "c" { - LaunchOrFocusPlugin "configuration" { - floating true - move_to_focused_tab true - } - SwitchToMode "normal" - } - bind "Ctrl o" { SwitchToMode "normal"; } - bind "p" { - LaunchOrFocusPlugin "plugin-manager" { - floating true - move_to_focused_tab true - } - SwitchToMode "normal" - } - bind "s" { - LaunchOrFocusPlugin "zellij:share" { - floating true - move_to_focused_tab true - } - SwitchToMode "normal" - } - bind "w" { - LaunchOrFocusPlugin "session-manager" { - floating true - move_to_focused_tab true - } - SwitchToMode "normal" - } - } - shared_except "locked" { - bind "Alt left" { MoveFocusOrTab "left"; } - bind "Alt down" { MoveFocus "down"; } - bind "Alt up" { MoveFocus "up"; } - bind "Alt right" { MoveFocusOrTab "right"; } - bind "Alt +" { Resize "Increase"; } - bind "Alt -" { Resize "Decrease"; } - bind "Alt =" { Resize "Increase"; } - bind "Alt [" { PreviousSwapLayout; } - bind "Alt ]" { NextSwapLayout; } - bind "Alt f" { ToggleFloatingPanes; } - bind "Ctrl g" { SwitchToMode "locked"; } - bind "Alt h" { MoveFocusOrTab "left"; } - bind "Alt i" { MoveTab "left"; } - bind "Alt j" { MoveFocus "down"; } - bind "Alt k" { MoveFocus "up"; } - bind "Alt l" { MoveFocusOrTab "right"; } - bind "Alt n" { NewPane; } - bind "Alt o" { MoveTab "right"; } - bind "Alt p" { TogglePaneInGroup; } - bind "Alt Shift p" { ToggleGroupMarking; } - bind "Ctrl q" { Quit; } - } - shared_except "locked" "move" { - bind "Ctrl h" { SwitchToMode "move"; } - } - shared_except "locked" "session" { - bind "Ctrl o" { SwitchToMode "session"; } - } - shared_except "locked" "scroll" "search" "tmux" { - bind "Ctrl b" { SwitchToMode "tmux"; } - } - shared_except "locked" "scroll" "search" { - bind "Ctrl s" { SwitchToMode "scroll"; } - } - shared_except "locked" "tab" { - bind "Ctrl t" { SwitchToMode "tab"; } - } - shared_except "locked" "pane" { - bind "Ctrl p" { SwitchToMode "pane"; } - } - shared_except "locked" "resize" { - bind "Ctrl n" { SwitchToMode "resize"; } - } - shared_except "normal" "locked" "entersearch" { - bind "enter" { SwitchToMode "normal"; } - } - shared_except "normal" "locked" "entersearch" "renametab" "renamepane" { - bind "esc" { SwitchToMode "normal"; } - } - shared_among "pane" "tmux" { - bind "x" { CloseFocus; SwitchToMode "normal"; } - } - shared_among "scroll" "search" { - bind "PageDown" { PageScrollDown; } - bind "PageUp" { PageScrollUp; } - bind "left" { PageScrollUp; } - bind "down" { ScrollDown; } - bind "up" { ScrollUp; } - bind "right" { PageScrollDown; } - bind "Ctrl b" { PageScrollUp; } - bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; } - bind "d" { HalfPageScrollDown; } - bind "Ctrl f" { PageScrollDown; } - bind "h" { PageScrollUp; } - bind "j" { ScrollDown; } - bind "k" { ScrollUp; } - bind "l" { PageScrollDown; } - bind "Ctrl s" { SwitchToMode "normal"; } - bind "u" { HalfPageScrollUp; } - } - entersearch { - bind "Ctrl c" { SwitchToMode "scroll"; } - bind "esc" { SwitchToMode "scroll"; } - bind "enter" { SwitchToMode "search"; } - } - renametab { - bind "esc" { UndoRenameTab; SwitchToMode "tab"; } - } - shared_among "renametab" "renamepane" { - bind "Ctrl c" { SwitchToMode "normal"; } - } - renamepane { - bind "esc" { UndoRenamePane; SwitchToMode "pane"; } - } - shared_among "session" "tmux" { - bind "d" { Detach; } - } - tmux { - bind "left" { MoveFocus "left"; SwitchToMode "normal"; } - bind "down" { MoveFocus "down"; SwitchToMode "normal"; } - bind "up" { MoveFocus "up"; SwitchToMode "normal"; } - bind "right" { MoveFocus "right"; SwitchToMode "normal"; } - bind "space" { NextSwapLayout; } - bind "\"" { NewPane "down"; SwitchToMode "normal"; } - bind "%" { NewPane "right"; SwitchToMode "normal"; } - bind "," { SwitchToMode "renametab"; } - bind "[" { SwitchToMode "scroll"; } - bind "Ctrl b" { Write 2; SwitchToMode "normal"; } - bind "c" { NewTab; SwitchToMode "normal"; } - bind "h" { MoveFocus "left"; SwitchToMode "normal"; } - bind "j" { MoveFocus "down"; SwitchToMode "normal"; } - bind "k" { MoveFocus "up"; SwitchToMode "normal"; } - bind "l" { MoveFocus "right"; SwitchToMode "normal"; } - bind "n" { GoToNextTab; SwitchToMode "normal"; } - bind "o" { FocusNextPane; } - bind "p" { GoToPreviousTab; SwitchToMode "normal"; } - bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; } - } -} - -// Plugin aliases - can be used to change the implementation of Zellij -// changing these requires a restart to take effect -plugins { - about location="zellij:about" - compact-bar location="zellij:compact-bar" - configuration location="zellij:configuration" - filepicker location="zellij:strider" { - cwd "/" - } - plugin-manager location="zellij:plugin-manager" - session-manager location="zellij:session-manager" - status-bar location="zellij:status-bar" - strider location="zellij:strider" - tab-bar location="zellij:tab-bar" - welcome-screen location="zellij:session-manager" { - welcome_screen true - } -} - -// Plugins to load in the background when a new session starts -// eg. "file:/path/to/my-plugin.wasm" -// eg. "https://example.com/my-plugin.wasm" -load_plugins { -} -web_client { - font "monospace" -} - -// Use a simplified UI without special fonts (arrow glyphs) -// Options: -// - true -// - false (Default) -// -// simplified_ui true - -// Choose the theme that is specified in the themes section. -// Default: default -// -// theme "dracula" - -// Choose the base input mode of zellij. -// Default: normal -// -// default_mode "locked" - -// Choose the path to the default shell that zellij will use for opening new panes -// Default: $SHELL -// -// default_shell "fish" - -// Choose the path to override cwd that zellij will use for opening new panes -// -// default_cwd "/tmp" - -// The name of the default layout to load on startup -// Default: "default" -// -// default_layout "compact" - -// The folder in which Zellij will look for layouts -// (Requires restart) -// -// layout_dir "/tmp" - -// The folder in which Zellij will look for themes -// (Requires restart) -// -// theme_dir "/tmp" - -// Toggle enabling the mouse mode. -// On certain configurations, or terminals this could -// potentially interfere with copying text. -// Options: -// - true (default) -// - false -// -// mouse_mode false - -// Toggle having pane frames around the panes -// Options: -// - true (default, enabled) -// - false -// -// pane_frames false - -// When attaching to an existing session with other users, -// should the session be mirrored (true) -// or should each user have their own cursor (false) -// (Requires restart) -// Default: false -// -// mirror_session true - -// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP -// eg. when terminal window with an active zellij session is closed -// (Requires restart) -// Options: -// - detach (Default) -// - quit -// -// on_force_close "quit" - -// Configure the scroll back buffer size -// This is the number of lines zellij stores for each pane in the scroll back -// buffer. Excess number of lines are discarded in a FIFO fashion. -// (Requires restart) -// Valid values: positive integers -// Default value: 10000 -// -// scroll_buffer_size 10000 - -// Provide a command to execute when copying text. The text will be piped to -// the stdin of the program to perform the copy. This can be used with -// terminal emulators which do not support the OSC 52 ANSI control sequence -// that will be used by default if this option is not set. -// Examples: -// -// copy_command "xclip -selection clipboard" // x11 -// copy_command "wl-copy" // wayland -// copy_command "pbcopy" // osx -// -// copy_command "pbcopy" - -// Choose the destination for copied text -// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard. -// Does not apply when using copy_command. -// Options: -// - system (default) -// - primary -// -// copy_clipboard "primary" - -// Enable automatic copying (and clearing) of selection when releasing mouse -// Default: true -// -// copy_on_select true - -// Path to the default editor to use to edit pane scrollbuffer -// Default: $EDITOR or $VISUAL -// scrollback_editor "/usr/bin/vim" - -// A fixed name to always give the Zellij session. -// Consider also setting `attach_to_session true,` -// otherwise this will error if such a session exists. -// Default: -// -// session_name "My singleton session" - -// When `session_name` is provided, attaches to that session -// if it is already running or creates it otherwise. -// Default: false -// -// attach_to_session true - -// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible -// Options: -// - true (default) -// - false -// -// auto_layout false - -// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected -// Options: -// - true (default) -// - false -// -// session_serialization false - -// Whether pane viewports are serialized along with the session, default is false -// Options: -// - true -// - false (default) -// -// serialize_pane_viewport false - -// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0 -// defaults to the scrollback size. If this number is higher than the scrollback size, it will -// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true. -// -// scrollback_lines_to_serialize 10000 - -// Enable or disable the rendering of styled and colored underlines (undercurl). -// May need to be disabled for certain unsupported terminals -// (Requires restart) -// Default: true -// -// styled_underlines false - -// How often in seconds sessions are serialized -// -// serialization_interval 10000 - -// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know -// metadata info on this session) -// (Requires restart) -// Default: false -// -// disable_session_metadata false - -// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it) -// (Requires restart) -// Default: true (if the host terminal supports it) -// -// support_kitty_keyboard_protocol false -// Whether to make sure a local web server is running when a new Zellij session starts. -// This web server will allow creating new sessions and attaching to existing ones that have -// opted in to being shared in the browser. -// When enabled, navigate to http://127.0.0.1:8082 -// (Requires restart) -// -// Note: a local web server can still be manually started from within a Zellij session or from the CLI. -// If this is not desired, one can use a version of Zellij compiled without -// `web_server_capability` -// -// Possible values: -// - true -// - false -// Default: false -// -// web_server false -// Whether to allow sessions started in the terminal to be shared through a local web server, assuming one is -// running (see the `web_server` option for more details). -// (Requires restart) -// -// Note: This is an administrative separation and not intended as a security measure. -// -// Possible values: -// - "on" (allow web sharing through the local web server if it -// is online) -// - "off" (do not allow web sharing unless sessions explicitly opt-in to it) -// - "disabled" (do not allow web sharing and do not permit sessions started in the terminal to opt-in to it) -// Default: "off" -// -// web_sharing "off" -// A path to a certificate file to be used when setting up the web client to serve the -// connection over HTTPs -// -// web_server_cert "/path/to/cert.pem" -// A path to a key file to be used when setting up the web client to serve the -// connection over HTTPs -// -// web_server_key "/path/to/key.pem" -/// Whether to enforce https connections to the web server when it is bound to localhost -/// (127.0.0.0/8) -/// -/// Note: https is ALWAYS enforced when bound to non-local interfaces -/// -/// Default: false -// -// enforce_https_for_localhost false - -// Whether to stack panes when resizing beyond a certain size -// Default: true -// -// stacked_resize false - -// Whether to show tips on startup -// Default: true -// -show_startup_tips false - -// Whether to show release notes on first version run -// Default: true -// -// show_release_notes false - -// Whether to enable mouse hover effects and pane grouping functionality -// default is true -// advanced_mouse_actions false - -// The ip address the web server should listen on when it starts -// Default: "127.0.0.1" -// (Requires restart) -// web_server_ip "127.0.0.1" - -// The port the web server should listen on when it starts -// Default: 8082 -// (Requires restart) -// web_server_port 8082 - -// A command to run (will be wrapped with sh -c and provided the RESURRECT_COMMAND env variable) -// after Zellij attempts to discover a command inside a pane when resurrecting sessions, the STDOUT -// of this command will be used instead of the discovered RESURRECT_COMMAND -// can be useful for removing wrappers around commands -// Note: be sure to escape backslashes and similar characters properly -// post_command_discovery_hook "echo $RESURRECT_COMMAND | sed " diff --git a/.config/zellij/themes/tokyonight_storm.kdl b/.config/zellij/themes/tokyonight_storm.kdl deleted file mode 100644 index 9ebad86..0000000 --- a/.config/zellij/themes/tokyonight_storm.kdl +++ /dev/null @@ -1,22 +0,0 @@ -// Tokyonight Zellij Colors -// Add this file to your `CONFIG_DIR/themes` directory as described here: -// https://zellij.dev/documentation/themes#getting-zellij-to-pick-up-the-theme - -themes { - tokyonight_storm { - fg "#c0caf5" - bg "#292e42" - // Black should match the terminal background color - // This ensures the top and bottom bars are transparent - black "#24283b" - red "#f7768e" - green "#9ece6a" - yellow "#e0af68" - blue "#7aa2f7" - magenta "#bb9af7" - cyan "#7dcfff" - white "#a9b1d6" - orange "#ff9e64" - } -} - diff --git a/.gitconfig b/.gitconfig deleted file mode 100644 index c8ff111..0000000 --- a/.gitconfig +++ /dev/null @@ -1,5 +0,0 @@ -[user] - email = dorozhenkov9@gmail.com - name = Rabbit -[core] - editor = nvim diff --git a/.gitignore b/.gitignore index f6d0ad8..3dd0e66 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -#.gitconfig -#.ssh/config +#git +#openssh diff --git a/.ssh/config b/.ssh/config deleted file mode 100644 index 3f5b238..0000000 --- a/.ssh/config +++ /dev/null @@ -1,7 +0,0 @@ -Host VPS - HostName postmodernist.ru - User root - Port 8749 -Host Gitea-host - HostName 192.168.1.4 - User root diff --git a/kitten b/kitten deleted file mode 100644 index e69de29..0000000 diff --git a/.config/user-dirs.dirs b/xdg-user-dirs/.config/user-dirs.dirs similarity index 100% rename from .config/user-dirs.dirs rename to xdg-user-dirs/.config/user-dirs.dirs diff --git a/.config/user-dirs.locale b/xdg-user-dirs/.config/user-dirs.locale similarity index 100% rename from .config/user-dirs.locale rename to xdg-user-dirs/.config/user-dirs.locale