From aba9e0f30ade85cee11b0e1a8b3c8c2a8250c46a Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Fri, 25 Apr 2025 07:43:43 +0200 Subject: [PATCH] [Build] Prepare for improved rendering capbilities --- build/render.js | 5 +- build/util.js | 7 +- config/fastfetch/config.jsonc | 137 + config/fish/config.fish | 18 +- config/hypr/hyprland/binds.conf | 154 +- config/hypr/hyprland/colors.conf | 14 - config/hypr/hyprland/general.conf | 33 +- config/hypr/hyprland/windowrules.conf | 173 +- .../{hyprland.conf => hyprland_desktop.conf} | 15 +- config/hypr/hyprland_laptop.conf | 74 + config/kitty/kitty.conf | 2646 +---------------- .../kitty/{kitty.conf.bak => kitty.conf.old} | 9 +- config/wlogout/layout | 30 + config/wlogout/lock-hover.png | Bin 0 -> 5771 bytes config/wlogout/lock.png | Bin 0 -> 5771 bytes config/wlogout/logout-hover.png | Bin 0 -> 3784 bytes config/wlogout/logout.png | Bin 0 -> 3784 bytes config/wlogout/power-hover.png | Bin 0 -> 10841 bytes config/wlogout/power.png | Bin 0 -> 10782 bytes config/wlogout/restart-hover.png | Bin 0 -> 7810 bytes config/wlogout/restart.png | Bin 0 -> 7810 bytes config/wlogout/sleep-hover.png | Bin 0 -> 5721 bytes config/wlogout/sleep.png | Bin 0 -> 5721 bytes config/yazi/keymap.toml | 14 +- config/yazi/package.toml | 12 + config/yazi/yazi.toml | 10 + config/zathura/zathurarc | 3 + renderable/astal/util/colours.scss | 4 + renderable/hypr/hyprland/colors.conf | 16 + {config => renderable}/hypr/hyprlock.conf | 10 +- renderable/wlogout/layout | 0 renderable/wlogout/style.css | 65 + {config => renderable}/yazi/theme.toml | 0 setup | 1 + system/environment | 16 + system/grub | 63 + system/mkinitcpio.conf | 73 + system/pacman.conf | 100 + 38 files changed, 900 insertions(+), 2802 deletions(-) create mode 100644 config/fastfetch/config.jsonc delete mode 100644 config/hypr/hyprland/colors.conf rename config/hypr/{hyprland.conf => hyprland_desktop.conf} (77%) create mode 100644 config/hypr/hyprland_laptop.conf rename config/kitty/{kitty.conf.bak => kitty.conf.old} (99%) create mode 100755 config/wlogout/layout create mode 100755 config/wlogout/lock-hover.png create mode 100755 config/wlogout/lock.png create mode 100755 config/wlogout/logout-hover.png create mode 100755 config/wlogout/logout.png create mode 100755 config/wlogout/power-hover.png create mode 100755 config/wlogout/power.png create mode 100755 config/wlogout/restart-hover.png create mode 100755 config/wlogout/restart.png create mode 100755 config/wlogout/sleep-hover.png create mode 100755 config/wlogout/sleep.png create mode 100644 config/yazi/package.toml create mode 100644 config/yazi/yazi.toml create mode 100644 config/zathura/zathurarc create mode 100644 renderable/astal/util/colours.scss create mode 100644 renderable/hypr/hyprland/colors.conf rename {config => renderable}/hypr/hyprlock.conf (91%) create mode 100644 renderable/wlogout/layout create mode 100644 renderable/wlogout/style.css rename {config => renderable}/yazi/theme.toml (100%) create mode 100644 system/environment create mode 100644 system/grub create mode 100644 system/mkinitcpio.conf create mode 100644 system/pacman.conf diff --git a/build/render.js b/build/render.js index 5c20fbb..2814ad1 100644 --- a/build/render.js +++ b/build/render.js @@ -4,6 +4,7 @@ const fs = require( 'fs' ); const path = require( 'path' ); const util = require( './util' ); const renderColourAsRGB = util.renderColourAsRGB; +const renderColourAsRGBA = util.renderColourAsRGBA; const renderColourAsHex = util.renderColourAsHex; const build = ( wallpaper, lockpaper, theme ) => { @@ -21,12 +22,14 @@ const build = ( wallpaper, lockpaper, theme ) => { 'colour-foreground-rgb': renderColourAsRGB( palette[ 0 ] ), 'colour-accent-hex': renderColourAsHex( palette[ 1 ] ), 'colour-accent-rgb': renderColourAsRGB( palette[ 1 ] ), + 'colour-accent-rgba': renderColourAsRGBA( palette[ 1 ], 0.3 ), 'colour-accent-2-hex': renderColourAsHex( palette[ 2 ] ), 'colour-accent-2-rgb': renderColourAsRGB( palette[ 2 ] ), 'colour-accent-3-hex': renderColourAsHex( palette[ 3 ] ), 'colour-accent-3-rgb': renderColourAsRGB( palette[ 3 ] ), 'colour-background-hex': renderColourAsHex( colours.background[ theme ] ), 'colour-background-rgb': renderColourAsRGB( colours.background[ theme ] ), + 'colour-background-rgba': renderColourAsRGBA( colours.background[ theme ], 0.5 ), 'colour-shadow-hex': renderColourAsHex( colours.shadow[ theme ] ), 'colour-shadow-rgb': renderColourAsRGB( colours.shadow[ theme ] ), 'colour-inavtive-hex': renderColourAsHex( colours.inactive[ theme ] ), @@ -57,7 +60,7 @@ const build = ( wallpaper, lockpaper, theme ) => { // recursively index files from config directory -> Maybe add a file to each // directory to indicate whether or not to index files in it? - const fileList = util.treeWalker( path.join( __dirname, '/../config/' ), '*', [ 'node_modules', '@girs', '.gitignore', '.git', 'flavours' ] ); + const fileList = util.treeWalker( path.join( __dirname, '/../renderable/' ), '*', [ 'node_modules', '@girs', '.gitignore', '.git', 'flavours' ] ); // TODO: Copy missing files over directly console.log( fileList ); diff --git a/build/util.js b/build/util.js index 2b53548..b40cbfc 100644 --- a/build/util.js +++ b/build/util.js @@ -38,8 +38,13 @@ const renderColourAsRGB = ( colour ) => { return `rgb( ${ colour[ 0 ] }, ${ colour[ 1 ] }, ${ colour[ 2 ] } )` } +const renderColourAsRGBA = ( colour, ambiance ) => { + return `rgb( ${ colour[ 0 ] }, ${ colour[ 1 ] }, ${ colour[ 2 ] }, ${ ambiance } )` +} + module.exports = { treeWalker, renderColourAsHex, - renderColourAsRGB + renderColourAsRGB, + renderColourAsRGBA } diff --git a/config/fastfetch/config.jsonc b/config/fastfetch/config.jsonc new file mode 100644 index 0000000..3bc2900 --- /dev/null +++ b/config/fastfetch/config.jsonc @@ -0,0 +1,137 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json", + "logo": { + "padding": { + "top": 2, + "left": 1, + "right": 2, + }, + }, + "display": { + "separator": " ", + }, + "modules": [ + // Title + { + "type": "title", + "format": "{#1}╭───────────── {#}{user-name-colored}", + }, + // System Information + { + "type": "custom", + "format": "{#1}│ {#}System Information", + }, + { + "type": "os", + "key": "{#separator}│ {#keys}󰍹 OS", + }, + { + "type": "kernel", + "key": "{#separator}│ {#keys}󰒋 Kernel", + }, + { + "type": "uptime", + "key": "{#separator}│ {#keys}󰅐 Uptime", + }, + { + "type": "packages", + "key": "{#separator}│ {#keys}󰏖 Packages", + "format": "{all}", + }, + { + "type": "custom", + "format": "{#1}│", + }, + // Desktop Environment + { + "type": "custom", + "format": "{#1}│ {#}Desktop Environment", + }, + { + "type": "de", + "key": "{#separator}│ {#keys}󰧨 DE", + }, + { + "type": "wm", + "key": "{#separator}│ {#keys}󱂬 WM", + }, + { + "type": "wmtheme", + "key": "{#separator}│ {#keys}󰉼 Theme", + }, + { + "type": "display", + "key": "{#separator}│ {#keys}󰹑 Resolution", + }, + { + "type": "shell", + "key": "{#separator}│ {#keys}󰞷 Shell", + }, + { + "type": "terminalfont", + "key": "{#separator}│ {#keys}󰛖 Font", + }, + { + "type": "custom", + "format": "{#1}│", + }, + // Hardware Information + { + "type": "custom", + "format": "{#1}│ {#}Hardware Information", + }, + { + "type": "cpu", + "key": "{#separator}│ {#keys}󰻠 CPU", + }, + { + "type": "gpu", + "key": "{#separator}│ {#keys}󰢮 GPU", + }, + { + "type": "memory", + "key": "{#separator}│ {#keys}󰍛 Memory", + }, + { + "type": "disk", + "key": "{#separator}│ {#keys}󰋊 Disk (/)", + "folders": "/", + }, + { + "type": "custom", + "format": "{#1}│", + }, + // Network + { + "type": "custom", + "format": "{#1}│ {#}Network", + }, + { + "type": "wifi", + "key": "{#separator}│ {#keys}⮃ WiFi", + }, + { + "type": "dns", + "key": "{#separator}│ {#keys}🖧 DNS", + }, + { + "type": "localip", + "key": "{#separator}│ {#keys}⍰ IP", + }, + { + "type": "custom", + "format": "{#1}│", + }, + // Colors + { + "type": "colors", + "key": "{#separator}│", + "symbol": "circle", + }, + // Footer + { + "type": "custom", + "format": "{#1}╰───────────────────────────────╯", + }, + ], +} diff --git a/config/fish/config.fish b/config/fish/config.fish index 84ee695..f27fa6c 100755 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -2,7 +2,8 @@ alias ls='ls -l --color' alias ll='ls -la --color' alias v='nvim' alias c='clear' -alias bt='bashtop' +alias zs='zathura-sandbox' +alias bt='bluetui' alias vicfg='cd ~/.config/nvim/ && nvim' alias fm='thunar .' alias gl='git ls-files --others --exclude-standard' @@ -11,14 +12,16 @@ alias gpu='git push' alias gp='git pull' alias gc='git commit -a -m' alias ga='git add ./*' -alias cfh='nvim ~/.config/hypr/' -alias cfn='nvim ~/.config/nvim/' -alias cff='nvim ~/.config/fish/config.fish' -alias cfw='nvim ~/.config/waybar/' -alias cf='nvim ~/.config/' +alias cfh='nvim ~/projects/active/dotfiles/config/hypr/' +alias cfn='nvim ~/projects/active/nvim/' +alias cff='nvim ~/projects/active/dotfiles/config/fish/' +alias cfw='nvim ~/projects/archive/dotfiles-old/pc/configs/waybar/' +alias cfa='nvim ~/projects/active/dotfiles/config/ags/' +alias cf='nvim ~/projects/active/dotfiles/' alias g='lazygit' alias open-webui='sudo systemctl start docker && sudo docker start -i open-webui' alias ai='ollama serve' +alias ff='fastfetch' # Add scripts in ~/projects/active/dotfiles/general/scripts/ to path fish_add_path -P ~/projects/active/dotfiles/scripts/ @@ -32,7 +35,8 @@ function y rm -f -- "$tmp" end -[ -f /usr/share/autojump/autojump.fish ]; and source /usr/share/autojump/autojump.fish +zoxide init --cmd j fish | source +# [ -f /usr/share/autojump/autojump.fish ]; and source /usr/share/autojump/autojump.fish if status is-interactive function fish_prompt diff --git a/config/hypr/hyprland/binds.conf b/config/hypr/hyprland/binds.conf index 30ac1f9..2490d3e 100644 --- a/config/hypr/hyprland/binds.conf +++ b/config/hypr/hyprland/binds.conf @@ -1,34 +1,64 @@ -#----------# -# KEYBINDS # -#----------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ KEYBINDS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + $mainMod = SUPER # These key-binds are non-specific, laptop config has a separate file that includes # extra config for it specifically bind = $mainMod, Q, killactive -bind = $mainMod SHIFT, Q, exit +# bind = $mainMod SHIFT, Q, exit bind = $mainMod, Return, exec, kitty -bind = $mainMod, C, killactive, # bind = $mainMod, E, exec, thunar bind = $mainMod SHIFT, E, exec, thunar bind = $mainMod, E, exec, kitty --hold fish -c "y" bind = $mainMod, V, togglefloating, bind = $mainMod, F, fullscreen, -# Launch commands +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ AGS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + +# ┌ ┐ +# │ Notifications │ +# └ ┘ +bind = $mainMod, N, exec, astal -i notifier toggle +bind = $mainMod, C, exec, astal -i notifier clear-newest +bind = $mainMod SHIFT, C, exec, astal -i notifier clear +bind = $mainMod SHIFT, N, exec, astal -i notifier show +bind = $mainMod CTRL SHIFT, N, exec, astal -i notifier hide + + +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ General │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + + +# ┌ ┐ +# │ Launch commands │ +# └ ┘ bind = $mainMod SHIFT, L, exec, librewolf bind = $mainMod SHIFT, D, exec, vesktop bind = $mainMod SHIFT, V, exec, vscodium bind = $mainMod SHIFT, T, exec, thunderbird bind = $mainMod SHIFT, H, exec, heroic -bind = $mainMod SHIFT, I, exec, notify-send 'AirPlay video server starting...' && terminator -e "systemctl start avahi-daemon && sleep 5 && uxplay -n LinuxVideoPlay -nh" -bind = $mainMod SHIFT, A, exec, notify-send 'AirPlay server starting...' && terminator -T "hidden-terminator" -e "systemctl start avahi-daemon && shairport-sync -a LinuxPlay" -bind = $mainMod SHIFT, G, exec, notify-send 'Preparing system for gaming...' && corectrl -bind = $mainMod SHIFT, P, exec, notify-send 'Steam is launching...' && steam -bind = $mainMod SHIFT, R, exec, notify-send 'Launching in Remoteplay optimised session' && steam -pipewire -bind = $mainMod CTRL, K, exec, notify-send 'Insta-Kill activated' && hyprctl kill +bind = $mainMod SHIFT, Z, exec, zathura +bind = $mainMod SHIFT, I, exec, notify-send 'AirPlay video server starting...' --app-name="AirPlay Video" && terminator -e "systemctl start avahi-daemon && sleep 5 && uxplay -n LinuxVideoPlay -nh" +bind = $mainMod SHIFT, A, exec, notify-send 'AirPlay server starting...' --app-name="AirPlay Audio" && terminator -T "hidden-terminator" -e "systemctl start avahi-daemon && shairport-sync -a LinuxPlay" +bind = $mainMod SHIFT, G, exec, notify-send 'Preparing system for gaming...' --app-name="Util" && corectrl +bind = $mainMod SHIFT, P, exec, notify-send 'Steam is launching...' --app-name="Steam" && steam +bind = $mainMod SHIFT, R, exec, notify-send 'Launching in Remoteplay optimised session' --app-name="Steam" && steam -pipewire +bind = $mainMod CTRL, K, exec, notify-send 'Insta-Kill activated' --app-name="Hyprctl" && hyprctl kill bind = $mainMod SHIFT, O, exec, terminator -e "~/projects/dotfiles/ai.sh" -# Screenshots +# ┌ ┐ +# │ Screenshots │ +# └ ┘ bind = $mainMod SHIFT, S, exec, grimblast --notify copy area bind = $mainMod CTRL, S, exec, grimblast --notify copysave area bind = $mainMod ALT, S, exec, grimblast --notify save area @@ -36,33 +66,46 @@ bind = , PRINT, exec, grimblast --notify copy screen bind = CTRL, PRINT, exec, grimblast --notify copysave screen bind = SHIFT, PRINT, exec, grimblast --notify save screen -# Rofi commands +# ┌ ┐ +# │ Rofi commands │ +# └ ┘ bind = $mainMod, Space, exec, killall rofi || rofi -show combi -modes combi -combi-modes "window,drun,run" bind = $mainMod SHIFT, Space, exec, rofi -modi "Global Search":"~/.config/rofi/spotlight/rofi-spotlight.sh" -show "Global Search" -config ~/.config/rofi/spotlight/rofi.rasi bind = $mainMod, P, exec, killall rofi || rofi -show p -modi p:rofi-power-menu -theme ~/.config/rofi/themes/power.rasi -# Logout commands +# ┌ ┐ +# │ Logout commands │ +# └ ┘ bind = $mainMod, escape, exec, wlogout bind = $mainMod ALT CTRL, L, exec, hyprlock --immediate -#--------------# -# Layout binds # -#--------------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ Layout binds │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── -# Move focus with mainMod + arrow keys + +# ┌ ┐ +# │ Move focus with mainMod + arrow keys │ +# └ ┘ bind = $mainMod, left, movefocus, l bind = $mainMod, right, movefocus, r bind = $mainMod, up, movefocus, u bind = $mainMod, down, movefocus, d -# Same with vim-motions +# ┌ ┐ +# │ Same with vim-motions │ +# └ ┘ bind = $mainMod, h, movefocus, l bind = $mainMod, l, movefocus, r bind = $mainMod, j, movefocus, d bind = $mainMod, k, movefocus, u -# Switch workspaces with mainMod + [0-9] +# ┌ ┐ +# │ Switch workspaces with mainMod + [0-9] │ +# └ ┘ bind = $mainMod, 1, workspace, 1 bind = $mainMod, 2, workspace, 2 bind = $mainMod, 3, workspace, 3 @@ -73,13 +116,16 @@ bind = $mainMod, 7, workspace, 7 bind = $mainMod, 8, workspace, 8 bind = $mainMod, 9, workspace, 9 bind = $mainMod, 0, workspace, 10 -bind = $mainMod ALT, left, workspace, e-1 -bind = $mainMod ALT, right, workspace, e+1 -bind = $mainMod ALT, h, workspace, e-1 -bind = $mainMod ALT, l, workspace, e+1 +bind = $mainMod CTRL, left, workspace, e-1 +bind = $mainMod CTRL, right, workspace, e+1 +bind = $mainMod CTRL, h, workspace, e-1 +bind = $mainMod CTRL, l, workspace, e+1 -# Move active window to a workspace with mainMod + SHIFT + [0-9] +# ┌ ┐ +# │ Move active window to a workspace with │ +# │ mainMod + SHIFT + [0-9] │ +# └ ┘ bind = $mainMod SHIFT, 1, movetoworkspace, 1 bind = $mainMod SHIFT, 2, movetoworkspace, 2 bind = $mainMod SHIFT, 3, movetoworkspace, 3 @@ -95,46 +141,72 @@ bind = $mainMod SHIFT, right, movetoworkspace, e+1 bind = $mainMod SHIFT, j, movetoworkspace, e-1 bind = $mainMod SHIFT, k, movetoworkspace, e+1 -# Scroll through existing workspaces with mainMod + scroll + +# ┌ ┐ +# │ Scroll through existing workspaces with │ +# │ mainMod + scroll │ +# └ ┘ bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_up, workspace, e-1 -# Tile window to a part of the screen -bind = $mainMod CTRL, left, movewindow, left -bind = $mainMod CTRL, right, movewindow, right -# move to next window / previous window with ALT + Tab / SHIFT + ALT + Tab +# ┌ ┐ +# │ Tile window to a part of the screen │ +# └ ┘ +# bind = $mainMod CTRL, left, movewindow, left +# bind = $mainMod CTRL, right, movewindow, right + + +# ┌ ┐ +# │ move to next window / previous window with │ +# │ ALT + Tab / SHIFT + ALT + Tab │ +# └ ┘ bind = ALT SHIFT, tab, cyclenext, prev # bind = ALT, tab, cyclenext, next # bind = ALT CTRL, tab, focusurgentorlast bind = ALT, tab, focusurgentorlast -# Master layout commands + +# ┌ ┐ +# │ Master layout commands │ +# └ ┘ bind = $mainMod CTRL, M, layoutmsg, swapwithmaster bind = $mainMod SHIFT, A, layoutmsg, addmaster bind = $mainMod SHIFT CTRL, right, layoutmsg, orientationnext bind = $mainMod SHIFT CTRL, left, layoutmsg, orientationprev -# Move/resize windows with mainMod + LMB/RMB and dragging + +# ┌ ┐ +# │ Move/resize windows with mainMod + LMB/RMB │ +# │ and dragging │ +# └ ┘ bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow -# Freeze +# ┌ ┐ +# │ Freeze │ +# └ ┘ bind = $mainMod SHIFT, escape, exec, hyprfreeze -a -# Volume control +# ┌ ┐ +# │ Volume control │ +# └ ┘ bind = ,code:123, exec, pamixer -i 5 bind = ,code:122, exec, pamixer -d 5 bind = ,code:121, exec, pamixer -t -# Brightness-Control -bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%' -bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%' +# ┌ ┐ +# │ Brightness-Control │ +# └ ┘ +bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%' --app-name="Brightness" +bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%' --app-name="Brightness" -# Monitor config binds -bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' -bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' +# ┌ ┐ +# │ Monitor config binds │ +# └ ┘ +bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 1920x0, 1, mirror, DP-1 && notify-send 'Set FPV goggles to mirror main screen' --app-name="Hyprctl" +bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1280x720@60, 3840x0, 1 && notify-send 'Set to expand FPV goggles' --app-name="Hyprctl" diff --git a/config/hypr/hyprland/colors.conf b/config/hypr/hyprland/colors.conf deleted file mode 100644 index f202770..0000000 --- a/config/hypr/hyprland/colors.conf +++ /dev/null @@ -1,14 +0,0 @@ -#---------# -# COLOURS # -#---------# - -general { - col.active_border = {{ accent_colour_1 }} {{ accent_colour_2 }} {{ accent_colour_3 }} 45deg - col.inactive_border = {{ inactive_colour }} -} - -decoration { - shadow { - color = {{ shadow_colour }} - } -} diff --git a/config/hypr/hyprland/general.conf b/config/hypr/hyprland/general.conf index 27842f0..2a83158 100644 --- a/config/hypr/hyprland/general.conf +++ b/config/hypr/hyprland/general.conf @@ -1,12 +1,16 @@ -#-----------------------# -# LAUNCHING OF PROGRAMS # -#-----------------------# -exec-once = dunst --startup_notification +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ LAUNCHING OF PROGRAMS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── +# exec-once = dunst --startup_notification +exec-once = ags run ~/projects/active/dotfiles/config/ags/notifications/ exec-once = ~/.config/hypr/xdg-portal-hyprland exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XAUTHORITY DISPLAY exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 -exec-once = waybar +# exec-once = waybar +exec-once = ags run ~/projects/active/dotfiles/config/astal --gtk4 exec-once = hypridle exec-once = nm-applet @@ -18,9 +22,11 @@ env = QT_QPA_PLATFORM,wayland env = QT_QPA_PLATFORM_THEME,qt6ct env = OLLAMA_HOST,0.0.0.0 -#-------# -# INPUT # -#-------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ INPUT │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── input { kb_layout = ch kb_options = caps:swapescape @@ -48,15 +54,19 @@ gestures { } -#----------------# -# GENERAL CONFIG # -#----------------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ GENERAL CONFIG │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── general { # See https://wiki.hyprland.org/Configuring/Variables/ for more gaps_in = 3 gaps_out = 10 border_size = 1 + col.active_border = rgba(cc5c00ff) rgba(cc5c00ff) rgba(ff0000ff) 45deg + col.inactive_border = rgba(595959aa) layout = master no_border_on_floating = false @@ -70,6 +80,7 @@ decoration { shadow { enabled = true range = 4 + color = rgba(1a1a1aee) } blur { diff --git a/config/hypr/hyprland/windowrules.conf b/config/hypr/hyprland/windowrules.conf index 34fd193..7e76135 100644 --- a/config/hypr/hyprland/windowrules.conf +++ b/config/hypr/hyprland/windowrules.conf @@ -1,108 +1,123 @@ -#-----------------# -# WORKSPACE RULES # -#-----------------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ WORKSPACE RULES │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + # Display full sized (without gaps), if only window on screen workspace = w[tv1], gapsout:0, gapsin:0 workspace = f[1], gapsout:0, gapsin:0 -windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1] -windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1] -windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] -windowrulev2 = rounding 0, floating:0, onworkspace:f[1] +windowrule = bordersize 0, floating:0, onworkspace:w[tv1] +windowrule = rounding 0, floating:0, onworkspace:w[tv1] +windowrule = bordersize 0, floating:0, onworkspace:f[1] +windowrule = rounding 0, floating:0, onworkspace:f[1] $mainMod = SUPER -#--------------# -# WINDOW RULES # -#--------------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ WINDOW RULES │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── windowrule = float, title:.*(rofi).* -windowrulev2 = animation popin, title:.*(rofi).* -windowrulev2 = center, title:(rofi)(.*) +windowrule = animation popin, title:.*(rofi).* +windowrule = center, title:(rofi)(.*) -windowrulev2 = move 1450 50, title:^(.*)(Power menu)$ -windowrule = workspace 2, evince -windowrulev2 = workspace 2, title:.*(Okular).* -windowrulev2 = fullscreen, title:wlogout -windowrule = workspace 2, librewolf -windowrulev2 = workspace 2, title:LibreWolf -windowrulev2 = workspace 2, title:(.*)(Discord)(.*) -windowrulev2 = workspace 3, title:^(Steam)(.*)$ -windowrulev2 = workspace 1, title:^(.*)(VSCodium)$ -windowrulev2 = center, title:^(.*)(VSCodium)$ -windowrule = workspace 3, minecraft-launcher -windowrule = tile, minecraft-launcher -windowrulev2 = fullscreen, title:^(.*)(Minecraft)(.*)$ -windowrulev2 = workspace 3, title:^(.*)(Minecraft)(.*)$ +windowrule = move 1450 50, title:^(.*)(Power menu)$ +windowrule = workspace 2, class:evince +windowrule = workspace 2, title:.*(Okular).* +windowrule = workspace 2, class:org.pwmt.zathura +windowrule = fullscreen, title:wlogout +windowrule = workspace 2, class:librewolf +windowrule = workspace 2, title:LibreWolf +windowrule = workspace 2, title:(.*)(Discord)(.*) +windowrule = workspace 3, title:^(Steam)(.*)$ +windowrule = workspace 1, title:^(.*)(VSCodium)$ +windowrule = center, title:^(.*)(VSCodium)$ +windowrule = workspace 3, class:minecraft-launcher +windowrule = tile, class:minecraft-launcher +windowrule = fullscreen, title:^(.*)(Minecraft)(.*)$ +windowrule = workspace 3, title:^(.*)(Minecraft)(.*)$ -windowrulev2 = workspace 1, title:^(.*)hidden-terminator*(.*)$ -windowrulev2 = size 0 0, title:^(.*)hidden-terminator*(.*)$ -windowrulev2 = move 0 0, title:^(.*)hidden-terminator*(.*)$ -windowrulev2 = float, title:^(.*)hidden-terminator*(.*)$ +windowrule = workspace 1, title:^(.*)hidden-terminator*(.*)$ +windowrule = size 0 0, title:^(.*)hidden-terminator*(.*)$ +windowrule = move 0 0, title:^(.*)hidden-terminator*(.*)$ +windowrule = float, title:^(.*)hidden-terminator*(.*)$ -# Set floating windows & position them centered -windowrule = float, file_progress -windowrule = center, file_progress +# ┌ ┐ +# │ Set rule for yazi filepicker │ +# └ ┘ +windowrule = float, title:^(.*)termfilechooser*(.*)$ +windowrule = size 1400 800, title:^(.*)termfilechooser*(.*)$ +windowrule = center, title:^(.*)termfilechooser*(.*)$ -windowrule = float, confirm -windowrule = center, confirm +# ┌ ┐ +# │ Set floating windows & position them centered │ +# └ ┘ +windowrule = float, class:file_progress +windowrule = center, class:file_progress -windowrule = float, dialog -windowrule = center, dialog +windowrule = float, class:confirm +windowrule = center, class:confirm -windowrule = float, download -windowrule = center, download +windowrule = float, class:dialog +windowrule = center, class:dialog -windowrule = float, notification -windowrule = center, notification +windowrule = float, class:download +windowrule = center, class:download -windowrule = float, error -windowrule = center, error +windowrule = float, class:notification +windowrule = center, class:notification -windowrule = float, splash -windowrule = center, splash +windowrule = float, class:error +windowrule = center, class:error -windowrule = float, confirmreset -windowrule = center, confirmreset +windowrule = float, class:splash +windowrule = center, class:splash -windowrulev2 = float, title:Open File -windowrulev2 = center, title:Open File +windowrule = float, class:confirmreset +windowrule = center, class:confirmreset -windowrulev2 = float, title:branchdialog -windowrulev2 = center, title:branchdialog +windowrule = float, title:Open File +windowrule = center, title:Open File -windowrule = float, Lxappearance -windowrule = center, Lxappearance +windowrule = float, title:branchdialog +windowrule = center, title:branchdialog -windowrulev2 = float, title:^(Media viewer)$ -windowrulev2 = center, title:^(Media viewer)$ +windowrule = float, class:Lxappearance +windowrule = center, class:Lxappearance -windowrulev2 = float, title:^(Volume Control)$ -windowrulev2 = center, title:^(Volume Control)$ +windowrule = float, title:^(Media viewer)$ +windowrule = center, title:^(Media viewer)$ -windowrulev2 = float, title:^(Picture-in-Picture)$ -windowrulev2 = center, title:^(Picture-in-Picture)$ +windowrule = float, title:^(Volume Control)$ +windowrule = center, title:^(Volume Control)$ -windowrulev2 = float, title:^(File Operation Progress)$ -windowrulev2 = center, title:^(File Operation Progress)$ +windowrule = float, title:^(Picture-in-Picture)$ +windowrule = center, title:^(Picture-in-Picture)$ -windowrulev2 = float, title:^(Loading)(.*)$ -windowrulev2 = center, title:^(Loading)(.*)$ +windowrule = float, title:^(File Operation Progress)$ +windowrule = center, title:^(File Operation Progress)$ -windowrule = float, pavucontrol-qt -windowrule = center, pavucontrol-qt +windowrule = float, title:^(Loading)(.*)$ +windowrule = center, title:^(Loading)(.*)$ -windowrule = float, pavucontrol -windowrule = center, pavucontrol +windowrule = float, class:pavucontrol-qt +windowrule = center, class:pavucontrol-qt -windowrule = float, file-roller -windowrule = center, file-roller +windowrule = float, class:pavucontrol +windowrule = center, class:pavucontrol -windowrulev2 = idleinhibit focus, title:^(Rocket League)(.*)$ -windowrulev2 = fullscreen, title:^(Steam Big Picture)$ -windowrule = idleinhibit always, steam -windowrule = idleinhibit always, lutris -windowrule = idleinhibit focus, vlc -windowrule = idleinhibit focus, supertuxkart -windowrulev2 = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$ -windowrulev2 = idleinhibit fullscreen, title:^(.*)(~)(.*)$ -windowrulev2 = idleinhibit focus, title:^(.*)(~)(.*)$ -windowrulev2 = idleinhibit focus, title:^(.*)(LibreWolf)(.*)$ +windowrule = float, class:file-roller +windowrule = center, class:file-roller + +windowrule = idleinhibit focus, title:^(Rocket League)(.*)$ +windowrule = fullscreen, title:^(Steam Big Picture)$ +windowrule = idleinhibit always, class:steam +windowrule = idleinhibit always, class:lutris +windowrule = idleinhibit focus, class:vlc +windowrule = idleinhibit focus, class:supertuxkart +windowrule = idleinhibit fullscreen, title:^(.*)(Discord)(.*)$ +windowrule = idleinhibit fullscreen, title:^(.*)(~)(.*)$ +windowrule = idleinhibit focus, title:^(.*)(~)(.*)$ +windowrule = idleinhibit focus, title:^(.*)(LibreWolf)(.*)$ diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland_desktop.conf similarity index 77% rename from config/hypr/hyprland.conf rename to config/hypr/hyprland_desktop.conf index fd9ec71..4ed1350 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland_desktop.conf @@ -11,9 +11,11 @@ -#----------# -# MONITORS # -#----------# +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ MONITORS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── # monitor=DP-1, preferred, 0x0, 1, vrr, 2 monitor=DP-1, 1920x1080@144, 0x0, 1, vrr, 2 @@ -29,9 +31,10 @@ source=./hyprland/binds.conf source=./hyprland/general.conf source=./hyprland/windowrules.conf -#---------# -# DESKTOP # -#---------# + +# ┌ ┐ +# │ DESKTOP │ +# └ ┘ workspace = 1, monitor:DP-1, default:1 workspace = 2, monitor:DP-2, default:1 workspace = 3, monitor:DP-1 diff --git a/config/hypr/hyprland_laptop.conf b/config/hypr/hyprland_laptop.conf new file mode 100644 index 0000000..f8bd47e --- /dev/null +++ b/config/hypr/hyprland_laptop.conf @@ -0,0 +1,74 @@ +#░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +#░ ░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░░░░░░░░░░░░░░ +#▒ ▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ +#▒ ▒▒▒▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒ ▒ ▒ ▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒ ▒▒▒ ▒ ▒▒▒▒▒▒▒ ▒▒ +#▓ ▓▓ ▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓ ▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓ +#▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ ▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓ +#▓ ▓▓▓▓ ▓▓▓▓▓ ▓▓▓ ▓ ▓▓▓ ▓▓▓▓ ▓ ▓▓▓ ▓▓▓ ▓▓ ▓ ▓▓▓ ▓▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓ ▓▓ ▓▓▓ ▓▓ ▓▓▓ ▓▓▓▓ ▓ ▓ +#█ ████ ████ ████ ██████ ████ ███ █ █ ██ ██ █ ███████████ ██████ █████ ██ ███ ████ █████ █ +#██████████████ █████ ██████████████████████████████████████████████████████████████████████████████████████████████████████ ██ + + + + + +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ MONITORS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + +monitor=eDP-1, 2880x1800@60, 0x0, 1.5 +# monitor=,highres highrr, auto, 1 + + +exec = swaybg -m fill -i /home/janis/Pictures/arch-bg.png + + +source=./hyprland/binds.conf +source=./hyprland/general.conf +source=./hyprland/windowrules.conf + +# ┌ ┐ +# │ LAPTOP │ +# └ ┘ +exec = hyprctl setcursor oreo_spark_blue_cursors 36 +env = HYPRCURSOR_THEME, Oreo_spark_blue_cursor +env = X_CURSOR_THEME, Oreo_spark_blue_cursor +env = XCURSOR_SIZE,24 +env = ELECTRON_ENABLE_HIGHDPI_SUPPORT, 1 +env = XDG_SESSION_TYPE, wayland +env = QT_QPA_PLATFORM,wayland +# env = QT_QPA_PLATFORM_THEME,qt6ct +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = GDK_SCALE,2 +exec-once = hyprpm reload -nn + +xwayland { + force_zero_scaling = true +} + +# ── Volume control ────────────────────────────────────────────────── +bind = ,code:123, exec, pamixer -i 5 +bind = ,code:122, exec, pamixer -d 5 +bind = ,code:121, exec, pamixer -t + + +# ── Brightness-Control ────────────────────────────────────────────── +bind = ,code:232, exec, light -U 5 && notify-send 'Display brightness decreased by 5%' +bind = ,code:233, exec, light -A 5 && notify-send 'Display brightness increased by 5%' + + +# ── Monitor config binds ──────────────────────────────────────────── +bind = $mainMod CTRL, D, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1, mirror, eDP-1 && notify-send 'Set to mirror internal display' +bind = $mainMod CTRL, E, exec, hyprctl keyword monitor HDMI-A-1, 1920x1080@60, 1920x0, 1 && notify-send 'Set to expand external display' + + +# ── Internal display controls ─────────────────────────────────────── +bind = $mainMod ALT, E, exec, hyprctl keyword monitor eDP-1, 2880x1800@60, 0x0, 1.5 && cpupower-gui -b && notify-send 'Set to battery optimized settings' +bind = $mainMod ALT, P, exec, hyprctl keyword monitor eDP-1, 2880x1800@120, 0x0, 1.5 && cpupower-gui -p && notify-send 'Set to performance optimized settings' + + +# ── Vivado inversion ──────────────────────────────────────────────── +windowrule = plugin:invertwindow, class:Vivado +windowrule = tile, title:(.*)Vivado(.*) diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index 12f2b84..db4cc82 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,2644 +1,30 @@ -# vim:fileencoding=utf-8:foldmethod=marker +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ Kitty Config │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── -Fonts {{{ - -#: kitty has very powerful font management. You can configure -#: individual font faces and even specify special fonts for particular -#: characters. - -font_family Source Code Pro -# 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 -#: . +# ┌ ┐ +# │ FONTS │ +# └ ┘ +font_family Source Code Pro font_size 12.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. +# ┌ ┐ +# │ Cursor config │ +# └ ┘ +cursor_trail 1 -# 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. - -# 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 - -#: 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. The default -#: value is 0, which means no overriding is performed. Useful when -#: working with applications that use colors that do not contrast well -#: with your preferred color scheme. - -#: 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. - -}}} - -#: 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. - -# 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. - -# 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 trigerred. 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. - -#: }}} - -#: 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. - -# scrollback_indicator_opacity 1.0 - -#: The opacity of the scrollback indicator which is a small colored -#: rectangle that moves along the right hand side of the window as you -#: scroll, indicating what fraction you have scrolled. The default is -#: one which means fully opaque, aka visible. Set to a value between -#: zero and one to make the indicator less visible. - -# 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. - -# 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 config │ +# └ ┘ 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. -# 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 yes - -#: 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. - -# 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 - -#: The default shape of the mouse pointer when dragging across text. - -#: 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). - -# linux_bell_theme __custom - -#: The XDG Sound Theme kitty will use to play the bell sound. 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. - -# 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. - -# 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 preseving 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. 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_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}{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. -#: 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 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 -#: 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. - -#: 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 1.0 - -#: The opacity of the background. 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. 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. - -# background_image none - -#: Path to a background image. Must be in PNG/JPEG/WEBP/TIFF/GIF/BMP -#: format. - -# 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. - -# background_image_linear no - -#: When background image is scaled, whether linear interpolation -#: should be used. - -# 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 specifiying 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 - -# 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_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_opacity is set and transparent windows are supported -#: or background_image is set. - -# 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. - -# 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. - -# 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 insesitive. -#: 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 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. - -#: bell -#: Ring the terminal bell. - -#: 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 - -# 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. WARNING: -#: This option works by using a hack when arbitrary color (or -#: background) is configured, as there is no proper Cocoa API for it. -#: It sets the background color of the entire window and makes the -#: titlebar transparent. As such it is incompatible with -#: background_opacity. If you want to use both, you are probably -#: better off just hiding the titlebar with hide_window_decorations. - -# 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 -# map cmd+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. - -#: 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. - -#: }}} - -#: 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 -#: }}} - -#: 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 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 - -#: 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 - -#:: 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 anytext at the prompt itself. - -#: Clear up to cursor line - -# map cmd+k clear_terminal to_cursor 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 - -#: }}} - -#: }}} - - -# BEGIN_KITTY_THEME -# Adwaita darker include current-theme.conf -# END_KITTY_THEME \ No newline at end of file diff --git a/config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.old similarity index 99% rename from config/kitty/kitty.conf.bak rename to config/kitty/kitty.conf.old index e285bcd..12f2b84 100644 --- a/config/kitty/kitty.conf.bak +++ b/config/kitty/kitty.conf.old @@ -432,8 +432,7 @@ mouse_hide_wait 3.0 #: 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. - -url_color #0087bd +# url_color #0087bd url_style curly #: The color and style for highlighting URLs on mouse-over. url_style @@ -2637,3 +2636,9 @@ show_hyperlink_targets yes #: }}} #: }}} + + +# BEGIN_KITTY_THEME +# Adwaita darker +include current-theme.conf +# END_KITTY_THEME \ No newline at end of file diff --git a/config/wlogout/layout b/config/wlogout/layout new file mode 100755 index 0000000..86b2184 --- /dev/null +++ b/config/wlogout/layout @@ -0,0 +1,30 @@ +{ + "label" : "lock", + "action" : "hyprlock", + "text" : "Lock", + "keybind" : "l" +} +{ + "label" : "reboot", + "action" : "systemctl reboot", + "text" : "Reboot", + "keybind" : "r" +} +{ + "label" : "shutdown", + "action" : "systemctl poweroff", + "text" : "Shutdown", + "keybind" : "s" +} +{ + "label" : "logout", + "action" : "hyprctl dispatch exit 0", + "text" : "Logout", + "keybind" : "e" +} +{ + "label" : "suspend", + "action" : "systemctl suspend", + "text" : "Suspend", + "keybind" : "u" +} diff --git a/config/wlogout/lock-hover.png b/config/wlogout/lock-hover.png new file mode 100755 index 0000000000000000000000000000000000000000..8fb86fe4421996ac31b81124dd628f74478672bb GIT binary patch literal 5771 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 Z=BpAK;a9M7S`-ulERi;5wI&`n{|3+(eklL| literal 0 HcmV?d00001 diff --git a/config/wlogout/lock.png b/config/wlogout/lock.png new file mode 100755 index 0000000000000000000000000000000000000000..430451c8df14dd98eac8bc6fd4a9aea3b6a1d8df GIT binary patch literal 5771 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 z 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 literal 0 HcmV?d00001 diff --git a/config/wlogout/logout.png b/config/wlogout/logout.png new file mode 100755 index 0000000000000000000000000000000000000000..128c9955b46dcd12fcbb3df8c9d989d1adca1fb7 GIT binary patch literal 3784 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 ALjV8( literal 0 HcmV?d00001 diff --git a/config/wlogout/power-hover.png b/config/wlogout/power-hover.png new file mode 100755 index 0000000000000000000000000000000000000000..122d3318ec07cff6a5b2883830d7003491ea9ecf GIT binary patch literal 10841 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 d6L~C&U+kZxR&qr-LCKQx#otWy|u8Qq#y)A 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 TnM0Cb5oBX&Z&73Bef9qU&dpfM literal 0 HcmV?d00001 diff --git a/config/wlogout/restart-hover.png b/config/wlogout/restart-hover.png new file mode 100755 index 0000000000000000000000000000000000000000..3e1853601ef6d61e2d49593f56d4b92d2280453b GIT binary patch literal 7810 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%0D^TMR7k8sOQ9pF4k+?e){3PqY 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 literal 0 HcmV?d00001 diff --git a/config/wlogout/sleep-hover.png b/config/wlogout/sleep-hover.png new file mode 100755 index 0000000000000000000000000000000000000000..0fd3badea33fadee1245b528bc04defa9510649d GIT binary patch literal 5721 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 literal 0 HcmV?d00001 diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml index 0bebfa9..2917f9a 100644 --- a/config/yazi/keymap.toml +++ b/config/yazi/keymap.toml @@ -2,9 +2,9 @@ prepend_keymap = [ # # undo trash - # { on = "u", run = "plugin restore", desc = "Restore last deleted files/folders" }, + { on = "u", run = "plugin restore", desc = "Restore last deleted files/folders" }, # # compress - # { on = "C", run = "plugin ouch --args=zip", desc = "Compress with ouch" }, + { on = "C", run = "plugin ouch tar.gz", desc = "Compress with ouch" }, # Goto { on = [ "g", "h" ], run = "cd ~", desc = "Go to ~" }, { on = [ "g", "c", "c" ], run = "cd ~/.config", desc = "Go to ~/.config" }, @@ -14,11 +14,11 @@ prepend_keymap = [ { on = [ "g", "c", "w" ], run = "cd ~/.config/waybar", desc = "Go to waybar config" }, { on = [ "g", "c", "n" ], run = "cd ~/.config/nvim", desc = "Go to NeoVim config" }, { on = [ "g", "a" ], run = "cd ~/.cache", desc = "Go to ~/.cache" }, - { on = [ "g", "n" ], run = "cd ~/NextCloud/Documents/",desc = "Go to NextCloud Documents" }, - { on = [ "g", "e", "c" ], run = "cd ~/projects/active/eth-gitlab/eth-code-expert", desc = "Go to ETH-Code-Expert" }, - { on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester2", desc = "Go to ETH Nextcloud" }, - { on = [ "g", "e", "p" ], run = "cd ~/projects/active/eth/semester2/", desc = "Go to ETH notes folder" }, - { on = [ "g", "e", "g" ], run = "cd ~/projects/active/eth-gitlab/pprog25-jahutz/", desc = "Go to ETH Gitlab folder" }, + { on = [ "g", "n" ], run = "cd ~/NextCloud/Documents/", desc = "Go to NextCloud Documents" }, + { on = [ "g", "e", "c" ], run = "cd ~/projects/active/eth-gitlab/eth-code-expert/Semester2/", desc = "Go to ETH-Code-Expert" }, + { on = [ "g", "e", "n" ], run = "cd ~/NextCloud/Documents/ETH/Semester2", desc = "Go to ETH Nextcloud" }, + { on = [ "g", "e", "p" ], run = "cd ~/projects/active/eth/semester2/", desc = "Go to ETH notes folder" }, + { on = [ "g", "e", "g" ], run = "cd ~/projects/active/eth-gitlab/pprog25-jahutz/", desc = "Go to ETH Gitlab folder" }, { on = [ "g", "l", "b" ], run = "cd ~/.local/bin", desc = "Go to ~/.local/bin" }, { on = [ "g", "l", "s" ], run = "cd ~/.local/share", desc = "Go to ~/.local/share" }, { on = [ "g", "s", "h" ], run = "cd ~/.steam/steam/steamapps/common", desc = "Go to ~/.steam/steam/steamapps/common" }, diff --git a/config/yazi/package.toml b/config/yazi/package.toml new file mode 100644 index 0000000..3bdbc80 --- /dev/null +++ b/config/yazi/package.toml @@ -0,0 +1,12 @@ +[[plugin.deps]] +use = "ndtoan96/ouch" +rev = "558188d" +hash = "2d0afef7b50747c543c4304004a72cec" + +[[plugin.deps]] +use = "boydaihungst/restore" +rev = "5d22884" +hash = "8e6fc2d660f661c91e30b10dd1a251b8" + +[flavor] +deps = [] diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml new file mode 100644 index 0000000..0225ecd --- /dev/null +++ b/config/yazi/yazi.toml @@ -0,0 +1,10 @@ +[plugin] +prepend_previewers = [ + # Archive previewer + { mime = "application/*zip", run = "ouch" }, + { mime = "application/x-tar", run = "ouch" }, + { mime = "application/x-bzip2", run = "ouch" }, + { mime = "application/x-7z-compressed", run = "ouch" }, + { mime = "application/x-rar", run = "ouch" }, + { mime = "application/x-xz", run = "ouch" }, +] diff --git a/config/zathura/zathurarc b/config/zathura/zathurarc new file mode 100644 index 0000000..62d8f2d --- /dev/null +++ b/config/zathura/zathurarc @@ -0,0 +1,3 @@ +set selection-clipboard clipboard +map D set "first-page-column 1:2" +map . nohlsearch diff --git a/renderable/astal/util/colours.scss b/renderable/astal/util/colours.scss new file mode 100644 index 0000000..9fb5481 --- /dev/null +++ b/renderable/astal/util/colours.scss @@ -0,0 +1,4 @@ +$fg-color: {{ colour-foreground-hex }}; +$bg-color: {{ colour-background-hex }}; +$accent-color: {{ colour-accent-hex }}; +$accent-color-2: {{ colour-accent-2-hex }}; diff --git a/renderable/hypr/hyprland/colors.conf b/renderable/hypr/hyprland/colors.conf new file mode 100644 index 0000000..bd5d568 --- /dev/null +++ b/renderable/hypr/hyprland/colors.conf @@ -0,0 +1,16 @@ +# ──────────────────────────────────────────────────────────────────── +# ╭────────────────────────────────────────────────╮ +# │ COLOURS │ +# ╰────────────────────────────────────────────────╯ +# ──────────────────────────────────────────────────────────────────── + +general { + col.active_border = {{ colour-accent-rgb }} {{ colour-accent-2-rgb }} {{ colour-accent-3-rgb }} 45deg + col.inactive_border = {{ colour-inactive-rgb }} +} + +decoration { + shadow { + color = {{ shadow_colour }} + } +} diff --git a/config/hypr/hyprlock.conf b/renderable/hypr/hyprlock.conf similarity index 91% rename from config/hypr/hyprlock.conf rename to renderable/hypr/hyprlock.conf index 168c7d5..bd5fc9f 100644 --- a/config/hypr/hyprlock.conf +++ b/renderable/hypr/hyprlock.conf @@ -13,7 +13,9 @@ general { grace = 15 } -# BACKGROUND +# ┌ ┐ +# │ BACKGROUND │ +# └ ┘ background { monitor = path = {{ lockpaper-path }} # Or screenshot @@ -21,7 +23,9 @@ background { blur_passes = 1 } -# PASSWORD INPUT +# ┌ ┐ +# │ PASSWORD INPUT │ +# └ ┘ input-field { monitor = size = 300, 40 @@ -29,7 +33,7 @@ input-field { dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8 dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0 dots_center = false - outer_color = {{ accent_colour_1 }} + outer_color = {{ colour-accent-rgb }} inner_color = rgb(200, 200, 200) font_color = rgb(10, 10, 10) fade_on_empty = true diff --git a/renderable/wlogout/layout b/renderable/wlogout/layout new file mode 100644 index 0000000..e69de29 diff --git a/renderable/wlogout/style.css b/renderable/wlogout/style.css new file mode 100644 index 0000000..0eb8a8c --- /dev/null +++ b/renderable/wlogout/style.css @@ -0,0 +1,65 @@ +/* + * ╭───────────────────────────────────────────────╮ + * │ WLOGOUT │ + * ╰───────────────────────────────────────────────╯ +*/ +window { + font-family: monospace; + font-size: 14pt; + color: #ffffff; /* text */ + background-color: {{ colour-background-rgba }}; +} + +button { + background-repeat: no-repeat; + background-position: center; + background-size: 25%; + border: none; + background-color: transparent; + margin: 5px; + transition: box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out; +} + +button:hover { + background-color: rgba(0, 94, 31, 0.2); +} + +button:focus { + background-color: {{ colour-accent-rgb }}; + color: {{ colour-primary-rgb }}; +} + +#lock { + background-image: image(url("./lock.png")); +} +#lock:focus { + background-image: image(url("./lock-hover.png")); +} + +#logout { + background-image: image(url("./logout.png")); +} +#logout:focus { + background-image: image(url("./logout-hover.png")); +} + +#suspend { + background-image: image(url("./sleep.png")); +} +#suspend:focus { + background-image: image(url("./sleep-hover.png")); +} + +#shutdown { + background-image: image(url("./power.png")); +} +#shutdown:focus { + background-image: image(url("./power-hover.png")); +} + +#reboot { + background-image: image(url("./restart.png")); +} +#reboot:focus { + background-image: image(url("./restart-hover.png")); +} diff --git a/config/yazi/theme.toml b/renderable/yazi/theme.toml similarity index 100% rename from config/yazi/theme.toml rename to renderable/yazi/theme.toml diff --git a/setup b/setup index 993d789..eef4efb 100755 --- a/setup +++ b/setup @@ -3,3 +3,4 @@ # Read platform to install on (only if no platform file present in ~/.config/) read -p "Choose the configs to install, Laptop or Desktop (l/D): " platform +ya pack -i diff --git a/system/environment b/system/environment new file mode 100644 index 0000000..23ce03f --- /dev/null +++ b/system/environment @@ -0,0 +1,16 @@ +# +# This file is parsed by pam_env module +# +# Syntax: simple "KEY=VAL" pairs on separate lines +# + +QT_QPA_PLATFORMTHEME=qt5ct +QT_STYLE_OVERRIDE=kvantum +GCM_CREDENTIAL_STORE=secretservice +VKD3D_CONFIG=dxr11,dxr +RADV_PERFTEST_RT=1 +ANDROID_HOME=/home/janis/Android/Sdk +QT_QPA_PLATFORM=wayland +JELLYFIN_WEB_DIR=/usr/share/jellyfin-web +GTK_THEME=Material-Black-Blueberry +EDITOR=nvim diff --git a/system/grub b/system/grub new file mode 100644 index 0000000..25e09c8 --- /dev/null +++ b/system/grub @@ -0,0 +1,63 @@ +# GRUB boot loader configuration + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=5 +GRUB_DISTRIBUTOR="Arch" +GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet splash" +GRUB_CMDLINE_LINUX="" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable booting from LUKS encrypted devices +#GRUB_ENABLE_CRYPTODISK=y + +# Set to 'countdown' or 'hidden' to change timeout behavior, +# press ESC key to display menu. +GRUB_TIMEOUT_STYLE=menu + +# Uncomment to use basic console +GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `videoinfo' +GRUB_GFXMODE=1920x1080 + +# Uncomment to allow the kernel use the same resolution used by grub +GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +#GRUB_COLOR_NORMAL="light-blue/black" +#GRUB_COLOR_HIGHLIGHT="light-cyan/blue" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +# Uncomment to make GRUB remember the last selection. This requires +# setting 'GRUB_DEFAULT=saved' above. +#GRUB_SAVEDEFAULT=true + +# Uncomment to disable submenus in boot menu +#GRUB_DISABLE_SUBMENU=y + +# Probing for other operating systems is disabled for security reasons. Read +# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this +# functionality install os-prober and uncomment to detect and include other +# operating systems. +GRUB_DISABLE_OS_PROBER=false +GRUB_THEME="/usr/share/grub/themes/monterey-grub-theme/theme.txt" diff --git a/system/mkinitcpio.conf b/system/mkinitcpio.conf new file mode 100644 index 0000000..2fd80a4 --- /dev/null +++ b/system/mkinitcpio.conf @@ -0,0 +1,73 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES=(usbhid xhci_hcd) +MODULES=() + +# BINARIES +# This setting includes any additional binaries a given user may +# wish into the CPIO image. This is run last, so it may be used to +# override the actual binaries included by a given hook +# BINARIES are dependency parsed, so you may safely ignore libraries +BINARIES=() + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in any way. This is useful for config files. +FILES=() + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No RAID, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect modconf block filesystems fsck) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev modconf block filesystems fsck) +# +## This setup assembles a mdadm array with an encrypted root file system. +## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. +# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) +# +## This setup loads an lvm2 volume group. +# HOOKS=(base udev modconf block lvm2 filesystems fsck) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr and fsck hooks. +HOOKS=(base udev autodetect modconf kms keyboard keymap consolefont block filesystems fsck plymouth) + +# COMPRESSION +# Use this to compress the initramfs image. By default, zstd compression +# is used. Use 'cat' to create an uncompressed image. +#COMPRESSION="zstd" +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +#COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() + +# MODULES_DECOMPRESS +# Decompress kernel modules during initramfs creation. +# Enable to speedup boot process, disable to save RAM +# during early userspace. Switch (yes/no). +#MODULES_DECOMPRESS="yes" diff --git a/system/pacman.conf b/system/pacman.conf new file mode 100644 index 0000000..7d7c2fd --- /dev/null +++ b/system/pacman.conf @@ -0,0 +1,100 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto +ILoveCandy +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +[arch4edu] +Server = https://de.arch4edu.mirror.kescher.at/$arch + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs