{"id":13475085,"url":"https://github.com/channel-42/dotfiles","last_synced_at":"2025-03-26T22:31:48.147Z","repository":{"id":216989466,"uuid":"247750735","full_name":"channel-42/dotfiles","owner":"channel-42","description":"My dotfiles for my Arch-Install(s)","archived":false,"fork":false,"pushed_at":"2022-05-09T08:50:35.000Z","size":41629,"stargazers_count":70,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-30T08:51:20.683Z","etag":null,"topics":["arch","bspwm","colorschemes","custom-stylesheet","dotfiles","firefox","linux","neovim","polybar","screenshot","theme","vim"],"latest_commit_sha":null,"homepage":"","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/channel-42.png","metadata":{"files":{"readme":"README.org","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-16T15:43:08.000Z","updated_at":"2024-09-12T08:59:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"cc665302-a11a-4a23-832f-e3a6ad920ec5","html_url":"https://github.com/channel-42/dotfiles","commit_stats":null,"previous_names":["channel-42/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/channel-42%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/channel-42%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/channel-42%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/channel-42%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/channel-42","download_url":"https://codeload.github.com/channel-42/dotfiles/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245747957,"owners_count":20665898,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arch","bspwm","colorschemes","custom-stylesheet","dotfiles","firefox","linux","neovim","polybar","screenshot","theme","vim"],"created_at":"2024-07-31T16:01:17.249Z","updated_at":"2025-03-26T22:31:48.134Z","avatar_url":"https://github.com/channel-42.png","language":"CSS","readme":"#+AUTHOR: channel-42\n#+STARTUP: overview \n#+OPTIONS: num:nil ^:{}\n\n#+HTML:\u003cdiv align=center\u003e\u003ca href=\"https://github.com/channel-42/dotfiles\"\u003e\u003cimg alt=\"cover image\" width=\"100%\"  src=\".resources/main.png\"\u003e\u003c/a\u003e\n\n* channel-42's dotfiles\n[[https://github.com/channel-42/dotfile/tree/master][https://img.shields.io/badge/Branch-Laptop-green.svg]]\n[[https://github.com/channel-42/dotfiles/tree/tower_branch][https://img.shields.io/badge/Branch-Tower-purple.svg]]\n[[https://img.shields.io/badge/License-MIT-orange.svg]]\n[[https://img.shields.io/badge/Distro-Arch-blue.svg]]\n\n/These are the dotfiles of my arch-laptop. Should you have any question about this setup, you can reach out to me via mail (see my profile)./\n\n#+HTML:\u003c/div\u003e\n\n* Table of Contents :TOC:noexport:\n- [[#channel-42s-dotfiles][channel-42's dotfiles]]\n- [[#about][About]]\n- [[#theme][Theme]]\n- [[#config][Config]]\n  - [[#emacs][emacs]]\n  - [[#nvim][nvim]]\n  - [[#xresources][Xresources]]\n  - [[#bspwm][bspwm]]\n  - [[#sxhkd][sxhkd]]\n  - [[#polybar][polybar]]\n  - [[#qutebrowser][qutebrowser]]\n  - [[#zsh][zsh]]\n  - [[#zathura][zathura]]\n  - [[#dunst][dunst]]\n  - [[#kitty][kitty]]\n\n* About\nThis is my main Arch laptop setup. The Arch desktop setup can be found in this repo as a separate branch. For my gentoo system, see [[https://github.com/channel-42/gentoo][this]] repo.\n\nThe most important configs are located in this org document and then tangled to the required path. Older configs, e.g. for nvim, firefox, rofi, etc. will still be kept in the repo for documentation. However, they will no longer be maintained!\n\nHere's a brief overview of the most important programs used:\n\n#+HTML:\u003cdiv align=center\u003e\n\n| Category   | Name                  |\n|------------+-----------------------|\n| wm         | bpswm-rounded-corners |\n| statusbar  | polybar               |\n| launcher   | emacs                 |\n| compositor | picom-git             |\n| terminal   | kitty                 |\n| browser    | qutebrowser           |\n| editor     | emacs                 |\n\n#+HTML:\u003c/div\u003e\n\n* Theme\nThe entire config is based on github's dark default theme, a high-contrast dark colorscheme. \n* Config\n** emacs\nMy emacs config files can be found in my [[https://github.com/channel-42/gmacs][gmacs]] repo.\n** nvim\nMy minimal nvim config. Mainly used for editing config files.\n*** init\n#+begin_src vimrc :tangle ~/.config/nvim/init.vim\nlet \u0026packpath = \u0026runtimepath\n\nsource ~/.config/nvim/plugins.vim\nluafile ~/.config/nvim/galaxy.lua\n\nsyntax enable\nset mouse=a\nset hidden\nset splitbelow \nset splitright\nset number relativenumber\nset encoding=utf-8\nset backspace=indent,eol,start\nset cursorline\nset complete+=kspell\nset termguicolors\nset nospell\nset clipboard+=unnamedplus\n\" versplit char\nset fillchars+=vert:\\▏\nset expandtab\nset shiftwidth=4\nset softtabstop=4\nset smartindent\nset autoindent\nset updatetime=300\nset conceallevel=0\nset shortmess+=c\nset tags=./tags,tags;$HOME\nset timeout \n\ncolorscheme github_dark_default\n#+end_src\n\n*** Plugins\n#+begin_src vimrc :tangle ~/.config/nvim/plugins.vim\ncall plug#begin(stdpath('data') . '/plugged')\n\nPlug 'projekt0n/github-nvim-theme'\nPlug 'glepnir/galaxyline.nvim' , {'branch': 'main'}\nPlug 'kyazdani42/nvim-web-devicons' \" lua\nPlug 'Raimondi/delimitMate'\nPlug 'ap/vim-css-color'\n\ncall plug#end()\nfiletype plugin indent on \"required\n#+end_src\n\n*** galaxyline\n#+begin_src lua :tangle ~/.config/nvim/galaxy.lua\n-- imports\nlocal gl = require('galaxyline')\nlocal condition = require('galaxyline.condition')\nlocal gls = gl.section\n\n-- short bar types\n--gl.short_line_list = {'NvimTree','vista','dbui','packer'}\ngl.short_line_list = {\" \"}\n\n-- custom colors\nlocal colors = {\n    bg=     '#0d1117',\n    red=     '#ff7b72',\n    green=     '#3fb950',\n    yellow=     '#d29922',\n    orange=    '#bf946b',\n    blue=     '#58a6ff',\n    violet=    '#cdafd9',\n    magenta=     '#796e7f',\n    darkblue=    '#55648',\n    cyan=     '#7b8e93',\n    bg_light= \"#282828\",\n    bg_blue = '#282828',\n    fg=    '#f7f8f8',\n    clear= 'None',\n}\n\n-- left bar\ngls.left[1] = {\n  RoundLeftLight= {\n    provider = function() return \"\" end,\n    highlight = {colors.bg_light,colors.bg}\n  },\n}\ngls.left[2] = {\n  ViMode = {\n    provider = function()\n      -- auto change color according the vim mode\n      local mode_color = {n = colors.red, i = colors.green,v=colors.blue,\n                          ['\u0016'] = colors.blue,V=colors.blue,\n                          c = colors.magenta,no = colors.red,s = colors.orange,\n                          S=colors.orange,['\u0013'] = colors.orange,\n                          ic = colors.yellow,R = colors.violet,Rv = colors.violet,\n                          cv = colors.red,ce=colors.red, r = colors.cyan,\n                          rm = colors.cyan, ['r?'] = colors.cyan,\n                          ['!']  = colors.red,t = colors.red\n                        }\n      vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color[vim.fn.mode()])\n      return '    '\n    end,\n    highlight = {colors.red,colors.bg_light,'bold'},\n  },\n}\n\ngls.left[3] = {\n  PaddingBlue = {\n    provider = function() return \" \" end,\n    highlight = {colors.bg_blue,colors.bg_blue}\n  },\n}\n\ngls.left[4] = {\n  FileSize = {\n    provider = 'FileSize',\n    condition = condition.buffer_not_empty,\n    highlight = {colors.fg,colors.bg_blue}\n  }\n}\n\n\ngls.left[5] ={\n  FileIcon = {\n    provider = 'FileIcon',\n    condition = condition.buffer_not_empty,\n    highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color,colors.bg_blue},\n  },\n}\n\ngls.left[6] = {\n  FileName = {\n    provider = 'FileName',\n    condition = condition.buffer_not_empty,\n    highlight = {colors.red,colors.bg_blue,'bold'}\n  }\n}\n\n\ngls.left[7] = {\n  PerCent = {\n    provider = 'LinePercent',\n    highlight = {colors.fg,colors.bg_blue,'bold'},\n  }\n}\n\n-- LSP stuff\n\ngls.left[8] = {\n  DiagnosticError = {\n    provider = 'DiagnosticError',\n    icon = '  ',\n    highlight = {colors.red,colors.bg_blue}\n  }\n}\ngls.left[9] = {\n  DiagnosticWarn = {\n    provider = 'DiagnosticWarn',\n    icon = '  ',\n    highlight = {colors.orange,colors.bg_blue},\n  }\n}\n\ngls.left[10] = {\n  DiagnosticHint = {\n    provider = 'DiagnosticHint',\n    icon = '  ',\n    highlight = {colors.cyan,colors.bg_blue},\n  }\n}\n\ngls.left[11] = {\n  DiagnosticInfo = {\n    provider = 'DiagnosticInfo',\n    icon = '  ',\n    highlight = {colors.blue,colors.bg_blue},\n  }\n}\ngls.left[12] = {\n  RoundRightBlue = {\n    provider = function() return \"\" end,\n    highlight = {colors.bg_blue,colors.bg}\n  },\n}\n\n-- right bar\n\ngls.right[1] = {\n  RoundLeftBlue = {\n    provider = function() return \"\" end,\n    highlight = {colors.bg_blue,colors.bg}\n  },\n}\n\ngls.right[2] = {\n  FileEncode = {\n    provider = 'FileEncode',\n    condition = condition.hide_in_width,\n    highlight = {colors.red,colors.bg_blue,'bold'}\n  }\n}\ngls.right[4] = {\n    PaddingBlue = {provider = function() return \" \" end}\n}\n\ngls.right[5] = {\n  FileFormat = {\n    provider = 'FileFormat',\n    condition = condition.hide_in_width,\n    separator = ' ',\n    separator_highlight = {'NONE',colors.bg_light},\n    highlight = {colors.red,colors.bg_light,'bold'}\n  }\n}\n\n-- git stuff\n\ngls.right[6] = {\n  GitIcon = {\n    provider = function() return '  ' end,\n    condition = condition.check_git_workspace,\n    separator = ' ',\n    separator_highlight = {'NONE',colors.bg_light},\n    highlight = {colors.violet,colors.bg_light,'bold'},\n  }\n}\n\ngls.right[7] = {\n  GitBranch = {\n    provider = 'GitBranch',\n    condition = condition.check_git_workspace,\n    highlight = {colors.violet,colors.bg_light,'bold'},\n  }\n}\n\ngls.right[8] = {\n  DiffAdd = {\n    provider = 'DiffAdd',\n    condition = condition.hide_in_width,\n    icon = '  ',\n    highlight = {colors.green,colors.bg_light},\n  }\n}\ngls.right[9] = {\n  DiffModified = {\n    provider = 'DiffModified',\n    condition = condition.hide_in_width,\n    icon = ' 柳',\n    highlight = {colors.orange,colors.bg_light},\n  }\n}\n\ngls.right[10] = {\n  DiffRemove = {\n    provider = 'DiffRemove',\n    condition = condition.hide_in_width,\n    icon = '  ',\n    highlight = {colors.red,colors.bg_light},\n  }\n}\n\n\ngls.right[11] = {\n  RoundRightLight = {\n    provider = function() return \"\" end,\n    highlight = {colors.bg_light,colors.bg}\n  },\n}\n\n--[[ bar short left\n\ngls.short_line_left[1] = {\n  RoundLeftLight = {provider = function() return ' ' end},\n}\n\ngls.short_line_left[2] = {\n  FileIconGrey = {\n    provider = 'FileIcon',\n    condition = condition.buffer_not_empty,\n        highlight = {require('galaxyline.provider_fileinfo').get_file_icon_color,colors.bg_light},\n  },\n}\n\ngls.short_line_left[3] = {\n  SFileName = {\n    provider =  'SFileName',\n    condition = condition.buffer_not_empty,\n    highlight = {colors.fg,colors.bg_light,'bold'}\n  }\n}\n\ngls.short_line_left[4] = {\n    RoundRightLight = {provider = function() return \"\" end},\n}\n--]]\n#+end_src\n\n** Xresources\n#+begin_src conf :tangle ~/.Xresources\n!Copy paste bindings\nURxvt.keysym.Shift-Control-V: eval:paste_clipboard\nURxvt.keysym.Shift-Control-C: eval:selection_to_clipboard\nURxvt.keysym.Control-Meta-C: builtin-string: \nURxvt.keysym.Control-Meta-V: builtin-string: \nURxvt.iso14755: false\n\n!General settings\nURxvt.scrollBar: false\nURxvt.internalBorder:  40\nURxvt*font: xft:Hack Nerd Font Mono:size=11, xft:Symbola:style=Regular:size=14,xft:M+ 1c\nURxvt.cursorBlink: True\nURxvt*iconFile: /usr/share/icons/custom/urxvt_ico.png\n!ROFI SETUP\nrofi.hide-scrollbar: true\nrofi.show-icons: True\nURxvt*depth: 32\nURxvt.background: [80]#1d1f21\n!COLORSCHMES\n! special\n*.background: #0d1117\n*.foreground: #b3b1ad\n*.highlight: #a5d6ff\n! normal\n*.color0: #0d1117\n*.color1: #ff7b72\n*.color2: #3fb950\n*.color3: #d29922\n*.color4: #58a6ff\n*.color5: #bc8cff\n*.color6: #39c5cf\n*.color7: #b1bac4\n\n! bright\n*.color8: #6e7681\n*.color9: #ffa198\n*.color10: #56d364\n*.color11: #e3b341\n*.color12: #79c0ff\n*.color13: #d2a8ff\n*.color14: #56d4dd\n*.color15: #f0f6fc\n\n\n#+end_src\n\n** bspwm\n#+begin_src shell :tangle ~/.config/bspwm/bspwmrc\n#! /bin/sh\n# autostart\nexec $HOME/scripts/bash/autostart.sh \u0026\nexec $HOME/scripts/bash/wpp -c $HOME/Pictures/Wallpapers/ios.jpg \u0026\nexec sudo powertop --auto-tune \u0026\nexec emacs --daemon \u0026\u003e /dev/null \u0026\nffplay -nodisp -autoexit -volume 15 $HOME/.resources/boot_sound.mp3 \u003e/dev/null 2\u003e\u00261 \u0026\n\nkillall picom \npicom --experimental-backends \u0026\n\n# setup workspaces\nbspc monitor eDP1 -d I II III IV V\n\nkillall mpd\nmpd \u0026\n\n# get xrdb colors\nhighlight=$(xrdb -query | grep \"*.highlight\" | cut -f 2)\nbackground=$(xrdb -query | grep \"*.background\" | cut -f 2)\n\n# config bindings\nbspc config pointer_modifier mod4\nbspc config pointer_action1 move\nbspc config pointer_action2 resize_corner \n# config window properties\nbspc config border_width 0\nbspc config window_gap 10\nbspc config top_padding 45\nbspc config border_radius 10\n# more configs\nbspc config focus_follows_pointer true\nbspc config focused_border_color \"$highlight\"\nbspc config normal_border_color \"$background\"\nbspc config split_ratio 0.52\nbspc config borderless_monocle true\nbspc config gapless_monocle false\n\n# rules\nbspc rule -a \"Emacs\" state=fullscreen\nbspc rule -a \"*:*:emacs-run-launcher\" state=floating\nbspc rule -a \"pinentry-qt\" state=floating\n#+end_src\n\n** sxhkd\n#+begin_src conf :tangle ~/.config/sxhkd/sxhkdrc\n#\n# wm independent hotkeys\n#\n\n# terminal emulator\nsuper + Return\n        kitty\t\n\n# program launcher\nsuper + @space\n        emacsclient -a \"\" -n -e \"(call-interactively 'emacs-run-launcher)\" \u0026\u003e /dev/null\n        #dmenu_run -fn \"FiraCode\" -h 35 -sb \"#8c4688\" -sf \"#ffffff\" -p \"run:\"\n\t    #rofi -show run -lines 3 -eh 2 -width 100 -theme $HOME/.config/rofi/materia.rasi \n\nalt + Tab\n        rofi -show window -lines 8 -eh 1 -width 100 -theme $HOME/.config/rofi/materia_wd.rasi \n\n# make sxhkd reload its configuration files:\nsuper + Escape\n\tpkill -USR1 -x sxhkd\n\nsuper + i\n    tdrop -ma -w 70% -y 45 -x 15% kitty \n\n#\n# bspwm hotkeys\n#\n\n# quit/restart bspwm\nsuper + alt + {q,r}\n\tbspc {quit,wm -r}\n\n# close and kill\nsuper + {_,shift + }q\n\tbspc node -{c,k}\n\n# alternate between the tiled and monocle layout\nsuper + m\n\tbspc desktop -l next\n\n# send the newest marked node to the newest preselected node\nsuper + y\n\tbspc node newest.marked.local -n newest.!automatic.local\n\n# swap the current node and the biggest node\nsuper + g\n\tbspc node -s biggest\n\nsuper + ctrl + l\n    mantablockscreen\n\nsuper + w\n    qutebrowser \n\nsuper + ctrl + e\n   exec ~/scripts/bash/emacs_init.sh \n\n#\n# Audio and Brightness\n#\n\n#Audio Control\nXF86AudioRaiseVolume\n        pactl set-sink-volume @DEFAULT_SINK@ +10%\nXF86AudioLowerVolume \n        pactl set-sink-volume @DEFAULT_SINK@ -10%\nXF86AudioMute\n        pactl set-sink-mute @DEFAULT_SINK@ toggle\nXF86AudioMicMute\n        pactl set-source-mute @DEFAULT_SOURCE@ toggle\nXF86AudioPlay\n        mpc toggle\nXF86AudioNext\n        mpc next\nXF86AudioPrev\n        mpc prev\n\n# Laptop screen brightness control\nXF86MonBrightnessUp \n        sudo light -A 10\nXF86MonBrightnessDown \n        sudo light -U 10\n\n#\n# state/flags\n#\n\n# set the window state\nsuper + {t,shift + t,s,f}\n\tbspc node -t {tiled,pseudo_tiled,floating,fullscreen}\n\n# set the node flags\nsuper + ctrl + {m,x,y,z}\n\tbspc node -g {marked,locked,sticky,private}\n\n#\n# focus/swap\n#\n\n# focus the node in the given direction\nsuper + {_,shift + }{h,j,k,l}\n\tbspc node -{f,s} {west,south,north,east}\n\nsuper + {_,shift + }{Left,Down,Up,Right}\n\tbspc node -{f,s} {west,south,north,east}\n\n#rotate windown 90° around parent window\nsuper + v\n        bspc node @parent -R 90\n\n# focus the node for the given path jump\nsuper + {p,b,comma,period}\n\tbspc node -f @{parent,brother,first,second}\n\n# focus the next/previous node in the current desktop\nsuper + {_,shift + }c\n\tbspc node -f {next,prev}.local\n\n# focus the next/previous desktop in the current monitor\nsuper + bracket{left,right}\n\tbspc desktop -f {prev,next}.local\n\n# focus the last node/desktop\nsuper + {grave,Tab}\n\tbspc {node,desktop} -f last\n\n# focus the older or newer node in the focus history\nsuper + {o,i}\n\tbspc wm -h off; \\\n\tbspc node {older,newer} -f; \\\n\tbspc wm -h on\n\n# focus or send to the given desktop\nsuper + {_,shift + }{1-9,0}\n\tbspc {desktop -f,node -d} '^{1-9,10}'\n\n#\n# preselect\n#\n\n# preselect the direction\nsuper + ctrl + {h,j,k,l}\n\tbspc node -p {west,south,north,east}\n\n# preselect the ratio\nsuper + ctrl + {1-9}\n\tbspc node -o 0.{1-9}\n\n# cancel the preselection for the focused node\nsuper + ctrl + space\n\tbspc node -p cancel\n\n# cancel the preselection for the focused desktop\nsuper + ctrl + shift + space\n\tbspc query -N -d | xargs -I id -n 1 bspc node id -p cancel\n\n#\n# move/resize\n#\n\n# expand a window by moving one of its side outward\nsuper + alt + {h,j,k,l}\n\tbspc node -z {left -40 0,bottom 0 40,top 0 -40,right 40 0}\n\n# contract a window by moving one of its side inward\nsuper + alt + shift + {h,j,k,l}\n\tbspc node -z {right -40 0,top 0 40,bottom 0 -40,left 40 0}\n\n# expand a window by moving one of its side outward\nsuper + alt + {Left,Up,Down,Right}\n\tbspc node -z {left -40 0,bottom 0 40,top 0 -40,right 40 0}\n\n# contract a window by moving one of its side inward\nsuper + alt + shift + {Left,Up,Down,Right}\n\tbspc node -z {right -40 0,top 0 40,bottom 0 -40,left 40 0}\n# move a floating window\nsuper + ctrl + {Left,Down,Up,Right}\n\tbspc node -v {-20 0,0 20,0 -20,20 0}\n#+end_src\n\n** polybar\n#+begin_src conf :tangle ~/.config/polybar/config\n[colors]\n;background = ${xrdb:color0:#222}\nbackground = ${xrdb:background}\nbackground-alt = ${xrdb:highlight}\n;foreground = ${xrdb:color7:#222}\nforeground = #dfdfdf\nforeground-alt = #555\nprimary = #ffb52a\nsecondary = ${xrdb:color4}\nalert = #bd2c40\n\n[bar/wm]\nmonitor = ${env:MONITOR:eDP1}\nwidth = 100%:-20\nheight = 35\nfixed-center = true\noverride-redirect = true\nwm-restack = bspwm\nbackground = ${colors.background}\nforeground = ${colors.foreground}\n\nradius = 10\n\nline-size = 0\nline-color = #f00\n\nborder-color = #00000000\n\noffset-x = 0%:10\noffset-y = 5\n\npadding-left = 5\npadding-right = 5\n\nmodule-margin-left = 2\nmodule-margin-right = 3\n\nfont-0 = Noto Sans:pixelsize=14;2\nfont-1 = unifont:fontformat=truetype:size=8:antialias=false;1\nfont-2 = FiraCode Nerd Font:pixelsize=14;1\nfont-3 = FontAwesome5Free:style=Solid:pixelsize=15:antialias=true;3\nfont-4 = FontAwesome:pixelsize=10\n\nmodules-left =  battery separator wlan separator backlight separator xwindow \nmodules-center= bspwm\nmodules-right= pulseaudio separator cpu separator date\n\ncursor-click = pointer\ncursor-scroll = ns-resize\n\n[module/xwindow]\ntype = internal/xwindow\n; Available tags:\n;   \u003clabel\u003e (default)\nformat = \u003clabel\u003e\nformat-foreground = ${colors.background-alt}\nformat-padding = 4\n\n; Available tokens:\n;   %title%\n; Default: %title%\nlabel = %title%\nlabel-maxlen = 20\n\n; Used instead of label when there is no window title\n; Available tokens:\n\n[module/cpu]\ntype = internal/cpu\nlabel = \"  \"\n\nbar-load-width = 5\nbar-load-indicator = |\nbar-load-indicator-foreground = #fff\nbar-load-indicator-font = 1\nbar-load-fill = ─\nbar-load-fill-font = 3\nbar-load-fill-foreground = ${colors.background-alt}\nbar-load-empty = ─\nbar-load-empty-font = 3\nbar-load-empty-foreground = ${colors.foreground-alt}\n\nformat = \u003clabel\u003e  \u003cbar-load\u003e\n; Seconds to sleep between updates\n; Default: 1\ninterval = 5\n\n[module/pulseaudio]\ntype = internal/pulseaudio\nlabel-volume = \"墳 \"\nlabel-muted = \" \"\nlabel-muted-foreground = #fff \nclick-right = pavucontrol\nformat-volume = \"\u003clabel-volume\u003e   \u003cbar-volume\u003e\"\n; Use PA_VOLUME_UI_MAX (~153%) if true, or PA_VOLUME_NORM (100%) if false\n; Default: true\nuse-ui-max = true\nenable-scroll = true\n\nbar-volume-width = 5\nbar-volume-indicator = |\nbar-volume-indicator-foreground = #fff\nbar-volume-indicator-font = 0\nbar-volume-fill = ─\nbar-volume-fill-font = 3\nbar-volume-fill-foreground = ${colors.background-alt}\nbar-volume-empty = ─\nbar-volume-empty-font = 3\nbar-volume-empty-foreground = ${colors.foreground-alt}\n; Interval for volume increase/decrease (in percent points)\n; Default: 5\ninterval = 5\n\n[module/backlight]\ntype = internal/backlight\nlabel= \"    \"\ncard = intel_backlight\nformat = \"\u003clabel\u003e  \u003cbar\u003e\"\n\n;bar-width = 10\n;bar-indicator = |\n;bar-fill = ─\n;bar-empty = ─\nenable-scroll = true\n\nbar-width = 5\nbar-indicator = |\nbar-indicator-foreground = #fff\nbar-indicator-font = 0\nbar-fill = ─\nbar-fill-font = 2\nbar-fill-foreground = ${colors.background-alt}\nbar-empty = ─\nbar-empty-font = 2\nbar-empty-foreground = ${colors.foreground-alt}\n\n\n[module/separator]\ntype = custom/text\ncontent = \"|\"\ncontent-foreground = ${colors.background-alt}\n\n[module/blocks]\ntype = custom/text\ncontent = \"%{F#D00070}██%{F-}%{F#8C4799}█%{F-}%{F#0032A0}██%{F-}\"\ncontent-foreground = ${colors.background-alt}\n\n\n\n[module/bspwm]\ntype = internal/bspwm\n\nlabel-focused = %name%\nlabel-focused-foreground= ${colors.secondary}\nlabel-focused-underline= ${colors.primary}\nlabel-focused-padding = 3\n\nlabel-occupied = %name%\nlabel-occupied-foreground= ${colors.background-alt}\nlabel-occupied-padding = 3\n\nlabel-urgent = %name%!\nlabel-urgent-background = ${colors.alert}\nlabel-urgent-padding = 3\n\nlabel-empty = %name%\nlabel-empty-foreground = ${colors.foreground-alt}\nlabel-empty-padding = 3\n\n; Separator in between workspaces\nlabel-separator = |\nlabel-separator-foreground= ${colors.background-alt}\n\n\n\n[module/mpd]\ntype = internal/mpd\nformat-online = \"\u003clabel-song\u003e          \u003cicon-prev\u003e     \u003cicon-stop\u003e     \u003ctoggle\u003e    \u003cicon-next\u003e\"\n\nicon-prev = \nicon-stop = \nicon-play = \nicon-pause = \nicon-next = \n\nlabel-song-maxlen = 50\nlabel-song-ellipsis = true\n\n[module/wlan]\ntype = internal/network\ninterface = wlp59s0\ninterval = 3.0\n\nformat-connected = \u003clabel-connected\u003e\nlabel-connected = \"  \"    \n; %upspeed:9%\"\n\nformat-disconnected = \"no internet\"\n\n[module/date]\ntype = internal/date\ninterval = 5\n\ndate = \"%{F#00538b}%a%{F-}\"\ndate-alt = \"%{F#00538b}%d.%m.%Y%{F-}\"\n\ntime = %H:%M\ntime-alt = \n\nlabel = %date%  %time%\n\n\n[module/battery]\ntype = internal/battery\nbattery = BAT0\nadapter = ADP1\nfull-at = 98\n\nformat-charging = \u003canimation-charging\u003e  \nformat-discharging = \u003cramp-capacity\u003e   \nlabel-full = ﴞ\n\nramp-capacity-0 = \"  \"\nramp-capacity-0-foreground = #fb3d66\nramp-capacity-1 = \"  \"\nramp-capacity-2 = \"  \"\nramp-capacity-3 = \"  \"\nramp-capacity-4 = \"  \"\nramp-capacity-foreground = ${colors.foreground}\n\nanimation-charging-0 = \"  \"\nanimation-charging-1 = \"  \"\nanimation-charging-2 = \"  \"\nanimation-charging-foreground = #bf946b\nanimation-charging-framerate = 750\n\n\n[settings]\nscreenchange-reload = true\n;compositing-background = xor\n;compositing-background = screen\n;compositing-foreground = source\n;compositing-border = over\n;pseudo-transparency = false\n\n[global/wm]\nmargin-top = 0 \nmargin-bottom = 0 \n\n; vim:ft=dosini\n#+end_src\n\n** qutebrowser\n#+begin_src python :tangle ~/.config/qutebrowser/config.py\n# CHANNEL-42's QUTEBROWSER CONFIGS\n# Documentation:\n#   qute://help/configuring.html\n#   qute://help/settings.html\n\n# remove lsp warnings and errors {{{\nfrom qutebrowser.api import interceptor\nfrom qutebrowser.config.configfiles import ConfigAPI\nfrom qutebrowser.config.config import ConfigContainer\nconfig: ConfigAPI = config\nc: ConfigContainer = c\n# }}}\n\n# ==== colorscheme ====== {{{\n\nc.content.user_stylesheets = ['~/.config/qutebrowser/css/'\n                              'modus-all-sites.css']\n\nbackground = \"#0d1117\"\nhighlight = \"#58a6ff\"\n\nbase00= \"#0d1117\"\nbase01= \"#ff7b72\"\nbase02= \"#3fb950\"\nbase03= \"#d29922\"\nbase04= \"#58a6ff\"\nbase05= \"#bc8cff\"\nbase06= \"#39c5cf\"\nbase07= \"#b1bac4\"\n\nbase08= \"#6e7681\"\nbase09= \"#ffa198\"\nbase0A= \"#56d364\"\nbase0B= \"#e3b341\"\nbase0C= \"#79c0ff\"\nbase0D= \"#d2a8ff\"\nbase0E= \"#56d4dd\"\nbase0F= \"#f0f6fc\"\n\n\nbgalt = \"#282828\"\n\n# Text color of the completion widget. May be a single color to use for\n# all columns or a list of three colors, one for each column.\nc.colors.completion.fg = base08\n\n# Background color of the completion widget for odd rows.\nc.colors.completion.odd.bg = base00\n\n# Background color of the completion widget for even rows.\nc.colors.completion.even.bg = base00\n\n# Foreground color of completion widget category headers.\nc.colors.completion.category.fg = highlight\n\n# Background color of the completion widget category headers.\nc.colors.completion.category.bg = bgalt \n\n# Top border color of the completion widget category headers.\nc.colors.completion.category.border.top = base00\n\n# Bottom border color of the completion widget category headers.\nc.colors.completion.category.border.bottom = base00\n\n# Foreground color of the selected completion item.\nc.colors.completion.item.selected.fg = highlight\n\n# Background color of the selected completion item.\nc.colors.completion.item.selected.bg = bgalt\n\n# Top border color of the selected completion item.\nc.colors.completion.item.selected.border.top = bgalt \n\n# Bottom border color of the selected completion item.\nc.colors.completion.item.selected.border.bottom = bgalt\n\n# Foreground color of the matched text in the selected completion item.\nc.colors.completion.item.selected.match.fg = base02\n\n# Foreground color of the matched text in the completion.\nc.colors.completion.match.fg = base02\n\n# Color of the scrollbar handle in the completion view.\nc.colors.completion.scrollbar.fg = base05\n\n# Color of the scrollbar in the completion view.\nc.colors.completion.scrollbar.bg = base00\n\n# Background color of disabled items in the context menu.\nc.colors.contextmenu.disabled.bg = base01\n\n# Foreground color of disabled items in the context menu.\nc.colors.contextmenu.disabled.fg = base04\n\n# Background color of the context menu. If set to null, the Qt default is used.\nc.colors.contextmenu.menu.bg = base00\n\n# Foreground color of the context menu. If set to null, the Qt default is used.\nc.colors.contextmenu.menu.fg = base05\n\n# Background color of the\n# context menu’s selected item.\nc.colors.contextmenu.selected.bg = base01\n\n# Foreground color of the context menu’s selected item.\nc.colors.contextmenu.selected.fg = base05\n\n# Background color for the download bar.\nc.colors.downloads.bar.bg = base00\n\n# Color gradient start for download text.\nc.colors.downloads.start.fg = base00\n\n# Color gradient start for download backgrounds.\nc.colors.downloads.start.bg = base0D\n\n# Color gradient end for download text.\nc.colors.downloads.stop.fg = base00\n\n# Color gradient stop for download backgrounds.\nc.colors.downloads.stop.bg = base0C\n\n# Foreground color for downloads with errors.\nc.colors.downloads.error.fg = base08\n\n# Font color for hints.\nc.colors.hints.fg = base00\n\n# Background color for hints. Note that you can use a `rgba(...)` value\n# for transparency.\nc.colors.hints.bg = base0A\n\n# Font color for the matched part of hints.\nc.colors.hints.match.fg = base02\n\n# Text color for the keyhint widget.\nc.colors.keyhint.fg = base05\n\n# Highlight color for keys to complete the current keychain.\nc.colors.keyhint.suffix.fg = base05\n\n# Background color of the keyhint widget.\nc.colors.keyhint.bg = base00\n\n# Foreground color of an error message.\nc.colors.messages.error.fg = base00\n\n# Background color of an error message.\nc.colors.messages.error.bg = base08\n\n# Border color of an error message.\nc.colors.messages.error.border = base08\n\n# Foreground color of a warning message.\nc.colors.messages.warning.fg = base00\n\n# Background color of a warning message.\nc.colors.messages.warning.bg = base0E\n\n# Border color of a warning message.\nc.colors.messages.warning.border = base0E\n\n# Foreground color of an info message.\nc.colors.messages.info.fg = base05\n\n# Background color of an info message.\nc.colors.messages.info.bg = base00\n\n# Border color of an info message.\nc.colors.messages.info.border = base00\n\n# Foreground color for prompts.\nc.colors.prompts.fg = base05\n\n# Border used around UI elements in prompts.\nc.colors.prompts.border = base00\n\n# Background color for prompts.\nc.colors.prompts.bg = base00\n\n# Background color for the selected item in filename prompts.\nc.colors.prompts.selected.bg = base01\n\n# Foreground color of the statusbar.\nc.colors.statusbar.normal.fg = base0A\n\n# Background color of the statusbar.\nc.colors.statusbar.normal.bg = base00\n\n# Foreground color of the statusbar in insert mode.\nc.colors.statusbar.insert.fg = base0C\n\n# Background color of the statusbar in insert mode.\nc.colors.statusbar.insert.bg = bgalt\n\n# Foreground color of the statusbar in passthrough mode.\nc.colors.statusbar.passthrough.fg = base0A\n\n# Background color of the statusbar in passthrough mode.\nc.colors.statusbar.passthrough.bg = base00\n\n# Foreground color of the statusbar in private browsing mode.\nc.colors.statusbar.private.fg = base0E\n\n# Background color of the statusbar in private browsing mode.\nc.colors.statusbar.private.bg = base00\n\n# Foreground color of the statusbar in command mode.\nc.colors.statusbar.command.fg = highlight\n\n# Background color of the statusbar in command mode.\nc.colors.statusbar.command.bg = base00\n\n# Foreground color of the statusbar in private browsing + command mode.\nc.colors.statusbar.command.private.fg = base0E\n\n# Background color of the statusbar in private browsing + command mode.\nc.colors.statusbar.command.private.bg = bgalt \n\n# Foreground color of the statusbar in caret mode.\nc.colors.statusbar.caret.fg = base0D\n\n# Background color of the statusbar in caret mode.\nc.colors.statusbar.caret.bg = base00\n\n# Foreground color of the statusbar in caret mode with a selection.\nc.colors.statusbar.caret.selection.fg = base0D\n\n# Background color of the statusbar in caret mode with a selection.\nc.colors.statusbar.caret.selection.bg = base00\n\n# Background color of the progress bar.\nc.colors.statusbar.progress.bg = base0D\n\n# Default foreground color of the URL in the statusbar.\nc.colors.statusbar.url.fg = highlight\n\n# Foreground color of the URL in the statusbar on error.\nc.colors.statusbar.url.error.fg = base08\n\n# Foreground color of the URL in the statusbar for hovered links.\nc.colors.statusbar.url.hover.fg = base02\n\n# Foreground color of the URL in the statusbar on successful load\n# (http).\nc.colors.statusbar.url.success.http.fg = highlight\n\n# Foreground color of the URL in the statusbar on successful load\n# (https).\nc.colors.statusbar.url.success.https.fg = highlight\n\n# Foreground color of the URL in the statusbar when there's a warning.\nc.colors.statusbar.url.warn.fg = base0E\n\n# Background color of the tab bar.\nc.colors.tabs.bar.bg = base00\n\n# Color gradient start for the tab indicator.\nc.colors.tabs.indicator.start = base01\n\n# Color gradient end for the tab indicator.\nc.colors.tabs.indicator.stop = base09\n\n# Color for the tab indicator on errors.\nc.colors.tabs.indicator.error = base03\n\n# Foreground color of unselected odd tabs.\nc.colors.tabs.odd.fg = base05\n\n# Background color of unselected odd tabs.\nc.colors.tabs.odd.bg = base00\n\n# Foreground color of unselected even tabs.\nc.colors.tabs.even.fg = base05\n\n# Background color of unselected even tabs.\nc.colors.tabs.even.bg = base00\n\n# Background color of pinned unselected even tabs.\nc.colors.tabs.pinned.even.bg = base0B\n\n# Foreground color of pinned unselected even tabs.\nc.colors.tabs.pinned.even.fg = base00\n\n# Background color of pinned unselected odd tabs.\nc.colors.tabs.pinned.odd.bg = base0B\n\n# Foreground color of pinned unselected odd tabs.\nc.colors.tabs.pinned.odd.fg = base00\n\n# Background color of pinned selected even tabs.\nc.colors.tabs.pinned.selected.even.bg = base02\n\n# Foreground color of pinned selected even tabs.\nc.colors.tabs.pinned.selected.even.fg = base00\n\n# Background color of pinned selected odd tabs.\nc.colors.tabs.pinned.selected.odd.bg = base02\n\n# Foreground color of pinned selected odd tabs.\nc.colors.tabs.pinned.selected.odd.fg = base00\n\n# Foreground color of selected odd tabs.\nc.colors.tabs.selected.odd.fg = base00\n\n# Background color of selected odd tabs.\nc.colors.tabs.selected.odd.bg = highlight \n\n# Foreground color of selected even tabs.\nc.colors.tabs.selected.even.fg = base00\n\n# Background color of selected even tabs.\nc.colors.tabs.selected.even.bg = highlight \n\n# Background color for webpages if unset (or empty to use the theme's\n# color).\nc.colors.webpage.bg = base00\n# }}}\n\n# ==== general ====== {{{\nconfig.load_autoconfig(False)\nc.downloads.location.directory = '~/Downloads'\nc.url.searchengines = {'DEFAULT': 'https://www.google.com/search?q={}',\n                       'am': 'https://www.amazon.com/s?k={}',\n                       'gw': 'https://wiki.gentoo.org/?search={}',\n                       'aw': 'https://wiki.archlinux.org/?search={}',\n                       'goog': 'https://www.google.com/search?q={}',\n                       're': 'https://www.reddit.com/r/{}',\n                       'wiki': 'https://en.wikipedia.org/wiki/{}',\n                       'yt': 'https://www.youtube.com/results?search_query={}',\n                       'odd': 'https://odysee.com/$/search?q={}'}\n\nc.scrolling.smooth = True\nc.tabs.padding = {'bottom': 5, 'left': 5, 'right': 5, 'top': 5}\nc.url.start_pages = [\"~/.config/startpage/index.html\"]\nc.url.default_page = \"~/.config/startpage/index.html\"\n\n# }}}\n\n# ==== yt add-blocking ====== {{{\n# taken from Gavin Freeborn\n# https://odysee.com/@GavinFreeborn:d/why-i-use-qutebrowser-and-how-i:3\n\n\ndef ytfilter(info: interceptor.Request):\n    url = info.request_url\n    if(url.host() == \"www.youtube.com\"\n       and url.path() == \"/get_video_info\"\n       and \"\u0026adformat\" in url.query()\n       ):\n        info.block()\n\n\ninterceptor.register(ytfilter)\n# }}}\n\n# ==== fonts ====== {{{\nc.fonts.default_family = '\"FiraCode Nerd Font\"'\nc.fonts.default_size = '13pt'\nc.fonts.completion.entry = '13pt \"FiraCode Nerd Font\"'\nc.fonts.debug_console = '13pt \"FiraCode Nerd Font\"'\nc.fonts.prompts = 'default_size sans-serif'\nc.fonts.statusbar = '13pt \"FiraCode Nerd Font\"'\n# }}}\n\n# ==== bindings ====== {{{\nconfig.bind(\n    ',md', 'config-cycle content.user_stylesheets '\n    '~/.config/qutebrowser/css/modus-all-sites.css \"\"')\nconfig.bind(\n    ',ap', 'config-cycle content.user_stylesheets '\n    '~/.config/qutebrowser/css/apprentice-all-sites.css \"\"')\nconfig.bind(\n    ',sl', 'config-cycle content.user_stylesheets '\n    '~/.config/qutebrowser/css/solarized-light-all-sites.css \"\"')\nconfig.bind(\n    ',sd', 'config-cycle content.user_stylesheets '\n    '~/.config/qutebrowser/css/solarized-dark-all-sites.css \"\"')\nconfig.bind('xb', 'config-cycle statusbar.show never always')\nconfig.bind('xt', 'config-cycle tabs.show never always ')\nconfig.bind('xx', 'config-cycle statusbar.show never always;; config-cycle tabs.show never always ')\nconfig.bind('j', 'run-with-count 3 scroll down')\nconfig.bind('k', 'run-with-count 3 scroll up')\n# }}}\n\n# ==== useragent, js, images ====== {{{\n\n# Type: String\n# Valid values:\n#   - all\n#   - no-3rdparty\n#   - no-unknown-3rdparty\n#   - never\n\nconfig.set('content.cookies.accept', 'no-3rdparty', 'chrome-devtools://*')\nconfig.set('content.cookies.accept', 'no-3rdparty', 'devtools://*')\n\n# Type: FormatString\nconfig.set('content.headers.user_agent',\n           'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/')\nconfig.set('content.headers.user_agent',\n           'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version} Edg/{upstream_browser_version}', 'https://accounts.google.com/*')\nconfig.set('content.headers.user_agent',\n           'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*')\n\n# Load images automatically in web pages.\n# Type: Bool\nconfig.set('content.images', True, 'chrome-devtools://*')\n\n# Load images automatically in web pages.\n# Type: Bool\nconfig.set('content.images', True, 'devtools://*')\n\n# Enable JavaScript.\n# Type: Bool\nconfig.set('content.javascript.enabled', True, 'chrome-devtools://*')\n\n# Enable JavaScript.\n# Type: Bool\nconfig.set('content.javascript.enabled', True, 'devtools://*')\n\n# Enable JavaScript.\n# Type: Bool\nconfig.set('content.javascript.enabled', True, 'chrome://*/*')\n\n# Enable JavaScript.\n# Type: Bool\nconfig.set('content.javascript.enabled', True, 'qute://*/*')\n# }}}\n\n# vim:fileencoding=utf-8:ft=python:foldmethod=marker\n#+end_src\n\n** zsh\n#+begin_src shell :tangle ~/.config/zsh/exports\n# xdg stuff\nexport XDG_CONFIG_HOME=$HOME/.config/\nexport XDG_CACHE_HOME=$HOME/.cache/\nexport XDG_DATA_HOME=$HOME/.local/share\n\n# clean up home dir\nexport GOPATH=$XDG_DATA_HOME/go\nexport CUDA_PATH=/opt/cuda\nexport NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc\nexport GRIPHOME=$XDG_CONFIG_HOME/grip\nexport CARGO_HOME=$XDG_DATA_HOME/cargo\n#export XAUTHORITY=$XDG_RUNTIME_DIR/Xauthority\nexport GTK2_RC_FILES=$XDG_CONFIG_HOME/gtk-2.0/gtkrc\n\n# other\nexport PATH=\"$HOME/.local/bin:$PATH\"\nexport EDITOR=\"nvim\" \nexport MANPAGER=\"nvim +Man!\"\n\n# vim: ft=sh\n#+end_src\n\n#+begin_src shell  :tangle ~/.config/zsh/.zshrc\n#load oh-my-zsh\nexport ZSH=/usr/share/oh-my-zsh\nsource $HOME/.config/zsh/exports\nautoload -U colors \u0026\u0026 colors\n#is overwritten by oh-my-zsh\nPROMPT=\"%B%n@%M [ %~ ] \n\u003e \"\n#\"%B%{%{$fg[yellow]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[red]%} [ %{$fg[magenta]%}%~ %{$fg[red]%}]%{$reset_color%}%b% \n#\u003e \"\nZSH_THEME=\"candy_mod\"\n\n# History in cache directory:\nHISTSIZE=10000\nSAVEHIST=10000\nHISTFILE=~/.cache/zsh/history\n\n#PLUGINS\nplugins=(git zsh-autosuggestions)\nZSH_AUTOSUGGEST_HIGHLIGHT_STYLE=\"fg=14\"\nalias wpp=\"$HOME/scripts/bash/wpp\"\n\n# Basic auto/tab complete:\nautoload -U compinit\nzstyle ':completion:*' menu select\nzmodload zsh/complist\ncompinit\n_comp_options+=(globdots)\t\t# Include hidden files.\n\n# Use vim keys in tab complete menu:\nbindkey -M menuselect 'h' vi-backward-char\nbindkey -M menuselect 'k' vi-up-line-or-history\nbindkey -M menuselect 'l' vi-forward-char\nbindkey -M menuselect 'j' vi-down-line-or-history\nbindkey -v '^?' backward-delete-char\n\n#aliases\nalias icat='kitty icat'\nalias vim='nvim'\nalias dgit='/usr/bin/git --git-dir=$HOME/dotfiles/ --work-tree=$HOME' \nalias ugit='/usr/bin/git --git-dir=$HOME/Documents/.uni --work-tree=$HOME/Documents' \nalias down='systemctl suspend'\nalias vpn='sudo openvpn /etc/openvpn/client/client.ovpn'\nalias btt='cat /sys/class/power_supply/BAT0/capacity'\nalias banner='$HOME/scripts/bash/palette.sh'\nalias gtp='gotop -c vice'\nalias rpush='rsync -urvhP $HOME/Documents/share pi@rpi.local:/home/pi/'\nalias rpull='rsync -urvhP pi@rpi.local:/home/pi/share $HOME/Documents/'\n\nsource $ZSH/oh-my-zsh.sh\nsource /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2\u003e/dev/null\nalias l='exa -s type'\nalias la='exa -las type'\n#+end_src\n\n** zathura\n#+begin_src conf :tangle ~/.config/zathura/zathurarc\nset selection-clipboard clipboard\n\nset default-bg                  \"#0d1117\"\nset default-fg                  \"#f0f0f0\"\n\nset statusbar-fg                \"#f0f0f0\"\nset statusbar-bg                \"#282828\"\n\nset inputbar-bg                 \"#0d1117\"\nset inputbar-fg                 \"#fdf6e3\"\n\nset notification-bg             \"#0d1117\"\nset notification-fg             \"#fdf6e3\"\n\nset notification-error-bg       \"#0d1117\"\nset notification-error-fg       \"#ff7b72\"\n\nset notification-warning-bg     \"#0d1117\"\nset notification-warning-fg     \"#ff7b72\"\n\nset highlight-color             \"#e3b341\"\nset highlight-active-color      \"#79c0ff\"\n\nset completion-bg               \"#0d1117\"\nset completion-fg               \"#58a6ff\"\n\nset completion-highlight-fg     \"#a5d6ff\"\nset completion-highlight-bg     \"#0d1117\"\n\nset recolor-lightcolor          \"#0d1117\"\nset recolor-darkcolor           \"#f0f0f0\"\n\nset recolor                     \"true\"\nset recolor-keephue             \"false\"\n\n# vim: ft=rc\n#+end_src\n\n** dunst\n#+begin_src conf :tangle ~/.config/dunst/dunstrc\nn pixels.  If the width is omitted but the height is given\n    # (\"-geometry x2\"), the message window expands over the whole screen\n    # (dmenu-like).  If width is 0, the window expands to the longest\n    # message displayed.  A positive x is measured from the left, a\n    # negative from the right side of the screen.  Y is measured from\n    # the top and down respectively.\n    # The width can be negative.  In this case the actual width is the\n    # screen width minus the width defined in within the geometry option.\n    geometry = \"x5\"\n\n    # Show how many messages are currently hidden (because of geometry).\n    indicate_hidden = yes\n\n    # Shrink window if it's smaller than the width.  Will be ignored if\n    # width is 0.\n    shrink = no\n\n    # The transparency of the window.  Range: [0; 100].\n    # This option will only work if a compositing window manager is\n    # present (e.g. xcompmgr, compiz, etc.).\n    transparency = 0\n\n    # The height of the entire notification.  If the height is smaller\n    # than the font height and padding combined, it will be raised\n    # to the font height and padding.\n    notification_height = 0\n\n    # Draw a line of \"separator_height\" pixel height between two\n    # notifications.\n    # Set to 0 to disable.\n    separator_height = 2\n\n    # Padding between text and separator.\n    padding = 8\n\n    # Horizontal padding.\n    horizontal_padding = 8\n\n    # Defines width in pixels of frame around the notification window.\n    # Set to 0 to disable.\n    frame_width = 0\n\n    # Defines color of the frame around the notification window.\n    frame_color = \"#fb3d66\"\n\n    # Define a color for the separator.\n    # possible values are:\n    #  * auto: dunst tries to find a color fitting to the background;\n    #  * foreground: use the same color as the foreground;\n    #  * frame: use the same color as the frame;\n    #  * anything else will be interpreted as a X color.\n    separator_color = frame\n\n    # Sort messages by urgency.\n    sort = yes\n\n    # Don't remove messages, if the user is idle (no mouse or keyboard input)\n    # for longer than idle_threshold seconds.\n    # Set to 0 to disable.\n    # A client can set the 'transient' hint to bypass this. See the rules\n    # section for how to disable this if necessary\n    idle_threshold = 120\n\n    ### Text ###\n\n    font = Monospace 10\n\n    # The spacing between lines.  If the height is smaller than the\n    # font height, it will get raised to the font height.\n    line_height = 0\n\n    # Possible values are:\n    # full: Allow a small subset of html markup in notifications:\n    #        \u003cb\u003ebold\u003c/b\u003e\n    #        \u003ci\u003eitalic\u003c/i\u003e\n    #        \u003cs\u003estrikethrough\u003c/s\u003e\n    #        \u003cu\u003eunderline\u003c/u\u003e\n    #\n    #        For a complete reference see\n    #        \u003chttps://developer.gnome.org/pango/stable/pango-Markup.html\u003e.\n    #\n    # strip: This setting is provided for compatibility with some broken\n    #        clients that send markup even though it's not enabled on the\n    #        server. Dunst will try to strip the markup but the parsing is\n    #        simplistic so using this option outside of matching rules for\n    #        specific applications *IS GREATLY DISCOURAGED*.\n    #\n    # no:    Disable markup parsing, incoming notifications will be treated as\n    #        plain text. Dunst will not advertise that it has the body-markup\n    #        capability if this is set as a global setting.\n    #\n    # It's important to note that markup inside the format option will be parsed\n    # regardless of what this is set to.\n    markup = full\n\n    # The format of the message.  Possible variables are:\n    #   %a  appname\n    #   %s  summary\n    #   %b  body\n    #   %i  iconname (including its path)\n    #   %I  iconname (without its path)\n    #   %p  progress value if set ([  0%] to [100%]) or nothing\n    #   %n  progress value if set without any extra characters\n    #   %%  Literal %\n    # Markup is allowed\n    format = \"\u003cb\u003e%s\u003c/b\u003e\\n%b\"\n\n    # Alignment of message text.\n    # Possible values are \"left\", \"center\" and \"right\".\n    alignment = center \n\n    # Vertical alignment of message text and icon.\n    # Possible values are \"top\", \"center\" and \"bottom\".\n    vertical_alignment = center\n\n    # Show age of message if message is older than show_age_threshold\n    # seconds.\n    # Set to -1 to disable.\n    show_age_threshold = 60\n\n    # Split notifications into multiple lines if they don't fit into\n    # geometry.\n    word_wrap = yes\n\n    # When word_wrap is set to no, specify where to make an ellipsis in long lines.\n    # Possible values are \"start\", \"middle\" and \"end\".\n    ellipsize = middle\n\n    # Ignore newlines '\\n' in notifications.\n    ignore_newline = no\n\n    # Stack together notifications with the same content\n    stack_duplicates = true\n\n    # Hide the count of stacked notifications with the same content\n    hide_duplicate_count = false\n\n    # Display indicators for URLs (U) and actions (A).\n    show_indicators = yes\n\n    ### Icons ###\n\n    # Align icons left/right/off\n    icon_position = left\n\n    # Scale small icons up to this size, set to 0 to disable. Helpful\n    # for e.g. small files or high-dpi screens. In case of conflict,\n    # max_icon_size takes precedence over this.\n    min_icon_size = 0\n\n    # Scale larger icons down to this size, set to 0 to disable\n    max_icon_size = 32\n\n    # Paths to default icons.\n    icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/\n\n    ### History ###\n\n    # Should a notification popped up from history be sticky or timeout\n    # as if it would normally do.\n    sticky_history = yes\n\n    # Maximum amount of notifications kept in history\n    history_length = 20\n\n    ### Misc/Advanced ###\n\n    # dmenu path.\n    dmenu = /usr/bin/dmenu -p dunst:\n\n    # Browser for opening urls in context menu.\n    browser = /usr/bin/firefox -new-tab\n\n    # Always run rule-defined scripts, even if the notification is suppressed\n    always_run_script = true\n\n    # Define the title of the windows spawned by dunst\n    title = Dunst\n\n    # Define the class of the windows spawned by dunst\n    class = Dunst\n\n    # Print a notification on startup.\n    # This is mainly for error detection, since dbus (re-)starts dunst\n    # automatically after a crash.\n    startup_notification = false\n\n    # Manage dunst's desire for talking\n    # Can be one of the following values:\n    #  crit: Critical features. Dunst aborts\n    #  warn: Only non-fatal warnings\n    #  mesg: Important Messages\n    #  info: all unimportant stuff\n    # debug: all less than unimportant stuff\n    verbosity = mesg\n\n    # Define the corner radius of the notification window\n    # in pixel size. If the radius is 0, you have no rounded\n    # corners.\n    # The radius will be automatically lowered if it exceeds half of the\n    # notification height to avoid clipping text and/or icons.\n    corner_radius = 20\n\n    # Ignore the dbus closeNotification message.\n    # Useful to enforce the timeout set by dunst configuration. Without this\n    # parameter, an application may close the notification sent before the \n    # user defined timeout.\n    ignore_dbusclose = false\n\n    ### Legacy\n\n    # Use the Xinerama extension instead of RandR for multi-monitor support.\n    # This setting is provided for compatibility with older nVidia drivers that\n    # do not support RandR and using it on systems that support RandR is highly\n    # discouraged.\n    #\n    # By enabling this setting dunst will not be able to detect when a monitor\n    # is connected or disconnected which might break follow mode if the screen\n    # layout changes.\n    force_xinerama = false\n\n    ### mouse\n\n    # Defines list of actions for each mouse event\n    # Possible values are:\n    # * none: Don't do anything.\n    # * do_action: If the notification has exactly one action, or one is marked as default,\n    #              invoke it. If there are multiple and no default, open the context menu.\n    # * close_current: Close current notification.\n    # * close_all: Close all notifications.\n    # These values can be strung together for each mouse event, and\n    # will be executed in sequence.\n    mouse_left_click = close_current\n    mouse_middle_click = do_action, close_current\n    mouse_right_click = close_all\n\n# Experimental features that may or may not work correctly. Do not expect them\n# to have a consistent behaviour across releases.\n[experimental]\n    # Calculate the dpi to use on a per-monitor basis.\n    # If this setting is enabled the Xft.dpi value will be ignored and instead\n    # dunst will attempt to calculate an appropriate dpi value for each monitor\n    # using the resolution and physical size. This might be useful in setups\n    # where there are multiple screens with very different dpi values.\n    per_monitor_dpi = false\n\n[shortcuts]\n\n    # Shortcuts are specified as [modifier+][modifier+]...key\n    # Available modifiers are \"ctrl\", \"mod1\" (the alt-key), \"mod2\",\n    # \"mod3\" and \"mod4\" (windows-key).\n    # Xev might be helpful to find names for keys.\n\n    # Close notification.\n    close = ctrl+space\n\n    # Close all notifications.\n    close_all = ctrl+shift+space\n\n    # Redisplay last message(s).\n    # On the US keyboard layout \"grave\" is normally above TAB and left\n    # of \"1\". Make sure this key actually exists on your keyboard layout,\n    # e.g. check output of 'xmodmap -pke'\n    history = ctrl+grave\n\n    # Context menu.\n    context = ctrl+shift+period\n\n[urgency_low]\n    # IMPORTANT: colors have to be defined in quotation marks.\n    # Otherwise the \"#\" and following would be interpreted as a comment.\n    background = \"#222222\"\n    foreground = \"#888888\"\n    timeout = 10\n    # Icon for notifications with low urgency, uncomment to enable\n    #icon = /path/to/icon\n\n[urgency_normal]\n    background = \"#282828\"\n    foreground = \"#ffffff\"\n    timeout = 10\n    # Icon for notifications with normal urgency, uncomment to enable\n    #icon = /path/to/icon\n\n[urgency_critical]\n    background = \"#900000\"\n    foreground = \"#ffffff\"\n    frame_color = \"#ff0000\"\n    timeout = 0\n    # Icon for notifications with critical urgency, uncomment to enable\n    #icon = /path/to/icon\n\n# Every section that isn't one of the above is interpreted as a rules to\n# override settings for certain messages.\n#\n# Messages can be matched by\n#    appname (discouraged, see desktop_entry)\n#    body\n#    category\n#    desktop_entry\n#    icon\n#    match_transient\n#    msg_urgency\n#    stack_tag\n#    summary\n#\n# and you can override the\n#    background\n#    foreground\n#    format\n#    frame_color\n#    fullscreen\n#    new_icon\n#    set_stack_tag\n#    set_transient\n#    timeout\n#    urgency\n#\n# Shell-like globbing will get expanded.\n#\n# Instead of the appname filter, it's recommended to use the desktop_entry filter.\n# GLib based applications export their desktop-entry name. In comparison to the appname,\n# the desktop-entry won't get localized.\n#\n# SCRIPTING\n# You can specify a script that gets run when the rule matches by\n# setting the \"script\" option.\n# The script will be called as follows:\n#   script appname summary body icon urgency\n# where urgency can be \"LOW\", \"NORMAL\" or \"CRITICAL\".\n#\n# NOTE: if you don't want a notification to be displayed, set the format\n# to \"\".\n# NOTE: It might be helpful to run dunst -print in a terminal in order\n# to find fitting options for rules.\n\n# Disable the transient hint so that idle_threshold cannot be bypassed from the\n# client\n#[transient_disable]\n#    match_transient = yes\n#    set_transient = no\n#\n# Make the handling of transient notifications more strict by making them not\n# be placed in history.\n#[transient_history_ignore]\n#    match_transient = yes\n#    history_ignore = yes\n\n# fullscreen values\n# show: show the notifications, regardless if there is a fullscreen window opened\n# delay: displays the new notification, if there is no fullscreen window active\n#        If the notification is already drawn, it won't get undrawn.\n# pushback: same as delay, but when switching into fullscreen, the notification will get\n#           withdrawn from screen again and will get delayed like a new notification\n#[fullscreen_delay_everything]\n#    fullscreen = delay\n#[fullscreen_show_critical]\n#    msg_urgency = critical\n#    fullscreen = show\n\n#[espeak]\n#    summary = \"*\"\n#    script = dunst_espeak.sh\n\n#[script-test]\n#    summary = \"*script*\"\n#    script = dunst_test.sh\n\n#[ignore]\n#    # This notification will not be displayed\n#    summary = \"foobar\"\n#    format = \"\"\n\n#[history-ignore]\n#    # This notification will not be saved in history\n#    summary = \"foobar\"\n#    history_ignore = yes\n\n#[skip-display]\n#    # This notification will not be displayed, but will be included in the history\n#    summary = \"foobar\"\n#    skip_display = yes\n\n#[signed_on]\n#    appname = Pidgin\n#    summary = \"*signed on*\"\n#    urgency = low\n#\n#[signed_off]\n#    appname = Pidgin\n#    summary = *signed off*\n#    urgency = low\n#\n#[says]\n#    appname = Pidgin\n#    summary = *says*\n#    urgency = critical\n#\n#[twitter]\n#    appname = Pidgin\n#    summary = *twitter.com*\n#    urgency = normal\n#\n#[stack-volumes]\n#    appname = \"some_volume_notifiers\"\n#    set_stack_tag = \"volume\"\n#\n# vim: ft=cfg\n#+end_src\n\n** kitty\n#+begin_src conf :tangle ~/.config/kitty/kitty.conf\n# vim:fileencoding=utf-8:ft=conf:foldmethod=marker\n\n#: Fonts {{{\n\n#: kitty has very powerful font management. You can configure\n#: individual font faces and even specify special fonts for particular\n#: characters.\n\nfont_family      FiraCode Nerd Font\nbold_font        auto\nitalic_font      auto\nbold_italic_font auto\n\n#: You can specify different fonts for the bold/italic/bold-italic\n#: variants. To get a full list of supported fonts use the `kitty\n#: list-fonts` command. By default they are derived automatically, by\n#: the OSes font system. Setting them manually is useful for font\n#: families that have many weight variants like Book, Medium, Thick,\n#: etc. For example::\n#:     font_family      Operator Mono Book\n#:     bold_font        Operator Mono Medium\n#:     italic_font      Operator Mono Book Italic\n#:     bold_italic_font Operator Mono Medium Italic\n\nfont_size 13.0\n\n#: Font size (in pts)\n\nforce_ltr no\n\n#: kitty does not support BIDI (bidirectional text), however, for RTL\n#: scripts, words are automatically displayed in RTL. That is to say,\n#: in an RTL script, the words \"HELLO WORLD\" display in kitty as\n#: \"WORLD HELLO\", and if you try to select a substring of an RTL-\n#: shaped string, you will get the character that would be there had\n#: the the string been LTR. For example, assuming the Hebrew word\n#: ירושלים, selecting the character that on the screen appears to be ם\n#: actually writes into the selection buffer the character י.\n\n#: kitty's default behavior is useful in conjunction with a filter to\n#: reverse the word order, however, if you wish to manipulate RTL\n#: glyphs, it can be very challenging to work with, so this option is\n#: provided to turn it off. Furthermore, this option can be used with\n#: the command line program GNU FriBidi\n#: \u003chttps://github.com/fribidi/fribidi#executable\u003e to get BIDI\n#: support, because it will force kitty to always treat the text as\n#: LTR, which FriBidi expects for terminals.\n\nadjust_line_height  0\nadjust_column_width 0\n\n#: Change the size of each character cell kitty renders. You can use\n#: either numbers, which are interpreted as pixels or percentages\n#: (number followed by %), which are interpreted as percentages of the\n#: unmodified values. You can use negative pixels or percentages less\n#: than 100% to reduce sizes (but this might cause rendering\n#: artifacts).\n\n# symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols\n\n#: Map the specified unicode codepoints to a particular font. Useful\n#: if you need special rendering for some symbols, such as for\n#: Powerline. Avoids the need for patched fonts. Each unicode code\n#: point is specified in the form U+\u003ccode point in hexadecimal\u003e. You\n#: can specify multiple code points, separated by commas and ranges\n#: separated by hyphens. symbol_map itself can be specified multiple\n#: times. Syntax is::\n\n#:     symbol_map codepoints Font Family Name\n\ndisable_ligatures never\n\n#: Choose how you want to handle multi-character ligatures. The\n#: default is to always render them.  You can tell kitty to not render\n#: them when the cursor is over them by using cursor to make editing\n#: easier, or have kitty never render them at all by using always, if\n#: you don't like them. The ligature strategy can be set per-window\n#: either using the kitty remote control facility or by defining\n#: shortcuts for it in kitty.conf, for example::\n\n#:     map alt+1 disable_ligatures_in active always\n#:     map alt+2 disable_ligatures_in all never\n#:     map alt+3 disable_ligatures_in tab cursor\n\n#: Note that this refers to programming ligatures, typically\n#: implemented using the calt OpenType feature. For disabling general\n#: ligatures, use the font_features setting.\n\nfont_features none\n\n#: Choose exactly which OpenType features to enable or disable. This\n#: is useful as some fonts might have features worthwhile in a\n#: terminal. For example, Fira Code Retina includes a discretionary\n#: feature, zero, which in that font changes the appearance of the\n#: zero (0), to make it more easily distinguishable from Ø. Fira Code\n#: Retina also includes other discretionary features known as\n#: Stylistic Sets which have the tags ss01 through ss20.\n\n#: Note that this code is indexed by PostScript name, and not the font\n#: family. This allows you to define very precise feature settings;\n#: e.g. you can disable a feature in the italic font but not in the\n#: regular font.\n\n#: On Linux, these are read from the FontConfig database first and\n#: then this, setting is applied, so they can be configured in a\n#: single, central place.\n\n#: To get the PostScript name for a font, use kitty + list-fonts\n#: --psnames:\n\n#: .. code-block:: sh\n\n#:     $ kitty + list-fonts --psnames | grep Fira\n#:     Fira Code\n#:     Fira Code Bold (FiraCode-Bold)\n#:     Fira Code Light (FiraCode-Light)\n#:     Fira Code Medium (FiraCode-Medium)\n#:     Fira Code Regular (FiraCode-Regular)\n#:     Fira Code Retina (FiraCode-Retina)\n\n#: The part in brackets is the PostScript name.\n\n#: Enable alternate zero and oldstyle numerals::\n\n#:     font_features FiraCode-Retina +zero +onum\n\n#: Enable only alternate zero::\n\n#:     font_features FiraCode-Retina +zero\n\n#: Disable the normal ligatures, but keep the calt feature which (in\n#: this font) breaks up monotony::\n\n#:     font_features TT2020StyleB-Regular -liga +calt\n\n#: In conjunction with force_ltr, you may want to disable Arabic\n#: shaping entirely, and only look at their isolated forms if they\n#: show up in a document. You can do this with e.g.::\n\n#:     font_features UnifontMedium +isol -medi -fina -init\n\nbox_drawing_scale 0.001, 1, 1.5, 2\n\n#: Change the sizes of the lines used for the box drawing unicode\n#: characters These values are in pts. They will be scaled by the\n#: monitor DPI to arrive at a pixel value. There must be four values\n#: corresponding to thin, normal, thick, and very thick lines.\n\n#: }}}\n\n#: Cursor customization {{{\n\ncursor #bf946b\n\n#: Default cursor color\n\n#cursor_text_color #111111\ncursor_text_color #323b3e\n\n#: Choose the color of text under the cursor. If you want it rendered\n#: with the background color of the cell underneath instead, use the\n#: special keyword: background\n\ncursor_shape block\n\n#: The cursor shape can be one of (block, beam, underline)\n\ncursor_beam_thickness 1.5\n\n#: Defines the thickness of the beam cursor (in pts)\n\ncursor_underline_thickness 2.0\n\n#: Defines the thickness of the underline cursor (in pts)\n\ncursor_blink_interval -1\n\n#: The interval (in seconds) at which to blink the cursor. Set to zero\n#: to disable blinking. Negative values mean use system default. Note\n#: that numbers smaller than repaint_delay will be limited to\n#: repaint_delay.\n\ncursor_stop_blinking_after 15.0\n\n#: Stop blinking cursor after the specified number of seconds of\n#: keyboard inactivity.  Set to zero to never stop blinking.\n\n#: }}}\n\n#: Scrollback {{{\n\nscrollback_lines 2000\n\n#: Number of lines of history to keep in memory for scrolling back.\n#: Memory is allocated on demand. Negative numbers are (effectively)\n#: infinite scrollback. Note that using very large scrollback is not\n#: recommended as it can slow down performance of the terminal and\n#: also use large amounts of RAM. Instead, consider using\n#: scrollback_pager_history_size.\n\nscrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER\n\n#: Program with which to view scrollback in a new window. The\n#: scrollback buffer is passed as STDIN to this program. If you change\n#: it, make sure the program you use can handle ANSI escape sequences\n#: for colors and text formatting. INPUT_LINE_NUMBER in the command\n#: line above will be replaced by an integer representing which line\n#: should be at the top of the screen. Similarly CURSOR_LINE and\n#: CURSOR_COLUMN will be replaced by the current cursor position.\n\nscrollback_pager_history_size 0\n\n#: Separate scrollback history size, used only for browsing the\n#: scrollback buffer (in MB). This separate buffer is not available\n#: for interactive scrolling but will be piped to the pager program\n#: when viewing scrollback buffer in a separate window. The current\n#: implementation stores the data in UTF-8, so approximatively 10000\n#: lines per megabyte at 100 chars per line, for pure ASCII text,\n#: unformatted text. A value of zero or less disables this feature.\n#: The maximum allowed size is 4GB.\n\nwheel_scroll_multiplier 5.0\n\n#: Modify the amount scrolled by the mouse wheel. Note this is only\n#: used for low precision scrolling devices, not for high precision\n#: scrolling on platforms such as macOS and Wayland. Use negative\n#: numbers to change scroll direction.\n\ntouch_scroll_multiplier 1.0\n\n#: Modify the amount scrolled by a touchpad. Note this is only used\n#: for high precision scrolling devices on platforms such as macOS and\n#: Wayland. Use negative numbers to change scroll direction.\n\n#: }}}\n\n#: Mouse {{{\n\nmouse_hide_wait 3.0\n\n#: Hide mouse cursor after the specified number of seconds of the\n#: mouse not being used. Set to zero to disable mouse cursor hiding.\n#: Set to a negative value to hide the mouse cursor immediately when\n#: typing text. Disabled by default on macOS as getting it to work\n#: robustly with the ever-changing sea of bugs that is Cocoa is too\n#: much effort.\n\nurl_color #0087bd\nurl_style curly\n\n#: The color and style for highlighting URLs on mouse-over. url_style\n#: can be one of: none, single, double, curly\n\nopen_url_modifiers double\n\n#: The modifier keys to press when clicking with the mouse on URLs to\n#: open the URL\n\nopen_url_with qutebrowser\n\n#: The program with which to open URLs that are clicked on. The\n#: special value default means to use the operating system's default\n#: URL handler.\n\nurl_prefixes http https file ftp\n\n#: The set of URL prefixes to look for when detecting a URL under the\n#: mouse cursor.\n\ndetect_urls yes\n\n#: Detect URLs under the mouse. Detected URLs are highlighted with an\n#: underline and the mouse cursor becomes a hand over them. Even if\n#: this option is disabled, URLs are still clickable.\n\ncopy_on_select no\n\n#: Copy to clipboard or a private buffer on select. With this set to\n#: clipboard, simply selecting text with the mouse will cause the text\n#: to be copied to clipboard. Useful on platforms such as macOS that\n#: do not have the concept of primary selections. You can instead\n#: specify a name such as a1 to copy to a private kitty buffer\n#: instead. Map a shortcut with the paste_from_buffer action to paste\n#: from this private buffer. For example::\n\n#:     map cmd+shift+v paste_from_buffer a1\n\n#: Note that copying to the clipboard is a security risk, as all\n#: programs, including websites open in your browser can read the\n#: contents of the system clipboard.\n\nstrip_trailing_spaces never\n\n#: Remove spaces at the end of lines when copying to clipboard. A\n#: value of smart will do it when using normal selections, but not\n#: rectangle selections. always will always do it.\n\nrectangle_select_modifiers ctrl+alt\n\n#: The modifiers to use rectangular selection (i.e. to select text in\n#: a rectangular block with the mouse)\n\nterminal_select_modifiers shift\n\n#: The modifiers to override mouse selection even when a terminal\n#: application has grabbed the mouse\n\nselect_by_word_characters @-./_~?\u0026=%+#\n\n#: Characters considered part of a word when double clicking. In\n#: addition to these characters any character that is marked as an\n#: alphanumeric character in the unicode database will be matched.\n\nclick_interval -1.0\n\n#: The interval between successive clicks to detect double/triple\n#: clicks (in seconds). Negative numbers will use the system default\n#: instead, if available, or fallback to 0.5.\n\nfocus_follows_mouse no\n\n#: Set the active window to the window under the mouse when moving the\n#: mouse around\n\npointer_shape_when_grabbed arrow\n\n#: The shape of the mouse pointer when the program running in the\n#: terminal grabs the mouse. Valid values are: arrow, beam and hand\n\ndefault_pointer_shape beam\n\n#: The default shape of the mouse pointer. Valid values are: arrow,\n#: beam and hand\n\npointer_shape_when_dragging beam\n\n#: The default shape of the mouse pointer when dragging across text.\n#: Valid values are: arrow, beam and hand\n\n#: }}}\n\n#: Performance tuning {{{\n\nrepaint_delay 10\n\n#: Delay (in milliseconds) between screen updates. Decreasing it,\n#: increases frames-per-second (FPS) at the cost of more CPU usage.\n#: The default value yields ~100 FPS which is more than sufficient for\n#: most uses. Note that to actually achieve 100 FPS you have to either\n#: set sync_to_monitor to no or use a monitor with a high refresh\n#: rate. Also, to minimize latency when there is pending input to be\n#: processed, repaint_delay is ignored.\n\ninput_delay 3\n\n#: Delay (in milliseconds) before input from the program running in\n#: the terminal is processed. Note that decreasing it will increase\n#: responsiveness, but also increase CPU usage and might cause flicker\n#: in full screen programs that redraw the entire screen on each loop,\n#: because kitty is so fast that partial screen updates will be drawn.\n\nsync_to_monitor yes\n\n#: Sync screen updates to the refresh rate of the monitor. This\n#: prevents tearing (https://en.wikipedia.org/wiki/Screen_tearing)\n#: when scrolling. However, it limits the rendering speed to the\n#: refresh rate of your monitor. With a very high speed mouse/high\n#: keyboard repeat rate, you may notice some slight input latency. If\n#: so, set this to no.\n\n#: }}}\n\n#: Terminal bell {{{\n\nenable_audio_bell no\n\n#: Enable/disable the audio bell. Useful in environments that require\n#: silence.\n\nvisual_bell_duration 0.0\n\n#: Visual bell duration. Flash the screen when a bell occurs for the\n#: specified number of seconds. Set to zero to disable.\n\nwindow_alert_on_bell yes\n\n#: Request window attention on bell. Makes the dock icon bounce on\n#: macOS or the taskbar flash on linux.\n\nbell_on_tab yes\n\n#: Show a bell symbol on the tab if a bell occurs in one of the\n#: windows in the tab and the window is not the currently focused\n#: window\n\ncommand_on_bell none\n\n#: Program to run when a bell occurs.\n\n#: }}}\n\n#: Window layout {{{\n\nremember_window_size  yes\ninitial_window_width  640\ninitial_window_height 400\n\n#: If enabled, the window size will be remembered so that new\n#: instances of kitty will have the same size as the previous\n#: instance. If disabled, the window will initially have size\n#: configured by initial_window_width/height, in pixels. You can use a\n#: suffix of \"c\" on the width/height values to have them interpreted\n#: as number of cells instead of pixels.\n\nenabled_layouts *\n\n#: The enabled window layouts. A comma separated list of layout names.\n#: The special value all means all layouts. The first listed layout\n#: will be used as the startup layout. Default configuration is all\n#: layouts in alphabetical order. For a list of available layouts, see\n#: the https://sw.kovidgoyal.net/kitty/index.html#layouts.\n\nwindow_resize_step_cells 2\nwindow_resize_step_lines 2\n\n#: The step size (in units of cell width/cell height) to use when\n#: resizing windows. The cells value is used for horizontal resizing\n#: and the lines value for vertical resizing.\n\nwindow_border_width 0.5pt\n\n#: The width of window borders. Can be either in pixels (px) or pts\n#: (pt). Values in pts will be rounded to the nearest number of pixels\n#: based on screen resolution. If not specified the unit is assumed to\n#: be pts. Note that borders are displayed only when more than one\n#: window is visible. They are meant to separate multiple windows.\n\ndraw_minimal_borders yes\n\n#: Draw only the minimum borders needed. This means that only the\n#: minimum needed borders for inactive windows are drawn. That is only\n#: the borders that separate the inactive window from a neighbor. Note\n#: that setting a non-zero window margin overrides this and causes all\n#: borders to be drawn.\n\nwindow_margin_width 0\n\n#: The window margin (in pts) (blank area outside the border). A\n#: single value sets all four sides. Two values set the vertical and\n#: horizontal sides. Three values set top, horizontal and bottom. Four\n#: values set top, right, bottom and left.\n\nsingle_window_margin_width -1\n\n#: The window margin (in pts) to use when only a single window is\n#: visible. Negative values will cause the value of\n#: window_margin_width to be used instead. A single value sets all\n#: four sides. Two values set the vertical and horizontal sides. Three\n#: values set top, horizontal and bottom. Four values set top, right,\n#: bottom and left.\n\nwindow_padding_width 10\n\n#: The window padding (in pts) (blank area between the text and the\n#: window border). A single value sets all four sides. Two values set\n#: the vertical and horizontal sides. Three values set top, horizontal\n#: and bottom. Four values set top, right, bottom and left.\n\nplacement_strategy center\n\n#: When the window size is not an exact multiple of the cell size, the\n#: cell area of the terminal window will have some extra padding on\n#: the sides. You can control how that padding is distributed with\n#: this option. Using a value of center means the cell area will be\n#: placed centrally. A value of top-left means the padding will be on\n#: only the bottom and right edges.\n\nactive_border_color #00ff00\n\n#: The color for the border of the active window. Set this to none to\n#: not draw borders around the active window.\n\ninactive_border_color #cccccc\n\n#: The color for the border of inactive windows\n\nbell_border_color #ff5a00\n\n#: The color for the border of inactive windows in which a bell has\n#: occurred\n\ninactive_text_alpha 1.0\n\n#: Fade the text in inactive windows by the specified amount (a number\n#: between zero and one, with zero being fully faded).\n\nhide_window_decorations no\n\n#: Hide the window decorations (title-bar and window borders) with\n#: yes. On macOS, titlebar-only can be used to only hide the titlebar.\n#: Whether this works and exactly what effect it has depends on the\n#: window manager/operating system.\n\nresize_debounce_time 0.1\n\n#: The time (in seconds) to wait before redrawing the screen when a\n#: resize event is received. On platforms such as macOS, where the\n#: operating system sends events corresponding to the start and end of\n#: a resize, this number is ignored.\n\nresize_draw_strategy static\n\n#: Choose how kitty draws a window while a resize is in progress. A\n#: value of static means draw the current window contents, mostly\n#: unchanged. A value of scale means draw the current window contents\n#: scaled. A value of blank means draw a blank window. A value of size\n#: means show the window size in cells.\n\nresize_in_steps no\n\n#: Resize the OS window in steps as large as the cells, instead of\n#: with the usual pixel accuracy. Combined with an\n#: initial_window_width and initial_window_height in number of cells,\n#: this option can be used to keep the margins as small as possible\n#: when resizing the OS window. Note that this does not currently work\n#: on Wayland.\n\nconfirm_os_window_close 0\n\n#: Ask for confirmation when closing an OS window or a tab that has at\n#: least this number of kitty windows in it. A value of zero disables\n#: confirmation. This confirmation also applies to requests to quit\n#: the entire application (all OS windows, via the quit action).\n\n#: }}}\n\n#: Tab bar {{{\n\ntab_bar_edge bottom\n\n#: Which edge to show the tab bar on, top or bottom\n\ntab_bar_margin_width 0.0\n\n#: The margin to the left and right of the tab bar (in pts)\n\ntab_bar_style fade\n\n#: The tab bar style, can be one of: fade, separator, powerline, or\n#: hidden. In the fade style, each tab's edges fade into the\n#: background color, in the separator style, tabs are separated by a\n#: configurable separator, and the powerline shows the tabs as a\n#: continuous line. If you use the hidden style, you might want to\n#: create a mapping for the select_tab action which presents you with\n#: a list of tabs and allows for easy switching to a tab.\n\ntab_bar_min_tabs 2\n\n#: The minimum number of tabs that must exist before the tab bar is\n#: shown\n\ntab_switch_strategy previous\n\n#: The algorithm to use when switching to a tab when the current tab\n#: is closed. The default of previous will switch to the last used\n#: tab. A value of left will switch to the tab to the left of the\n#: closed tab. A value of right will switch to the tab to the right of\n#: the closed tab. A value of last will switch to the right-most tab.\n\ntab_fade 0.25 0.5 0.75 1\n\n#: Control how each tab fades into the background when using fade for\n#: the tab_bar_style. Each number is an alpha (between zero and one)\n#: that controls how much the corresponding cell fades into the\n#: background, with zero being no fade and one being full fade. You\n#: can change the number of cells used by adding/removing entries to\n#: this list.\n\ntab_separator \" ┇\"\n\n#: The separator between tabs in the tab bar when using separator as\n#: the tab_bar_style.\n\ntab_activity_symbol none\n\n#: Some text or a unicode symbol to show on the tab if a window in the\n#: tab that does not have focus has some activity.\n\ntab_title_template \"{title}\"\n\n#: A template to render the tab title. The default just renders the\n#: title. If you wish to include the tab-index as well, use something\n#: like: {index}: {title}. Useful if you have shortcuts mapped for\n#: goto_tab N. In addition you can use {layout_name} for the current\n#: layout name and {num_windows} for the number of windows in the tab.\n#: Note that formatting is done by Python's string formatting\n#: machinery, so you can use, for instance, {layout_name[:2].upper()}\n#: to show only the first two letters of the layout name, upper-cased.\n#: If you want to style the text, you can use styling directives, for\n#: example: {fmt.fg.red}red{fmt.fg.default}normal{fmt.bg._00FF00}green\n#: bg{fmt.bg.normal}. Similarly, for bold and italic:\n#: {fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}.\n\nactive_tab_title_template none\n\n#: Template to use for active tabs, if not specified falls back to\n#: tab_title_template.\n\nactive_tab_foreground   #000\nactive_tab_background   #eee\nactive_tab_font_style   bold-italic\ninactive_tab_foreground #444\ninactive_tab_background #999\ninactive_tab_font_style normal\n\n#: Tab bar colors and styles\n\ntab_bar_background none\n\n#: Background color for the tab bar. Defaults to using the terminal\n#: background color.\n\n#: }}}\n\n#: Color scheme {{{\n\n# github colors for Kitty\nbackground #0d1117\nforeground #b3b1ad\nselection_background #163356\nselection_foreground #b3b1ad\nurl_color #b3b1ad\ncursor #73b7f2\ncursor_text_color background\n\n# Tabs\nactive_tab_background #58a6ff\nactive_tab_foreground #090c10\ninactive_tab_background #4d5566\ninactive_tab_foreground #090c10\n\n# Windows Border\nactive_border_color #b3b1ad\ninactive_border_color #b3b1ad\n\n# normal\ncolor0 #484f58\ncolor1 #ff7b72\ncolor2 #3fb950\ncolor3 #d29922\ncolor4 #58a6ff\ncolor5 #bc8cff\ncolor6 #39c5cf\ncolor7 #b1bac4\n\n# bright\ncolor8 #6e7681\ncolor9 #ffa198\ncolor10 #56d364\ncolor11 #e3b341\ncolor12 #79c0ff\ncolor13 #d2a8ff\ncolor14 #56d4dd\ncolor15 #f0f6fc\n\n# extended colors\ncolor16 #e3b341\ncolor17 #ffa198\n#----------------------- old theme\n## black\n#color0 #1a1b26\n#color8 #444B6A\n#\n##red\n#color1 #ae7eb7\n#color9 #8C579C\n#\n##green\n#color2 #9ECE6A\n#color10 #618041\n#\n##yellow\n#color3 #E0AF68\n#color11 #FF9E64\n#\n## blue\n#color4 #7AA2F7\n#color12 #66d9ef\n#\n## magenta\n#color5 #ad8ee6\n#color13 #ad8ee6\n#\n## cyan\n#color6 #7b8e93\n#color14 #556468\n#\n## white\n#color7 #b3bec1\n#color15 #f7f8f8\n\nmark1_foreground black\n\n#: Color for marks of type 1\n\nmark1_background #98d3cb\n\n#: Color for marks of type 1 (light steel blue)\n\nmark2_foreground black\n\n#: Color for marks of type 2\n\nmark2_background #f2dcd3\n\n#: Color for marks of type 1 (beige)\n\nmark3_foreground black\n\n#: Color for marks of type 3\n\nmark3_background #f274bc\n\n#: Color for marks of type 1 (violet)\n\n#: }}}\n\n#: Advanced {{{\n\nshell .\n\n#: The shell program to execute. The default value of . means to use\n#: whatever shell is set as the default shell for the current user.\n#: Note that on macOS if you change this, you might need to add\n#: --login to ensure that the shell starts in interactive mode and\n#: reads its startup rc files.\n\neditor .\n\n#: The console editor to use when editing the kitty config file or\n#: similar tasks. A value of . means to use the environment variables\n#: VISUAL and EDITOR in that order. Note that this environment\n#: variable has to be set not just in your shell startup scripts but\n#: system-wide, otherwise kitty will not see it.\n\nclose_on_child_death no\n\n#: Close the window when the child process (shell) exits. If no (the\n#: default), the terminal will remain open when the child exits as\n#: long as there are still processes outputting to the terminal (for\n#: example disowned or backgrounded processes). If yes, the window\n#: will close as soon as the child process exits. Note that setting it\n#: to yes means that any background processes still using the terminal\n#: can fail silently because their stdout/stderr/stdin no longer work.\n\nallow_remote_control no\n\n#: Allow other programs to control kitty. If you turn this on other\n#: programs can control all aspects of kitty, including sending text\n#: to kitty windows, opening new windows, closing windows, reading the\n#: content of windows, etc.  Note that this even works over ssh\n#: connections. You can chose to either allow any program running\n#: within kitty to control it, with yes or only programs that connect\n#: to the socket specified with the kitty --listen-on command line\n#: option, if you use the value socket-only. The latter is useful if\n#: you want to prevent programs running on a remote computer over ssh\n#: from controlling kitty.\n\nlisten_on none\n\n#: Tell kitty to listen to the specified unix/tcp socket for remote\n#: control connections. Note that this will apply to all kitty\n#: instances. It can be overridden by the kitty --listen-on command\n#: line flag. This option accepts only UNIX sockets, such as\n#: unix:${TEMP}/mykitty or (on Linux) unix:@mykitty. Environment\n#: variables are expanded. If {kitty_pid} is present then it is\n#: replaced by the PID of the kitty process, otherwise the PID of the\n#: kitty process is appended to the value, with a hyphen. This option\n#: is ignored unless you also set allow_remote_control to enable\n#: remote control. See the help for kitty --listen-on for more\n#: details.\n\n# env \n\n#: Specify environment variables to set in all child processes. Note\n#: that environment variables are expanded recursively, so if you\n#: use::\n\n#:     env MYVAR1=a\n#:     env MYVAR2=${MYVAR1}/${HOME}/b\n\n#: The value of MYVAR2 will be a/\u003cpath to home directory\u003e/b.\n\nupdate_check_interval 24\n\n#: Periodically check if an update to kitty is available. If an update\n#: is found a system notification is displayed informing you of the\n#: available update. The default is to check every 24 hrs, set to zero\n#: to disable.\n\nstartup_session none\n\n#: Path to a session file to use for all kitty instances. Can be\n#: overridden by using the kitty --session command line option for\n#: individual instances. See\n#: https://sw.kovidgoyal.net/kitty/index.html#sessions in the kitty\n#: documentation for details. Note that relative paths are interpreted\n#: with respect to the kitty config directory. Environment variables\n#: in the path are expanded.\n\nclipboard_control write-clipboard write-primary\n\n#: Allow programs running in kitty to read and write from the\n#: clipboard. You can control exactly which actions are allowed. The\n#: set of possible actions is: write-clipboard read-clipboard write-\n#: primary read-primary. You can additionally specify no-append to\n#: disable kitty's protocol extension for clipboard concatenation. The\n#: default is to allow writing to the clipboard and primary selection\n#: with concatenation enabled. Note that enabling the read\n#: functionality is a security risk as it means that any program, even\n#: one running on a remote server via SSH can read your clipboard.\n\nallow_hyperlinks yes\n\n#: Process hyperlink (OSC 8) escape sequences. If disabled OSC 8\n#: escape sequences are ignored. Otherwise they become clickable\n#: links, that you can click by holding down ctrl+shift and clicking\n#: with the mouse. The special value of ``ask`` means that kitty will\n#: ask before opening the link.\n\nterm xterm-kitty\n\n#: The value of the TERM environment variable to set. Changing this\n#: can break many terminal programs, only change it if you know what\n#: you are doing, not because you read some advice on Stack Overflow\n#: to change it. The TERM variable is used by various programs to get\n#: information about the capabilities and behavior of the terminal. If\n#: you change it, depending on what programs you run, and how\n#: different the terminal you are changing it to is, various things\n#: from key-presses, to colors, to various advanced features may not\n#: work.\n\n#: }}}\n\n#: OS specific tweaks {{{\n\nmacos_titlebar_color system\n\n#: Change the color of the kitty window's titlebar on macOS. A value\n#: of system means to use the default system color, a value of\n#: background means to use the background color of the currently\n#: active window and finally you can use an arbitrary color, such as\n#: #12af59 or red. WARNING: This option works by using a hack, as\n#: there is no proper Cocoa API for it. It sets the background color\n#: of the entire window and makes the titlebar transparent. As such it\n#: is incompatible with background_opacity. If you want to use both,\n#: you are probably better off just hiding the titlebar with\n#: hide_window_decorations.\n\nmacos_option_as_alt no\n\n#: Use the option key as an alt key. With this set to no, kitty will\n#: use the macOS native Option+Key = unicode character behavior. This\n#: will break any Alt+key keyboard shortcuts in your terminal\n#: programs, but you can use the macOS unicode input technique. You\n#: can use the values: left, right, or both to use only the left,\n#: right or both Option keys as Alt, instead.\n\nmacos_hide_from_tasks no\n\n#: Hide the kitty window from running tasks (Option+Tab) on macOS.\n\nmacos_quit_when_last_window_closed no\n\n#: Have kitty quit when all the top-level windows are closed. By\n#: default, kitty will stay running, even with no open windows, as is\n#: the expected behavior on macOS.\n\nmacos_window_resizable yes\n\n#: Disable this if you want kitty top-level (OS) windows to not be\n#: resizable on macOS.\n\nmacos_thicken_font 0\n\n#: Draw an extra border around the font with the given width, to\n#: increase legibility at small font sizes. For example, a value of\n#: 0.75 will result in rendering that looks similar to sub-pixel\n#: antialiasing at common font sizes.\n\nmacos_traditional_fullscreen no\n\n#: Use the traditional full-screen transition, that is faster, but\n#: less pretty.\n\nmacos_show_window_title_in all\n\n#: Show or hide the window title in the macOS window or menu-bar. A\n#: value of window will show the title of the currently active window\n#: at the top of the macOS window. A value of menubar will show the\n#: title of the currently active window in the macOS menu-bar, making\n#: use of otherwise wasted space. all will show the title everywhere\n#: and none hides the title in the window and the menu-bar.\n\nmacos_custom_beam_cursor no\n\n#: Enable/disable custom mouse cursor for macOS that is easier to see\n#: on both light and dark backgrounds. WARNING: this might make your\n#: mouse cursor invisible on dual GPU machines.\n\nlinux_display_server auto\n\n#: Choose between Wayland and X11 backends. By default, an appropriate\n#: backend based on the system state is chosen automatically. Set it\n#: to x11 or wayland to force the choice.\n\n#: }}}\n\n#: Keyboard shortcuts {{{\n\n#: Keys are identified simply by their lowercase unicode characters.\n#: For example: ``a`` for the A key, ``[`` for the left square bracket\n#: key, etc. For functional keys, such as ``Enter or Escape`` the\n#: names are present at https://sw.kovidgoyal.net/kitty/keyboard-\n#: protocol.html#functional-key-definitions. For a list of modifier\n#: names, see: GLFW mods\n#: \u003chttps://www.glfw.org/docs/latest/group__mods.html\u003e\n\n#: On Linux you can also use XKB key names to bind keys that are not\n#: supported by GLFW. See XKB keys\n#: \u003chttps://github.com/xkbcommon/libxkbcommon/blob/master/xkbcommon/xkbcommon-\n#: keysyms.h\u003e for a list of key names. The name to use is the part\n#: after the XKB_KEY_ prefix. Note that you can only use an XKB key\n#: name for keys that are not known as GLFW keys.\n\n#: Finally, you can use raw system key codes to map keys, again only\n#: for keys that are not known as GLFW keys. To see the system key\n#: code for a key, start kitty with the kitty --debug-keyboard option.\n#: Then kitty will output some debug text for every key event. In that\n#: text look for ``native_code`` the value of that becomes the key\n#: name in the shortcut. For example:\n\n#: .. code-block:: none\n\n#:     on_key_input: glfw key: 65 native_code: 0x61 action: PRESS mods: 0x0 text: 'a'\n\n#: Here, the key name for the A key is 0x61 and you can use it with::\n\n#:     map ctrl+0x61 something\n\n#: to map ctrl+a to something.\n\n#: You can use the special action no_op to unmap a keyboard shortcut\n#: that is assigned in the default configuration::\n\n#:     map kitty_mod+space no_op\n\n#: You can combine multiple actions to be triggered by a single\n#: shortcut, using the syntax below::\n\n#:     map key combine \u003cseparator\u003e action1 \u003cseparator\u003e action2 \u003cseparator\u003e action3 ...\n\n#: For example::\n\n#:     map kitty_mod+e combine : new_window : next_layout\n\n#: this will create a new window and switch to the next available\n#: layout\n\n#: You can use multi-key shortcuts using the syntax shown below::\n\n#:     map key1\u003ekey2\u003ekey3 action\n\n#: For example::\n\n#:     map ctrl+f\u003e2 set_font_size 20\n\nkitty_mod ctrl+shift\n\n#: The value of kitty_mod is used as the modifier for all default\n#: shortcuts, you can change it in your kitty.conf to change the\n#: modifiers for all the default shortcuts.\n\nclear_all_shortcuts no\n\n#: You can have kitty remove all shortcut definition seen up to this\n#: point. Useful, for instance, to remove the default shortcuts.\n\n# kitten_alias hints hints --hints-offset=0\n\n#: You can create aliases for kitten names, this allows overriding the\n#: defaults for kitten options and can also be used to shorten\n#: repeated mappings of the same kitten with a specific group of\n#: options. For example, the above alias changes the default value of\n#: kitty +kitten hints --hints-offset to zero for all mappings,\n#: including the builtin ones.\n\n#: Clipboard {{{\n\nmap kitty_mod+c copy_to_clipboard\n\n#: There is also a copy_or_interrupt action that can be optionally\n#: mapped to Ctrl+c. It will copy only if there is a selection and\n#: send an interrupt otherwise. Similarly, copy_and_clear_or_interrupt\n#: will copy and clear the selection or send an interrupt if there is\n#: no selection.\n\nmap kitty_mod+v  paste_from_clipboard\nmap kitty_mod+s  paste_from_selection\nmap shift+insert paste_from_selection\nmap kitty_mod+o  pass_selection_to_program\n\n#: You can also pass the contents of the current selection to any\n#: program using pass_selection_to_program. By default, the system's\n#: open program is used, but you can specify your own, the selection\n#: will be passed as a command line argument to the program, for\n#: example::\n\n#:     map kitty_mod+o pass_selection_to_program firefox\n\n#: You can pass the current selection to a terminal program running in\n#: a new kitty window, by using the @selection placeholder::\n\n#:     map kitty_mod+y new_window less @selection\n\n#: }}}\n\n#: Scrolling {{{\n\nmap kitty_mod+up        scroll_line_up\nmap kitty_mod+k         scroll_line_up\nmap kitty_mod+down      scroll_line_down\nmap kitty_mod+j         scroll_line_down\nmap kitty_mod+page_up   scroll_page_up\nmap kitty_mod+page_down scroll_page_down\nmap kitty_mod+home      scroll_home\nmap kitty_mod+end       scroll_end\nmap kitty_mod+h         show_scrollback\n\n#: You can pipe the contents of the current screen + history buffer as\n#: STDIN to an arbitrary program using the ``launch`` function. For\n#: example, the following opens the scrollback buffer in less in an\n#: overlay window::\n\n#:     map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R\n\n#: For more details on piping screen and buffer contents to external\n#: programs, see launch.\n\n#: }}}\n\n#: Window management {{{\n\nmap kitty_mod+enter new_window\n\n#: You can open a new window running an arbitrary program, for\n#: example::\n\n#:     map kitty_mod+y      launch mutt\n\n#: You can open a new window with the current working directory set to\n#: the working directory of the current window using::\n\n#:     map ctrl+alt+enter    launch --cwd=current\n\n#: You can open a new window that is allowed to control kitty via the\n#: kitty remote control facility by prefixing the command line with @.\n#: Any programs running in that window will be allowed to control\n#: kitty. For example::\n\n#:     map ctrl+enter launch --allow-remote-control some_program\n\n#: You can open a new window next to the currently active window or as\n#: the first window, with::\n\n#:     map ctrl+n launch --location=neighbor some_program\n#:     map ctrl+f launch --location=first some_program\n\n#: For more details, see launch.\n\nmap kitty_mod+n new_os_window\n\n#: Works like new_window above, except that it opens a top level OS\n#: kitty window. In particular you can use new_os_window_with_cwd to\n#: open a window with the current working directory.\n\nmap kitty_mod+w close_window\nmap kitty_mod+] next_window\nmap kitty_mod+[ previous_window\nmap kitty_mod+f move_window_forward\nmap kitty_mod+b move_window_backward\nmap kitty_mod+` move_window_to_top\nmap kitty_mod+r start_resizing_window\nmap kitty_mod+1 first_window\nmap kitty_mod+2 second_window\nmap kitty_mod+3 third_window\nmap kitty_mod+4 fourth_window\nmap kitty_mod+5 fifth_window\nmap kitty_mod+6 sixth_window\nmap kitty_mod+7 seventh_window\nmap kitty_mod+8 eighth_window\nmap kitty_mod+9 ninth_window\nmap kitty_mod+0 tenth_window\n#: }}}\n\n#: Tab management {{{\n\nmap kitty_mod+right next_tab\nmap kitty_mod+left  previous_tab\nmap kitty_mod+t     new_tab\nmap kitty_mod+q     close_tab\nmap kitty_mod+.     move_tab_forward\nmap kitty_mod+,     move_tab_backward\nmap kitty_mod+alt+t set_tab_title\n\n#: You can also create shortcuts to go to specific tabs, with 1 being\n#: the first tab, 2 the second tab and -1 being the previously active\n#: tab, and any number larger than the last tab being the last tab::\n\n#:     map ctrl+alt+1 goto_tab 1\n#:     map ctrl+alt+2 goto_tab 2\n\n#: Just as with new_window above, you can also pass the name of\n#: arbitrary commands to run when using new_tab and use\n#: new_tab_with_cwd. Finally, if you want the new tab to open next to\n#: the current tab rather than at the end of the tabs list, use::\n\n#:     map ctrl+t new_tab !neighbor [optional cmd to run]\n#: }}}\n\n#: Layout management {{{\n\nmap kitty_mod+l next_layout\n\n#: You can also create shortcuts to switch to specific layouts::\n\n#:     map ctrl+alt+t goto_layout tall\n#:     map ctrl+alt+s goto_layout stack\n\n#: Similarly, to switch back to the previous layout::\n\n#:    map ctrl+alt+p last_used_layout\n#: }}}\n\n#: Font sizes {{{\n\n#: You can change the font size for all top-level kitty OS windows at\n#: a time or only the current one.\n\nmap kitty_mod+equal       change_font_size all +2.0\nmap kitty_mod+plus        change_font_size all +2.0\nmap kitty_mod+kp_add      change_font_size all +2.0\nmap kitty_mod+minus       change_font_size all -2.0\nmap kitty_mod+kp_subtract change_font_size all -2.0\nmap kitty_mod+backspace   change_font_size all 0\n\n#: To setup shortcuts for specific font sizes::\n\n#:     map kitty_mod+f6 change_font_size all 10.0\n\n#: To setup shortcuts to change only the current OS window's font\n#: size::\n\n#:     map kitty_mod+f6 change_font_size current 10.0\n#: }}}\n\n#: Select and act on visible text {{{\n\n#: Use the hints kitten to select text and either pass it to an\n#: external program or insert it into the terminal or copy it to the\n#: clipboard.\n\nmap kitty_mod+e kitten hints\n\n#: Open a currently visible URL using the keyboard. The program used\n#: to open the URL is specified in open_url_with.\n\nmap kitty_mod+p\u003ef kitten hints --type path --program -\n\n#: Select a path/filename and insert it into the terminal. Useful, for\n#: instance to run git commands on a filename output from a previous\n#: git command.\n\nmap kitty_mod+p\u003eshift+f kitten hints --type path\n\n#: Select a path/filename and open it with the default open program.\n\nmap kitty_mod+p\u003el kitten hints --type line --program -\n\n#: Select a line of text and insert it into the terminal. Use for the\n#: output of things like: ls -1\n\nmap kitty_mod+p\u003ew kitten hints --type word --program -\n\n#: Select words and insert into terminal.\n\nmap kitty_mod+p\u003eh kitten hints --type hash --program -\n\n#: Select something that looks like a hash and insert it into the\n#: terminal. Useful with git, which uses sha1 hashes to identify\n#: commits\n\nmap kitty_mod+p\u003en kitten hints --type linenum\n\n#: Select something that looks like filename:linenum and open it in\n#: vim at the specified line number.\n\nmap kitty_mod+p\u003ey kitten hints --type hyperlink\n\n#: Select a hyperlink (i.e. a URL that has been marked as such by the\n#: terminal program, for example, by ls --hyperlink=auto).\n\n\n#: The hints kitten has many more modes of operation that you can map\n#: to different shortcuts. For a full description see kittens/hints.\n#: }}}\n\n#: Miscellaneous {{{\n\nmap kitty_mod+f11    toggle_fullscreen\nmap kitty_mod+f10    toggle_maximized\nmap kitty_mod+u      kitten unicode_input\nmap kitty_mod+f2     edit_config_file\nmap kitty_mod+escape kitty_shell window\n\n#: Open the kitty shell in a new window/tab/overlay/os_window to\n#: control kitty using commands.\n\nmap kitty_mod+a\u003em    set_background_opacity +0.1\nmap kitty_mod+a\u003el    set_background_opacity -0.1\nmap kitty_mod+a\u003e1    set_background_opacity 1\nmap kitty_mod+a\u003ed    set_background_opacity default\nmap kitty_mod+delete clear_terminal reset active\n\n#: You can create shortcuts to clear/reset the terminal. For example::\n\n#:     # Reset the terminal\n#:     map kitty_mod+f9 clear_terminal reset active\n#:     # Clear the terminal screen by erasing all contents\n#:     map kitty_mod+f10 clear_terminal clear active\n#:     # Clear the terminal scrollback by erasing it\n#:     map kitty_mod+f11 clear_terminal scrollback active\n#:     # Scroll the contents of the screen into the scrollback\n#:     map kitty_mod+f12 clear_terminal scroll active\n\n#: If you want to operate on all windows instead of just the current\n#: one, use all instead of active.\n\n#: It is also possible to remap Ctrl+L to both scroll the current\n#: screen contents into the scrollback buffer and clear the screen,\n#: instead of just clearing the screen::\n\n#:     map ctrl+l combine : clear_terminal scroll active : send_text normal,application \\x0c\n\n\n#: You can tell kitty to send arbitrary (UTF-8) encoded text to the\n#: client program when pressing specified shortcut keys. For example::\n\n#:     map ctrl+alt+a send_text all Special text\n\n#: This will send \"Special text\" when you press the ctrl+alt+a key\n#: combination.  The text to be sent is a python string literal so you\n#: can use escapes like \\x1b to send control codes or \\u21fb to send\n#: unicode characters (or you can just input the unicode characters\n#: directly as UTF-8 text). The first argument to send_text is the\n#: keyboard modes in which to activate the shortcut. The possible\n#: values are normal or application or kitty or a comma separated\n#: combination of them.  The special keyword all means all modes. The\n#: modes normal and application refer to the DECCKM cursor key mode\n#: for terminals, and kitty refers to the special kitty extended\n#: keyboard protocol.\n\n#: Another example, that outputs a word and then moves the cursor to\n#: the start of the line (same as pressing the Home key)::\n\n#:     map ctrl+alt+a send_text normal Word\\x1b[H\n#:     map ctrl+alt+a send_text application Word\\x1bOH\n\n#: }}}\n\n# }}}\n\n#+end_src\n\n","funding_links":[],"categories":["CSS"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchannel-42%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchannel-42%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchannel-42%2Fdotfiles/lists"}