├── .gitignore ├── README.md ├── btop ├── btop.conf └── themes │ ├── catppuccin_frappe.theme │ ├── catppuccin_latte.theme │ ├── catppuccin_macchiato.theme │ └── catppuccin_mocha.theme ├── cava └── config ├── dunst ├── dunstrc └── mocha.conf ├── hypr ├── hyprland.conf ├── scripts │ ├── brightness_ctl.sh │ ├── fans.sh │ ├── import-gsettings.sh │ ├── volume_ctl.sh │ ├── wallpaper.sh │ └── wallpaper │ │ └── wallpaper.sh ├── themes │ ├── frappe.conf │ ├── latte.conf │ ├── macchiato.conf │ └── mocha.conf └── xdg-portal.sh ├── kitty ├── current-theme.conf ├── kitty.conf └── themes │ ├── diff-frappe.conf │ ├── diff-latte.conf │ ├── diff-macchiato.conf │ ├── diff-mocha.conf │ ├── frappe.conf │ ├── latte.conf │ ├── macchiato.conf │ └── mocha.conf ├── rofi ├── cliphist-rofi.sh └── config.rasi ├── swayidle └── config ├── swaylock └── config └── waybar ├── config ├── default ├── style.css ├── themes ├── catppuccin-mocha.css ├── tokyo-night.css └── variables.css └── tokyo_wip_style.css /.gitignore: -------------------------------------------------------------------------------- 1 | Authy\ Desktop/ 2 | autostart/ 3 | beekeeper-studio/ 4 | cef_user_data/ 5 | Code/ 6 | darktable/ 7 | dconf/ 8 | Docker\ Desktop/ 9 | Electron/ 10 | gcloud/ 11 | google-chrome/ 12 | i3/ 13 | inkscape/ 14 | menus/ 15 | Morgen/ 16 | nano/ 17 | obs-studio/ 18 | obsidian/ 19 | Paradigma\ Software\, Inc\./ 20 | ParadigmaSoft/ 21 | pulse/ 22 | spotify/ 23 | systemd/ 24 | Thunar/ 25 | Unknown\ Organization/ 26 | vifm/ 27 | vlc/ 28 | vscode-sqltools/ 29 | xfce4/ 30 | xsettingsd/ 31 | yay/ 32 | spicetify/ 33 | Slack/ 34 | neofetch/ 35 | nordvpn/ 36 | composer/ 37 | deepin/ 38 | flutter/ 39 | composer/ 40 | gedit/ 41 | transmission-daemon/ 42 | xed/ 43 | 44 | nwg-look/config 45 | EOS-greeter.conf 46 | eos-update-notifier.first_init 47 | example.picom.conf 48 | pavucontrol.ini 49 | QtProject.conf 50 | reflector-simple-free-params.txt 51 | user-dirs.dirs 52 | user-dirs.locale 53 | xdg-terminals.list 54 | zoom.conf 55 | zoomus.conf 56 | btop/btop.log 57 | gtk-3.0/bookmarks 58 | gtk-3.0/gtk.css 59 | gtk-3.0/settings.ini 60 | gtk-4.0/gtk.css 61 | gtk-4.0/settings.ini 62 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Hyprland Dots 2 | 3 | Fair warning, I've tried to keep these clean of any unnessecary pieces, and I can't guarantee everything will work for you. There may also be missing pieces!? 4 | 5 | this rice covers: 6 | 7 | * Hyprland - wm 8 | * btop - cpu graphs 9 | * cava - audio visualiser 10 | * dunst - notifications 11 | * kitty - terminal client 12 | * rofi - launcher 13 | * swaylock-effects - lockscreen 14 | * waybar - bar 15 | * slurp - screenshots 16 | * wf-recorder - screenrecording 17 | 18 | * ![Screenshot](https://github.com/floodedcodeboy/hyprland-dots/assets/1107148/2ce368c4-fa8b-4d35-99d4-c23f248884ae) 19 | 20 | 21 | https://github.com/floodedcodeboy/hyprland-dots/assets/1107148/03549298-e996-4caf-8b72-b1b5a5d2ec14 22 | 23 | 24 | 25 | Feel free to leave comments and/or feedback! 26 | 27 | -------------------------------------------------------------------------------- /btop/btop.conf: -------------------------------------------------------------------------------- 1 | #? Config file for btop v. 1.3.0 2 | 3 | #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. 4 | #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" 5 | color_theme = "/home/jacob/.config/btop/themes/catppuccin_mocha.theme" 6 | 7 | #* If the theme set background should be shown, set to False if you want terminal background transparency. 8 | theme_background = True 9 | 10 | #* Sets if 24-bit truecolor should be used, will convert 24-bit colors to 256 color (6x6x6 color cube) if false. 11 | truecolor = True 12 | 13 | #* Set to true to force tty mode regardless if a real tty has been detected or not. 14 | #* Will force 16-color mode and TTY theme, set all graph symbols to "tty" and swap out other non tty friendly symbols. 15 | force_tty = False 16 | 17 | #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. 18 | #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. 19 | #* Use whitespace " " as separator between different presets. 20 | #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" 21 | presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" 22 | 23 | #* Set to True to enable "h,j,k,l,g,G" keys for directional control in lists. 24 | #* Conflicting keys for h:"help" and k:"kill" is accessible while holding shift. 25 | vim_keys = False 26 | 27 | #* Rounded corners on boxes, is ignored if TTY mode is ON. 28 | rounded_corners = True 29 | 30 | #* Default symbols to use for graph creation, "braille", "block" or "tty". 31 | #* "braille" offers the highest resolution but might not be included in all fonts. 32 | #* "block" has half the resolution of braille but uses more common characters. 33 | #* "tty" uses only 3 different symbols but will work with most fonts and should work in a real TTY. 34 | #* Note that "tty" only has half the horizontal resolution of the other two, so will show a shorter historical view. 35 | graph_symbol = "braille" 36 | 37 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 38 | graph_symbol_cpu = "default" 39 | 40 | # Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". 41 | graph_symbol_gpu = "default" 42 | 43 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 44 | graph_symbol_mem = "default" 45 | 46 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 47 | graph_symbol_net = "default" 48 | 49 | # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". 50 | graph_symbol_proc = "default" 51 | 52 | #* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. 53 | shown_boxes = "cpu mem net proc" 54 | 55 | #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. 56 | update_ms = 2000 57 | 58 | #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", 59 | #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. 60 | proc_sorting = "cpu lazy" 61 | 62 | #* Reverse sorting order, True or False. 63 | proc_reversed = False 64 | 65 | #* Show processes as a tree. 66 | proc_tree = False 67 | 68 | #* Use the cpu graph colors in the process list. 69 | proc_colors = True 70 | 71 | #* Use a darkening gradient in the process list. 72 | proc_gradient = True 73 | 74 | #* If process cpu usage should be of the core it's running on or usage of the total available cpu power. 75 | proc_per_core = False 76 | 77 | #* Show process memory as bytes instead of percent. 78 | proc_mem_bytes = True 79 | 80 | #* Show cpu graph for each process. 81 | proc_cpu_graphs = True 82 | 83 | #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) 84 | proc_info_smaps = False 85 | 86 | #* Show proc box on left side of screen instead of right. 87 | proc_left = True 88 | 89 | #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). 90 | proc_filter_kernel = False 91 | 92 | #* In tree-view, always accumulate child process resources in the parent process. 93 | proc_aggregate = False 94 | 95 | #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. 96 | #* Select from a list of detected attributes from the options menu. 97 | cpu_graph_upper = "total" 98 | 99 | #* Sets the CPU stat shown in lower half of the CPU graph, "total" is always available. 100 | #* Select from a list of detected attributes from the options menu. 101 | cpu_graph_lower = "user" 102 | 103 | #* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". 104 | show_gpu_info = "Auto" 105 | 106 | #* Toggles if the lower CPU graph should be inverted. 107 | cpu_invert_lower = False 108 | 109 | #* Set to True to completely disable the lower CPU graph. 110 | cpu_single_graph = False 111 | 112 | #* Show cpu box at bottom of screen instead of top. 113 | cpu_bottom = False 114 | 115 | #* Shows the system uptime in the CPU box. 116 | show_uptime = True 117 | 118 | #* Show cpu temperature. 119 | check_temp = True 120 | 121 | #* Which sensor to use for cpu temperature, use options menu to select from list of available sensors. 122 | cpu_sensor = "Auto" 123 | 124 | #* Show temperatures for cpu cores also if check_temp is True and sensors has been found. 125 | show_coretemp = True 126 | 127 | #* Set a custom mapping between core and coretemp, can be needed on certain cpus to get correct temperature for correct core. 128 | #* Use lm-sensors or similar to see which cores are reporting temperatures on your machine. 129 | #* Format "x:y" x=core with wrong temp, y=core with correct temp, use space as separator between multiple entries. 130 | #* Example: "4:0 5:1 6:3" 131 | cpu_core_map = "" 132 | 133 | #* Which temperature scale to use, available values: "celsius", "fahrenheit", "kelvin" and "rankine". 134 | temp_scale = "celsius" 135 | 136 | #* Use base 10 for bits/bytes sizes, KB = 1000 instead of KiB = 1024. 137 | base_10_sizes = False 138 | 139 | #* Show CPU frequency. 140 | show_cpu_freq = True 141 | 142 | #* Draw a clock at top of screen, formatting according to strftime, empty string to disable. 143 | #* Special formatting: /host = hostname | /user = username | /uptime = system uptime 144 | clock_format = "%X" 145 | 146 | #* Update main ui in background when menus are showing, set this to false if the menus is flickering too much for comfort. 147 | background_update = True 148 | 149 | #* Custom cpu model name, empty string to disable. 150 | custom_cpu_name = "" 151 | 152 | #* Optional filter for shown disks, should be full path of a mountpoint, separate multiple values with whitespace " ". 153 | #* Begin line with "exclude=" to change to exclude filter, otherwise defaults to "most include" filter. Example: disks_filter="exclude=/boot /home/user". 154 | disks_filter = "" 155 | 156 | #* Show graphs instead of meters for memory values. 157 | mem_graphs = False 158 | 159 | #* Show mem box below net box instead of above. 160 | mem_below_net = False 161 | 162 | #* Count ZFS ARC in cached and available memory. 163 | zfs_arc_cached = True 164 | 165 | #* If swap memory should be shown in memory box. 166 | show_swap = True 167 | 168 | #* Show swap as a disk, ignores show_swap value above, inserts itself after first disk. 169 | swap_disk = True 170 | 171 | #* If mem box should be split to also show disks info. 172 | show_disks = True 173 | 174 | #* Filter out non physical disks. Set this to False to include network disks, RAM disks and similar. 175 | only_physical = True 176 | 177 | #* Read disks list from /etc/fstab. This also disables only_physical. 178 | use_fstab = True 179 | 180 | #* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) 181 | zfs_hide_datasets = False 182 | 183 | #* Set to true to show available disk space for privileged users. 184 | disk_free_priv = False 185 | 186 | #* Toggles if io activity % (disk busy time) should be shown in regular disk usage view. 187 | show_io_stat = False 188 | 189 | #* Toggles io mode for disks, showing big graphs for disk read/write speeds. 190 | io_mode = False 191 | 192 | #* Set to True to show combined read/write io graphs in io mode. 193 | io_graph_combined = False 194 | 195 | #* Set the top speed for the io graphs in MiB/s (100 by default), use format "mountpoint:speed" separate disks with whitespace " ". 196 | #* Example: "/mnt/media:100 /:20 /boot:1". 197 | io_graph_speeds = "" 198 | 199 | #* Set fixed values for network graphs in Mebibits. Is only used if net_auto is also set to False. 200 | net_download = 100 201 | 202 | net_upload = 100 203 | 204 | #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. 205 | net_auto = True 206 | 207 | #* Sync the auto scaling for download and upload to whichever currently has the highest scale. 208 | net_sync = True 209 | 210 | #* Starts with the Network Interface specified here. 211 | net_iface = "" 212 | 213 | #* Show battery stats in top right if battery is present. 214 | show_battery = True 215 | 216 | #* Which battery to use if multiple are present. "Auto" for auto detection. 217 | selected_battery = "Auto" 218 | 219 | #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". 220 | #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. 221 | log_level = "WARNING" 222 | 223 | #* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. 224 | nvml_measure_pcie_speeds = True 225 | 226 | #* Horizontally mirror the GPU graph. 227 | gpu_mirror_graph = True 228 | 229 | #* Custom gpu0 model name, empty string to disable. 230 | custom_gpu_name0 = "" 231 | 232 | #* Custom gpu1 model name, empty string to disable. 233 | custom_gpu_name1 = "" 234 | 235 | #* Custom gpu2 model name, empty string to disable. 236 | custom_gpu_name2 = "" 237 | 238 | #* Custom gpu3 model name, empty string to disable. 239 | custom_gpu_name3 = "" 240 | 241 | #* Custom gpu4 model name, empty string to disable. 242 | custom_gpu_name4 = "" 243 | 244 | #* Custom gpu5 model name, empty string to disable. 245 | custom_gpu_name5 = "" -------------------------------------------------------------------------------- /btop/themes/catppuccin_frappe.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#303446" 3 | 4 | # Main text color 5 | theme[main_fg]="#C6D0F5" 6 | 7 | # Title color for boxes 8 | theme[title]="#C6D0F5" 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#8CAAEE" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#51576D" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#8CAAEE" 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#838BA7" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#F2D5CF" 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#51576D" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#F2D5CF" 30 | 31 | # CPU, Memory, Network, Proc box outline colors 32 | theme[cpu_box]="#ca9ee6" #Mauve 33 | theme[mem_box]="#a6d189" #Green 34 | theme[net_box]="#ea999c" #Maroon 35 | theme[proc_box]="#8caaee" #Blue 36 | 37 | # Box divider line and small boxes line color 38 | theme[div_line]="#737994" 39 | 40 | # Temperature graph color (Green -> Yellow -> Red) 41 | theme[temp_start]="#a6d189" 42 | theme[temp_mid]="#e5c890" 43 | theme[temp_end]="#e78284" 44 | 45 | # CPU graph colors (Teal -> Lavender) 46 | theme[cpu_start]="#81c8be" 47 | theme[cpu_mid]="#85c1dc" 48 | theme[cpu_end]="#babbf1" 49 | 50 | # Mem/Disk free meter (Mauve -> Lavender -> Blue) 51 | theme[free_start]="#ca9ee6" 52 | theme[free_mid]="#babbf1" 53 | theme[free_end]="#8caaee" 54 | 55 | # Mem/Disk cached meter (Sapphire -> Lavender) 56 | theme[cached_start]="#85c1dc" 57 | theme[cached_mid]="#8caaee" 58 | theme[cached_end]="#babbf1" 59 | 60 | # Mem/Disk available meter (Peach -> Red) 61 | theme[available_start]="#ef9f76" 62 | theme[available_mid]="#ea999c" 63 | theme[available_end]="#e78284" 64 | 65 | # Mem/Disk used meter (Green -> Sky) 66 | theme[used_start]="#a6d189" 67 | theme[used_mid]="#81c8be" 68 | theme[used_end]="#99d1db" 69 | 70 | # Download graph colors (Peach -> Red) 71 | theme[download_start]="#ef9f76" 72 | theme[download_mid]="#ea999c" 73 | theme[download_end]="#e78284" 74 | 75 | # Upload graph colors (Green -> Sky) 76 | theme[upload_start]="#a6d189" 77 | theme[upload_mid]="#81c8be" 78 | theme[upload_end]="#99d1db" 79 | 80 | # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) 81 | theme[process_start]="#85c1dc" 82 | theme[process_mid]="#babbf1" 83 | theme[process_end]="#ca9ee6" 84 | -------------------------------------------------------------------------------- /btop/themes/catppuccin_latte.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#EFF1F5" 3 | 4 | # Main text color 5 | theme[main_fg]="#4C4F69" 6 | 7 | # Title color for boxes 8 | theme[title]="#4C4F69" 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#1E66F5" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#BCC0CC" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#1E66F5" 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#8C8FA1" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#DC8A78" 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#BCC0CC" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#DC8A78" 30 | 31 | # CPU, Memory, Network, Proc box outline colors 32 | theme[cpu_box]="#8839ef" #Mauve 33 | theme[mem_box]="#40a02b" #Green 34 | theme[net_box]="#e64553" #Maroon 35 | theme[proc_box]="#1e66f5" #Blue 36 | 37 | # Box divider line and small boxes line color 38 | theme[div_line]="#9CA0B0" 39 | 40 | # Temperature graph color (Green -> Yellow -> Red) 41 | theme[temp_start]="#40a02b 42 | theme[temp_mid]="#df8e1d" 43 | theme[temp_end]="#d20f39" 44 | 45 | # CPU graph colors (Teal -> Lavender) 46 | theme[cpu_start]="#179299" 47 | theme[cpu_mid]="#209fb5" 48 | theme[cpu_end]="#7287fd" 49 | 50 | # Mem/Disk free meter (Mauve -> Lavender -> Blue) 51 | theme[free_start]="#8839ef" 52 | theme[free_mid]="#7287fd" 53 | theme[free_end]="#1e66f5" 54 | 55 | # Mem/Disk cached meter (Sapphire -> Lavender) 56 | theme[cached_start]="#209fb5" 57 | theme[cached_mid]="#1e66f5" 58 | theme[cached_end]="#7287fd" 59 | 60 | # Mem/Disk available meter (Peach -> Red) 61 | theme[available_start]="#fe640b" 62 | theme[available_mid]="#e64553" 63 | theme[available_end]="#d20f39" 64 | 65 | 66 | # Mem/Disk used meter (Green -> Sky) 67 | theme[used_start]="#40a02b" 68 | theme[used_mid]="#179299" 69 | theme[used_end]="#04a5e5" 70 | 71 | # Download graph colors (Peach -> Red) 72 | theme[download_start]="#fe640b" 73 | theme[download_mid]="#e64553" 74 | theme[download_end]="#d20f39" 75 | 76 | # Upload graph colors (Green -> Sky) 77 | theme[upload_start]="#40a02b" 78 | theme[upload_mid]="#179299" 79 | theme[upload_end]="#04a5e5" 80 | 81 | # Process box color gradient for threads, mem and cpu usage (Sapphire -> Lavender-> Mauve) 82 | theme[process_start]="#209fb5" 83 | theme[process_mid]="#7287fd" 84 | theme[process_end]="#8839ef" 85 | -------------------------------------------------------------------------------- /btop/themes/catppuccin_macchiato.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#24273A" 3 | 4 | # Main text color 5 | theme[main_fg]="#CAD3F5" 6 | 7 | # Title color for boxes 8 | theme[title]="#CAD3F5" 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#8AADF4" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#494D64" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#8AADF4" 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#8087A2" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#F4DBD6" 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#494D64" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#F4DBD6" 30 | 31 | # CPU, Memory, Network, Proc box outline colors 32 | theme[cpu_box]="#c6a0f6" #Mauve 33 | theme[mem_box]="#a6da95" #Green 34 | theme[net_box]="#ee99a0" #Maroon 35 | theme[proc_box]="#8aadf4" #Blue 36 | 37 | # Box divider line and small boxes line color 38 | theme[div_line]="#6E738D" 39 | 40 | # Temperature graph color (Green -> Yellow -> Red) 41 | theme[temp_start]="#a6da95" 42 | theme[temp_mid]="#eed49f" 43 | theme[temp_end]="#ed8796" 44 | 45 | # CPU graph colors (Teal -> Lavender) 46 | theme[cpu_start]="#8bd5ca" 47 | theme[cpu_mid]="#7dc4e4" 48 | theme[cpu_end]="#b7bdf8" 49 | 50 | # Mem/Disk free meter (Mauve -> Lavender -> Blue) 51 | theme[free_start]="#c6a0f6" 52 | theme[free_mid]="#b7bdf8" 53 | theme[free_end]="#8aadf4" 54 | 55 | # Mem/Disk cached meter (Sapphire -> Lavender) 56 | theme[cached_start]="#7dc4e4" 57 | theme[cached_mid]="#8aadf4" 58 | theme[cached_end]="#b7bdf8" 59 | 60 | # Mem/Disk available meter (Peach -> Red) 61 | theme[available_start]="#f5a97f" 62 | theme[available_mid]="#ee99a0" 63 | theme[available_end]="#ed8796" 64 | 65 | # Mem/Disk used meter (Green -> Sky) 66 | theme[used_start]="#a6da95" 67 | theme[used_mid]="#8bd5ca" 68 | theme[used_end]="#91d7e3" 69 | 70 | # Download graph colors (Peach -> Red) 71 | theme[download_start]="#f5a97f" 72 | theme[download_mid]="#ee99a0" 73 | theme[download_end]="#ed8796" 74 | 75 | # Upload graph colors (Green -> Sky) 76 | theme[upload_start]="#a6da95" 77 | theme[upload_mid]="#8bd5ca" 78 | theme[upload_end]="#91d7e3" 79 | 80 | # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) 81 | theme[process_start]="#7dc4e4" 82 | theme[process_mid]="#b7bdf8" 83 | theme[process_end]="#c6a0f6" 84 | -------------------------------------------------------------------------------- /btop/themes/catppuccin_mocha.theme: -------------------------------------------------------------------------------- 1 | # Main background, empty for terminal default, need to be empty if you want transparent background 2 | theme[main_bg]="#1E1E2E" 3 | 4 | # Main text color 5 | theme[main_fg]="#CDD6F4" 6 | 7 | # Title color for boxes 8 | theme[title]="#CDD6F4" 9 | 10 | # Highlight color for keyboard shortcuts 11 | theme[hi_fg]="#89B4FA" 12 | 13 | # Background color of selected item in processes box 14 | theme[selected_bg]="#45475A" 15 | 16 | # Foreground color of selected item in processes box 17 | theme[selected_fg]="#89B4FA" 18 | 19 | # Color of inactive/disabled text 20 | theme[inactive_fg]="#7F849C" 21 | 22 | # Color of text appearing on top of graphs, i.e uptime and current network graph scaling 23 | theme[graph_text]="#F5E0DC" 24 | 25 | # Background color of the percentage meters 26 | theme[meter_bg]="#45475A" 27 | 28 | # Misc colors for processes box including mini cpu graphs, details memory graph and details status text 29 | theme[proc_misc]="#F5E0DC" 30 | 31 | # CPU, Memory, Network, Proc box outline colors 32 | theme[cpu_box]="#cba6f7" #Mauve 33 | theme[mem_box]="#a6e3a1" #Green 34 | theme[net_box]="#eba0ac" #Maroon 35 | theme[proc_box]="#89b4fa" #Blue 36 | 37 | # Box divider line and small boxes line color 38 | theme[div_line]="#6C7086" 39 | 40 | # Temperature graph color (Green -> Yellow -> Red) 41 | theme[temp_start]="#a6e3a1" 42 | theme[temp_mid]="#f9e2af" 43 | theme[temp_end]="#f38ba8" 44 | 45 | # CPU graph colors (Teal -> Lavender) 46 | theme[cpu_start]="#94e2d5" 47 | theme[cpu_mid]="#74c7ec" 48 | theme[cpu_end]="#b4befe" 49 | 50 | # Mem/Disk free meter (Mauve -> Lavender -> Blue) 51 | theme[free_start]="#cba6f7" 52 | theme[free_mid]="#b4befe" 53 | theme[free_end]="#89b4fa" 54 | 55 | # Mem/Disk cached meter (Sapphire -> Lavender) 56 | theme[cached_start]="#74c7ec" 57 | theme[cached_mid]="#89b4fa" 58 | theme[cached_end]="#b4befe" 59 | 60 | # Mem/Disk available meter (Peach -> Red) 61 | theme[available_start]="#fab387" 62 | theme[available_mid]="#eba0ac" 63 | theme[available_end]="#f38ba8" 64 | 65 | # Mem/Disk used meter (Green -> Sky) 66 | theme[used_start]="#a6e3a1" 67 | theme[used_mid]="#94e2d5" 68 | theme[used_end]="#89dceb" 69 | 70 | # Download graph colors (Peach -> Red) 71 | theme[download_start]="#fab387" 72 | theme[download_mid]="#eba0ac" 73 | theme[download_end]="#f38ba8" 74 | 75 | # Upload graph colors (Green -> Sky) 76 | theme[upload_start]="#a6e3a1" 77 | theme[upload_mid]="#94e2d5" 78 | theme[upload_end]="#89dceb 79 | 80 | # Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) 81 | theme[process_start]="#74C7EC" 82 | theme[process_mid]="#89DCEB" 83 | theme[process_end]="#cba6f7" 84 | -------------------------------------------------------------------------------- /cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. 2 | 3 | 4 | [general] 5 | 6 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 7 | ; mode = normal 8 | 9 | # Accepts only non-negative values. 10 | ; framerate = 60 11 | 12 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 13 | # new as of 0.6.0 autosens of low values (dynamic range) 14 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 15 | ; autosens = 1 16 | ; overshoot = 20 17 | 18 | # Manual sensitivity in %. If autosens is enabled, this will only be the initial value. 19 | # 200 means double height. Accepts only non-negative values. 20 | ; sensitivity = 100 21 | 22 | # The number of bars (0-200). 0 sets it to auto (fill up console). 23 | # Bars' width and space between bars in number of characters. 24 | ; bars = 0 25 | ; bar_width = 2 26 | ; bar_spacing = 1 27 | # bar_height is only used for output in "noritake" format 28 | ; bar_height = 32 29 | 30 | # For SDL width and space between bars is in pixels, defaults are: 31 | ; bar_width = 20 32 | ; bar_spacing = 5 33 | 34 | 35 | # Lower and higher cutoff frequencies for lowest and highest bars 36 | # the bandwidth of the visualizer. 37 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 38 | # Cava will automatically increase the higher cutoff if a too low band is specified. 39 | ; lower_cutoff_freq = 50 40 | ; higher_cutoff_freq = 10000 41 | 42 | 43 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 44 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 45 | ; sleep_timer = 0 46 | 47 | 48 | [input] 49 | 50 | # Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' 51 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 52 | # 53 | # All input methods uses the same config variable 'source' 54 | # to define where it should get the audio. 55 | # 56 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 57 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 58 | # 59 | # For alsa 'source' will be the capture device. 60 | # For fifo 'source' will be the path to fifo-file. 61 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 62 | ; method = pulse 63 | ; source = auto 64 | 65 | method = pipewire 66 | source = auto 67 | 68 | ; method = alsa 69 | ; source = hw:Loopback,1 70 | 71 | ; method = fifo 72 | ; source = /tmp/mpd.fifo 73 | ; sample_rate = 44100 74 | ; sample_bits = 16 75 | 76 | ; method = shmem 77 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 78 | 79 | ; method = portaudio 80 | ; source = auto 81 | 82 | 83 | [output] 84 | 85 | # Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake' or 'sdl'. 86 | # 'noncurses' uses a custom framebuffer technique and prints only changes 87 | # from frame to frame in the terminal. 'ncurses' is default if supported. 88 | # 89 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 90 | # stream of the bar heights that can be used to send to other applications. 91 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 92 | # 93 | # 'noritake' outputs a bitmap in the format expected by a Noritake VFD display 94 | # in graphic mode. It only support the 3000 series graphical VFDs for now. 95 | # 96 | # 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. 97 | ; method = ncurses 98 | 99 | # Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. 100 | # Default is 'bottom'. Other orientations are only supported on sdl and ncruses 101 | # output. Note: many fonts have weird glyphs for 'top' and 'right' characters, 102 | # which can make ncurses not look right. 103 | ; orientation = bottom 104 | 105 | # Visual channels. Can be 'stereo' or 'mono'. 106 | # 'stereo' mirrors both channels with low frequencies in center. 107 | # 'mono' outputs left to right lowest to highest frequencies. 108 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 109 | # set 'reverse' to 1 to display frequencies the other way around. 110 | ; channels = stereo 111 | ; mono_option = average 112 | ; reverse = 0 113 | 114 | # Raw output target. A fifo will be created if target does not exist. 115 | ; raw_target = /dev/stdout 116 | 117 | # Raw data format. Can be 'binary' or 'ascii'. 118 | ; data_format = binary 119 | 120 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 121 | ; bit_format = 16bit 122 | 123 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 124 | ; ascii_max_range = 1000 125 | 126 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 127 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 128 | ; bar_delimiter = 59 129 | ; frame_delimiter = 10 130 | 131 | # sdl window size and position. -1,-1 is centered. 132 | ; sdl_width = 1000 133 | ; sdl_height = 500 134 | ; sdl_x = -1 135 | ; sdl_y= -1 136 | 137 | # set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' 138 | # 'frequency' displays the lower cut off frequency of the bar above. 139 | # Only supported on ncurses and noncurses output. 140 | ; xaxis = none 141 | 142 | # enable alacritty synchronized updates. 1 = on, 0 = off 143 | # removes flickering in alacritty terminal emeulator. 144 | # defaults to off since the behaviour in other terminal emulators is unknown 145 | ; alacritty_sync = 0 146 | 147 | [color] 148 | 149 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 150 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 151 | # a terminal that can change color definitions such as Gnome-terminal or rxvt. 152 | # default is to keep current terminal color 153 | ; background = default 154 | ; foreground = default 155 | 156 | # SDL only support hex code colors, these are the default: 157 | ; background = '#111111' 158 | ; foreground = '#33cccc' 159 | 160 | 161 | # Gradient mode, only hex defined colors are supported, 162 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 163 | # You can define as many as 8 different colors. They range from bottom to top of screen 164 | ; gradient = 0 165 | ; gradient_count = 8 166 | ; gradient_color_1 = '#59cc33' 167 | ; gradient_color_2 = '#80cc33' 168 | ; gradient_color_3 = '#a6cc33' 169 | ; gradient_color_4 = '#cccc33' 170 | ; gradient_color_5 = '#cca633' 171 | ; gradient_color_6 = '#cc8033' 172 | ; gradient_color_7 = '#cc5933' 173 | ; gradient_color_8 = '#cc3333' 174 | 175 | 176 | 177 | [smoothing] 178 | 179 | # Percentage value for integral smoothing. Takes values from 0 - 100. 180 | # Higher values means smoother, but less precise. 0 to disable. 181 | # DEPRECATED as of 0.8.0, use noise_reduction instead 182 | ; integral = 77 183 | 184 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 185 | ; monstercat = 0 186 | ; waves = 0 187 | 188 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 189 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 190 | # DEPRECATED as of 0.8.0, use noise_reduction instead 191 | ; gravity = 100 192 | 193 | 194 | # In bar height, bars that would have been lower that this will not be drawn. 195 | # DEPRECATED as of 0.8.0 196 | ; ignore = 0 197 | 198 | # Noise reduction, float 0 - 1. default 0.77 199 | # the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth 200 | # 1 will be very slow and smooth, 0 will be fast but noisy. 201 | ; noise_reduction = 0.77 202 | 203 | 204 | [eq] 205 | 206 | # This one is tricky. You can have as much keys as you want. 207 | # Remember to uncomment more then one key! More keys = more precision. 208 | # Look at readme.md on github for further explanations and examples. 209 | ; 1 = 1 # bass 210 | ; 2 = 1 211 | ; 3 = 1 # midtone 212 | ; 4 = 1 213 | ; 5 = 1 # treble 214 | -------------------------------------------------------------------------------- /dunst/dunstrc: -------------------------------------------------------------------------------- 1 | # See dunst(5) for all configuration options 2 | 3 | [global] 4 | ### Display ### 5 | 6 | # Which monitor should the notifications be displayed on. 7 | monitor = 0 8 | 9 | # Display notification on focused monitor. Possible modes are: 10 | # mouse: follow mouse pointer 11 | # keyboard: follow window with keyboard focus 12 | # none: don't follow anything 13 | # 14 | # "keyboard" needs a window manager that exports the 15 | # _NET_ACTIVE_WINDOW property. 16 | # This should be the case for almost all modern window managers. 17 | # 18 | # If this option is set to mouse or keyboard, the monitor option 19 | # will be ignored. 20 | follow = none 21 | 22 | ### Geometry ### 23 | 24 | # dynamic width from 0 to 300 25 | # width = (0, 300) 26 | # constant width of 300 27 | width = 300 28 | 29 | # The maximum height of a single notification, excluding the frame. 30 | height = 300 31 | 32 | # Position the notification in the top right corner 33 | origin = bottom-right 34 | 35 | # Offset from the origin 36 | offset = 30x40 37 | 38 | # Scale factor. It is auto-detected if value is 0. 39 | scale = 0 40 | 41 | # Maximum number of notification (0 means no limit) 42 | notification_limit = 7 43 | 44 | ### Progress bar ### 45 | 46 | # Turn on the progess bar. It appears when a progress hint is passed with 47 | # for example dunstify -h int:value:12 48 | progress_bar = true 49 | 50 | # Set the progress bar height. This includes the frame, so make sure 51 | # it's at least twice as big as the frame width. 52 | progress_bar_height = 10 53 | 54 | # Set the frame width of the progress bar 55 | progress_bar_frame_width = 1 56 | 57 | # Set the minimum width for the progress bar 58 | progress_bar_min_width = 150 59 | 60 | # Set the maximum width for the progress bar 61 | progress_bar_max_width = 300 62 | 63 | 64 | # Show how many messages are currently hidden (because of 65 | # notification_limit). 66 | indicate_hidden = yes 67 | 68 | # The transparency of the window. Range: [0; 100]. 69 | # This option will only work if a compositing window manager is 70 | # present (e.g. xcompmgr, compiz, etc.). (X11 only) 71 | transparency = 16 72 | 73 | # Draw a line of "separator_height" pixel height between two 74 | # notifications. 75 | # Set to 0 to disable. 76 | separator_height = 2 77 | 78 | # Padding between text and separator. 79 | padding = 8 80 | 81 | # Horizontal padding. 82 | horizontal_padding = 8 83 | 84 | # Padding between text and icon. 85 | text_icon_padding = 0 86 | 87 | # Defines width in pixels of frame around the notification window. 88 | # Set to 0 to disable. 89 | frame_width = 1 90 | 91 | # Defines color of the frame around the notification window. 92 | # frame_color = "#7f3fbf" 93 | frame_color = "#89B4FA" 94 | separator_color= frame 95 | # Define a color for the separator. 96 | # possible values are: 97 | # * auto: dunst tries to find a color fitting to the background; 98 | # * foreground: use the same color as the foreground; 99 | # * frame: use the same color as the frame; 100 | # * anything else will be interpreted as a X color. 101 | # separator_color = auto 102 | 103 | # Sort messages by urgency. 104 | sort = yes 105 | 106 | # Don't remove messages, if the user is idle (no mouse or keyboard input) 107 | # for longer than idle_threshold seconds. 108 | # Set to 0 to disable. 109 | # A client can set the 'transient' hint to bypass this. See the rules 110 | # section for how to disable this if necessary 111 | idle_threshold = 0 112 | 113 | ### Text ### 114 | 115 | font = Noto Sans Regular 9 116 | 117 | # The spacing between lines. If the height is smaller than the 118 | # font height, it will get raised to the font height. 119 | line_height = 0 120 | 121 | # Possible values are: 122 | # full: Allow a small subset of html markup in notifications: 123 | # bold 124 | # italic 125 | # strikethrough 126 | # underline 127 | # 128 | # For a complete reference see 129 | # . 130 | # 131 | # strip: This setting is provided for compatibility with some broken 132 | # clients that send markup even though it's not enabled on the 133 | # server. Dunst will try to strip the markup but the parsing is 134 | # simplistic so using this option outside of matching rules for 135 | # specific applications *IS GREATLY DISCOURAGED*. 136 | # 137 | # no: Disable markup parsing, incoming notifications will be treated as 138 | # plain text. Dunst will not advertise that it has the body-markup 139 | # capability if this is set as a global setting. 140 | # 141 | # It's important to note that markup inside the format option will be parsed 142 | # regardless of what this is set to. 143 | markup = full 144 | 145 | # The format of the message. Possible variables are: 146 | # %a appname 147 | # %s summary 148 | # %b body 149 | # %i iconname (including its path) 150 | # %I iconname (without its path) 151 | # %p progress value if set ([ 0%] to [100%]) or nothing 152 | # %n progress value if set without any extra characters 153 | # %% Literal % 154 | # Markup is allowed 155 | format = "%s\n%b" 156 | 157 | # Alignment of message text. 158 | # Possible values are "left", "center" and "right". 159 | alignment = left 160 | 161 | # Vertical alignment of message text and icon. 162 | # Possible values are "top", "center" and "bottom". 163 | vertical_alignment = center 164 | 165 | # Show age of message if message is older than show_age_threshold 166 | # seconds. 167 | # Set to -1 to disable. 168 | show_age_threshold = 60 169 | 170 | # Specify where to make an ellipsis in long lines. 171 | # Possible values are "start", "middle" and "end". 172 | ellipsize = middle 173 | 174 | # Ignore newlines '\n' in notifications. 175 | ignore_newline = no 176 | 177 | # Stack together notifications with the same content 178 | stack_duplicates = true 179 | 180 | # Hide the count of stacked notifications with the same content 181 | hide_duplicate_count = true 182 | 183 | # Display indicators for URLs (U) and actions (A). 184 | show_indicators = yes 185 | 186 | ### Icons ### 187 | 188 | # Align icons left/right/off 189 | icon_position = left 190 | 191 | # Scale small icons up to this size, set to 0 to disable. Helpful 192 | # for e.g. small files or high-dpi screens. In case of conflict, 193 | # max_icon_size takes precedence over this. 194 | min_icon_size = 0 195 | 196 | # Scale larger icons down to this size, set to 0 to disable 197 | max_icon_size = 32 198 | 199 | # Paths to default icons. 200 | #icon_path = /usr/share/icons/gnome/16x16/status/:/usr/share/icons/gnome/16x16/devices/ 201 | icon_path = /usr/share/icons/Qogir/16/status:/usr/share/icons/Qogir/16/devices/:/usr/share/icons/Qogir/16/apps/:/usr/share/pixmaps/ 202 | 203 | ### History ### 204 | 205 | # Should a notification popped up from history be sticky or timeout 206 | # as if it would normally do. 207 | sticky_history = false 208 | 209 | # Maximum amount of notifications kept in history 210 | history_length = 0 211 | 212 | ### Misc/Advanced ### 213 | 214 | # dmenu path. 215 | dmenu = /usr/bin/dmenu -p dunst: 216 | 217 | # Browser for opening urls in context menu. 218 | browser = /usr/bin/xdg-open 219 | 220 | # Always run rule-defined scripts, even if the notification is suppressed 221 | always_run_script = true 222 | 223 | # Define the title of the windows spawned by dunst 224 | title = Dunst 225 | 226 | # Define the class of the windows spawned by dunst 227 | class = Dunst 228 | 229 | # Define the corner radius of the notification window 230 | # in pixel size. If the radius is 0, you have no rounded 231 | # corners. 232 | # The radius will be automatically lowered if it exceeds half of the 233 | # notification height to avoid clipping text and/or icons. 234 | corner_radius = 7 235 | 236 | # Ignore the dbus closeNotification message. 237 | # Useful to enforce the timeout set by dunst configuration. Without this 238 | # parameter, an application may close the notification sent before the 239 | # user defined timeout. 240 | ignore_dbusclose = false 241 | 242 | ### Wayland ### 243 | # These settings are Wayland-specific. They have no effect when using X11 244 | 245 | # Uncomment this if you want to let notications appear under fullscreen 246 | # applications (default: overlay) 247 | # layer = top 248 | 249 | # Set this to true to use X11 output on Wayland. 250 | force_xwayland = false 251 | 252 | ### Legacy 253 | 254 | # Use the Xinerama extension instead of RandR for multi-monitor support. 255 | # This setting is provided for compatibility with older nVidia drivers that 256 | # do not support RandR and using it on systems that support RandR is highly 257 | # discouraged. 258 | # 259 | # By enabling this setting dunst will not be able to detect when a monitor 260 | # is connected or disconnected which might break follow mode if the screen 261 | # layout changes. 262 | force_xinerama = false 263 | 264 | ### mouse 265 | 266 | # Defines list of actions for each mouse event 267 | # Possible values are: 268 | # * none: Don't do anything. 269 | # * do_action: Invoke the action determined by the action_name rule. If there is no 270 | # such action, open the context menu. 271 | # * open_url: If the notification has exactly one url, open it. If there are multiple 272 | # ones, open the context menu. 273 | # * close_current: Close current notification. 274 | # * close_all: Close all notifications. 275 | # * context: Open context menu for the notification. 276 | # * context_all: Open context menu for all notifications. 277 | # These values can be strung together for each mouse event, and 278 | # will be executed in sequence. 279 | mouse_left_click = close_current 280 | mouse_middle_click = do_action, close_current 281 | mouse_right_click = close_all 282 | 283 | # Experimental features that may or may not work correctly. Do not expect them 284 | # to have a consistent behaviour across releases. 285 | [experimental] 286 | # Calculate the dpi to use on a per-monitor basis. 287 | # If this setting is enabled the Xft.dpi value will be ignored and instead 288 | # dunst will attempt to calculate an appropriate dpi value for each monitor 289 | # using the resolution and physical size. This might be useful in setups 290 | # where there are multiple screens with very different dpi values. 291 | per_monitor_dpi = false 292 | 293 | 294 | [urgency_low] 295 | # catppuccin 296 | background = "#1E1E2E" 297 | foreground = "#CDD6F4" 298 | 299 | timeout = 5 300 | # Icon for notifications with low urgency, uncomment to enable 301 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-information.png 302 | 303 | [urgency_normal] 304 | # catppuccin 305 | background = "#1E1E2E" 306 | foreground = "#CDD6F4" 307 | 308 | timeout = 5 309 | # Icon for notifications with normal urgency, uncomment to enable 310 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-question.png 311 | 312 | [urgency_critical] 313 | # catppuccin 314 | background = "#1E1E2E" 315 | foreground = "#CDD6F4" 316 | frame_color = "#FAB387" 317 | 318 | timeout = 120 319 | # Icon for notifications with critical urgency, uncomment to enable 320 | icon = /usr/share/icons/Arc-X-D/status/16/dialog-warning.png 321 | 322 | # Every section that isn't one of the above is interpreted as a rules to 323 | # override settings for certain messages. 324 | # 325 | # Messages can be matched by 326 | # appname (discouraged, see desktop_entry) 327 | # body 328 | # category 329 | # desktop_entry 330 | # icon 331 | # match_transient 332 | # msg_urgency 333 | # stack_tag 334 | # summary 335 | # 336 | # and you can override the 337 | # background 338 | # foreground 339 | # format 340 | # frame_color 341 | # fullscreen 342 | # new_icon 343 | # set_stack_tag 344 | # set_transient 345 | # set_category 346 | # timeout 347 | # urgency 348 | # skip_display 349 | # history_ignore 350 | # action_name 351 | # word_wrap 352 | # ellipsize 353 | # alignment 354 | # 355 | # Shell-like globbing will get expanded. 356 | # 357 | # Instead of the appname filter, it's recommended to use the desktop_entry filter. 358 | # GLib based applications export their desktop-entry name. In comparison to the appname, 359 | # the desktop-entry won't get localized. 360 | # 361 | # SCRIPTING 362 | # You can specify a script that gets run when the rule matches by 363 | # setting the "script" option. 364 | # The script will be called as follows: 365 | # script appname summary body icon urgency 366 | # where urgency can be "LOW", "NORMAL" or "CRITICAL". 367 | # 368 | # NOTE: It might be helpful to run dunst -print in a terminal in order 369 | # to find fitting options for rules. 370 | 371 | # Disable the transient hint so that idle_threshold cannot be bypassed from the 372 | # client 373 | #[transient_disable] 374 | # match_transient = yes 375 | # set_transient = no 376 | # 377 | # Make the handling of transient notifications more strict by making them not 378 | # be placed in history. 379 | #[transient_history_ignore] 380 | # match_transient = yes 381 | # history_ignore = yes 382 | 383 | # fullscreen values 384 | # show: show the notifications, regardless if there is a fullscreen window opened 385 | # delay: displays the new notification, if there is no fullscreen window active 386 | # If the notification is already drawn, it won't get undrawn. 387 | # pushback: same as delay, but when switching into fullscreen, the notification will get 388 | # withdrawn from screen again and will get delayed like a new notification 389 | #[fullscreen_delay_everything] 390 | # fullscreen = delay 391 | #[fullscreen_show_critical] 392 | # msg_urgency = critical 393 | # fullscreen = show 394 | 395 | #[espeak] 396 | # summary = "*" 397 | # script = dunst_espeak.sh 398 | 399 | #[script-test] 400 | # summary = "*script*" 401 | # script = dunst_test.sh 402 | 403 | #[ignore] 404 | # # This notification will not be displayed 405 | # summary = "foobar" 406 | # skip_display = true 407 | 408 | #[history-ignore] 409 | # # This notification will not be saved in history 410 | # summary = "foobar" 411 | # history_ignore = yes 412 | 413 | #[skip-display] 414 | # # This notification will not be displayed, but will be included in the history 415 | # summary = "foobar" 416 | # skip_display = yes 417 | 418 | #[signed_on] 419 | # appname = Pidgin 420 | # summary = "*signed on*" 421 | # urgency = low 422 | # 423 | #[signed_off] 424 | # appname = Pidgin 425 | # summary = *signed off* 426 | # urgency = low 427 | # 428 | #[says] 429 | # appname = Pidgin 430 | # summary = *says* 431 | # urgency = critical 432 | # 433 | #[twitter] 434 | # appname = Pidgin 435 | # summary = *twitter.com* 436 | # urgency = normal 437 | # 438 | [stack-volumes] 439 | appname = "some_volume_notifiers" 440 | set_stack_tag = "volume" 441 | # 442 | # vim: ft=cfg 443 | -------------------------------------------------------------------------------- /dunst/mocha.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | frame_color = "#89B4FA" 3 | separator_color= frame 4 | 5 | [urgency_low] 6 | background = "#1E1E2E" 7 | foreground = "#CDD6F4" 8 | 9 | [urgency_normal] 10 | background = "#1E1E2E" 11 | foreground = "#CDD6F4" 12 | 13 | [urgency_critical] 14 | background = "#1E1E2E" 15 | foreground = "#CDD6F4" 16 | frame_color = "#FAB387" 17 | -------------------------------------------------------------------------------- /hypr/hyprland.conf: -------------------------------------------------------------------------------- 1 | # █▀▀ ▀▄▀ █▀▀ █▀▀ 2 | # ██▄ █░█ ██▄ █▄▄ 3 | exec-once = udiskie --smart-tray && wl-clipboard-history -t 4 | exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP 5 | exec-once = waybar 6 | exec-once = dunst 7 | 8 | exec-once = /opt/docker-desktop/bin/docker-desktop& 9 | exec-once = telegram-desktop -startintray& 10 | 11 | exec-once = /home/jacob/.config/hypr/scripts/wallpaper.sh /home/jacob/Pictures/wallpapers/john-towner-JgOeRuGD_Y4-unsplash.jpg 12 | # exec-once = /home/jacob/.config/hypr/scripts/import-gsettings.sh 13 | 14 | # CLIPBOARD 15 | exec-once = wl-paste --watch cliphist store 16 | 17 | # IDLE 18 | exec-once = swayidle -w 19 | 20 | # TBC 21 | # exec-once = hyprctl setcursor Bibata-Modern-Ice 20 # set cursor 22 | # exec-once = gsettings set org.gnome.desktop.interface icon-theme 'Tela-circle-dracula-dark' # set gtk icons 23 | # exec-once = gsettings set org.gnome.desktop.interface cursor-theme 'Bibata-Modern-Ice' # set gtk cursor 24 | # exec-once = gsettings set org.gnome.desktop.interface cursor-size 20 # set gtk cursor size 25 | # exec-once = gsettings set org.gnome.desktop.interface gtk-theme 'Catppuccin-Mocha-B' # set gtk theme 26 | 27 | source = ~/.config/hypr/themes/mocha.conf 28 | 29 | 30 | 31 | # █▀▄▀█ █▀█ █▄░█ █ ▀█▀ █▀█ █▀█ 32 | # █░▀░█ █▄█ █░▀█ █ ░█░ █▄█ █▀▄ 33 | monitor = ,preferred,auto,1 34 | 35 | # █ █▄░█ █▀█ █░█ ▀█▀ 36 | # █ █░▀█ █▀▀ █▄█ ░█░ 37 | input { 38 | kb_layout = gb 39 | follow_mouse = 1 40 | sensitivity = 0 # -1.0 - 1.0, 0 means no modification. 41 | touchpad { 42 | natural_scroll = yes 43 | disable_while_typing = true 44 | scroll_factor = 0.8 45 | } 46 | } 47 | 48 | gestures { 49 | # See https://wiki.hyprland.org/Configuring/Variables/ for more 50 | workspace_swipe = on 51 | } 52 | 53 | # █▀▀ █▀▀ █▄░█ █▀▀ █▀█ ▄▀█ █░░ 54 | # █▄█ ██▄ █░▀█ ██▄ █▀▄ █▀█ █▄▄ 55 | general { 56 | gaps_in=4 57 | gaps_out=6 58 | border_size=1 59 | col.active_border=0xff7D4045 60 | col.inactive_border=0xff382D2E 61 | no_border_on_floating = false 62 | layout = dwindle 63 | no_cursor_warps = true 64 | } 65 | 66 | # █▀▄▀█ █ █▀ █▀▀ 67 | # █░▀░█ █ ▄█ █▄▄ 68 | misc { 69 | disable_hyprland_logo = true 70 | animate_manual_resizes = true 71 | disable_splash_rendering = true 72 | mouse_move_enables_dpms = true 73 | # vfr = true 74 | # enable_swallow = true 75 | # swallow_regex = ^(wezterm)$ 76 | } 77 | 78 | # █▀▄ █▀▀ █▀▀ █▀█ █▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ 79 | # █▄▀ ██▄ █▄▄ █▄█ █▀▄ █▀█ ░█░ █ █▄█ █░▀█ 80 | 81 | decoration { 82 | # █▀█ █▀█ █░█ █▄░█ █▀▄   █▀▀ █▀█ █▀█ █▄░█ █▀▀ █▀█ 83 | # █▀▄ █▄█ █▄█ █░▀█ █▄▀   █▄▄ █▄█ █▀▄ █░▀█ ██▄ █▀▄ 84 | rounding = 4 85 | # multisample_edges = true 86 | 87 | # █▀█ █▀█ ▄▀█ █▀▀ █ ▀█▀ █▄█ 88 | # █▄█ █▀▀ █▀█ █▄▄ █ ░█░ ░█░ 89 | active_opacity = 1.0 90 | inactive_opacity = 0.8 91 | 92 | # █▄▄ █░░ █░█ █▀█ 93 | # █▄█ █▄▄ █▄█ █▀▄ 94 | blur { 95 | enabled = true 96 | size = 6 97 | passes = 3 98 | new_optimizations = true 99 | xray = true 100 | noise = 0.01 101 | 102 | } 103 | 104 | # █▀ █░█ ▄▀█ █▀▄ █▀█ █░█░█ 105 | # ▄█ █▀█ █▀█ █▄▀ █▄█ ▀▄▀▄▀ 106 | drop_shadow = false 107 | shadow_ignore_window = true 108 | shadow_offset = 1 2 109 | shadow_range = 10 110 | shadow_render_power = 2 111 | col.shadow = 0x66404040 112 | 113 | #blurls = gtk-layer-shell 114 | #blurls = waybar 115 | #blurls = lockscreen 116 | } 117 | 118 | # ▄▀█ █▄░█ █ █▀▄▀█ ▄▀█ ▀█▀ █ █▀█ █▄░█ 119 | # █▀█ █░▀█ █ █░▀░█ █▀█ ░█░ █ █▄█ █░▀█ 120 | # bezier=NAME,X0,Y0,X1,Y1 121 | # animation=NAME,ONOFF,SPEED,CURVE 122 | # 123 | animations { 124 | enabled = true 125 | # █▄▄ █▀▀ ▀█ █ █▀▀ █▀█   █▀▀ █░█ █▀█ █░█ █▀▀ 126 | # █▄█ ██▄ █▄ █ ██▄ █▀▄   █▄▄ █▄█ █▀▄ ▀▄▀ ██▄ 127 | 128 | # animation = windows, 1, 5, overshot, slide 129 | # animation = windowsOut, 1, 4, smoothOut, slide 130 | # animation = windowsMove, 1, 4, default 131 | # animation = border, 1, 10, default 132 | # animation = fade, 1, 10, smoothIn 133 | # animation = fadeDim, 1, 10, smoothIn 134 | # animation = workspaces, 1, 6, default 135 | bezier = overshot, 0.05, 1.15, 0.2, 1.15 136 | bezier = smoothOut, 0.36, 0, 0.66, -0.56 137 | bezier = smoothIn, 0.25, 1, 0.3, 1 138 | bezier = winIn, 0.1, 0.7, 0.1, 1.1 139 | bezier = winOut, 0.3, -0.3, 0, 1 140 | bezier = liner, 1, 1, 1, 1 141 | bezier = easeInOutQuint, 0.86, 0, 0.07, 1 142 | animation = windows, 1, 6, smoothIn, popin 80% 143 | animation = windowsIn, 1, 5, smoothIn, popin 144 | animation = windowsOut, 1, 5, smoothIn, popin 145 | animation = windowsMove, 1, 3, smoothIn, popin 146 | animation = border, 1, 10, smoothIn 147 | animation = borderangle, 1, 30, smoothIn, loop 148 | animation = fade, 1, 5, smoothIn 149 | animation = workspaces, 1, 5, smoothIn 150 | 151 | } 152 | 153 | # █░░ ▄▀█ █▄█ █▀█ █░█ ▀█▀ █▀ 154 | # █▄▄ █▀█ ░█░ █▄█ █▄█ ░█░ ▄█ 155 | 156 | dwindle { 157 | no_gaps_when_only = false 158 | pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below 159 | preserve_split = true # you probably want this 160 | } 161 | 162 | # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀ 163 | # ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█ 164 | windowrule = float, file_progress 165 | windowrule = float, confirm 166 | windowrule = float, dialog 167 | windowrule = float, download 168 | windowrule = float, notification 169 | windowrule = float, error 170 | windowrule = float, splash 171 | windowrule = float, confirmreset 172 | windowrule = float, title:Open File 173 | windowrule = float, title:branchdialog 174 | windowrule = float, Lxappearance 175 | windowrule = float, Rofi 176 | windowrule = animation none,Rofi 177 | windowrule = float, title:Morgen Calendar 178 | windowrule = float, viewnior 179 | windowrule = float, feh 180 | windowrule = float, pavucontrol-qt 181 | windowrule = float, pavucontrol 182 | windowrule = float, file-roller 183 | windowrule = float, title:DevTools 184 | windowrule = fullscreen, wlogout 185 | windowrule = float, title:wlogout 186 | windowrule = fullscreen, title:wlogout 187 | windowrule = idleinhibit focus, mpv 188 | windowrule = idleinhibit fullscreen, firefox 189 | windowrule = float, title:^(Media viewer)$ 190 | windowrule = float, title:^(Volume Control)$ 191 | windowrule = float, title:^(Picture-in-Picture)$ 192 | windowrule = size 800 600, title:^(Volume Control)$ 193 | windowrule = move 75 44%, title:^(Volume Control)$ 194 | windowrule = opacity 0.92, Thunar 195 | 196 | windowrule = float, vlc 197 | windowrule = center, vlc 198 | windowrule = size 900 500, vlc 199 | 200 | windowrulev2 = opacity 0.90 0.90,class:^(firefox)$ 201 | windowrulev2 = opacity 0.80 0.80,class:^(Steam)$ 202 | windowrulev2 = opacity 0.80 0.80,class:^(Spotify)$ 203 | #windowrulev2 = opacity 0.80 0.95,class:^(Code)$ 204 | # windowrulev2 = float,class:^(Code)$ 205 | windowrulev2 = opacity 0.80 0.80,class:^(kitty)$ 206 | windowrulev2 = opacity 0.80 0.80,class:^(nwg-look)$ 207 | windowrulev2 = opacity 0.80 0.80,class:^(qt5ct)$ 208 | 209 | windowrulev2 = opacity 0.80 0.80,class:^(hu.kramo.Cartridges)$ #Cartridges-Gtk 210 | windowrulev2 = opacity 0.80 0.80,class:^(com.obsproject.Studio)$ #Obs-Qt 211 | windowrulev2 = opacity 0.80 0.80,class:^(gnome-boxes)$ #Boxes-Gtk 212 | windowrulev2 = opacity 0.80 0.80,class:^(discord)$ #Discord-x 213 | 214 | windowrulev2 = opacity 0.80 0.70,class:^(pavucontrol)$ 215 | windowrulev2 = opacity 0.80 0.70,class:^(blueman-manager)$ 216 | windowrulev2 = opacity 0.80 0.70,class:^(nm-applet)$ 217 | windowrulev2 = opacity 0.80 0.70,class:^(nm-connection-editor)$ 218 | 219 | windowrulev2 = float,class:^(pavucontrol)$ 220 | windowrulev2 = float,class:^(blueman-manager)$ 221 | windowrulev2 = float,class:^(nm-applet)$ 222 | windowrulev2 = float,class:^(nm-connection-editor)$ 223 | windowrulev2 = float,class:^(Steam)$ 224 | 225 | # █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ 226 | # █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ 227 | 228 | # █▀ █▀▀ █▀█ █▀▀ █▀▀ █▄░█ █▀ █░█ █▀█ ▀█▀ 229 | # ▄█ █▄▄ █▀▄ ██▄ ██▄ █░▀█ ▄█ █▀█ █▄█ ░█░ 230 | 231 | bind = SUPER, v, exec, wf-recorder -g "$(slurp)" -f $(xdg-user-dir VIDEOS)/$(date +'%H:%M:%S_%d-%m-%Y.mp4') 232 | bind = SUPER SHIFT, v, exec, killall -s SIGINT wf-recorder 233 | #bind = , Print, exec, ~/.scripts/screensht full 234 | #bind = SUPERSHIFT, S, exec, ~/.scripts/screensht area 235 | # Screenshot a window 236 | bind = SUPER, PRINT, exec, hyprshot -m window 237 | # Screenshot a monitor 238 | bind = , PRINT, exec, hyprshot -m output 239 | # Screenshot a region 240 | bind = SUPER SHIFT, PRINT, exec, hyprshot -m region 241 | 242 | # █▀▄▀█ █ █▀ █▀▀ 243 | # █░▀░█ █ ▄█ █▄▄ 244 | #bind = SUPER SHIFT, X, exec, ~/.scripts/colorpicker 245 | bind = SUPER, L, exec, swaylock 246 | bind = SUPER, Return, exec, kitty 247 | bind = SUPER, E, exec, thunar 248 | bind = SUPER, Space, exec, killall rofi || rofi -show drun 249 | bind = SUPER SHIFT, C, exec, killall rofi || rofi -modi clipboard:/home/jacob/.config/rofi/cliphist-rofi.sh -show clipboard 250 | bind = ALT, tab, exec, killall rofi || rofi -show window 251 | 252 | #bind = SUPER, D, exec, killall rofi || rofi -show drun -theme ~/.config/rofi/global/rofi.rasi 253 | #bind = SUPER, period, exec, killall rofi || rofi -show emoji -emoji-format "{emoji}" -modi emoji -theme ~/.config/rofi/global/emoji 254 | bind = SUPER SHIFT, escape, exec, wlogout --protocol layer-shell -b 3 -T 300 -B 300 255 | bind = SUPER, F1, exec, keybind 256 | bind = SUPER SHIFT, B, exec, killall -SIGUSR2 waybar # Reload Waybar 257 | bind = SUPER, B, exec, killall -SIGUSR1 waybar 258 | 259 | # Brightness / Volume 260 | bind=,XF86MonBrightnessDown,exec,~/.config/hypr/scripts/brightness_ctl.sh down 261 | bind=,XF86MonBrightnessUp,exec,~/.config/hypr/scripts/brightness_ctl.sh up 262 | binde=,XF86AudioRaiseVolume,exec,~/.config/hypr/scripts/volume_ctl.sh up 263 | binde=,XF86AudioLowerVolume,exec,~/.config/hypr/scripts/volume_ctl.sh down 264 | bind=,XF86AudioMute,exec,~/.config/hypr/scripts/volume_ctl.sh mute 265 | 266 | # █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀▄▀█ ▄▀█ █▄░█ ▄▀█ █▀▀ █▀▄▀█ █▀▀ █▄░█ ▀█▀ 267 | # ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █░▀░█ █▀█ █░▀█ █▀█ █▄█ █░▀░█ ██▄ █░▀█ ░█░ 268 | bind = SUPER, Q, killactive, 269 | bind = SUPER SHIFT, Q, exit, 270 | bind = SUPER SHIFT, F, fullscreen, 271 | bind = SUPER, F, togglefloating, 272 | # bind = SUPER, P, pseudo, # dwindle 273 | # bind = SUPER, S, togglesplit, # dwindle 274 | 275 | # ▀█▀ ▄▀█ █▄▄ █▄▄ █▀▀ █▀▄ 276 | # ░█░ █▀█ █▄█ █▄█ ██▄ █▄▀ 277 | bind = SUPER, G, togglegroup 278 | bind = SUPER, TAB, changegroupactive 279 | 280 | # █▀ █▀█ █▀▀ █▀▀ █ ▄▀█ █░░ 281 | # ▄█ █▀▀ ██▄ █▄▄ █ █▀█ █▄▄ 282 | bind = SUPER, A, togglespecialworkspace 283 | bind = SUPERSHIFT, A, movetoworkspace, special 284 | bind = SUPER, C, exec, hyprctl dispatch centerwindow 285 | 286 | # █▀▀ █▀█ █▀▀ █░█ █▀ 287 | # █▀░ █▄█ █▄▄ █▄█ ▄█ 288 | bind = SUPER, left, movefocus, l 289 | bind = SUPER, right, movefocus, r 290 | bind = SUPER, up, movefocus, u 291 | bind = SUPER, down, movefocus, d 292 | 293 | # █▀▄▀█ █▀█ █░█ █▀▀ 294 | # █░▀░█ █▄█ ▀▄▀ ██▄ 295 | bind = SUPER SHIFT, left, movewindow, l 296 | bind = SUPER SHIFT, right, movewindow, r 297 | bind = SUPER SHIFT, up, movewindow, u 298 | bind = SUPER SHIFT, down, movewindow, d 299 | 300 | # █▀█ █▀▀ █▀ █ ▀█ █▀▀ 301 | # █▀▄ ██▄ ▄█ █ █▄ ██▄ 302 | bind = SUPER CTRL, left, resizeactive, -20 0 303 | bind = SUPER CTRL, right, resizeactive, 20 0 304 | bind = SUPER CTRL, up, resizeactive, 0 -20 305 | bind = SUPER CTRL, down, resizeactive, 0 20 306 | 307 | # █▀ █░█░█ █ ▀█▀ █▀▀ █░█ 308 | # ▄█ ▀▄▀▄▀ █ ░█░ █▄▄ █▀█ 309 | bind = SUPER, 1, workspace, 1 310 | bind = SUPER, 2, workspace, 2 311 | bind = SUPER, 3, workspace, 3 312 | bind = SUPER, 4, workspace, 4 313 | bind = SUPER, 5, workspace, 5 314 | bind = SUPER, 6, workspace, 6 315 | bind = SUPER, 7, workspace, 7 316 | bind = SUPER, 8, workspace, 8 317 | bind = SUPER, 9, workspace, 9 318 | bind = SUPER, 0, workspace, 10 319 | bind = SUPER ALT, up, workspace, e+1 320 | bind = SUPER ALT, down, workspace, e-1 321 | 322 | # █▀▄▀█ █▀█ █░█ █▀▀ 323 | # █░▀░█ █▄█ ▀▄▀ ██▄ 324 | bind = SUPER SHIFT, 1, movetoworkspace, 1 325 | bind = SUPER SHIFT, 2, movetoworkspace, 2 326 | bind = SUPER SHIFT, 3, movetoworkspace, 3 327 | bind = SUPER SHIFT, 4, movetoworkspace, 4 328 | bind = SUPER SHIFT, 5, movetoworkspace, 5 329 | bind = SUPER SHIFT, 6, movetoworkspace, 6 330 | bind = SUPER SHIFT, 7, movetoworkspace, 7 331 | bind = SUPER SHIFT, 8, movetoworkspace, 8 332 | bind = SUPER SHIFT, 9, movetoworkspace, 9 333 | bind = SUPER SHIFT, 0, movetoworkspace, 10 334 | 335 | # █▀▄▀█ █▀█ █░█ █▀ █▀▀   █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ 336 | # █░▀░█ █▄█ █▄█ ▄█ ██▄   █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ 337 | bindm = SUPER, mouse:272, movewindow 338 | bindm = SUPER, mouse:273, resizewindow 339 | bind = SUPER, mouse_down, workspace, e+1 340 | bind = SUPER, mouse_up, workspace, e-1 341 | -------------------------------------------------------------------------------- /hypr/scripts/brightness_ctl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # You can call this script like this: 4 | # $ ./brightnessControl.sh up 5 | # $ ./brightnessControl.sh down 6 | 7 | # Script inspired by these wonderful people: 8 | # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh 9 | # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a 10 | 11 | NotificationID_File=/tmp/brightness_notification_id 12 | 13 | function get_brightness { 14 | brightnessctl -m | awk -F, '{print substr($4, 0, length($4)-1)}' 15 | } 16 | 17 | function get_notification_id { 18 | if [ -s "$NotificationID_File" ]; then 19 | cat $NotificationID_File 20 | else 21 | echo 0 22 | fi 23 | } 24 | 25 | function send_notification { 26 | icon="preferences-system-brightness-lock" 27 | brightness=$(get_brightness) 28 | # Make the bar with the special character ─ (it's not dash -) 29 | # https://en.wikipedia.org/wiki/Box-drawing_character 30 | bar=$(seq -s "─" 0 $(((brightness - 1) / 4)) | sed 's/[0-9]//g') 31 | space=$(seq --separator=" " 0 "$(((100 - brightness) / 4))" | sed 's/[0-9]//g') 32 | nid=$(get_notification_id) 33 | # Send the notification 34 | notify-send -i "$icon" -p -r $nid -u normal "|$bar$space| $brightness%" > $NotificationID_File 35 | } 36 | 37 | 38 | case $1 in 39 | up) 40 | # increase the backlight by 5% 41 | brightnessctl set 5%+ 42 | send_notification 43 | ;; 44 | down) 45 | # decrease the backlight by 5% 46 | brightnessctl set 5%- 47 | send_notification 48 | ;; 49 | max) 50 | brightnessctl set 100% 51 | send_notification 52 | ;; 53 | blank) 54 | brightnessctl set 0% 55 | send_notification 56 | ;; 57 | esac -------------------------------------------------------------------------------- /hypr/scripts/fans.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | 4 | function fan1speed { 5 | sensors | awk '/fan1:/ {print $2}' 6 | } 7 | 8 | function fan2speed { 9 | sensors | awk '/fan2:/ {print $2}' 10 | } 11 | 12 | maxFanSpeed=8000 13 | 14 | lowThreshold=2000 15 | midThreshold=5000 16 | highThreshold=6000 17 | 18 | text="" 19 | tooltip="󰈐 $(fan1speed) (L) | 󰈐 $(fan2speed) (R)" 20 | class="off" 21 | 22 | if [[ $(fan1speed) -gt $highThreshold ]] 23 | then 24 | class="high" 25 | elif [[ $(fan1speed) -gt $midThreshold ]] 26 | then 27 | class="medium" 28 | elif [[ $(fan1speed) -gt $lowThreshold ]] 29 | then 30 | class="low" 31 | fi 32 | 33 | printf '{"text":"%s","tooltip":"%s","class":"%s","percentage":"%s"}\n' "$text" "$tooltip" "$class" "$percentage" 34 | -------------------------------------------------------------------------------- /hypr/scripts/import-gsettings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # usage: import-gsettings 4 | config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini" 5 | if [ ! -f "$config" ]; then exit 1; fi 6 | 7 | gnome_schema="org.gnome.desktop.interface" 8 | gtk_theme="$(grep 'gtk-theme-name' "$config" | sed 's/.*\s*=\s*//')" 9 | icon_theme="$(grep 'gtk-icon-theme-name' "$config" | sed 's/.*\s*=\s*//')" 10 | cursor_theme="$(grep 'gtk-cursor-theme-name' "$config" | sed 's/.*\s*=\s*//')" 11 | font_name="$(grep 'gtk-font-name' "$config" | sed 's/.*\s*=\s*//')" 12 | gsettings set "$gnome_schema" gtk-theme "$gtk_theme" 13 | gsettings set "$gnome_schema" icon-theme "$icon_theme" 14 | gsettings set "$gnome_schema" cursor-theme "$cursor_theme" 15 | gsettings set "$gnome_schema" font-name "$font_name" 16 | -------------------------------------------------------------------------------- /hypr/scripts/volume_ctl.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # You can call this script like this: 4 | # $ ./volumeControl.sh up 5 | # $ ./volumeControl.sh down 6 | # $ ./volumeControl.sh mute 7 | 8 | # Script modified from these wonderful people: 9 | # https://github.com/dastorm/volume-notification-dunst/blob/master/volume.sh 10 | # https://gist.github.com/sebastiencs/5d7227f388d93374cebdf72e783fbd6a 11 | 12 | NotificationID_File=/tmp/volume_notification_id 13 | 14 | function get_volume { 15 | amixer get Master | grep '%' | head -n 1 | cut -d '[' -f 2 | cut -d '%' -f 1 16 | } 17 | 18 | function is_mute { 19 | amixer get Master | grep '%' | grep -oE '[^ ]+$' | grep off > /dev/null 20 | } 21 | 22 | function get_notification_id { 23 | if [ -s "$NotificationID_File" ]; then 24 | cat $NotificationID_File 25 | else 26 | echo 0 27 | fi 28 | } 29 | 30 | function send_notification { 31 | iconSound="audio-volume-high" 32 | iconMuted="audio-volume-muted" 33 | nid=$(get_notification_id) 34 | if is_mute ; then 35 | notify-send -i $iconMuted -p -r $nid -u normal "Muted" > $NotificationID_File 36 | else 37 | volume=$(get_volume) 38 | # Make the bar with the special character ─ (it's not dash -) 39 | # https://en.wikipedia.org/wiki/Box-drawing_character 40 | bar=$(seq --separator="─" 0 "$(((volume - 1) / 4))" | sed 's/[0-9]//g') 41 | space=$(seq --separator=" " 0 "$(((100 - volume) / 4))" | sed 's/[0-9]//g') 42 | # Send the notification 43 | notify-send -i $iconSound -p -r $nid -u normal "|$bar$space| $volume%" > $NotificationID_File 44 | fi 45 | } 46 | 47 | case $1 in 48 | up) 49 | # set the volume on (if it was muted) 50 | amixer -D pipewire set Master on > /dev/null 51 | # up the volume (+ 5%) 52 | amixer -D pipewire sset Master 5%+ > /dev/null 53 | send_notification 54 | canberra-gtk-play -i audio-volume-change -d "changeVolume" 55 | ;; 56 | down) 57 | amixer -D pipewire set Master on > /dev/null 58 | amixer -D pipewire sset Master 5%- > /dev/null 59 | send_notification 60 | canberra-gtk-play -i audio-volume-change -d "changeVolume" 61 | ;; 62 | mute) 63 | # toggle mute 64 | amixer -D pipewire set Master 1+ toggle > /dev/null 65 | send_notification 66 | ;; 67 | esac 68 | -------------------------------------------------------------------------------- /hypr/scripts/wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ## main script ## 4 | BASEDIR=`dirname $(realpath $0)` 5 | 6 | ## check swww daemon ## 7 | swww query 8 | if [ $? -eq 1 ] ; then 9 | swww init 10 | sleep 2.5 11 | fi 12 | 13 | BEZIER=.43,0.1,1,.4 14 | 15 | ## set wallpaper ## 16 | swww img $1 \ 17 | --transition-bezier ${BEZIER} \ 18 | --transition-type grow \ 19 | --transition-duration 1 \ 20 | --transition-fps 144 \ 21 | --transition-pos bottom-right 22 | -------------------------------------------------------------------------------- /hypr/scripts/wallpaper/wallpaper.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ## define functions ## 4 | Wall_Next() 5 | { 6 | WallSet=`readlink $BASEDIR/images` 7 | Wallist=(`dirname $WallSet`/*) 8 | 9 | for((i=0;i<${#Wallist[@]};i++)) 10 | do 11 | if [ $((i + 1)) -eq ${#Wallist[@]} ] ; then 12 | ln -fs ${Wallist[0]} $BASEDIR/wall.paper 13 | break 14 | elif [ ${Wallist[i]} == ${WallSet} ] ; then 15 | ln -fs ${Wallist[i+1]} $BASEDIR/wall.paper 16 | break 17 | fi 18 | done 19 | } 20 | 21 | Wall_Set() 22 | { 23 | swww img $BASEDIR/wall.set \ 24 | --transition-bezier .43,1.19,1,.4 \ 25 | --transition-type grow \ 26 | --transition-duration 1 \ 27 | --transition-fps 144 \ 28 | --transition-pos bottom-right 29 | } 30 | 31 | ## main script ## 32 | BASEDIR=`dirname $(realpath $0)` 33 | 34 | ## check linked file ## 35 | # if [ ! -f $BASEDIR/wall.paper ] ; then 36 | # echo "ERROR: wallpaper link is broken" 37 | # exit 1 38 | # fi 39 | 40 | ## evaluate options ## 41 | while getopts "nt" option ; do 42 | case $option in 43 | n ) # set the next wallpaper 44 | Wall_Next ;; 45 | t ) # display tooltip 46 | echo "󰋫 Next Wallpaper 󰉼 󰆊" 47 | exit 0 ;; 48 | * ) # invalid option 49 | echo "n : set next wall" 50 | exit 1 ;; 51 | esac 52 | done 53 | 54 | ## check swww daemon ## 55 | swww query 56 | if [ $? -eq 1 ] ; then 57 | swww init 58 | sleep 2.5 59 | fi 60 | 61 | ## set wallpaper ## 62 | Wall_Set 63 | convert -scale 10% -blur 0x2.5 -resize 1000% $BASEDIR/wall.set $BASEDIR/wall.blur 64 | -------------------------------------------------------------------------------- /hypr/themes/frappe.conf: -------------------------------------------------------------------------------- 1 | $rosewaterAlpha = fff5e0dc 2 | $flamingoAlpha = fff2cdcd 3 | $pinkAlpha = fff5c2e7 4 | $mauveAlpha = ffcba6f7 5 | $redAlpha = fff38ba8 6 | $maroonAlpha = ffeba0ac 7 | $peachAlpha = fffab387 8 | $yellowAlpha = fff9e2af 9 | $greenAlpha = ffa6e3a1 10 | $tealAlpha = ff94e2d5 11 | $skyAlpha = ff89dceb 12 | $sapphireAlpha = ff74c7ec 13 | $blueAlpha = ff89b4fa 14 | $lavenderAlpha = ffb4befe 15 | 16 | $textAlpha = ffcdd6f4 17 | $subtext1Alpha = ffbac2de 18 | $subtext0Alpha = ffa6adc8 19 | 20 | $overlay2Alpha = ff9399b2 21 | $overlay1Alpha = ff7f849c 22 | $overlay0Alpha = ff6c7086 23 | 24 | $surface2Alpha = ff585b70 25 | $surface1Alpha = ff45475a 26 | $surface0Alpha = ff313244 27 | 28 | $baseAlpha = ff1e1e2e 29 | $mantleAlpha = ff181825 30 | $crustAlpha = ff11111b 31 | 32 | $rosewater = 0xfff5e0dc 33 | $flamingo = 0xfff2cdcd 34 | $pink = 0xfff5c2e7 35 | $mauve = 0xffcba6f7 36 | $red = 0xfff38ba8 37 | $maroon = 0xffeba0ac 38 | $peach = 0xfffab387 39 | $yellow = 0xfff9e2af 40 | $green = 0xffa6e3a1 41 | $teal = 0xff94e2d5 42 | $sky = 0xff89dceb 43 | $sapphire = 0xff74c7ec 44 | $blue = 0xff89b4fa 45 | $lavender = 0xffb4befe 46 | 47 | $text = 0xffcdd6f4 48 | $subtext1 = 0xffbac2de 49 | $subtext0 = 0xffa6adc8 50 | 51 | $overlay2 = 0xff9399b2 52 | $overlay1 = 0xff7f849c 53 | $overlay0 = 0xff6c7086 54 | 55 | $surface2 = 0xff585b70 56 | $surface1 = 0xff45475a 57 | $surface0 = 0xff313244 58 | 59 | $base = 0xff1e1e2e 60 | $mantle = 0xff181825 61 | $crust = 0xff11111b 62 | -------------------------------------------------------------------------------- /hypr/themes/latte.conf: -------------------------------------------------------------------------------- 1 | $rosewaterAlpha = fff5e0dc 2 | $flamingoAlpha = fff2cdcd 3 | $pinkAlpha = fff5c2e7 4 | $mauveAlpha = ffcba6f7 5 | $redAlpha = fff38ba8 6 | $maroonAlpha = ffeba0ac 7 | $peachAlpha = fffab387 8 | $yellowAlpha = fff9e2af 9 | $greenAlpha = ffa6e3a1 10 | $tealAlpha = ff94e2d5 11 | $skyAlpha = ff89dceb 12 | $sapphireAlpha = ff74c7ec 13 | $blueAlpha = ff89b4fa 14 | $lavenderAlpha = ffb4befe 15 | 16 | $textAlpha = ffcdd6f4 17 | $subtext1Alpha = ffbac2de 18 | $subtext0Alpha = ffa6adc8 19 | 20 | $overlay2Alpha = ff9399b2 21 | $overlay1Alpha = ff7f849c 22 | $overlay0Alpha = ff6c7086 23 | 24 | $surface2Alpha = ff585b70 25 | $surface1Alpha = ff45475a 26 | $surface0Alpha = ff313244 27 | 28 | $baseAlpha = ff1e1e2e 29 | $mantleAlpha = ff181825 30 | $crustAlpha = ff11111b 31 | 32 | $rosewater = 0xfff5e0dc 33 | $flamingo = 0xfff2cdcd 34 | $pink = 0xfff5c2e7 35 | $mauve = 0xffcba6f7 36 | $red = 0xfff38ba8 37 | $maroon = 0xffeba0ac 38 | $peach = 0xfffab387 39 | $yellow = 0xfff9e2af 40 | $green = 0xffa6e3a1 41 | $teal = 0xff94e2d5 42 | $sky = 0xff89dceb 43 | $sapphire = 0xff74c7ec 44 | $blue = 0xff89b4fa 45 | $lavender = 0xffb4befe 46 | 47 | $text = 0xffcdd6f4 48 | $subtext1 = 0xffbac2de 49 | $subtext0 = 0xffa6adc8 50 | 51 | $overlay2 = 0xff9399b2 52 | $overlay1 = 0xff7f849c 53 | $overlay0 = 0xff6c7086 54 | 55 | $surface2 = 0xff585b70 56 | $surface1 = 0xff45475a 57 | $surface0 = 0xff313244 58 | 59 | $base = 0xff1e1e2e 60 | $mantle = 0xff181825 61 | $crust = 0xff11111b 62 | -------------------------------------------------------------------------------- /hypr/themes/macchiato.conf: -------------------------------------------------------------------------------- 1 | $rosewaterAlpha = fff5e0dc 2 | $flamingoAlpha = fff2cdcd 3 | $pinkAlpha = fff5c2e7 4 | $mauveAlpha = ffcba6f7 5 | $redAlpha = fff38ba8 6 | $maroonAlpha = ffeba0ac 7 | $peachAlpha = fffab387 8 | $yellowAlpha = fff9e2af 9 | $greenAlpha = ffa6e3a1 10 | $tealAlpha = ff94e2d5 11 | $skyAlpha = ff89dceb 12 | $sapphireAlpha = ff74c7ec 13 | $blueAlpha = ff89b4fa 14 | $lavenderAlpha = ffb4befe 15 | 16 | $textAlpha = ffcdd6f4 17 | $subtext1Alpha = ffbac2de 18 | $subtext0Alpha = ffa6adc8 19 | 20 | $overlay2Alpha = ff9399b2 21 | $overlay1Alpha = ff7f849c 22 | $overlay0Alpha = ff6c7086 23 | 24 | $surface2Alpha = ff585b70 25 | $surface1Alpha = ff45475a 26 | $surface0Alpha = ff313244 27 | 28 | $baseAlpha = ff1e1e2e 29 | $mantleAlpha = ff181825 30 | $crustAlpha = ff11111b 31 | 32 | $rosewater = 0xfff5e0dc 33 | $flamingo = 0xfff2cdcd 34 | $pink = 0xfff5c2e7 35 | $mauve = 0xffcba6f7 36 | $red = 0xfff38ba8 37 | $maroon = 0xffeba0ac 38 | $peach = 0xfffab387 39 | $yellow = 0xfff9e2af 40 | $green = 0xffa6e3a1 41 | $teal = 0xff94e2d5 42 | $sky = 0xff89dceb 43 | $sapphire = 0xff74c7ec 44 | $blue = 0xff89b4fa 45 | $lavender = 0xffb4befe 46 | 47 | $text = 0xffcdd6f4 48 | $subtext1 = 0xffbac2de 49 | $subtext0 = 0xffa6adc8 50 | 51 | $overlay2 = 0xff9399b2 52 | $overlay1 = 0xff7f849c 53 | $overlay0 = 0xff6c7086 54 | 55 | $surface2 = 0xff585b70 56 | $surface1 = 0xff45475a 57 | $surface0 = 0xff313244 58 | 59 | $base = 0xff1e1e2e 60 | $mantle = 0xff181825 61 | $crust = 0xff11111b 62 | -------------------------------------------------------------------------------- /hypr/themes/mocha.conf: -------------------------------------------------------------------------------- 1 | $rosewaterAlpha = fff5e0dc 2 | $flamingoAlpha = fff2cdcd 3 | $pinkAlpha = fff5c2e7 4 | $mauveAlpha = ffcba6f7 5 | $redAlpha = fff38ba8 6 | $maroonAlpha = ffeba0ac 7 | $peachAlpha = fffab387 8 | $yellowAlpha = fff9e2af 9 | $greenAlpha = ffa6e3a1 10 | $tealAlpha = ff94e2d5 11 | $skyAlpha = ff89dceb 12 | $sapphireAlpha = ff74c7ec 13 | $blueAlpha = ff89b4fa 14 | $lavenderAlpha = ffb4befe 15 | 16 | $textAlpha = ffcdd6f4 17 | $subtext1Alpha = ffbac2de 18 | $subtext0Alpha = ffa6adc8 19 | 20 | $overlay2Alpha = ff9399b2 21 | $overlay1Alpha = ff7f849c 22 | $overlay0Alpha = ff6c7086 23 | 24 | $surface2Alpha = ff585b70 25 | $surface1Alpha = ff45475a 26 | $surface0Alpha = ff313244 27 | 28 | $baseAlpha = ff1e1e2e 29 | $mantleAlpha = ff181825 30 | $crustAlpha = ff11111b 31 | 32 | $rosewater = 0xfff5e0dc 33 | $flamingo = 0xfff2cdcd 34 | $pink = 0xfff5c2e7 35 | $mauve = 0xffcba6f7 36 | $red = 0xfff38ba8 37 | $maroon = 0xffeba0ac 38 | $peach = 0xfffab387 39 | $yellow = 0xfff9e2af 40 | $green = 0xffa6e3a1 41 | $teal = 0xff94e2d5 42 | $sky = 0xff89dceb 43 | $sapphire = 0xff74c7ec 44 | $blue = 0xff89b4fa 45 | $lavender = 0xffb4befe 46 | 47 | $text = 0xffcdd6f4 48 | $subtext1 = 0xffbac2de 49 | $subtext0 = 0xffa6adc8 50 | 51 | $overlay2 = 0xff9399b2 52 | $overlay1 = 0xff7f849c 53 | $overlay0 = 0xff6c7086 54 | 55 | $surface2 = 0xff585b70 56 | $surface1 = 0xff45475a 57 | $surface0 = 0xff313244 58 | 59 | $base = 0xff1e1e2e 60 | $mantle = 0xff181825 61 | $crust = 0xff11111b 62 | -------------------------------------------------------------------------------- /hypr/xdg-portal.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | sleep 1 3 | killall xdg-desktop-portal-hyprland 4 | killall xdg-desktop-portal-wlr 5 | killall xdg-desktop-portal 6 | /usr/lib/xdg-desktop-portal-hyprland & 7 | sleep 2 8 | /usr/lib/xdg-desktop-portal & 9 | -------------------------------------------------------------------------------- /kitty/current-theme.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin-Mocha 4 | ## author: Pocco81 (https://github.com/Pocco81) 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #CDD6F4 13 | background #1E1E2E 14 | selection_foreground #1E1E2E 15 | selection_background #F5E0DC 16 | 17 | # Cursor colors 18 | cursor #F5E0DC 19 | cursor_text_color #1E1E2E 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F5E0DC 23 | 24 | # Kitty window border colors 25 | active_border_color #B4BEFE 26 | inactive_border_color #6C7086 27 | bell_border_color #F9E2AF 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #11111B 35 | active_tab_background #CBA6F7 36 | inactive_tab_foreground #CDD6F4 37 | inactive_tab_background #181825 38 | tab_bar_background #11111B 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #1E1E2E 42 | mark1_background #B4BEFE 43 | mark2_foreground #1E1E2E 44 | mark2_background #CBA6F7 45 | mark3_foreground #1E1E2E 46 | mark3_background #74C7EC 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #45475A 52 | color8 #585B70 53 | 54 | # red 55 | color1 #F38BA8 56 | color9 #F38BA8 57 | 58 | # green 59 | color2 #A6E3A1 60 | color10 #A6E3A1 61 | 62 | # yellow 63 | color3 #F9E2AF 64 | color11 #F9E2AF 65 | 66 | # blue 67 | color4 #89B4FA 68 | color12 #89B4FA 69 | 70 | # magenta 71 | color5 #F5C2E7 72 | color13 #F5C2E7 73 | 74 | # cyan 75 | color6 #94E2D5 76 | color14 #94E2D5 77 | 78 | # white 79 | color7 #BAC2DE 80 | color15 #A6ADC8 81 | -------------------------------------------------------------------------------- /kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | # vim:fileencoding=utf-8:foldmethod=marker 2 | 3 | #: Fonts {{{ 4 | 5 | #: kitty has very powerful font management. You can configure 6 | #: individual font faces and even specify special fonts for particular 7 | #: characters. 8 | 9 | # font_family monospace 10 | # bold_font auto 11 | # italic_font auto 12 | # bold_italic_font auto 13 | 14 | #: You can specify different fonts for the bold/italic/bold-italic 15 | #: variants. To get a full list of supported fonts use the `kitty 16 | #: +list-fonts` command. By default they are derived automatically, by 17 | #: the OSes font system. When bold_font or bold_italic_font is set to 18 | #: auto on macOS, the priority of bold fonts is semi-bold, bold, 19 | #: heavy. Setting them manually is useful for font families that have 20 | #: many weight variants like Book, Medium, Thick, etc. For example:: 21 | 22 | #: font_family Operator Mono Book 23 | #: bold_font Operator Mono Medium 24 | #: italic_font Operator Mono Book Italic 25 | #: bold_italic_font Operator Mono Medium Italic 26 | 27 | font_size 10.0 28 | 29 | #: Font size (in pts) 30 | 31 | # force_ltr no 32 | 33 | #: kitty does not support BIDI (bidirectional text), however, for RTL 34 | #: scripts, words are automatically displayed in RTL. That is to say, 35 | #: in an RTL script, the words "HELLO WORLD" display in kitty as 36 | #: "WORLD HELLO", and if you try to select a substring of an RTL- 37 | #: shaped string, you will get the character that would be there had 38 | #: the the string been LTR. For example, assuming the Hebrew word 39 | #: ירושלים, selecting the character that on the screen appears to be ם 40 | #: actually writes into the selection buffer the character י. kitty's 41 | #: default behavior is useful in conjunction with a filter to reverse 42 | #: the word order, however, if you wish to manipulate RTL glyphs, it 43 | #: can be very challenging to work with, so this option is provided to 44 | #: turn it off. Furthermore, this option can be used with the command 45 | #: line program GNU FriBidi 46 | #: to get BIDI 47 | #: support, because it will force kitty to always treat the text as 48 | #: LTR, which FriBidi expects for terminals. 49 | 50 | # symbol_map 51 | 52 | #: E.g. symbol_map U+E0A0-U+E0A3,U+E0C0-U+E0C7 PowerlineSymbols 53 | 54 | #: Map the specified Unicode codepoints to a particular font. Useful 55 | #: if you need special rendering for some symbols, such as for 56 | #: Powerline. Avoids the need for patched fonts. Each Unicode code 57 | #: point is specified in the form `U+`. You 58 | #: can specify multiple code points, separated by commas and ranges 59 | #: separated by hyphens. This option can be specified multiple times. 60 | #: The syntax is:: 61 | 62 | #: symbol_map codepoints Font Family Name 63 | 64 | # narrow_symbols 65 | 66 | #: E.g. narrow_symbols U+E0A0-U+E0A3,U+E0C0-U+E0C7 1 67 | 68 | #: Usually, for Private Use Unicode characters and some symbol/dingbat 69 | #: characters, if the character is followed by one or more spaces, 70 | #: kitty will use those extra cells to render the character larger, if 71 | #: the character in the font has a wide aspect ratio. Using this 72 | #: option you can force kitty to restrict the specified code points to 73 | #: render in the specified number of cells (defaulting to one cell). 74 | #: This option can be specified multiple times. The syntax is:: 75 | 76 | #: narrow_symbols codepoints [optionally the number of cells] 77 | 78 | # disable_ligatures never 79 | 80 | #: Choose how you want to handle multi-character ligatures. The 81 | #: default is to always render them. You can tell kitty to not render 82 | #: them when the cursor is over them by using cursor to make editing 83 | #: easier, or have kitty never render them at all by using always, if 84 | #: you don't like them. The ligature strategy can be set per-window 85 | #: either using the kitty remote control facility or by defining 86 | #: shortcuts for it in kitty.conf, for example:: 87 | 88 | #: map alt+1 disable_ligatures_in active always 89 | #: map alt+2 disable_ligatures_in all never 90 | #: map alt+3 disable_ligatures_in tab cursor 91 | 92 | #: Note that this refers to programming ligatures, typically 93 | #: implemented using the calt OpenType feature. For disabling general 94 | #: ligatures, use the font_features option. 95 | 96 | # font_features 97 | 98 | #: E.g. font_features none 99 | 100 | #: Choose exactly which OpenType features to enable or disable. This 101 | #: is useful as some fonts might have features worthwhile in a 102 | #: terminal. For example, Fira Code includes a discretionary feature, 103 | #: zero, which in that font changes the appearance of the zero (0), to 104 | #: make it more easily distinguishable from Ø. Fira Code also includes 105 | #: other discretionary features known as Stylistic Sets which have the 106 | #: tags ss01 through ss20. 107 | 108 | #: For the exact syntax to use for individual features, see the 109 | #: HarfBuzz documentation . 111 | 112 | #: Note that this code is indexed by PostScript name, and not the font 113 | #: family. This allows you to define very precise feature settings; 114 | #: e.g. you can disable a feature in the italic font but not in the 115 | #: regular font. 116 | 117 | #: On Linux, font features are first read from the FontConfig database 118 | #: and then this option is applied, so they can be configured in a 119 | #: single, central place. 120 | 121 | #: To get the PostScript name for a font, use `kitty +list-fonts 122 | #: --psnames`: 123 | 124 | #: .. code-block:: sh 125 | 126 | #: $ kitty +list-fonts --psnames | grep Fira 127 | #: Fira Code 128 | #: Fira Code Bold (FiraCode-Bold) 129 | #: Fira Code Light (FiraCode-Light) 130 | #: Fira Code Medium (FiraCode-Medium) 131 | #: Fira Code Regular (FiraCode-Regular) 132 | #: Fira Code Retina (FiraCode-Retina) 133 | 134 | #: The part in brackets is the PostScript name. 135 | 136 | #: Enable alternate zero and oldstyle numerals:: 137 | 138 | #: font_features FiraCode-Retina +zero +onum 139 | 140 | #: Enable only alternate zero in the bold font:: 141 | 142 | #: font_features FiraCode-Bold +zero 143 | 144 | #: Disable the normal ligatures, but keep the calt feature which (in 145 | #: this font) breaks up monotony:: 146 | 147 | #: font_features TT2020StyleB-Regular -liga +calt 148 | 149 | #: In conjunction with force_ltr, you may want to disable Arabic 150 | #: shaping entirely, and only look at their isolated forms if they 151 | #: show up in a document. You can do this with e.g.:: 152 | 153 | #: font_features UnifontMedium +isol -medi -fina -init 154 | 155 | # modify_font 156 | 157 | #: Modify font characteristics such as the position or thickness of 158 | #: the underline and strikethrough. The modifications can have the 159 | #: suffix px for pixels or % for percentage of original value. No 160 | #: suffix means use pts. For example:: 161 | 162 | #: modify_font underline_position -2 163 | #: modify_font underline_thickness 150% 164 | #: modify_font strikethrough_position 2px 165 | 166 | #: Additionally, you can modify the size of the cell in which each 167 | #: font glyph is rendered and the baseline at which the glyph is 168 | #: placed in the cell. For example:: 169 | 170 | #: modify_font cell_width 80% 171 | #: modify_font cell_height -2px 172 | #: modify_font baseline 3 173 | 174 | #: Note that modifying the baseline will automatically adjust the 175 | #: underline and strikethrough positions by the same amount. 176 | #: Increasing the baseline raises glyphs inside the cell and 177 | #: decreasing it lowers them. Decreasing the cell size might cause 178 | #: rendering artifacts, so use with care. 179 | 180 | # box_drawing_scale 0.001, 1, 1.5, 2 181 | 182 | #: The sizes of the lines used for the box drawing Unicode characters. 183 | #: These values are in pts. They will be scaled by the monitor DPI to 184 | #: arrive at a pixel value. There must be four values corresponding to 185 | #: thin, normal, thick, and very thick lines. 186 | 187 | # undercurl_style thin-sparse 188 | 189 | #: The style with which undercurls are rendered. This option takes the 190 | #: form (thin|thick)-(sparse|dense). Thin and thick control the 191 | #: thickness of the undercurl. Sparse and dense control how often the 192 | #: curl oscillates. With sparse the curl will peak once per character, 193 | #: with dense twice. 194 | 195 | #: }}} 196 | 197 | #: Cursor customization {{{ 198 | 199 | # cursor #cccccc 200 | 201 | #: Default cursor color. If set to the special value none the cursor 202 | #: will be rendered with a "reverse video" effect. It's color will be 203 | #: the color of the text in the cell it is over and the text will be 204 | #: rendered with the background color of the cell. Note that if the 205 | #: program running in the terminal sets a cursor color, this takes 206 | #: precedence. Also, the cursor colors are modified if the cell 207 | #: background and foreground colors have very low contrast. 208 | 209 | # cursor_text_color #111111 210 | 211 | #: The color of text under the cursor. If you want it rendered with 212 | #: the background color of the cell underneath instead, use the 213 | #: special keyword: background. Note that if cursor is set to none 214 | #: then this option is ignored. 215 | 216 | # cursor_shape block 217 | 218 | #: The cursor shape can be one of block, beam, underline. Note that 219 | #: when reloading the config this will be changed only if the cursor 220 | #: shape has not been set by the program running in the terminal. This 221 | #: sets the default cursor shape, applications running in the terminal 222 | #: can override it. In particular, shell integration 223 | #: in kitty sets 224 | #: the cursor shape to beam at shell prompts. You can avoid this by 225 | #: setting shell_integration to no-cursor. 226 | 227 | # cursor_beam_thickness 1.5 228 | 229 | #: The thickness of the beam cursor (in pts). 230 | 231 | # cursor_underline_thickness 2.0 232 | 233 | #: The thickness of the underline cursor (in pts). 234 | 235 | # cursor_blink_interval -1 236 | 237 | #: The interval to blink the cursor (in seconds). Set to zero to 238 | #: disable blinking. Negative values mean use system default. Note 239 | #: that the minimum interval will be limited to repaint_delay. 240 | 241 | # cursor_stop_blinking_after 15.0 242 | 243 | #: Stop blinking cursor after the specified number of seconds of 244 | #: keyboard inactivity. Set to zero to never stop blinking. 245 | 246 | #: }}} 247 | 248 | #: Scrollback {{{ 249 | 250 | # scrollback_lines 2000 251 | 252 | #: Number of lines of history to keep in memory for scrolling back. 253 | #: Memory is allocated on demand. Negative numbers are (effectively) 254 | #: infinite scrollback. Note that using very large scrollback is not 255 | #: recommended as it can slow down performance of the terminal and 256 | #: also use large amounts of RAM. Instead, consider using 257 | #: scrollback_pager_history_size. Note that on config reload if this 258 | #: is changed it will only affect newly created windows, not existing 259 | #: ones. 260 | 261 | # scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER 262 | 263 | #: Program with which to view scrollback in a new window. The 264 | #: scrollback buffer is passed as STDIN to this program. If you change 265 | #: it, make sure the program you use can handle ANSI escape sequences 266 | #: for colors and text formatting. INPUT_LINE_NUMBER in the command 267 | #: line above will be replaced by an integer representing which line 268 | #: should be at the top of the screen. Similarly CURSOR_LINE and 269 | #: CURSOR_COLUMN will be replaced by the current cursor position or 270 | #: set to 0 if there is no cursor, for example, when showing the last 271 | #: command output. 272 | 273 | # scrollback_pager_history_size 0 274 | 275 | #: Separate scrollback history size (in MB), used only for browsing 276 | #: the scrollback buffer with pager. This separate buffer is not 277 | #: available for interactive scrolling but will be piped to the pager 278 | #: program when viewing scrollback buffer in a separate window. The 279 | #: current implementation stores the data in UTF-8, so approximatively 280 | #: 10000 lines per megabyte at 100 chars per line, for pure ASCII, 281 | #: unformatted text. A value of zero or less disables this feature. 282 | #: The maximum allowed size is 4GB. Note that on config reload if this 283 | #: is changed it will only affect newly created windows, not existing 284 | #: ones. 285 | 286 | # scrollback_fill_enlarged_window no 287 | 288 | #: Fill new space with lines from the scrollback buffer after 289 | #: enlarging a window. 290 | 291 | # wheel_scroll_multiplier 5.0 292 | 293 | #: Multiplier for the number of lines scrolled by the mouse wheel. 294 | #: Note that this is only used for low precision scrolling devices, 295 | #: not for high precision scrolling devices on platforms such as macOS 296 | #: and Wayland. Use negative numbers to change scroll direction. See 297 | #: also wheel_scroll_min_lines. 298 | 299 | # wheel_scroll_min_lines 1 300 | 301 | #: The minimum number of lines scrolled by the mouse wheel. The scroll 302 | #: multiplier wheel_scroll_multiplier only takes effect after it 303 | #: reaches this number. Note that this is only used for low precision 304 | #: scrolling devices like wheel mice that scroll by very small amounts 305 | #: when using the wheel. With a negative number, the minimum number of 306 | #: lines will always be added. 307 | 308 | # touch_scroll_multiplier 1.0 309 | 310 | #: Multiplier for the number of lines scrolled by a touchpad. Note 311 | #: that this is only used for high precision scrolling devices on 312 | #: platforms such as macOS and Wayland. Use negative numbers to change 313 | #: scroll direction. 314 | 315 | #: }}} 316 | 317 | #: Mouse {{{ 318 | 319 | # mouse_hide_wait 3.0 320 | 321 | #: Hide mouse cursor after the specified number of seconds of the 322 | #: mouse not being used. Set to zero to disable mouse cursor hiding. 323 | #: Set to a negative value to hide the mouse cursor immediately when 324 | #: typing text. Disabled by default on macOS as getting it to work 325 | #: robustly with the ever-changing sea of bugs that is Cocoa is too 326 | #: much effort. 327 | 328 | # url_color #0087bd 329 | # url_style curly 330 | 331 | #: The color and style for highlighting URLs on mouse-over. url_style 332 | #: can be one of: none, straight, double, curly, dotted, dashed. 333 | 334 | # open_url_with default 335 | 336 | #: The program to open clicked URLs. The special value default with 337 | #: first look for any URL handlers defined via the open_actions 338 | #: facility and if non 339 | #: are found, it will use the Operating System's default URL handler 340 | #: (open on macOS and xdg-open on Linux). 341 | 342 | # url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh 343 | 344 | #: The set of URL prefixes to look for when detecting a URL under the 345 | #: mouse cursor. 346 | 347 | # detect_urls yes 348 | 349 | #: Detect URLs under the mouse. Detected URLs are highlighted with an 350 | #: underline and the mouse cursor becomes a hand over them. Even if 351 | #: this option is disabled, URLs are still clickable. 352 | 353 | # url_excluded_characters 354 | 355 | #: Additional characters to be disallowed from URLs, when detecting 356 | #: URLs under the mouse cursor. By default, all characters that are 357 | #: legal in URLs are allowed. 358 | 359 | # show_hyperlink_targets no 360 | 361 | #: When the mouse hovers over a terminal hyperlink, show the actual 362 | #: URL that will be activated when the hyperlink is clicked. 363 | 364 | copy_on_select yes 365 | 366 | #: Copy to clipboard or a private buffer on select. With this set to 367 | #: clipboard, selecting text with the mouse will cause the text to be 368 | #: copied to clipboard. Useful on platforms such as macOS that do not 369 | #: have the concept of primary selection. You can instead specify a 370 | #: name such as a1 to copy to a private kitty buffer. Map a shortcut 371 | #: with the paste_from_buffer action to paste from this private 372 | #: buffer. For example:: 373 | 374 | #: copy_on_select a1 375 | #: map shift+cmd+v paste_from_buffer a1 376 | 377 | #: Note that copying to the clipboard is a security risk, as all 378 | #: programs, including websites open in your browser can read the 379 | #: contents of the system clipboard. 380 | 381 | # paste_actions quote-urls-at-prompt 382 | 383 | #: A comma separated list of actions to take when pasting text into 384 | #: the terminal. The supported paste actions are: 385 | 386 | #: quote-urls-at-prompt: 387 | #: If the text being pasted is a URL and the cursor is at a shell prompt, 388 | #: automatically quote the URL (needs shell_integration). 389 | #: confirm: 390 | #: Confirm the paste if bracketed paste mode is not active or there is more 391 | #: a large amount of text being pasted. 392 | #: filter: 393 | #: Run the filter_paste() function from the file paste-actions.py in 394 | #: the kitty config directory on the pasted text. The text returned by the 395 | #: function will be actually pasted. 396 | 397 | # strip_trailing_spaces never 398 | 399 | #: Remove spaces at the end of lines when copying to clipboard. A 400 | #: value of smart will do it when using normal selections, but not 401 | #: rectangle selections. A value of always will always do it. 402 | 403 | # select_by_word_characters @-./_~?&=%+# 404 | 405 | #: Characters considered part of a word when double clicking. In 406 | #: addition to these characters any character that is marked as an 407 | #: alphanumeric character in the Unicode database will be matched. 408 | 409 | # select_by_word_characters_forward 410 | 411 | #: Characters considered part of a word when extending the selection 412 | #: forward on double clicking. In addition to these characters any 413 | #: character that is marked as an alphanumeric character in the 414 | #: Unicode database will be matched. 415 | 416 | #: If empty (default) select_by_word_characters will be used for both 417 | #: directions. 418 | 419 | # click_interval -1.0 420 | 421 | #: The interval between successive clicks to detect double/triple 422 | #: clicks (in seconds). Negative numbers will use the system default 423 | #: instead, if available, or fallback to 0.5. 424 | 425 | # focus_follows_mouse no 426 | 427 | #: Set the active window to the window under the mouse when moving the 428 | #: mouse around. 429 | 430 | # pointer_shape_when_grabbed arrow 431 | 432 | #: The shape of the mouse pointer when the program running in the 433 | #: terminal grabs the mouse. Valid values are: arrow, beam and hand. 434 | 435 | # default_pointer_shape beam 436 | 437 | #: The default shape of the mouse pointer. Valid values are: arrow, 438 | #: beam and hand. 439 | 440 | # pointer_shape_when_dragging beam 441 | 442 | #: The default shape of the mouse pointer when dragging across text. 443 | #: Valid values are: arrow, beam and hand. 444 | 445 | #: Mouse actions {{{ 446 | 447 | #: Mouse buttons can be mapped to perform arbitrary actions. The 448 | #: syntax is: 449 | 450 | #: .. code-block:: none 451 | 452 | #: mouse_map button-name event-type modes action 453 | 454 | #: Where button-name is one of left, middle, right, b1 ... b8 with 455 | #: added keyboard modifiers. For example: ctrl+shift+left refers to 456 | #: holding the Ctrl+Shift keys while clicking with the left mouse 457 | #: button. The value b1 ... b8 can be used to refer to up to eight 458 | #: buttons on a mouse. 459 | 460 | #: event-type is one of press, release, doublepress, triplepress, 461 | #: click, doubleclick. modes indicates whether the action is performed 462 | #: when the mouse is grabbed by the program running in the terminal, 463 | #: or not. The values are grabbed or ungrabbed or a comma separated 464 | #: combination of them. grabbed refers to when the program running in 465 | #: the terminal has requested mouse events. Note that the click and 466 | #: double click events have a delay of click_interval to disambiguate 467 | #: from double and triple presses. 468 | 469 | #: You can run kitty with the kitty --debug-input command line option 470 | #: to see mouse events. See the builtin actions below to get a sense 471 | #: of what is possible. 472 | 473 | #: If you want to unmap an action, map it to no_op. For example, to 474 | #: disable opening of URLs with a plain click:: 475 | 476 | #: mouse_map left click ungrabbed no_op 477 | 478 | #: See all the mappable actions including mouse actions here 479 | #: . 480 | 481 | #: .. note:: 482 | #: Once a selection is started, releasing the button that started it will 483 | #: automatically end it and no release event will be dispatched. 484 | 485 | # clear_all_mouse_actions no 486 | 487 | #: Remove all mouse action definitions up to this point. Useful, for 488 | #: instance, to remove the default mouse actions. 489 | 490 | #: Click the link under the mouse or move the cursor 491 | 492 | # mouse_map left click ungrabbed mouse_handle_click selection link prompt 493 | 494 | #:: First check for a selection and if one exists do nothing. Then 495 | #:: check for a link under the mouse cursor and if one exists, click 496 | #:: it. Finally check if the click happened at the current shell 497 | #:: prompt and if so, move the cursor to the click location. Note 498 | #:: that this requires shell integration 499 | #:: to work. 500 | 501 | #: Click the link under the mouse or move the cursor even when grabbed 502 | 503 | # mouse_map shift+left click grabbed,ungrabbed mouse_handle_click selection link prompt 504 | 505 | #:: Same as above, except that the action is performed even when the 506 | #:: mouse is grabbed by the program running in the terminal. 507 | 508 | #: Click the link under the mouse cursor 509 | 510 | # mouse_map ctrl+shift+left release grabbed,ungrabbed mouse_handle_click link 511 | 512 | #:: Variant with Ctrl+Shift is present because the simple click based 513 | #:: version has an unavoidable delay of click_interval, to 514 | #:: disambiguate clicks from double clicks. 515 | 516 | #: Discard press event for link click 517 | 518 | # mouse_map ctrl+shift+left press grabbed discard_event 519 | 520 | #:: Prevent this press event from being sent to the program that has 521 | #:: grabbed the mouse, as the corresponding release event is used to 522 | #:: open a URL. 523 | 524 | #: Paste from the primary selection 525 | 526 | # mouse_map middle release ungrabbed paste_from_selection 527 | 528 | #: Start selecting text 529 | 530 | # mouse_map left press ungrabbed mouse_selection normal 531 | 532 | #: Start selecting text in a rectangle 533 | 534 | # mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle 535 | 536 | #: Select a word 537 | 538 | # mouse_map left doublepress ungrabbed mouse_selection word 539 | 540 | #: Select a line 541 | 542 | # mouse_map left triplepress ungrabbed mouse_selection line 543 | 544 | #: Select line from point 545 | 546 | # mouse_map ctrl+alt+left triplepress ungrabbed mouse_selection line_from_point 547 | 548 | #:: Select from the clicked point to the end of the line. 549 | 550 | #: Extend the current selection 551 | 552 | # mouse_map right press ungrabbed mouse_selection extend 553 | 554 | #:: If you want only the end of the selection to be moved instead of 555 | #:: the nearest boundary, use move-end instead of extend. 556 | 557 | #: Paste from the primary selection even when grabbed 558 | 559 | # mouse_map shift+middle release ungrabbed,grabbed paste_selection 560 | # mouse_map shift+middle press grabbed discard_event 561 | 562 | #: Start selecting text even when grabbed 563 | 564 | # mouse_map shift+left press ungrabbed,grabbed mouse_selection normal 565 | 566 | #: Start selecting text in a rectangle even when grabbed 567 | 568 | # mouse_map ctrl+shift+alt+left press ungrabbed,grabbed mouse_selection rectangle 569 | 570 | #: Select a word even when grabbed 571 | 572 | # mouse_map shift+left doublepress ungrabbed,grabbed mouse_selection word 573 | 574 | #: Select a line even when grabbed 575 | 576 | # mouse_map shift+left triplepress ungrabbed,grabbed mouse_selection line 577 | 578 | #: Select line from point even when grabbed 579 | 580 | # mouse_map ctrl+shift+alt+left triplepress ungrabbed,grabbed mouse_selection line_from_point 581 | 582 | #:: Select from the clicked point to the end of the line even when 583 | #:: grabbed. 584 | 585 | #: Extend the current selection even when grabbed 586 | 587 | # mouse_map shift+right press ungrabbed,grabbed mouse_selection extend 588 | 589 | #: Show clicked command output in pager 590 | 591 | # mouse_map ctrl+shift+right press ungrabbed mouse_show_command_output 592 | 593 | #:: Requires shell integration 594 | #:: to work. 595 | 596 | #: }}} 597 | 598 | #: }}} 599 | 600 | #: Performance tuning {{{ 601 | 602 | # repaint_delay 10 603 | 604 | #: Delay between screen updates (in milliseconds). Decreasing it, 605 | #: increases frames-per-second (FPS) at the cost of more CPU usage. 606 | #: The default value yields ~100 FPS which is more than sufficient for 607 | #: most uses. Note that to actually achieve 100 FPS, you have to 608 | #: either set sync_to_monitor to no or use a monitor with a high 609 | #: refresh rate. Also, to minimize latency when there is pending input 610 | #: to be processed, this option is ignored. 611 | 612 | # input_delay 3 613 | 614 | #: Delay before input from the program running in the terminal is 615 | #: processed (in milliseconds). Note that decreasing it will increase 616 | #: responsiveness, but also increase CPU usage and might cause flicker 617 | #: in full screen programs that redraw the entire screen on each loop, 618 | #: because kitty is so fast that partial screen updates will be drawn. 619 | 620 | # sync_to_monitor yes 621 | 622 | #: Sync screen updates to the refresh rate of the monitor. This 623 | #: prevents screen tearing 624 | #: when scrolling. 625 | #: However, it limits the rendering speed to the refresh rate of your 626 | #: monitor. With a very high speed mouse/high keyboard repeat rate, 627 | #: you may notice some slight input latency. If so, set this to no. 628 | 629 | #: }}} 630 | 631 | #: Terminal bell {{{ 632 | 633 | # enable_audio_bell yes 634 | 635 | #: The audio bell. Useful to disable it in environments that require 636 | #: silence. 637 | 638 | visual_bell_duration 0.2 639 | 640 | #: The visual bell duration (in seconds). Flash the screen when a bell 641 | #: occurs for the specified number of seconds. Set to zero to disable. 642 | 643 | # visual_bell_color none 644 | 645 | #: The color used by visual bell. Set to none will fall back to 646 | #: selection background color. If you feel that the visual bell is too 647 | #: bright, you can set it to a darker color. 648 | 649 | # window_alert_on_bell yes 650 | 651 | #: Request window attention on bell. Makes the dock icon bounce on 652 | #: macOS or the taskbar flash on linux. 653 | 654 | # bell_on_tab "🔔 " 655 | 656 | #: Some text or a Unicode symbol to show on the tab if a window in the 657 | #: tab that does not have focus has a bell. If you want to use leading 658 | #: or trailing spaces, surround the text with quotes. See 659 | #: tab_title_template for how this is rendered. 660 | 661 | #: For backwards compatibility, values of yes, y and true are 662 | #: converted to the default bell symbol and no, n, false and none are 663 | #: converted to the empty string. 664 | 665 | # command_on_bell none 666 | 667 | #: Program to run when a bell occurs. The environment variable 668 | #: KITTY_CHILD_CMDLINE can be used to get the program running in the 669 | #: window in which the bell occurred. 670 | 671 | # bell_path none 672 | 673 | #: Path to a sound file to play as the bell sound. If set to none, the 674 | #: system default bell sound is used. Must be in a format supported by 675 | #: the operating systems sound API, such as WAV or OGA on Linux 676 | #: (libcanberra) or AIFF, MP3 or WAV on macOS (NSSound) 677 | 678 | #: }}} 679 | 680 | #: Window layout {{{ 681 | 682 | # remember_window_size yes 683 | # initial_window_width 640 684 | # initial_window_height 400 685 | 686 | #: If enabled, the OS Window size will be remembered so that new 687 | #: instances of kitty will have the same size as the previous 688 | #: instance. If disabled, the OS Window will initially have size 689 | #: configured by initial_window_width/height, in pixels. You can use a 690 | #: suffix of "c" on the width/height values to have them interpreted 691 | #: as number of cells instead of pixels. 692 | 693 | # enabled_layouts * 694 | 695 | #: The enabled window layouts. A comma separated list of layout names. 696 | #: The special value all means all layouts. The first listed layout 697 | #: will be used as the startup layout. Default configuration is all 698 | #: layouts in alphabetical order. For a list of available layouts, see 699 | #: the layouts . 700 | 701 | # window_resize_step_cells 2 702 | # window_resize_step_lines 2 703 | 704 | #: The step size (in units of cell width/cell height) to use when 705 | #: resizing kitty windows in a layout with the shortcut 706 | #: start_resizing_window. The cells value is used for horizontal 707 | #: resizing, and the lines value is used for vertical resizing. 708 | 709 | # window_border_width 0.5pt 710 | 711 | #: The width of window borders. Can be either in pixels (px) or pts 712 | #: (pt). Values in pts will be rounded to the nearest number of pixels 713 | #: based on screen resolution. If not specified, the unit is assumed 714 | #: to be pts. Note that borders are displayed only when more than one 715 | #: window is visible. They are meant to separate multiple windows. 716 | 717 | # draw_minimal_borders yes 718 | 719 | #: Draw only the minimum borders needed. This means that only the 720 | #: borders that separate the window from a neighbor are drawn. Note 721 | #: that setting a non-zero window_margin_width overrides this and 722 | #: causes all borders to be drawn. 723 | 724 | # window_margin_width 0 725 | 726 | #: The window margin (in pts) (blank area outside the border). A 727 | #: single value sets all four sides. Two values set the vertical and 728 | #: horizontal sides. Three values set top, horizontal and bottom. Four 729 | #: values set top, right, bottom and left. 730 | 731 | # single_window_margin_width -1 732 | 733 | #: The window margin to use when only a single window is visible (in 734 | #: pts). Negative values will cause the value of window_margin_width 735 | #: to be used instead. A single value sets all four sides. Two values 736 | #: set the vertical and horizontal sides. Three values set top, 737 | #: horizontal and bottom. Four values set top, right, bottom and left. 738 | 739 | window_padding_width 5 5 740 | 741 | #: The window padding (in pts) (blank area between the text and the 742 | #: window border). A single value sets all four sides. Two values set 743 | #: the vertical and horizontal sides. Three values set top, horizontal 744 | #: and bottom. Four values set top, right, bottom and left. 745 | 746 | placement_strategy center 747 | 748 | #: When the window size is not an exact multiple of the cell size, the 749 | #: cell area of the terminal window will have some extra padding on 750 | #: the sides. You can control how that padding is distributed with 751 | #: this option. Using a value of center means the cell area will be 752 | #: placed centrally. A value of top-left means the padding will be 753 | #: only at the bottom and right edges. 754 | 755 | # active_border_color #00ff00 756 | 757 | #: The color for the border of the active window. Set this to none to 758 | #: not draw borders around the active window. 759 | 760 | # inactive_border_color #cccccc 761 | 762 | #: The color for the border of inactive windows. 763 | 764 | # bell_border_color #ff5a00 765 | 766 | #: The color for the border of inactive windows in which a bell has 767 | #: occurred. 768 | 769 | # inactive_text_alpha 1.0 770 | 771 | #: Fade the text in inactive windows by the specified amount (a number 772 | #: between zero and one, with zero being fully faded). 773 | 774 | # hide_window_decorations no 775 | 776 | #: Hide the window decorations (title-bar and window borders) with 777 | #: yes. On macOS, titlebar-only can be used to only hide the titlebar. 778 | #: Whether this works and exactly what effect it has depends on the 779 | #: window manager/operating system. Note that the effects of changing 780 | #: this option when reloading config are undefined. 781 | 782 | # window_logo_path none 783 | 784 | #: Path to a logo image. Must be in PNG format. Relative paths are 785 | #: interpreted relative to the kitty config directory. The logo is 786 | #: displayed in a corner of every kitty window. The position is 787 | #: controlled by window_logo_position. Individual windows can be 788 | #: configured to have different logos either using the launch action 789 | #: or the remote control facility. 791 | 792 | # window_logo_position bottom-right 793 | 794 | #: Where to position the window logo in the window. The value can be 795 | #: one of: top-left, top, top-right, left, center, right, bottom-left, 796 | #: bottom, bottom-right. 797 | 798 | # window_logo_alpha 0.5 799 | 800 | #: The amount the logo should be faded into the background. With zero 801 | #: being fully faded and one being fully opaque. 802 | 803 | # resize_debounce_time 0.1 804 | 805 | #: The time to wait before redrawing the screen when a resize event is 806 | #: received (in seconds). On platforms such as macOS, where the 807 | #: operating system sends events corresponding to the start and end of 808 | #: a resize, this number is ignored. 809 | 810 | # resize_draw_strategy static 811 | 812 | #: Choose how kitty draws a window while a resize is in progress. A 813 | #: value of static means draw the current window contents, mostly 814 | #: unchanged. A value of scale means draw the current window contents 815 | #: scaled. A value of blank means draw a blank window. A value of size 816 | #: means show the window size in cells. 817 | 818 | # resize_in_steps no 819 | 820 | #: Resize the OS window in steps as large as the cells, instead of 821 | #: with the usual pixel accuracy. Combined with initial_window_width 822 | #: and initial_window_height in number of cells, this option can be 823 | #: used to keep the margins as small as possible when resizing the OS 824 | #: window. Note that this does not currently work on Wayland. 825 | 826 | # visual_window_select_characters 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ 827 | 828 | #: The list of characters for visual window selection. For example, 829 | #: for selecting a window to focus on with focus_visible_window. The 830 | #: value should be a series of unique numbers or alphabets, case 831 | #: insensitive, from the set [0-9A-Z]. Specify your preference as a 832 | #: string of characters. 833 | 834 | # confirm_os_window_close -1 835 | 836 | #: Ask for confirmation when closing an OS window or a tab with at 837 | #: least this number of kitty windows in it by window manager (e.g. 838 | #: clicking the window close button or pressing the operating system 839 | #: shortcut to close windows) or by the close_tab action. A value of 840 | #: zero disables confirmation. This confirmation also applies to 841 | #: requests to quit the entire application (all OS windows, via the 842 | #: quit action). Negative values are converted to positive ones, 843 | #: however, with shell_integration enabled, using negative values 844 | #: means windows sitting at a shell prompt are not counted, only 845 | #: windows where some command is currently running. Note that if you 846 | #: want confirmation when closing individual windows, you can map the 847 | #: close_window_with_confirmation action. 848 | 849 | #: }}} 850 | 851 | #: Tab bar {{{ 852 | 853 | # tab_bar_edge bottom 854 | 855 | #: The edge to show the tab bar on, top or bottom. 856 | 857 | # tab_bar_margin_width 0.0 858 | 859 | #: The margin to the left and right of the tab bar (in pts). 860 | 861 | # tab_bar_margin_height 0.5 0.5 862 | 863 | #: The margin above and below the tab bar (in pts). The first number 864 | #: is the margin between the edge of the OS Window and the tab bar. 865 | #: The second number is the margin between the tab bar and the 866 | #: contents of the current tab. 867 | 868 | # tab_bar_style fade 869 | 870 | #: The tab bar style, can be one of: 871 | 872 | #: fade 873 | #: Each tab's edges fade into the background color. (See also tab_fade) 874 | #: slant 875 | #: Tabs look like the tabs in a physical file. 876 | #: separator 877 | #: Tabs are separated by a configurable separator. (See also 878 | #: tab_separator) 879 | #: powerline 880 | #: Tabs are shown as a continuous line with "fancy" separators. 881 | #: (See also tab_powerline_style) 882 | #: custom 883 | #: A user-supplied Python function called draw_tab is loaded from the file 884 | #: tab_bar.py in the kitty config directory. For examples of how to 885 | #: write such a function, see the functions named draw_tab_with_* in 886 | #: kitty's source code: kitty/tab_bar.py. See also 887 | #: this discussion 888 | #: for examples from kitty users. 889 | #: hidden 890 | #: The tab bar is hidden. If you use this, you might want to create a mapping 891 | #: for the select_tab action which presents you with a list of tabs and 892 | #: allows for easy switching to a tab. 893 | 894 | tab_bar_min_tabs 1 895 | tab_bar_edge bottom 896 | tab_bar_style powerline 897 | tab_powerline_style slanted 898 | tab_title_template {title}{' :{}:'.format(num_windows) if num_windows > 1 else ''} 899 | # tab_bar_align left 900 | 901 | #: The horizontal alignment of the tab bar, can be one of: left, 902 | #: center, right. 903 | 904 | # tab_bar_min_tabs 2 905 | 906 | #: The minimum number of tabs that must exist before the tab bar is 907 | #: shown. 908 | 909 | # tab_switch_strategy previous 910 | 911 | #: The algorithm to use when switching to a tab when the current tab 912 | #: is closed. The default of previous will switch to the last used 913 | #: tab. A value of left will switch to the tab to the left of the 914 | #: closed tab. A value of right will switch to the tab to the right of 915 | #: the closed tab. A value of last will switch to the right-most tab. 916 | 917 | tab_fade 0.2 0.4 0.65 0.90 918 | 919 | #: Control how each tab fades into the background when using fade for 920 | #: the tab_bar_style. Each number is an alpha (between zero and one) 921 | #: that controls how much the corresponding cell fades into the 922 | #: background, with zero being no fade and one being full fade. You 923 | #: can change the number of cells used by adding/removing entries to 924 | #: this list. 925 | 926 | # tab_separator " ┇" 927 | 928 | #: The separator between tabs in the tab bar when using separator as 929 | #: the tab_bar_style. 930 | 931 | # tab_powerline_style angled 932 | 933 | #: The powerline separator style between tabs in the tab bar when 934 | #: using powerline as the tab_bar_style, can be one of: angled, 935 | #: slanted, round. 936 | 937 | # tab_activity_symbol none 938 | 939 | #: Some text or a Unicode symbol to show on the tab if a window in the 940 | #: tab that does not have focus has some activity. If you want to use 941 | #: leading or trailing spaces, surround the text with quotes. See 942 | #: tab_title_template for how this is rendered. 943 | 944 | # tab_title_max_length 0 945 | 946 | #: The maximum number of cells that can be used to render the text in 947 | #: a tab. A value of zero means that no limit is applied. 948 | 949 | # tab_title_template "{fmt.fg.red}{bell_symbol}{activity_symbol}{fmt.fg.tab}{title}" 950 | 951 | #: A template to render the tab title. The default just renders the 952 | #: title with optional symbols for bell and activity. If you wish to 953 | #: include the tab-index as well, use something like: {index}:{title}. 954 | #: Useful if you have shortcuts mapped for goto_tab N. If you prefer 955 | #: to see the index as a superscript, use {sup.index}. All data 956 | #: available is: 957 | 958 | #: title 959 | #: The current tab title. 960 | #: index 961 | #: The tab index useable with goto_tab N goto_tab shortcuts. 962 | #: layout_name 963 | #: The current layout name. 964 | #: num_windows 965 | #: The number of windows in the tab. 966 | #: num_window_groups 967 | #: The number of window groups (not counting overlay windows) in the tab. 968 | #: tab.active_wd 969 | #: The working directory of the currently active window in the tab (expensive, 970 | #: requires syscall). Use active_oldest_wd to get the directory of the oldest foreground process rather than the newest. 971 | #: tab.active_exe 972 | #: The name of the executable running in the foreground of the currently active window in the tab (expensive, 973 | #: requires syscall). Use active_oldest_exe for the oldest foreground process. 974 | #: max_title_length 975 | #: The maximum title length available. 976 | 977 | #: Note that formatting is done by Python's string formatting 978 | #: machinery, so you can use, for instance, {layout_name[:2].upper()} 979 | #: to show only the first two letters of the layout name, upper-cased. 980 | #: If you want to style the text, you can use styling directives, for 981 | #: example: 982 | #: `{fmt.fg.red}red{fmt.fg.tab}normal{fmt.bg._00FF00}greenbg{fmt.bg.tab}`. 983 | #: Similarly, for bold and italic: 984 | #: `{fmt.bold}bold{fmt.nobold}normal{fmt.italic}italic{fmt.noitalic}`. 985 | #: Note that for backward compatibility, if {bell_symbol} or 986 | #: {activity_symbol} are not present in the template, they are 987 | #: prepended to it. 988 | 989 | # active_tab_title_template none 990 | 991 | #: Template to use for active tabs. If not specified falls back to 992 | #: tab_title_template. 993 | 994 | # active_tab_foreground #000 995 | # active_tab_background #eee 996 | # active_tab_font_style bold-italic 997 | # inactive_tab_foreground #444 998 | # inactive_tab_background #999 999 | # inactive_tab_font_style normal 1000 | 1001 | #: Tab bar colors and styles. 1002 | 1003 | # tab_bar_background none 1004 | 1005 | #: Background color for the tab bar. Defaults to using the terminal 1006 | #: background color. 1007 | 1008 | # tab_bar_margin_color none 1009 | 1010 | #: Color for the tab bar margin area. Defaults to using the terminal 1011 | #: background color for margins above and below the tab bar. For side 1012 | #: margins the default color is chosen to match the background color 1013 | #: of the neighboring tab. 1014 | 1015 | #: }}} 1016 | 1017 | #: Color scheme {{{ 1018 | 1019 | # foreground #dddddd 1020 | # background #000000 1021 | 1022 | #: The foreground and background colors. 1023 | 1024 | background_opacity 0.9 1025 | 1026 | #: The opacity of the background. A number between zero and one, where 1027 | #: one is opaque and zero is fully transparent. This will only work if 1028 | #: supported by the OS (for instance, when using a compositor under 1029 | #: X11). Note that it only sets the background color's opacity in 1030 | #: cells that have the same background color as the default terminal 1031 | #: background, so that things like the status bar in vim, powerline 1032 | #: prompts, etc. still look good. But it means that if you use a color 1033 | #: theme with a background color in your editor, it will not be 1034 | #: rendered as transparent. Instead you should change the default 1035 | #: background color in your kitty config and not use a background 1036 | #: color in the editor color scheme. Or use the escape codes to set 1037 | #: the terminals default colors in a shell script to launch your 1038 | #: editor. Be aware that using a value less than 1.0 is a (possibly 1039 | #: significant) performance hit. If you want to dynamically change 1040 | #: transparency of windows, set dynamic_background_opacity to yes 1041 | #: (this is off by default as it has a performance cost). Changing 1042 | #: this option when reloading the config will only work if 1043 | #: dynamic_background_opacity was enabled in the original config. 1044 | 1045 | # background_image none 1046 | 1047 | #: Path to a background image. Must be in PNG format. 1048 | 1049 | # background_image_layout tiled 1050 | 1051 | #: Whether to tile, scale or clamp the background image. The value can 1052 | #: be one of tiled, mirror-tiled, scaled, clamped or centered. 1053 | 1054 | # background_image_linear no 1055 | 1056 | #: When background image is scaled, whether linear interpolation 1057 | #: should be used. 1058 | 1059 | # dynamic_background_opacity no 1060 | 1061 | #: Allow changing of the background_opacity dynamically, using either 1062 | #: keyboard shortcuts (increase_background_opacity and 1063 | #: decrease_background_opacity) or the remote control facility. 1064 | #: Changing this option by reloading the config is not supported. 1065 | 1066 | # background_tint 0.0 1067 | 1068 | #: How much to tint the background image by the background color. This 1069 | #: option makes it easier to read the text. Tinting is done using the 1070 | #: current background color for each window. This option applies only 1071 | #: if background_opacity is set and transparent windows are supported 1072 | #: or background_image is set. 1073 | 1074 | # background_tint_gaps 1.0 1075 | 1076 | #: How much to tint the background image at the window gaps by the 1077 | #: background color, after applying background_tint. Since this is 1078 | #: multiplicative with background_tint, it can be used to lighten the 1079 | #: tint over the window gaps for a *separated* look. 1080 | 1081 | # dim_opacity 0.75 1082 | 1083 | #: How much to dim text that has the DIM/FAINT attribute set. One 1084 | #: means no dimming and zero means fully dimmed (i.e. invisible). 1085 | 1086 | # selection_foreground #000000 1087 | # selection_background #fffacd 1088 | 1089 | #: The foreground and background colors for text selected with the 1090 | #: mouse. Setting both of these to none will cause a "reverse video" 1091 | #: effect for selections, where the selection will be the cell text 1092 | #: color and the text will become the cell background color. Setting 1093 | #: only selection_foreground to none will cause the foreground color 1094 | #: to be used unchanged. Note that these colors can be overridden by 1095 | #: the program running in the terminal. 1096 | 1097 | #: The color table {{{ 1098 | 1099 | #: The 256 terminal colors. There are 8 basic colors, each color has a 1100 | #: dull and bright version, for the first 16 colors. You can set the 1101 | #: remaining 240 colors as color16 to color255. 1102 | 1103 | # color0 #000000 1104 | # color8 #767676 1105 | 1106 | #: black 1107 | 1108 | # color1 #cc0403 1109 | # color9 #f2201f 1110 | 1111 | #: red 1112 | 1113 | # color2 #19cb00 1114 | # color10 #23fd00 1115 | 1116 | #: green 1117 | 1118 | # color3 #cecb00 1119 | # color11 #fffd00 1120 | 1121 | #: yellow 1122 | 1123 | # color4 #0d73cc 1124 | # color12 #1a8fff 1125 | 1126 | #: blue 1127 | 1128 | # color5 #cb1ed1 1129 | # color13 #fd28ff 1130 | 1131 | #: magenta 1132 | 1133 | # color6 #0dcdcd 1134 | # color14 #14ffff 1135 | 1136 | #: cyan 1137 | 1138 | # color7 #dddddd 1139 | # color15 #ffffff 1140 | 1141 | #: white 1142 | 1143 | # mark1_foreground black 1144 | 1145 | #: Color for marks of type 1 1146 | 1147 | # mark1_background #98d3cb 1148 | 1149 | #: Color for marks of type 1 (light steel blue) 1150 | 1151 | # mark2_foreground black 1152 | 1153 | #: Color for marks of type 2 1154 | 1155 | # mark2_background #f2dcd3 1156 | 1157 | #: Color for marks of type 1 (beige) 1158 | 1159 | # mark3_foreground black 1160 | 1161 | #: Color for marks of type 3 1162 | 1163 | # mark3_background #f274bc 1164 | 1165 | #: Color for marks of type 3 (violet) 1166 | 1167 | #: }}} 1168 | 1169 | #: }}} 1170 | 1171 | #: Advanced {{{ 1172 | 1173 | # shell . 1174 | 1175 | #: The shell program to execute. The default value of . means to use 1176 | #: whatever shell is set as the default shell for the current user. 1177 | #: Note that on macOS if you change this, you might need to add 1178 | #: --login and --interactive to ensure that the shell starts in 1179 | #: interactive mode and reads its startup rc files. 1180 | 1181 | # editor . 1182 | 1183 | #: The terminal based text editor (such as vim or nano) to use when 1184 | #: editing the kitty config file or similar tasks. 1185 | 1186 | #: The default value of . means to use the environment variables 1187 | #: VISUAL and EDITOR in that order. If these variables aren't set, 1188 | #: kitty will run your shell ($SHELL -l -i -c env) to see if your 1189 | #: shell startup rc files set VISUAL or EDITOR. If that doesn't work, 1190 | #: kitty will cycle through various known editors (vim, emacs, etc.) 1191 | #: and take the first one that exists on your system. 1192 | 1193 | # close_on_child_death no 1194 | 1195 | #: Close the window when the child process (shell) exits. With the 1196 | #: default value no, the terminal will remain open when the child 1197 | #: exits as long as there are still processes outputting to the 1198 | #: terminal (for example disowned or backgrounded processes). When 1199 | #: enabled with yes, the window will close as soon as the child 1200 | #: process exits. Note that setting it to yes means that any 1201 | #: background processes still using the terminal can fail silently 1202 | #: because their stdout/stderr/stdin no longer work. 1203 | 1204 | # remote_control_password 1205 | 1206 | #: Allow other programs to control kitty using passwords. This option 1207 | #: can be specified multiple times to add multiple passwords. If no 1208 | #: passwords are present kitty will ask the user for permission if a 1209 | #: program tries to use remote control with a password. A password can 1210 | #: also *optionally* be associated with a set of allowed remote 1211 | #: control actions. For example:: 1212 | 1213 | #: remote_control_password "my passphrase" get-colors set-colors focus-window focus-tab 1214 | 1215 | #: Only the specified actions will be allowed when using this 1216 | #: password. Glob patterns can be used too, for example:: 1217 | 1218 | #: remote_control_password "my passphrase" set-tab-* resize-* 1219 | 1220 | #: To get a list of available actions, run:: 1221 | 1222 | #: kitty @ --help 1223 | 1224 | #: A set of actions to be allowed when no password is sent can be 1225 | #: specified by using an empty password, for example:: 1226 | 1227 | #: remote_control_password "" *-colors 1228 | 1229 | #: Finally, the path to a python module can be specified that provides 1230 | #: a function is_cmd_allowed that is used to check every remote 1231 | #: control command. See rc_custom_auth 1232 | #: 1233 | #: for details. For example:: 1234 | 1235 | #: remote_control_password "my passphrase" my_rc_command_checker.py 1236 | 1237 | #: Relative paths are resolved from the kitty configuration directory. 1238 | 1239 | # allow_remote_control no 1240 | 1241 | #: Allow other programs to control kitty. If you turn this on, other 1242 | #: programs can control all aspects of kitty, including sending text 1243 | #: to kitty windows, opening new windows, closing windows, reading the 1244 | #: content of windows, etc. Note that this even works over SSH 1245 | #: connections. The default setting of no prevents any form of remote 1246 | #: control. The meaning of the various values are: 1247 | 1248 | #: password 1249 | #: Remote control requests received over both the TTY device and the socket are 1250 | #: confirmed based on passwords, see remote_control_password. 1251 | 1252 | #: socket-only 1253 | #: Remote control requests received over a socket are accepted unconditionally. 1254 | #: Requests received over the TTY are denied. See listen_on. 1255 | 1256 | #: socket 1257 | #: Remote control requests received over a socket are accepted unconditionally. 1258 | #: Requests received over the TTY are confirmed based on password. 1259 | 1260 | #: no 1261 | #: Remote control is completely disabled. 1262 | 1263 | #: yes 1264 | #: Remote control requests are always accepted. 1265 | 1266 | # listen_on none 1267 | 1268 | #: Listen to the specified UNIX socket for remote control connections. 1269 | #: Note that this will apply to all kitty instances. It can be 1270 | #: overridden by the kitty --listen-on command line option, which also 1271 | #: supports listening on a TCP socket. This option accepts only UNIX 1272 | #: sockets, such as unix:${TEMP}/mykitty or unix:@mykitty (on Linux). 1273 | #: Environment variables are expanded and relative paths are resolved 1274 | #: with respect to the temporary directory. If {kitty_pid} is present, 1275 | #: then it is replaced by the PID of the kitty process, otherwise the 1276 | #: PID of the kitty process is appended to the value, with a hyphen. 1277 | #: See the help for kitty --listen-on for more details. Note that this 1278 | #: will be ignored unless allow_remote_control is set to either: yes, 1279 | #: socket or socket-only. Changing this option by reloading the config 1280 | #: is not supported. 1281 | 1282 | # env 1283 | 1284 | #: Specify the environment variables to be set in all child processes. 1285 | #: Using the name with an equal sign (e.g. env VAR=) will set it to 1286 | #: the empty string. Specifying only the name (e.g. env VAR) will 1287 | #: remove the variable from the child process' environment. Note that 1288 | #: environment variables are expanded recursively, for example:: 1289 | 1290 | #: env VAR1=a 1291 | #: env VAR2=${HOME}/${VAR1}/b 1292 | 1293 | #: The value of VAR2 will be /a/b. 1294 | 1295 | # watcher 1296 | 1297 | #: Path to python file which will be loaded for watchers 1298 | #: . Can be 1299 | #: specified more than once to load multiple watchers. The watchers 1300 | #: will be added to every kitty window. Relative paths are resolved 1301 | #: relative to the kitty config directory. Note that reloading the 1302 | #: config will only affect windows created after the reload. 1303 | 1304 | # exe_search_path 1305 | 1306 | #: Control where kitty finds the programs to run. The default search 1307 | #: order is: First search the system wide PATH, then ~/.local/bin and 1308 | #: ~/bin. If still not found, the PATH defined in the login shell 1309 | #: after sourcing all its startup files is tried. Finally, if present, 1310 | #: the PATH specified by the env option is tried. 1311 | 1312 | #: This option allows you to prepend, append, or remove paths from 1313 | #: this search order. It can be specified multiple times for multiple 1314 | #: paths. A simple path will be prepended to the search order. A path 1315 | #: that starts with the + sign will be append to the search order, 1316 | #: after ~/bin above. A path that starts with the - sign will be 1317 | #: removed from the entire search order. For example:: 1318 | 1319 | #: exe_search_path /some/prepended/path 1320 | #: exe_search_path +/some/appended/path 1321 | #: exe_search_path -/some/excluded/path 1322 | 1323 | # update_check_interval 24 1324 | 1325 | #: The interval to periodically check if an update to kitty is 1326 | #: available (in hours). If an update is found, a system notification 1327 | #: is displayed informing you of the available update. The default is 1328 | #: to check every 24 hours, set to zero to disable. Update checking is 1329 | #: only done by the official binary builds. Distro packages or source 1330 | #: builds do not do update checking. Changing this option by reloading 1331 | #: the config is not supported. 1332 | 1333 | # startup_session none 1334 | 1335 | #: Path to a session file to use for all kitty instances. Can be 1336 | #: overridden by using the kitty --session command line option for 1337 | #: individual instances. See sessions 1338 | #: in the kitty 1339 | #: documentation for details. Note that relative paths are interpreted 1340 | #: with respect to the kitty config directory. Environment variables 1341 | #: in the path are expanded. Changing this option by reloading the 1342 | #: config is not supported. 1343 | 1344 | # clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask 1345 | 1346 | #: Allow programs running in kitty to read and write from the 1347 | #: clipboard. You can control exactly which actions are allowed. The 1348 | #: possible actions are: write-clipboard, read-clipboard, write- 1349 | #: primary, read-primary, read-clipboard-ask, read-primary-ask. The 1350 | #: default is to allow writing to the clipboard and primary selection 1351 | #: and to ask for permission when a program tries to read from the 1352 | #: clipboard. Note that disabling the read confirmation is a security 1353 | #: risk as it means that any program, even the ones running on a 1354 | #: remote server via SSH can read your clipboard. See also 1355 | #: clipboard_max_size. 1356 | 1357 | # clipboard_max_size 512 1358 | 1359 | #: The maximum size (in MB) of data from programs running in kitty 1360 | #: that will be stored for writing to the system clipboard. A value of 1361 | #: zero means no size limit is applied. See also clipboard_control. 1362 | 1363 | # file_transfer_confirmation_bypass 1364 | 1365 | #: The password that can be supplied to the file transfer kitten 1366 | #: to skip the 1367 | #: transfer confirmation prompt. This should only be used when 1368 | #: initiating transfers from trusted computers, over trusted networks 1369 | #: or encrypted transports, as it allows any programs running on the 1370 | #: remote machine to read/write to the local filesystem, without 1371 | #: permission. 1372 | 1373 | # allow_hyperlinks yes 1374 | 1375 | #: Process hyperlink escape sequences (OSC 8). If disabled OSC 8 1376 | #: escape sequences are ignored. Otherwise they become clickable 1377 | #: links, that you can click with the mouse or by using the hints 1378 | #: kitten . The 1379 | #: special value of ask means that kitty will ask before opening the 1380 | #: link when clicked. 1381 | 1382 | # shell_integration enabled 1383 | 1384 | #: Enable shell integration on supported shells. This enables features 1385 | #: such as jumping to previous prompts, browsing the output of the 1386 | #: previous command in a pager, etc. on supported shells. Set to 1387 | #: disabled to turn off shell integration, completely. It is also 1388 | #: possible to disable individual features, set to a space separated 1389 | #: list of these values: no-rc, no-cursor, no-title, no-cwd, no- 1390 | #: prompt-mark, no-complete. See Shell integration 1391 | #: for details. 1392 | 1393 | # allow_cloning ask 1394 | 1395 | #: Control whether programs running in the terminal can request new 1396 | #: windows to be created. The canonical example is clone-in-kitty 1397 | #: . 1398 | #: By default, kitty will ask for permission for each clone request. 1399 | #: Allowing cloning unconditionally gives programs running in the 1400 | #: terminal (including over SSH) permission to execute arbitrary code, 1401 | #: as the user who is running the terminal, on the computer that the 1402 | #: terminal is running on. 1403 | 1404 | # clone_source_strategies venv,conda,env_var,path 1405 | 1406 | #: Control what shell code is sourced when running clone-in-kitty in 1407 | #: the newly cloned window. The supported strategies are: 1408 | 1409 | #: venv 1410 | #: Source the file $VIRTUAL_ENV/bin/activate. This is used by the 1411 | #: Python stdlib venv module and allows cloning venvs automatically. 1412 | #: conda 1413 | #: Run conda activate $CONDA_DEFAULT_ENV. This supports the virtual 1414 | #: environments created by conda. 1415 | #: env_var 1416 | #: Execute the contents of the environment variable 1417 | #: KITTY_CLONE_SOURCE_CODE with eval. 1418 | #: path 1419 | #: Source the file pointed to by the environment variable 1420 | #: KITTY_CLONE_SOURCE_PATH. 1421 | 1422 | #: This option must be a comma separated list of the above values. 1423 | #: This only source the first valid one in the above order. 1424 | 1425 | # term xterm-kitty 1426 | 1427 | #: The value of the TERM environment variable to set. Changing this 1428 | #: can break many terminal programs, only change it if you know what 1429 | #: you are doing, not because you read some advice on "Stack Overflow" 1430 | #: to change it. The TERM variable is used by various programs to get 1431 | #: information about the capabilities and behavior of the terminal. If 1432 | #: you change it, depending on what programs you run, and how 1433 | #: different the terminal you are changing it to is, various things 1434 | #: from key-presses, to colors, to various advanced features may not 1435 | #: work. Changing this option by reloading the config will only affect 1436 | #: newly created windows. 1437 | 1438 | #: }}} 1439 | 1440 | #: OS specific tweaks {{{ 1441 | 1442 | # wayland_titlebar_color system 1443 | 1444 | #: The color of the kitty window's titlebar on Wayland systems with 1445 | #: client side window decorations such as GNOME. A value of system 1446 | #: means to use the default system color, a value of background means 1447 | #: to use the background color of the currently active window and 1448 | #: finally you can use an arbitrary color, such as #12af59 or red. 1449 | 1450 | # macos_titlebar_color system 1451 | 1452 | #: The color of the kitty window's titlebar on macOS. A value of 1453 | #: system means to use the default system color, light or dark can 1454 | #: also be used to set it explicitly. A value of background means to 1455 | #: use the background color of the currently active window and finally 1456 | #: you can use an arbitrary color, such as #12af59 or red. WARNING: 1457 | #: This option works by using a hack when arbitrary color (or 1458 | #: background) is configured, as there is no proper Cocoa API for it. 1459 | #: It sets the background color of the entire window and makes the 1460 | #: titlebar transparent. As such it is incompatible with 1461 | #: background_opacity. If you want to use both, you are probably 1462 | #: better off just hiding the titlebar with hide_window_decorations. 1463 | 1464 | # macos_option_as_alt no 1465 | 1466 | #: Use the Option key as an Alt key on macOS. With this set to no, 1467 | #: kitty will use the macOS native Option+Key to enter Unicode 1468 | #: character behavior. This will break any Alt+Key keyboard shortcuts 1469 | #: in your terminal programs, but you can use the macOS Unicode input 1470 | #: technique. You can use the values: left, right or both to use only 1471 | #: the left, right or both Option keys as Alt, instead. Note that 1472 | #: kitty itself always treats Option the same as Alt. This means you 1473 | #: cannot use this option to configure different kitty shortcuts for 1474 | #: Option+Key vs. Alt+Key. Also, any kitty shortcuts using 1475 | #: Option/Alt+Key will take priority, so that any such key presses 1476 | #: will not be passed to terminal programs running inside kitty. 1477 | #: Changing this option by reloading the config is not supported. 1478 | 1479 | # macos_hide_from_tasks no 1480 | 1481 | #: Hide the kitty window from running tasks on macOS (⌘+Tab and the 1482 | #: Dock). Changing this option by reloading the config is not 1483 | #: supported. 1484 | 1485 | # macos_quit_when_last_window_closed no 1486 | 1487 | #: Have kitty quit when all the top-level windows are closed on macOS. 1488 | #: By default, kitty will stay running, even with no open windows, as 1489 | #: is the expected behavior on macOS. 1490 | 1491 | # macos_window_resizable yes 1492 | 1493 | #: Disable this if you want kitty top-level OS windows to not be 1494 | #: resizable on macOS. Changing this option by reloading the config 1495 | #: will only affect newly created OS windows. 1496 | 1497 | # macos_thicken_font 0 1498 | 1499 | #: Draw an extra border around the font with the given width, to 1500 | #: increase legibility at small font sizes on macOS. For example, a 1501 | #: value of 0.75 will result in rendering that looks similar to sub- 1502 | #: pixel antialiasing at common font sizes. 1503 | 1504 | # macos_traditional_fullscreen no 1505 | 1506 | #: Use the macOS traditional full-screen transition, that is faster, 1507 | #: but less pretty. 1508 | 1509 | # macos_show_window_title_in all 1510 | 1511 | #: Control where the window title is displayed on macOS. A value of 1512 | #: window will show the title of the currently active window at the 1513 | #: top of the macOS window. A value of menubar will show the title of 1514 | #: the currently active window in the macOS global menu bar, making 1515 | #: use of otherwise wasted space. A value of all will show the title 1516 | #: in both places, and none hides the title. See 1517 | #: macos_menubar_title_max_length for how to control the length of the 1518 | #: title in the menu bar. 1519 | 1520 | # macos_menubar_title_max_length 0 1521 | 1522 | #: The maximum number of characters from the window title to show in 1523 | #: the macOS global menu bar. Values less than one means that there is 1524 | #: no maximum limit. 1525 | 1526 | # macos_custom_beam_cursor no 1527 | 1528 | #: Use a custom mouse cursor for macOS that is easier to see on both 1529 | #: light and dark backgrounds. Nowadays, the default macOS cursor 1530 | #: already comes with a white border. WARNING: this might make your 1531 | #: mouse cursor invisible on dual GPU machines. Changing this option 1532 | #: by reloading the config is not supported. 1533 | 1534 | # macos_colorspace srgb 1535 | 1536 | #: The colorspace in which to interpret terminal colors. The default 1537 | #: of srgb will cause colors to match those seen in web browsers. The 1538 | #: value of default will use whatever the native colorspace of the 1539 | #: display is. The value of displayp3 will use Apple's special 1540 | #: snowflake display P3 color space, which will result in over 1541 | #: saturated (brighter) colors with some color shift. Reloading 1542 | #: configuration will change this value only for newly created OS 1543 | #: windows. 1544 | 1545 | # linux_display_server auto 1546 | 1547 | #: Choose between Wayland and X11 backends. By default, an appropriate 1548 | #: backend based on the system state is chosen automatically. Set it 1549 | #: to x11 or wayland to force the choice. Changing this option by 1550 | #: reloading the config is not supported. 1551 | 1552 | #: }}} 1553 | 1554 | #: Keyboard shortcuts {{{ 1555 | 1556 | #: Keys are identified simply by their lowercase Unicode characters. 1557 | #: For example: a for the A key, [ for the left square bracket key, 1558 | #: etc. For functional keys, such as Enter or Escape, the names are 1559 | #: present at Functional key definitions 1560 | #: . 1561 | #: For modifier keys, the names are ctrl (control, ⌃), shift (⇧), alt 1562 | #: (opt, option, ⌥), super (cmd, command, ⌘). See also: GLFW mods 1563 | #: 1564 | 1565 | #: On Linux you can also use XKB key names to bind keys that are not 1566 | #: supported by GLFW. See XKB keys 1567 | #: for a list of key names. The name to use is the part 1569 | #: after the XKB_KEY_ prefix. Note that you can only use an XKB key 1570 | #: name for keys that are not known as GLFW keys. 1571 | 1572 | #: Finally, you can use raw system key codes to map keys, again only 1573 | #: for keys that are not known as GLFW keys. To see the system key 1574 | #: code for a key, start kitty with the kitty --debug-input option, 1575 | #: kitty will output some debug text for every key event. In that text 1576 | #: look for native_code, the value of that becomes the key name in the 1577 | #: shortcut. For example: 1578 | 1579 | #: .. code-block:: none 1580 | 1581 | #: on_key_input: glfw key: 0x61 native_code: 0x61 action: PRESS mods: none text: 'a' 1582 | 1583 | #: Here, the key name for the A key is 0x61 and you can use it with:: 1584 | 1585 | #: map ctrl+0x61 something 1586 | 1587 | #: to map Ctrl+A to something. 1588 | 1589 | #: You can use the special action no_op to unmap a keyboard shortcut 1590 | #: that is assigned in the default configuration:: 1591 | 1592 | #: map kitty_mod+space no_op 1593 | 1594 | #: If you would like kitty to completely ignore a key event, not even 1595 | #: sending it to the program running in the terminal, map it to 1596 | #: discard_event:: 1597 | 1598 | #: map kitty_mod+f1 discard_event 1599 | 1600 | #: You can combine multiple actions to be triggered by a single 1601 | #: shortcut with combine action, using the syntax below:: 1602 | 1603 | #: map key combine action1 action2 action3 ... 1604 | 1605 | #: For example:: 1606 | 1607 | #: map kitty_mod+e combine : new_window : next_layout 1608 | 1609 | #: This will create a new window and switch to the next available 1610 | #: layout. 1611 | 1612 | #: You can use multi-key shortcuts with the syntax shown below:: 1613 | 1614 | #: map key1>key2>key3 action 1615 | 1616 | #: For example:: 1617 | 1618 | #: map ctrl+f>2 set_font_size 20 1619 | 1620 | #: The full list of actions that can be mapped to key presses is 1621 | #: available here . 1622 | 1623 | kitty_mod ctrl+shift 1624 | 1625 | #: Special modifier key alias for default shortcuts. You can change 1626 | #: the value of this option to alter all default shortcuts that use 1627 | #: kitty_mod. 1628 | 1629 | # clear_all_shortcuts no 1630 | 1631 | #: Remove all shortcut definitions up to this point. Useful, for 1632 | #: instance, to remove the default shortcuts. 1633 | 1634 | # action_alias 1635 | 1636 | #: E.g. action_alias launch_tab launch --type=tab --cwd=current 1637 | 1638 | #: Define action aliases to avoid repeating the same options in 1639 | #: multiple mappings. Aliases can be defined for any action and will 1640 | #: be expanded recursively. For example, the above alias allows you to 1641 | #: create mappings to launch a new tab in the current working 1642 | #: directory without duplication:: 1643 | 1644 | #: map f1 launch_tab vim 1645 | #: map f2 launch_tab emacs 1646 | 1647 | #: Similarly, to alias kitten invocation:: 1648 | 1649 | #: action_alias hints kitten hints --hints-offset=0 1650 | 1651 | # kitten_alias 1652 | 1653 | #: E.g. kitten_alias hints hints --hints-offset=0 1654 | 1655 | #: Like action_alias above, but specifically for kittens. Generally, 1656 | #: prefer to use action_alias. This option is a legacy version, 1657 | #: present for backwards compatibility. It causes all invocations of 1658 | #: the aliased kitten to be substituted. So the example above will 1659 | #: cause all invocations of the hints kitten to have the --hints- 1660 | #: offset=0 option applied. 1661 | 1662 | #: Clipboard {{{ 1663 | 1664 | #: Copy to clipboard 1665 | 1666 | map kitty_mod+c copy_to_clipboard 1667 | # map cmd+c copy_to_clipboard 1668 | 1669 | #:: There is also a copy_or_interrupt action that can be optionally 1670 | #:: mapped to Ctrl+C. It will copy only if there is a selection and 1671 | #:: send an interrupt otherwise. Similarly, 1672 | #:: copy_and_clear_or_interrupt will copy and clear the selection or 1673 | #:: send an interrupt if there is no selection. 1674 | 1675 | #: Paste from clipboard 1676 | 1677 | map kitty_mod+v paste_from_clipboard 1678 | # map cmd+v paste_from_clipboard 1679 | 1680 | #: Paste from selection 1681 | 1682 | # map kitty_mod+s paste_from_selection 1683 | # map shift+insert paste_from_selection 1684 | 1685 | #: Pass selection to program 1686 | 1687 | # map kitty_mod+o pass_selection_to_program 1688 | 1689 | #:: You can also pass the contents of the current selection to any 1690 | #:: program with pass_selection_to_program. By default, the system's 1691 | #:: open program is used, but you can specify your own, the selection 1692 | #:: will be passed as a command line argument to the program. For 1693 | #:: example:: 1694 | 1695 | #:: map kitty_mod+o pass_selection_to_program firefox 1696 | 1697 | #:: You can pass the current selection to a terminal program running 1698 | #:: in a new kitty window, by using the @selection placeholder:: 1699 | 1700 | #:: map kitty_mod+y new_window less @selection 1701 | 1702 | #: }}} 1703 | 1704 | #: Scrolling {{{ 1705 | 1706 | #: Scroll line up 1707 | 1708 | # map kitty_mod+up scroll_line_up 1709 | # map kitty_mod+k scroll_line_up 1710 | # map opt+cmd+page_up scroll_line_up 1711 | # map cmd+up scroll_line_up 1712 | 1713 | #: Scroll line down 1714 | 1715 | # map kitty_mod+down scroll_line_down 1716 | # map kitty_mod+j scroll_line_down 1717 | # map opt+cmd+page_down scroll_line_down 1718 | # map cmd+down scroll_line_down 1719 | 1720 | #: Scroll page up 1721 | 1722 | # map kitty_mod+page_up scroll_page_up 1723 | # map cmd+page_up scroll_page_up 1724 | 1725 | #: Scroll page down 1726 | 1727 | # map kitty_mod+page_down scroll_page_down 1728 | # map cmd+page_down scroll_page_down 1729 | 1730 | #: Scroll to top 1731 | 1732 | # map kitty_mod+home scroll_home 1733 | # map cmd+home scroll_home 1734 | 1735 | #: Scroll to bottom 1736 | 1737 | # map kitty_mod+end scroll_end 1738 | # map cmd+end scroll_end 1739 | 1740 | #: Scroll to previous shell prompt 1741 | 1742 | # map kitty_mod+z scroll_to_prompt -1 1743 | 1744 | #:: Use a parameter of 0 for scroll_to_prompt to scroll to the last 1745 | #:: jumped to or the last clicked position. Requires shell 1746 | #:: integration 1747 | #:: to work. 1748 | 1749 | #: Scroll to next shell prompt 1750 | 1751 | # map kitty_mod+x scroll_to_prompt 1 1752 | 1753 | #: Browse scrollback buffer in pager 1754 | 1755 | # map kitty_mod+h show_scrollback 1756 | 1757 | #:: You can pipe the contents of the current screen and history 1758 | #:: buffer as STDIN to an arbitrary program using launch --stdin- 1759 | #:: source. For example, the following opens the scrollback buffer in 1760 | #:: less in an overlay window:: 1761 | 1762 | #:: map f1 launch --stdin-source=@screen_scrollback --stdin-add-formatting --type=overlay less +G -R 1763 | 1764 | #:: For more details on piping screen and buffer contents to external 1765 | #:: programs, see launch . 1766 | 1767 | #: Browse output of the last shell command in pager 1768 | 1769 | # map kitty_mod+g show_last_command_output 1770 | 1771 | #:: You can also define additional shortcuts to get the command 1772 | #:: output. For example, to get the first command output on screen:: 1773 | 1774 | #:: map f1 show_first_command_output_on_screen 1775 | 1776 | #:: To get the command output that was last accessed by a keyboard 1777 | #:: action or mouse action:: 1778 | 1779 | #:: map f1 show_last_visited_command_output 1780 | 1781 | #:: You can pipe the output of the last command run in the shell 1782 | #:: using the launch action. For example, the following opens the 1783 | #:: output in less in an overlay window:: 1784 | 1785 | #:: map f1 launch --stdin-source=@last_cmd_output --stdin-add-formatting --type=overlay less +G -R 1786 | 1787 | #:: To get the output of the first command on the screen, use 1788 | #:: @first_cmd_output_on_screen. To get the output of the last jumped 1789 | #:: to command, use @last_visited_cmd_output. 1790 | 1791 | #:: Requires shell integration 1792 | #:: to work. 1793 | 1794 | #: }}} 1795 | 1796 | #: Window management {{{ 1797 | 1798 | #: New window 1799 | 1800 | # map kitty_mod+enter new_window 1801 | # map cmd+enter new_window 1802 | 1803 | #:: You can open a new kitty window running an arbitrary program, for 1804 | #:: example:: 1805 | 1806 | #:: map kitty_mod+y launch mutt 1807 | 1808 | #:: You can open a new window with the current working directory set 1809 | #:: to the working directory of the current window using:: 1810 | 1811 | #:: map ctrl+alt+enter launch --cwd=current 1812 | 1813 | #:: You can open a new window that is allowed to control kitty via 1814 | #:: the kitty remote control facility with launch --allow-remote- 1815 | #:: control. Any programs running in that window will be allowed to 1816 | #:: control kitty. For example:: 1817 | 1818 | #:: map ctrl+enter launch --allow-remote-control some_program 1819 | 1820 | #:: You can open a new window next to the currently active window or 1821 | #:: as the first window, with:: 1822 | 1823 | #:: map ctrl+n launch --location=neighbor 1824 | #:: map ctrl+f launch --location=first 1825 | 1826 | #:: For more details, see launch 1827 | #:: . 1828 | 1829 | #: New OS window 1830 | 1831 | # map kitty_mod+n new_os_window 1832 | # map cmd+n new_os_window 1833 | 1834 | #:: Works like new_window above, except that it opens a top-level OS 1835 | #:: window. In particular you can use new_os_window_with_cwd to open 1836 | #:: a window with the current working directory. 1837 | 1838 | #: Close window 1839 | 1840 | # map kitty_mod+w close_window 1841 | # map shift+cmd+d close_window 1842 | 1843 | #: Next window 1844 | 1845 | # map kitty_mod+] next_window 1846 | 1847 | #: Previous window 1848 | 1849 | # map kitty_mod+[ previous_window 1850 | 1851 | #: Move window forward 1852 | 1853 | # map kitty_mod+f move_window_forward 1854 | 1855 | #: Move window backward 1856 | 1857 | # map kitty_mod+b move_window_backward 1858 | 1859 | #: Move window to top 1860 | 1861 | # map kitty_mod+` move_window_to_top 1862 | 1863 | #: Start resizing window 1864 | 1865 | # map kitty_mod+r start_resizing_window 1866 | # map cmd+r start_resizing_window 1867 | 1868 | #: First window 1869 | 1870 | # map kitty_mod+1 first_window 1871 | # map cmd+1 first_window 1872 | 1873 | #: Second window 1874 | 1875 | # map kitty_mod+2 second_window 1876 | # map cmd+2 second_window 1877 | 1878 | #: Third window 1879 | 1880 | # map kitty_mod+3 third_window 1881 | # map cmd+3 third_window 1882 | 1883 | #: Fourth window 1884 | 1885 | # map kitty_mod+4 fourth_window 1886 | # map cmd+4 fourth_window 1887 | 1888 | #: Fifth window 1889 | 1890 | # map kitty_mod+5 fifth_window 1891 | # map cmd+5 fifth_window 1892 | 1893 | #: Sixth window 1894 | 1895 | # map kitty_mod+6 sixth_window 1896 | # map cmd+6 sixth_window 1897 | 1898 | #: Seventh window 1899 | 1900 | # map kitty_mod+7 seventh_window 1901 | # map cmd+7 seventh_window 1902 | 1903 | #: Eight window 1904 | 1905 | # map kitty_mod+8 eighth_window 1906 | # map cmd+8 eighth_window 1907 | 1908 | #: Ninth window 1909 | 1910 | # map kitty_mod+9 ninth_window 1911 | # map cmd+9 ninth_window 1912 | 1913 | #: Tenth window 1914 | 1915 | # map kitty_mod+0 tenth_window 1916 | 1917 | #: Visually select and focus window 1918 | 1919 | # map kitty_mod+f7 focus_visible_window 1920 | 1921 | #:: Display overlay numbers and alphabets on the window, and switch 1922 | #:: the focus to the window when you press the key. When there are 1923 | #:: only two windows, the focus will be switched directly without 1924 | #:: displaying the overlay. You can change the overlay characters and 1925 | #:: their order with option visual_window_select_characters. 1926 | 1927 | #: Visually swap window with another 1928 | 1929 | # map kitty_mod+f8 swap_with_window 1930 | 1931 | #:: Works like focus_visible_window above, but swaps the window. 1932 | 1933 | #: }}} 1934 | 1935 | #: Tab management {{{ 1936 | 1937 | #: Next tab 1938 | 1939 | # map kitty_mod+right next_tab 1940 | # map shift+cmd+] next_tab 1941 | # map ctrl+tab next_tab 1942 | 1943 | #: Previous tab 1944 | 1945 | # map kitty_mod+left previous_tab 1946 | # map shift+cmd+[ previous_tab 1947 | # map ctrl+shift+tab previous_tab 1948 | 1949 | #: New tab 1950 | 1951 | # map kitty_mod+t new_tab 1952 | # map cmd+t new_tab 1953 | 1954 | #: Close tab 1955 | 1956 | # map kitty_mod+q close_tab 1957 | # map cmd+w close_tab 1958 | 1959 | #: Close OS window 1960 | 1961 | # map shift+cmd+w close_os_window 1962 | 1963 | #: Move tab forward 1964 | 1965 | # map kitty_mod+. move_tab_forward 1966 | 1967 | #: Move tab backward 1968 | 1969 | # map kitty_mod+, move_tab_backward 1970 | 1971 | #: Set tab title 1972 | 1973 | # map kitty_mod+alt+t set_tab_title 1974 | # map shift+cmd+i set_tab_title 1975 | 1976 | 1977 | #: You can also create shortcuts to go to specific tabs, with 1 being 1978 | #: the first tab, 2 the second tab and -1 being the previously active 1979 | #: tab, and any number larger than the last tab being the last tab:: 1980 | 1981 | #: map ctrl+alt+1 goto_tab 1 1982 | #: map ctrl+alt+2 goto_tab 2 1983 | 1984 | #: Just as with new_window above, you can also pass the name of 1985 | #: arbitrary commands to run when using new_tab and new_tab_with_cwd. 1986 | #: Finally, if you want the new tab to open next to the current tab 1987 | #: rather than at the end of the tabs list, use:: 1988 | 1989 | #: map ctrl+t new_tab !neighbor [optional cmd to run] 1990 | #: }}} 1991 | 1992 | #: Layout management {{{ 1993 | 1994 | #: Next layout 1995 | 1996 | # map kitty_mod+l next_layout 1997 | 1998 | 1999 | #: You can also create shortcuts to switch to specific layouts:: 2000 | 2001 | #: map ctrl+alt+t goto_layout tall 2002 | #: map ctrl+alt+s goto_layout stack 2003 | 2004 | #: Similarly, to switch back to the previous layout:: 2005 | 2006 | #: map ctrl+alt+p last_used_layout 2007 | 2008 | #: There is also a toggle_layout action that switches to the named 2009 | #: layout or back to the previous layout if in the named layout. 2010 | #: Useful to temporarily "zoom" the active window by switching to the 2011 | #: stack layout:: 2012 | 2013 | #: map ctrl+alt+z toggle_layout stack 2014 | #: }}} 2015 | 2016 | #: Font sizes {{{ 2017 | 2018 | #: You can change the font size for all top-level kitty OS windows at 2019 | #: a time or only the current one. 2020 | 2021 | #: Increase font size 2022 | 2023 | map kitty_mod+equal change_font_size all +1.0 2024 | # map kitty_mod+plus change_font_size all +2.0 2025 | # map kitty_mod+kp_add change_font_size all +2.0 2026 | # map cmd+plus change_font_size all +2.0 2027 | # map cmd+equal change_font_size all +2.0 2028 | # map shift+cmd+equal change_font_size all +2.0 2029 | 2030 | #: Decrease font size 2031 | 2032 | map kitty_mod+minus change_font_size all -1.0 2033 | # map kitty_mod+kp_subtract change_font_size all -2.0 2034 | # map cmd+minus change_font_size all -2.0 2035 | # map shift+cmd+minus change_font_size all -2.0 2036 | 2037 | #: Reset font size 2038 | 2039 | # map kitty_mod+backspace change_font_size all 0 2040 | # map cmd+0 change_font_size all 0 2041 | 2042 | 2043 | #: To setup shortcuts for specific font sizes:: 2044 | 2045 | #: map kitty_mod+f6 change_font_size all 10.0 2046 | 2047 | #: To setup shortcuts to change only the current OS window's font 2048 | #: size:: 2049 | 2050 | #: map kitty_mod+f6 change_font_size current 10.0 2051 | #: }}} 2052 | 2053 | #: Select and act on visible text {{{ 2054 | 2055 | #: Use the hints kitten to select text and either pass it to an 2056 | #: external program or insert it into the terminal or copy it to the 2057 | #: clipboard. 2058 | 2059 | #: Open URL 2060 | 2061 | # map kitty_mod+e open_url_with_hints 2062 | 2063 | #:: Open a currently visible URL using the keyboard. The program used 2064 | #:: to open the URL is specified in open_url_with. 2065 | 2066 | #: Insert selected path 2067 | 2068 | # map kitty_mod+p>f kitten hints --type path --program - 2069 | 2070 | #:: Select a path/filename and insert it into the terminal. Useful, 2071 | #:: for instance to run git commands on a filename output from a 2072 | #:: previous git command. 2073 | 2074 | #: Open selected path 2075 | 2076 | # map kitty_mod+p>shift+f kitten hints --type path 2077 | 2078 | #:: Select a path/filename and open it with the default open program. 2079 | 2080 | #: Insert selected line 2081 | 2082 | # map kitty_mod+p>l kitten hints --type line --program - 2083 | 2084 | #:: Select a line of text and insert it into the terminal. Useful for 2085 | #:: the output of things like: `ls -1`. 2086 | 2087 | #: Insert selected word 2088 | 2089 | # map kitty_mod+p>w kitten hints --type word --program - 2090 | 2091 | #:: Select words and insert into terminal. 2092 | 2093 | #: Insert selected hash 2094 | 2095 | # map kitty_mod+p>h kitten hints --type hash --program - 2096 | 2097 | #:: Select something that looks like a hash and insert it into the 2098 | #:: terminal. Useful with git, which uses SHA1 hashes to identify 2099 | #:: commits. 2100 | 2101 | #: Open the selected file at the selected line 2102 | 2103 | # map kitty_mod+p>n kitten hints --type linenum 2104 | 2105 | #:: Select something that looks like filename:linenum and open it in 2106 | #:: vim at the specified line number. 2107 | 2108 | #: Open the selected hyperlink 2109 | 2110 | # map kitty_mod+p>y kitten hints --type hyperlink 2111 | 2112 | #:: Select a hyperlink (i.e. a URL that has been marked as such by 2113 | #:: the terminal program, for example, by `ls --hyperlink=auto`). 2114 | 2115 | 2116 | #: The hints kitten has many more modes of operation that you can map 2117 | #: to different shortcuts. For a full description see hints kitten 2118 | #: . 2119 | #: }}} 2120 | 2121 | #: Miscellaneous {{{ 2122 | 2123 | #: Show documentation 2124 | 2125 | # map kitty_mod+f1 show_kitty_doc overview 2126 | 2127 | #: Toggle fullscreen 2128 | 2129 | # map kitty_mod+f11 toggle_fullscreen 2130 | # map ctrl+cmd+f toggle_fullscreen 2131 | 2132 | #: Toggle maximized 2133 | 2134 | # map kitty_mod+f10 toggle_maximized 2135 | 2136 | #: Toggle macOS secure keyboard entry 2137 | 2138 | # map opt+cmd+s toggle_macos_secure_keyboard_entry 2139 | 2140 | #: Unicode input 2141 | 2142 | # map kitty_mod+u kitten unicode_input 2143 | # map ctrl+cmd+space kitten unicode_input 2144 | 2145 | #: Edit config file 2146 | 2147 | # map kitty_mod+f2 edit_config_file 2148 | # map cmd+, edit_config_file 2149 | 2150 | #: Open the kitty command shell 2151 | 2152 | # map kitty_mod+escape kitty_shell window 2153 | 2154 | #:: Open the kitty shell in a new window / tab / overlay / os_window 2155 | #:: to control kitty using commands. 2156 | 2157 | #: Increase background opacity 2158 | 2159 | # map kitty_mod+a>m set_background_opacity +0.1 2160 | 2161 | #: Decrease background opacity 2162 | 2163 | # map kitty_mod+a>l set_background_opacity -0.1 2164 | 2165 | #: Make background fully opaque 2166 | 2167 | # map kitty_mod+a>1 set_background_opacity 1 2168 | 2169 | #: Reset background opacity 2170 | 2171 | # map kitty_mod+a>d set_background_opacity default 2172 | 2173 | #: Reset the terminal 2174 | 2175 | map kitty_mod+delete clear_terminal reset active 2176 | # map opt+cmd+r clear_terminal reset active 2177 | map ctrl+k combine : clear_terminal scrollback active : send_text normal,application \x0c 2178 | 2179 | #:: You can create shortcuts to clear/reset the terminal. For 2180 | #:: example:: 2181 | 2182 | #:: # Reset the terminal 2183 | #:: map f1 clear_terminal reset active 2184 | #:: # Clear the terminal screen by erasing all contents 2185 | #:: map f1 clear_terminal clear active 2186 | #:: # Clear the terminal scrollback by erasing it 2187 | #:: map f1 clear_terminal scrollback active 2188 | #:: # Scroll the contents of the screen into the scrollback 2189 | #:: map f1 clear_terminal scroll active 2190 | #:: # Clear everything up to the line with the cursor 2191 | #:: map f1 clear_terminal to_cursor active 2192 | 2193 | #:: If you want to operate on all kitty windows instead of just the 2194 | #:: current one, use all instead of active. 2195 | 2196 | #:: It is also possible to remap Ctrl+L to both scroll the current 2197 | #:: screen contents into the scrollback buffer and clear the screen, 2198 | #:: instead of just clearing the screen, for example, for ZSH add the 2199 | #:: following to ~/.zshrc: 2200 | 2201 | #:: .. code-block:: zsh 2202 | 2203 | #:: scroll-and-clear-screen() { 2204 | #:: printf '\n%.0s' {1..$LINES} 2205 | #:: zle clear-screen 2206 | #:: } 2207 | #:: zle -N scroll-and-clear-screen 2208 | #:: bindkey '^l' scroll-and-clear-screen 2209 | 2210 | #: Clear up to cursor line 2211 | 2212 | # map cmd+k clear_terminal to_cursor active 2213 | 2214 | #: Reload kitty.conf 2215 | 2216 | # map kitty_mod+f5 load_config_file 2217 | # map ctrl+cmd+, load_config_file 2218 | 2219 | #:: Reload kitty.conf, applying any changes since the last time it 2220 | #:: was loaded. Note that a handful of options cannot be dynamically 2221 | #:: changed and require a full restart of kitty. Particularly, when 2222 | #:: changing shortcuts for actions located on the macOS global menu 2223 | #:: bar, a full restart is needed. You can also map a keybinding to 2224 | #:: load a different config file, for example:: 2225 | 2226 | #:: map f5 load_config /path/to/alternative/kitty.conf 2227 | 2228 | #:: Note that all options from the original kitty.conf are discarded, 2229 | #:: in other words the new configuration *replace* the old ones. 2230 | 2231 | #: Debug kitty configuration 2232 | 2233 | # map kitty_mod+f6 debug_config 2234 | # map opt+cmd+, debug_config 2235 | 2236 | #:: Show details about exactly what configuration kitty is running 2237 | #:: with and its host environment. Useful for debugging issues. 2238 | 2239 | #: Send arbitrary text on key presses 2240 | 2241 | #:: E.g. map ctrl+shift+alt+h send_text all Hello World 2242 | 2243 | #:: You can tell kitty to send arbitrary (UTF-8) encoded text to the 2244 | #:: client program when pressing specified shortcut keys. For 2245 | #:: example:: 2246 | 2247 | #:: map ctrl+alt+a send_text all Special text 2248 | 2249 | #:: This will send "Special text" when you press the Ctrl+Alt+A key 2250 | #:: combination. The text to be sent decodes ANSI C escapes 2251 | #:: so you can use escapes like \e to send control 2253 | #:: codes or \u21fb to send Unicode characters (or you can just input 2254 | #:: the Unicode characters directly as UTF-8 text). You can use 2255 | #:: `kitty +kitten show_key` to get the key escape codes you want to 2256 | #:: emulate. 2257 | 2258 | #:: The first argument to send_text is the keyboard modes in which to 2259 | #:: activate the shortcut. The possible values are normal, 2260 | #:: application, kitty or a comma separated combination of them. The 2261 | #:: modes normal and application refer to the DECCKM cursor key mode 2262 | #:: for terminals, and kitty refers to the kitty extended keyboard 2263 | #:: protocol. The special value all means all of them. 2264 | 2265 | #:: Some more examples:: 2266 | 2267 | #:: # Output a word and move the cursor to the start of the line (like typing and pressing Home) 2268 | #:: map ctrl+alt+a send_text normal Word\e[H 2269 | #:: map ctrl+alt+a send_text application Word\eOH 2270 | #:: # Run a command at a shell prompt (like typing the command and pressing Enter) 2271 | #:: map ctrl+alt+a send_text normal,application some command with arguments\r 2272 | 2273 | #: Open kitty Website 2274 | 2275 | # map shift+cmd+/ open_url https://sw.kovidgoyal.net/kitty/ 2276 | 2277 | #: Hide macOS kitty application 2278 | 2279 | # map cmd+h hide_macos_app 2280 | 2281 | #: Hide macOS other applications 2282 | 2283 | # map opt+cmd+h hide_macos_other_apps 2284 | 2285 | #: Minimize macOS window 2286 | 2287 | # map cmd+m minimize_macos_window 2288 | 2289 | #: Quit kitty 2290 | 2291 | # map cmd+q quit 2292 | 2293 | #: }}} 2294 | 2295 | #: }}} 2296 | 2297 | 2298 | # BEGIN_KITTY_THEME 2299 | # Catppuccin-Mocha 2300 | include current-theme.conf 2301 | # END_KITTY_THEME 2302 | -------------------------------------------------------------------------------- /kitty/themes/diff-frappe.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Diff Frappe 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/diff-frappe.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # text 10 | foreground #C6D0F5 11 | # base 12 | background #303446 13 | # subtext0 14 | title_fg #A5ADCE 15 | 16 | # mantle 17 | title_bg #292C3C 18 | margin_bg #292C3C 19 | 20 | # subtext1 21 | margin_fg #B5BFE2 22 | # mantle 23 | filler_bg #292C3C 24 | 25 | # 30% red, 70% base 26 | removed_bg #674B59 27 | # 50% red, 50% base 28 | highlight_removed_bg #8C5B65 29 | # 40% red, 60% base 30 | removed_margin_bg #79535F 31 | 32 | # 30% green, 70% base 33 | added_bg #53635A 34 | # 50% green, 50% base 35 | highlight_added_bg #6B8368 36 | # 40% green, 60% base 37 | added_margin_bg #5F7361 38 | 39 | # mantle 40 | hunk_margin_bg #292C3C 41 | hunk_bg #292C3C 42 | 43 | # 40% yellow, 60% base 44 | search_bg #786F63 45 | # text 46 | search_fg #C6D0F5 47 | # 30% sky, 70% base 48 | select_bg #4F6372 49 | # text 50 | select_fg #C6D0F5 51 | -------------------------------------------------------------------------------- /kitty/themes/diff-latte.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Diff Latte 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/diff-latte.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # text 10 | foreground #4C4F69 11 | # base 12 | background #EFF1F5 13 | # subtext0 14 | title_fg #6C6F85 15 | 16 | # mantle 17 | title_bg #E6E9EF 18 | margin_bg #E6E9EF 19 | 20 | # subtext1 21 | margin_fg #5C5F77 22 | # mantle 23 | filler_bg #E6E9EF 24 | 25 | # 30% red, 70% base 26 | removed_bg #E6ADBD 27 | # 50% red, 50% base 28 | highlight_removed_bg #E18097 29 | # 40% red, 60% base 30 | removed_margin_bg #E397AA 31 | 32 | # 30% green, 70% base 33 | added_bg #BBD9B8 34 | # 50% green, 50% base 35 | highlight_added_bg #98C990 36 | # 40% green, 60% base 37 | added_margin_bg #A9D1A4 38 | 39 | # mantle 40 | hunk_margin_bg #E6E9EF 41 | hunk_bg #E6E9EF 42 | 43 | # 40% yellow, 60% base 44 | search_bg #E8C99E 45 | # text 46 | search_fg #4C4F69 47 | # 30% sky, 70% base 48 | select_bg #A8DAF0 49 | # text 50 | select_fg #4C4F69 51 | -------------------------------------------------------------------------------- /kitty/themes/diff-macchiato.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Diff Macchiato 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/diff-macchiato.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # text 10 | foreground #CAD3F5 11 | # base 12 | background #24273A 13 | # subtext0 14 | title_fg #A5ADCB 15 | 16 | # mantle 17 | title_bg #1E2030 18 | margin_bg #1E2030 19 | 20 | # subtext1 21 | margin_fg #B8C0E0 22 | # mantle 23 | filler_bg #1E2030 24 | 25 | # 30% red, 70% base 26 | removed_bg #604456 27 | # 50% red, 50% base 28 | highlight_removed_bg #895768 29 | # 40% red, 60% base 30 | removed_margin_bg #744D5F 31 | 32 | # 30% green, 70% base 33 | added_bg #4B5D55 34 | # 50% green, 50% base 35 | highlight_added_bg #658168 36 | # 40% green, 60% base 37 | added_margin_bg #586F5E 38 | 39 | # mantle 40 | hunk_margin_bg #1E2030 41 | hunk_bg #1E2030 42 | 43 | # 40% yellow, 60% base 44 | search_bg #EED49F 45 | # text 46 | search_fg #CAD3F5 47 | # 30% sky, 70% base 48 | select_bg #445B6C 49 | # text 50 | select_fg #CAD3F5 51 | -------------------------------------------------------------------------------- /kitty/themes/diff-mocha.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Diff Mocha 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/diff-mocha.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | # text 10 | foreground #CDD6F4 11 | # base 12 | background #1E1E2E 13 | # subtext0 14 | title_fg #A6ADC8 15 | 16 | # mantle 17 | title_bg #181825 18 | margin_bg #181825 19 | 20 | # subtext1 21 | margin_fg #A6ADC8 22 | # mantle 23 | filler_bg #181825 24 | 25 | # 30% red, 70% base 26 | removed_bg #5E3F53 27 | # 50% red, 50% base 28 | highlight_removed_bg #89556B 29 | # 40% red, 60% base 30 | removed_margin_bg #734A5F 31 | 32 | # 30% green, 70% base 33 | added_bg #475951 34 | # 50% green, 50% base 35 | highlight_added_bg #628168 36 | # 40% green, 60% base 37 | added_margin_bg #546D5C 38 | 39 | # mantle 40 | hunk_margin_bg #181825 41 | hunk_bg #181825 42 | 43 | # 40% yellow, 60% base 44 | search_bg #A1937B 45 | # text 46 | search_fg #CDD6F4 47 | # 30% sky, 70% base 48 | select_bg #45475A 49 | # text 50 | select_fg #CDD6F4 51 | -------------------------------------------------------------------------------- /kitty/themes/frappe.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Frappe 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/frappe.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #C6D0F5 13 | background #303446 14 | selection_foreground #303446 15 | selection_background #F2D5CF 16 | 17 | # Cursor colors 18 | cursor #F2D5CF 19 | cursor_text_color #303446 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F2D5CF 23 | 24 | # Kitty window border colors 25 | active_border_color #BABBF1 26 | inactive_border_color #737994 27 | bell_border_color #E5C890 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #232634 35 | active_tab_background #CA9EE6 36 | inactive_tab_foreground #C6D0F5 37 | inactive_tab_background #292C3C 38 | tab_bar_background #232634 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #303446 42 | mark1_background #BABBF1 43 | mark2_foreground #303446 44 | mark2_background #CA9EE6 45 | mark3_foreground #303446 46 | mark3_background #85C1DC 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #51576D 52 | color8 #626880 53 | 54 | # red 55 | color1 #E78284 56 | color9 #E78284 57 | 58 | # green 59 | color2 #A6D189 60 | color10 #A6D189 61 | 62 | # yellow 63 | color3 #E5C890 64 | color11 #E5C890 65 | 66 | # blue 67 | color4 #8CAAEE 68 | color12 #8CAAEE 69 | 70 | # magenta 71 | color5 #F4B8E4 72 | color13 #F4B8E4 73 | 74 | # cyan 75 | color6 #81C8BE 76 | color14 #81C8BE 77 | 78 | # white 79 | color7 #B5BFE2 80 | color15 #A5ADCE 81 | -------------------------------------------------------------------------------- /kitty/themes/latte.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Latte 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #4C4F69 13 | background #EFF1F5 14 | selection_foreground #EFF1F5 15 | selection_background #DC8A78 16 | 17 | # Cursor colors 18 | cursor #DC8A78 19 | cursor_text_color #EFF1F5 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #DC8A78 23 | 24 | # Kitty window border colors 25 | active_border_color #7287FD 26 | inactive_border_color #9CA0B0 27 | bell_border_color #DF8E1D 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #EFF1F5 35 | active_tab_background #8839EF 36 | inactive_tab_foreground #4C4F69 37 | inactive_tab_background #9CA0B0 38 | tab_bar_background #BCC0CC 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #EFF1F5 42 | mark1_background #7287fD 43 | mark2_foreground #EFF1F5 44 | mark2_background #8839EF 45 | mark3_foreground #EFF1F5 46 | mark3_background #209FB5 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #5C5F77 52 | color8 #6C6F85 53 | 54 | # red 55 | color1 #D20F39 56 | color9 #D20F39 57 | 58 | # green 59 | color2 #40A02B 60 | color10 #40A02B 61 | 62 | # yellow 63 | color3 #DF8E1D 64 | color11 #DF8E1D 65 | 66 | # blue 67 | color4 #1E66F5 68 | color12 #1E66F5 69 | 70 | # magenta 71 | color5 #EA76CB 72 | color13 #EA76CB 73 | 74 | # cyan 75 | color6 #179299 76 | color14 #179299 77 | 78 | # white 79 | color7 #ACB0BE 80 | color15 #BCC0CC 81 | -------------------------------------------------------------------------------- /kitty/themes/macchiato.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Macchiato 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/macchiato.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #CAD3F5 13 | background #24273A 14 | selection_foreground #24273A 15 | selection_background #F4DBD6 16 | 17 | # Cursor colors 18 | cursor #F4DBD6 19 | cursor_text_color #24273A 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F4DBD6 23 | 24 | # Kitty window border colors 25 | active_border_color #B7BDF8 26 | inactive_border_color #6E738D 27 | bell_border_color #EED49F 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #181926 35 | active_tab_background #C6A0F6 36 | inactive_tab_foreground #CAD3F5 37 | inactive_tab_background #1E2030 38 | tab_bar_background #181926 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #24273A 42 | mark1_background #B7BDF8 43 | mark2_foreground #24273A 44 | mark2_background #C6A0F6 45 | mark3_foreground #24273A 46 | mark3_background #7DC4E4 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #494D64 52 | color8 #5B6078 53 | 54 | # red 55 | color1 #ED8796 56 | color9 #ED8796 57 | 58 | # green 59 | color2 #A6DA95 60 | color10 #A6DA95 61 | 62 | # yellow 63 | color3 #EED49F 64 | color11 #EED49F 65 | 66 | # blue 67 | color4 #8AADF4 68 | color12 #8AADF4 69 | 70 | # magenta 71 | color5 #F5BDE6 72 | color13 #F5BDE6 73 | 74 | # cyan 75 | color6 #8BD5CA 76 | color14 #8BD5CA 77 | 78 | # white 79 | color7 #B8C0E0 80 | color15 #A5ADCB 81 | -------------------------------------------------------------------------------- /kitty/themes/mocha.conf: -------------------------------------------------------------------------------- 1 | # vim:ft=kitty 2 | 3 | ## name: Catppuccin Kitty Mocha 4 | ## author: Catppuccin Org 5 | ## license: MIT 6 | ## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf 7 | ## blurb: Soothing pastel theme for the high-spirited! 8 | 9 | 10 | 11 | # The basic colors 12 | foreground #CDD6F4 13 | background #1E1E2E 14 | selection_foreground #1E1E2E 15 | selection_background #F5E0DC 16 | 17 | # Cursor colors 18 | cursor #F5E0DC 19 | cursor_text_color #1E1E2E 20 | 21 | # URL underline color when hovering with mouse 22 | url_color #F5E0DC 23 | 24 | # Kitty window border colors 25 | active_border_color #B4BEFE 26 | inactive_border_color #6C7086 27 | bell_border_color #F9E2AF 28 | 29 | # OS Window titlebar colors 30 | wayland_titlebar_color system 31 | macos_titlebar_color system 32 | 33 | # Tab bar colors 34 | active_tab_foreground #11111B 35 | active_tab_background #CBA6F7 36 | inactive_tab_foreground #CDD6F4 37 | inactive_tab_background #181825 38 | tab_bar_background #11111B 39 | 40 | # Colors for marks (marked text in the terminal) 41 | mark1_foreground #1E1E2E 42 | mark1_background #B4BEFE 43 | mark2_foreground #1E1E2E 44 | mark2_background #CBA6F7 45 | mark3_foreground #1E1E2E 46 | mark3_background #74C7EC 47 | 48 | # The 16 terminal colors 49 | 50 | # black 51 | color0 #45475A 52 | color8 #585B70 53 | 54 | # red 55 | color1 #F38BA8 56 | color9 #F38BA8 57 | 58 | # green 59 | color2 #A6E3A1 60 | color10 #A6E3A1 61 | 62 | # yellow 63 | color3 #F9E2AF 64 | color11 #F9E2AF 65 | 66 | # blue 67 | color4 #89B4FA 68 | color12 #89B4FA 69 | 70 | # magenta 71 | color5 #F5C2E7 72 | color13 #F5C2E7 73 | 74 | # cyan 75 | color6 #94E2D5 76 | color14 #94E2D5 77 | 78 | # white 79 | color7 #BAC2DE 80 | color15 #A6ADC8 81 | -------------------------------------------------------------------------------- /rofi/cliphist-rofi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | if [ -z "$1" ]; then 4 | cliphist list 5 | else 6 | cliphist decode <<<"$1" | wl-copy 7 | fi 8 | -------------------------------------------------------------------------------- /rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration{ 2 | font: "JetBrainsMono Nerd Font 8"; 3 | modi: "drun,window,emoji,clipboard:/home/jacob/.config/rofi/cliphist-rofi.sh"; 4 | icon-theme: "Qogir"; 5 | show-icons: true; 6 | terminal: "kitty"; 7 | drun-display-format: "{icon} {name}"; 8 | location: 0; 9 | disable-history: false; 10 | hide-scrollbar: true; 11 | display-drun: " Apps"; 12 | display-run: " Run"; 13 | display-window: " Window"; 14 | display-Network: "󰤨 Network"; 15 | display-clipboard: " Clipboard"; 16 | display-emoji: "👽 Emoji"; 17 | sidebar-mode: true; 18 | } 19 | 20 | @theme "catppuccin-mocha" -------------------------------------------------------------------------------- /swayidle/config: -------------------------------------------------------------------------------- 1 | timeout 10 'if pgrep -x swaylock; then hyprctl dispatch dpms off eDP-1; fi' 2 | timeout 90 'brightnessctl s 20% -s' resume 'brightnessctl -r' 3 | timeout 300 swaylock 4 | timeout 360 'hyprctl dispatch dpms off eDP-1' resume 'hyperctl dispatch dpms on eDP-1' 5 | before-sleep swaylock 6 | -------------------------------------------------------------------------------- /swaylock/config: -------------------------------------------------------------------------------- 1 | daemonize 2 | show-failed-attempts 3 | clock 4 | screenshots 5 | effect-pixelate=24 6 | effect-vignette=0.25:0.45 7 | color=1f1d2e20 8 | font="Space Mono" 9 | indicator 10 | indicator-radius=150 11 | indicator-thickness=20 12 | line-color=1f1d2ecc 13 | ring-color=191724aa 14 | inside-color=1f1d2eaa 15 | key-hl-color=eb6f92 16 | separator-color=000000ff 17 | text-color=cdd6f4 18 | text-caps-lock-color="" 19 | line-ver-color=eb6f92 20 | ring-ver-color=eb6f92 21 | inside-ver-color=1f1d2e 22 | text-ver-color=e0def4 23 | ring-wrong-color=31748f 24 | text-wrong-color=31748f 25 | inside-wrong-color=1f1d2e 26 | inside-clear-color=1f1d2e 27 | text-clear-color=e0def4 28 | ring-clear-color=9ccfd8 29 | line-clear-color=1f1d2e 30 | line-wrong-color=1f1d2e 31 | bs-hl-color=31748f 32 | grace=15 33 | grace-no-mouse 34 | datestr="%x %d.%m" 35 | fade-in="0.9" 36 | ignore-empty-password 37 | -------------------------------------------------------------------------------- /waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | "include": [ 3 | "~/.config/waybar/default" 4 | ], 5 | "spacing": 0, 6 | "layer": "top", 7 | "margin-top": 5, 8 | "margin-bottom": 0, 9 | "margin-left": 0, 10 | "margin-right": 0, 11 | "modules-left": [ 12 | "group/left", 13 | "custom/recorder", 14 | "hyprland/window" 15 | ], 16 | "modules-center": [], 17 | "modules-right": [ 18 | "group/systray", 19 | "group/processing", 20 | "group/audio", 21 | "group/power", 22 | "group/networking", 23 | "group/datetime", 24 | "group/session", 25 | ], 26 | "group/left": { 27 | "orientation": "inherit", 28 | "modules": [ 29 | "hyprland/workspaces", 30 | ] 31 | }, 32 | "group/systray": { 33 | "orientation": "inherit", 34 | "modules": [ 35 | "tray" 36 | ] 37 | }, 38 | "group/processing": { 39 | "orientation": "inherit", 40 | "modules": [ 41 | "custom/fan", 42 | "cpu", 43 | "temperature", 44 | "memory" 45 | ] 46 | }, 47 | "group/audio": { 48 | "orientation": "inherit", 49 | "modules": [ 50 | "pulseaudio" 51 | ] 52 | }, 53 | "group/power": { 54 | "orientation": "inherit", 55 | "modules": [ 56 | "idle_inhibitor", 57 | "backlight", 58 | "custom/power_profile", 59 | "battery" 60 | ] 61 | }, 62 | "group/networking": { 63 | "orientation": "inherit", 64 | "modules": [ 65 | "network", 66 | "bluetooth" 67 | ] 68 | }, 69 | "group/datetime": { 70 | "orientation": "inherit", 71 | "modules": [ 72 | "clock" 73 | ] 74 | }, 75 | "group/session": { 76 | "orientation": "inherit", 77 | "modules": [ 78 | "custom/session" 79 | ] 80 | }, 81 | "group/group-power": { 82 | "orientation": "inherit", 83 | "drawer": { 84 | "transition-duration": 500, 85 | "children-class": "not-power", 86 | "transition-left-to-right": false, 87 | }, 88 | "modules": [ 89 | "custom/power", // First element is the "group leader" and won't ever be hidden 90 | "custom/quit", 91 | "custom/lock", 92 | "custom/reboot", 93 | ] 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /waybar/default: -------------------------------------------------------------------------------- 1 | { 2 | "custom/sep": { 3 | "format": " " 4 | }, 5 | "hyprland/window": { 6 | "format": "{}", 7 | "max-length": 120, 8 | "interval": 1, 9 | "height": 24, 10 | "rewrite": { 11 | "(.*) — Mozilla Firefox": "󰈹 $1", 12 | "(.*) - Visual Studio Code": "󰨞 $1", 13 | "(.*) - Docker Desktop": "󰡨 $1", 14 | "(.*) - Google Chrome": " $1", 15 | "Steam": "󰓓", 16 | "(.*) - Slack": "󰒱 $1", 17 | "Spotify Premium": "󰓇" 18 | } 19 | }, 20 | "idle_inhibitor": { 21 | "format": "{icon}", 22 | "format-icons": { 23 | "activated": "", 24 | "deactivated": "" 25 | } 26 | }, 27 | "custom/fan": { 28 | "exec": "/home/jacob/.config/hypr/scripts/fans.sh", 29 | "return-type": "json", 30 | "format": "󰈐{}", 31 | "interval": 5, 32 | "escape": true 33 | }, 34 | "custom/recorder": { 35 | "format": "", 36 | "return-type": "json", 37 | "interval": 1, 38 | "exec": "echo '{\"class\": \"recording\"}'", 39 | "exec-if": "pgrep wf-recorder", 40 | "tooltip": false, 41 | "on-click": "killall -s SIGINT wf-recorder" 42 | }, 43 | "custom/notification": { 44 | "tooltip": true, 45 | "format": "{icon} ", 46 | "format-icons": { 47 | "notification": "", 48 | "none": "", 49 | "dnd-notification": "", 50 | "dnd-none": "" 51 | }, 52 | "return-type": "json", 53 | "exec-if": "which swaync-client", 54 | "exec": "swaync-client -swb", 55 | "on-click": "swaync-client -t -sw", 56 | "on-click-right": "swaync-client -d -sw", 57 | "escape": true 58 | }, 59 | "custom/session": { 60 | "format": "{icon}", 61 | "format-icons": { 62 | "default": "" 63 | }, 64 | "tooltip": false, 65 | "on-click": "wlogout -p xdg" 66 | }, 67 | "backlight": { 68 | "device": "intel_backlight", 69 | "format": "{icon}", 70 | "format-icons": ["󰃚", "󰃛", "󰃜", "󰃝", "󰃞", "󰃟", "󰃠"], 71 | "tooltip" : true 72 | }, 73 | "hyprland/workspaces": { 74 | "all-outputs": true, 75 | "disable-scroll": true, 76 | "on-click": "activate", 77 | "format": "{icon}", 78 | "persistent-workspaces": { 79 | "*": 1, 80 | }, 81 | "format-icons": { 82 | "1": "I", 83 | "2": "II", 84 | "3": "III", 85 | "4": "IV", 86 | "5": "V", 87 | "6": "VI", 88 | "7": "VII", 89 | "8": "VIII", 90 | "9": "IX", 91 | "urgent": "" 92 | } 93 | }, 94 | "tray": { 95 | "spacing": 10, 96 | "icon-size": 14 97 | }, 98 | "clock": { 99 | "format": " {:%I:%M%p %a %e %b}", 100 | "interval": 60, 101 | "tooltip-format": "{:%Y %B}\n{calendar}" 102 | }, 103 | "cpu": { 104 | "interval": 2, 105 | "format": "{icon0}{icon1}{icon2}{icon3}{icon4}{icon5}{icon6}{icon7}", 106 | "format-icons": [ 107 | "", // green 108 | "", // blue 109 | "", // white 110 | "", // white 111 | "", // yellow 112 | "", // yellow 113 | "", // orange 114 | "" // red 115 | ] 116 | }, 117 | "temperature": { 118 | "hwmon-path": "/sys/class/hwmon/hwmon6/temp1_input", 119 | "critical-threshold": 90000, 120 | "format": " {temperatureC}°C", 121 | "format-critical": "{temperatureC}°C " 122 | }, 123 | "memory": { 124 | "format": " {}%" 125 | }, 126 | "battery": { 127 | "states": { 128 | "good": 90, 129 | "warning": 30, 130 | "critical": 15 131 | }, 132 | "format": "{icon} {capacity}%", 133 | "format-charging": " {capacity}%", 134 | "format-plugged": " {capacity}%", 135 | "format-alt": "{icon} {time}", 136 | "format-icons": ["", "", "", "", ""] 137 | }, 138 | "custom/power_profile": { 139 | "exec": "sleep 0.3 && /home/jacob/.local/scripts/powerprofilecycle.sh -m", 140 | "interval": 1, 141 | "on-click": "/home/jacob/.local/scripts/powerprofilecycle.sh", 142 | "exec-on-event": true, 143 | "format": "{}" 144 | }, 145 | "bluetooth": { 146 | "controller": "sliver", 147 | "format": "", 148 | "format-disabled": "", // an empty format will hide the module 149 | "format-connected": " {num_connections}", 150 | "format-connected-battery": " {device_alias} {device_battery_percentage}%", 151 | "tooltip-format": "{status}: {controller_alias}\t{controller_address}", 152 | "tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{device_enumerate}", 153 | "tooltip-format-enumerate-connected": "{device_alias}\t{device_address}", 154 | "on-click": "blueman-manager" 155 | }, 156 | "network": { 157 | "format-wifi": "", 158 | "format-ethernet": "", 159 | "format-disconnected": "", 160 | "tooltip-format-wifi": " {ifname} @ {essid}\nIP: {ipaddr}\nStrength: {signalStrength}%\nFreq: {frequency}MHz\n⬆️ {bandwidthUpBits} ⬇️ {bandwidthDownBits}", 161 | "tooltip-format-ethernet": " {ifname}\nIP: {ipaddr}\n⬆️ {bandwidthUpBits} ⬇️ {bandwidthDownBits}", 162 | "format-linked": "{ifname} (No IP) ", 163 | "on-click-right": "nm-connection-editor", 164 | "on-click": "bash '/home/jacob/.local/scripts/rofi-network-manager.sh'" 165 | }, 166 | "pulseaudio": { 167 | "format": "{icon} {volume}% {format_source}", 168 | "format-bluetooth": " {volume}% {format_source}", 169 | "format-bluetooth-muted": "  {format_source}", 170 | "format-muted": " {format_source}", 171 | "format-source": "{volume}% ", 172 | "format-source-muted": "", 173 | "format-icons": { 174 | "headphone": "", 175 | "hands-free": "", 176 | "headset": "", 177 | "phone": "", 178 | "portable": "", 179 | "car": "", 180 | "default": ["", "", ""] 181 | }, 182 | "on-click": "pavucontrol" 183 | }, 184 | "custom/media": { 185 | "format": "{icon} {}", 186 | "return-type": "json", 187 | "max-length": 40, 188 | "format-icons": { 189 | "spotify": "", 190 | "default": "🎜" 191 | }, 192 | "escape": true 193 | }, 194 | "custom/quit": { 195 | "format": "󰗼", 196 | "tooltip": false, 197 | "on-click": "hyprctl dispatch exit" 198 | }, 199 | "custom/lock": { 200 | "format": "󰍁", 201 | "tooltip": false, 202 | "on-click": "swaylock" 203 | }, 204 | "custom/reboot": { 205 | "format": "󰜉", 206 | "tooltip": false, 207 | "on-click": "reboot" 208 | }, 209 | "custom/power": { 210 | "format": "", 211 | "tooltip": false, 212 | "on-click": "shutdown now" 213 | } 214 | } 215 | -------------------------------------------------------------------------------- /waybar/style.css: -------------------------------------------------------------------------------- 1 | @import "./themes/catppuccin-mocha.css"; 2 | @import "./themes/variables.css"; 3 | 4 | * { 5 | /* font-family: "SauceCodePro Nerd Font Mono", "Font Awesome 6 Free"; */ 6 | /* font-family: "BlexMono Nerd Font", "Font Awesome 6 Free"; */ 7 | font-family: "CaskaydiaCove Nerd Font Mono", "Bitstream Vera Sans Mono", "Bahnschrift", "Arimo Nerd Font", "Font Awesome 6 Free"; 8 | font-size: 11px; 9 | min-height: 0; 10 | } 11 | 12 | window#waybar { 13 | background: transparent; 14 | border-radius: 0.5rem; 15 | } 16 | 17 | tooltip { 18 | background: @baseRgb; 19 | opacity: 0.9; 20 | border: 1px solid @pink; 21 | } 22 | 23 | tooltip label { 24 | color: @text; 25 | padding: 8px; 26 | } 27 | 28 | #workspaces { 29 | padding: 0; 30 | } 31 | 32 | #workspaces button { 33 | color: @mauve; 34 | transition: all 0.5s cubic-bezier(.55, -0.68, .48, 1.68); 35 | 36 | padding: 0.25rem 0.5rem;; 37 | margin-right: 0.25rem; 38 | } 39 | 40 | #workspaces button:last-child { 41 | margin-right: 0; 42 | } 43 | 44 | #workspaces button:hover { 45 | color: @rosewater; 46 | background: @surface0; 47 | } 48 | 49 | #workspaces button.active { 50 | color: @teal; 51 | } 52 | 53 | #workspaces button.active:hover { 54 | color: @teal; 55 | background: @crust; 56 | } 57 | 58 | .modules-left:first-child { 59 | margin-left: 6px; 60 | } 61 | 62 | .modules-right:last-child { 63 | margin-right: 6px; 64 | } 65 | 66 | .modules-right>box, .modules-left>box { 67 | background-color: @baseRgb; 68 | opacity: 0.9; 69 | border-radius: 0.5rem; 70 | padding: 0.3rem 0.5rem 0.3rem 0.5rem; 71 | margin-right: 5px; 72 | transition: all 0.2s cubic-bezier(.55, -0.68, .48, 1.68); 73 | /* border:1px solid red; */ 74 | } 75 | 76 | .modules-right>box>widget, .modules-left>box>widget { 77 | /* border-radius: 0.5rem; */ 78 | } 79 | 80 | .modules-right>box>widget>label, .modules-left>box>widget>label { 81 | color: @text; 82 | border-radius: 0.5rem; 83 | padding: 0 0.25rem 0 0.25rem; 84 | margin-right: 0.5rem; 85 | min-width: 18px; 86 | 87 | /* border:1px solid yellow; */ 88 | } 89 | 90 | .modules-right box>widget:last-child>label { 91 | margin-right: 0; 92 | } 93 | .modules-right box>widget:first-child>label { 94 | /* margin-left: 0; */ 95 | } 96 | 97 | #power, #processing, #networking, #systray, #audio, #datetime, #session { 98 | 99 | } 100 | 101 | .modules-right box>widget>label { 102 | color: @lavender; 103 | } 104 | /* .modules-right widget:nth-child(1)>label { 105 | color: @blue; 106 | } 107 | .modules-right widget:nth-child(2)>label { 108 | color: @lavender; 109 | } 110 | .modules-right widget:nth-child(3)>label { 111 | color: @sapphire; 112 | } 113 | .modules-right widget:nth-child(4)>label { 114 | color: @sky; 115 | } 116 | .modules-right widget:nth-child(5)>label { 117 | color: @teal; 118 | } 119 | .modules-right widget:nth-child(6)>label { 120 | color: @green; 121 | } 122 | .modules-right widget:nth-child(7)>label { 123 | color: @yellow; 124 | } 125 | .modules-right widget:nth-child(8)>label { 126 | color: @peach; 127 | } 128 | .modules-right widget:nth-child(9)>label { 129 | color: @maroon; 130 | } 131 | .modules-right widget:nth-child(10)>label { 132 | color: @red; 133 | } 134 | .modules-right widget:nth-child(11)>label { 135 | color: @mauve; 136 | } 137 | .modules-right widget:nth-child(12)>label { 138 | color: @pink; 139 | } 140 | .modules-right widget:nth-child(13)>label { 141 | color: @flamingo; 142 | } 143 | .modules-right widget:nth-child(14)>label { 144 | color: @rosewater; 145 | } */ 146 | 147 | 148 | #backlight { 149 | color: @peach; 150 | } 151 | 152 | #battery { 153 | color: @yellow; 154 | } 155 | 156 | #battery.good { 157 | color: @green; 158 | } 159 | 160 | #battery.warning { 161 | color: @red; 162 | } 163 | 164 | #battery.critical { 165 | background: @red; 166 | color: @surface0; 167 | } 168 | 169 | #battery.charging { 170 | color: @green; 171 | animation-name: charging; 172 | animation-duration: 1s; 173 | animation-timing-function: linear; 174 | animation-iteration-count: infinite; 175 | animation-direction: alternate-reverse; 176 | } 177 | 178 | @keyframes charging { 179 | from { 180 | color: @sapphire; 181 | } 182 | 30% { 183 | color: @sky; 184 | } 185 | 60% { 186 | color: @teal; 187 | } 188 | to { 189 | color: @green; 190 | } 191 | } 192 | 193 | #battery.plugged { 194 | color: @yellow; 195 | } 196 | 197 | #battery.warning:not(.charging) { 198 | background-color: @red; 199 | color: @surface0; 200 | } 201 | 202 | #bluetooth { 203 | color: @sapphire; 204 | } 205 | 206 | #bluetooth.disabled { 207 | color: @maroon; 208 | } 209 | 210 | #bluetooth.off { 211 | color: @surface2; 212 | } 213 | 214 | #processing { 215 | 216 | } 217 | 218 | #cpu { 219 | opacity: 0.7; 220 | } 221 | 222 | #clock { 223 | color: @teal; 224 | } 225 | 226 | #custom-power_profile { 227 | color: @green; 228 | } 229 | 230 | #custom-fan.off { 231 | color: @surface2; 232 | } 233 | 234 | #custom-fan.low { 235 | color: @green; 236 | animation:spin 5s linear infinite; 237 | } 238 | 239 | #custom-fan.medium { 240 | color: @peach; 241 | animation:spin 3.5s linear infinite; 242 | } 243 | 244 | #custom-fan.high { 245 | color: @red; 246 | animation:spin 2s linear infinite; 247 | } 248 | 249 | #custom-fan { 250 | animation-timing-function: ease-in-out; 251 | animation-iteration-count: infinite; 252 | } 253 | 254 | @keyframes spin { 255 | from { 256 | font-size: 12px; 257 | } 258 | 60% { 259 | font-size: 11px; 260 | color: transparent; 261 | } 262 | to { 263 | font-size:12px; 264 | } 265 | } 266 | 267 | #custom-recorder { 268 | background-color: @baseRgb; 269 | border-radius: 0.5rem; 270 | color: @red; 271 | margin-right: 5px; 272 | padding: 0 0.7rem 0 0.5rem; 273 | min-width: 15px; 274 | } 275 | 276 | #window { 277 | color: @text; 278 | background-color: @baseRgb; 279 | border-radius: 0.5rem; 280 | padding: 0 8px; 281 | } 282 | 283 | span#window { 284 | border:1px solid red; 285 | } 286 | 287 | 288 | #idle_inhibitor { 289 | color: @surface2; 290 | } 291 | 292 | #idle_inhibitor label span { 293 | border:1px solid yellow; 294 | } 295 | 296 | #idle_inhibitor.activated { 297 | color: @green; 298 | } 299 | 300 | #network { 301 | color: @lavender; 302 | } 303 | 304 | #network.disconnected { 305 | background-color: @maroon; 306 | color: @baseRgb; 307 | } 308 | 309 | #network.disabled { 310 | color: @maroon; 311 | } 312 | 313 | #pulseaudio { 314 | /* font-size:24px; */ 315 | color: @sky; 316 | } 317 | 318 | #pulseaudio.muted { 319 | color: @surface2; 320 | } 321 | 322 | #mode { 323 | background-color: @red; 324 | color: @surface0; 325 | font-weight: bold; 326 | } 327 | 328 | #custom-session { 329 | color: @red; 330 | } 331 | 332 | .not-power { 333 | border:1px solid red; 334 | } -------------------------------------------------------------------------------- /waybar/themes/catppuccin-mocha.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * Catppuccin Mocha palette 4 | * Maintainer: rubyowo 5 | * 6 | */ 7 | 8 | @define-color base #1e1e2e; 9 | @define-color baseRgb rgba(30, 30, 46, 0.8); 10 | @define-color mantle #181825; 11 | @define-color crust #11111b; 12 | 13 | @define-color text #cdd6f4; 14 | @define-color subtext0 #a6adc8; 15 | @define-color subtext1 #bac2de; 16 | 17 | @define-color surface0 #313244; 18 | @define-color surface1 #45475a; 19 | @define-color surface2 #585b70; 20 | 21 | @define-color overlay0 #6c7086; 22 | @define-color overlay1 #7f849c; 23 | @define-color overlay2 #9399b2; 24 | 25 | @define-color blue #89b4fa; 26 | @define-color lavender #b4befe; 27 | @define-color sapphire #74c7ec; 28 | @define-color sky #89dceb; 29 | @define-color teal #94e2d5; 30 | @define-color green #a6e3a1; 31 | @define-color yellow #f9e2af; 32 | @define-color peach #fab387; 33 | @define-color maroon #eba0ac; 34 | @define-color red #f38ba8; 35 | @define-color mauve #cba6f7; 36 | @define-color pink #f5c2e7; 37 | @define-color flamingo #f2cdcd; 38 | @define-color rosewater #f5e0dc; 39 | -------------------------------------------------------------------------------- /waybar/themes/tokyo-night.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Tokyo Night - Dark 3 | * taken from https://github.com/enkia/tokyo-night-vscode-theme 4 | * 5 | */ 6 | @define-color red #f7768e; 7 | @define-color tangerine #ff9e64; 8 | @define-color equator #e0af68; 9 | @define-color green #9ece6a; 10 | @define-color charlotte #73daca; /* Object literal keys, Markdown links, Terminal Green */ 11 | @define-color lightblue #b4f9f8; /* Regex literal strings */ 12 | @define-color teal #2ac3de; /* Language support functions, CSS HTML elements */ 13 | @define-color skyblue #7dcfff; /* Object properties, Regex quantifiers and flags, Markdown headings, Terminal Cyan, Markdown code, Import/export keywords */ 14 | @define-color maliblue #7aa2f7; /* Function names, CSS property names, Terminal Blue */ 15 | @define-color purple #bb9af7; /* rgb(187, 154, 247) Control Keywords, Storage Types, Regex symbols and operators, HTML Attributes, Terminal Magenta */ 16 | @define-color merano #c0caf5; /* Variables, Class names, Terminal White */ 17 | /* 18 | @define-color #a9b1d6; Editor Foreground 19 | @define-color #9aa5ce; Markdown Text, HTML Text 20 | */ 21 | @define-color dusty #cfc9c2; /* Parameters inside functions (semantic highlighting only) */ 22 | @define-color darkgrey #565f89; /* Comments */ 23 | @define-color black #414868; /* rgba(65, 72, 104) Terminal Black */ 24 | @define-color storm #24283b; /* Editor Background (Storm) */ 25 | @define-color darknight #1a1b26; /* rgb(26, 27, 38) Editor Background (Night)*/ 26 | 27 | @define-color base rgba(26, 27, 38, 0.7); -------------------------------------------------------------------------------- /waybar/themes/variables.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/floodedcodeboy/hyprland-dots/02ec20b1c41eda1d33453873d2cf823ca908856d/waybar/themes/variables.css -------------------------------------------------------------------------------- /waybar/tokyo_wip_style.css: -------------------------------------------------------------------------------- 1 | @import "./themes/tokyo-night.css"; 2 | @import "./themes/variables.css"; 3 | 4 | * { 5 | /* font-family: "SauceCodePro Nerd Font Mono", "Font Awesome 6 Free"; */ 6 | /* font-family: "BlexMono Nerd Font", "Font Awesome 6 Free"; */ 7 | font-family: "CaskaydiaCove Nerd Font Mono", "Bitstream Vera Sans Mono", "Bahnschrift", "Arimo Nerd Font", "Font Awesome 6 Free"; 8 | font-size: 11px; 9 | min-height: 0; 10 | } 11 | 12 | window#waybar { 13 | background: transparent; 14 | border-radius: 0.5rem; 15 | } 16 | 17 | tooltip { 18 | background: @base; 19 | opacity: 0.9; 20 | border: 1px solid @pink; 21 | } 22 | 23 | tooltip label { 24 | color: @maliblue; 25 | padding: 8px; 26 | } 27 | 28 | #workspaces { 29 | padding: 0; 30 | } 31 | 32 | #workspaces button { 33 | color: @mauve; 34 | transition: all 0.5s cubic-bezier(.55, -0.68, .48, 1.68); 35 | 36 | padding: 0.25rem 0.5rem;; 37 | margin-right: 0.25rem; 38 | } 39 | 40 | #workspaces button:last-child { 41 | margin-right: 0; 42 | } 43 | 44 | #workspaces button:hover { 45 | color: @rosewater; 46 | background: @surface0; 47 | } 48 | 49 | #workspaces button.active { 50 | color: @teal; 51 | } 52 | 53 | #workspaces button.active:hover { 54 | color: @teal; 55 | background: @crust; 56 | } 57 | 58 | .modules-left:first-child { 59 | margin-left: 6px; 60 | } 61 | .modules-right:last-child { 62 | margin-right: 6px; 63 | } 64 | 65 | .modules-right>box, .modules-left>box { 66 | background-color: @base; 67 | opacity: 0.9; 68 | border-radius: 0.5rem; 69 | padding: 0.3rem 0.5rem 0.3rem 0.5rem; 70 | margin-right: 5px; 71 | transition: all 0.2s cubic-bezier(.55, -0.68, .48, 1.68); 72 | /* border:1px solid red; */ 73 | } 74 | 75 | .modules-right>box>widget, .modules-left>box>widget { 76 | /* border-radius: 0.5rem; */ 77 | } 78 | 79 | .modules-right>box>widget>label, .modules-left>box>widget>label { 80 | color: @maliblue; 81 | border-radius: 0.5rem; 82 | padding: 0 0.25rem 0 0.25rem; 83 | margin-right: 0.5rem; 84 | min-width: 18px; 85 | 86 | /* border:1px solid yellow; */ 87 | } 88 | 89 | .modules-right box>widget:last-child>label { 90 | margin-right: 0; 91 | } 92 | .modules-right box>widget:first-child>label { 93 | /* margin-left: 0; */ 94 | } 95 | 96 | #power, #processing, #networking, #systray, #audio, #datetime, #session { 97 | 98 | } 99 | 100 | .modules-right box>widget>label { 101 | color: @lightblue; 102 | } 103 | /* .modules-right widget:nth-child(1)>label { 104 | color: @blue; 105 | } 106 | .modules-right widget:nth-child(2)>label { 107 | color: @lavender; 108 | } 109 | .modules-right widget:nth-child(3)>label { 110 | color: @sapphire; 111 | } 112 | .modules-right widget:nth-child(4)>label { 113 | color: @sky; 114 | } 115 | .modules-right widget:nth-child(5)>label { 116 | color: @teal; 117 | } 118 | .modules-right widget:nth-child(6)>label { 119 | color: @green; 120 | } 121 | .modules-right widget:nth-child(7)>label { 122 | color: @yellow; 123 | } 124 | .modules-right widget:nth-child(8)>label { 125 | color: @peach; 126 | } 127 | .modules-right widget:nth-child(9)>label { 128 | color: @maroon; 129 | } 130 | .modules-right widget:nth-child(10)>label { 131 | color: @red; 132 | } 133 | .modules-right widget:nth-child(11)>label { 134 | color: @mauve; 135 | } 136 | .modules-right widget:nth-child(12)>label { 137 | color: @pink; 138 | } 139 | .modules-right widget:nth-child(13)>label { 140 | color: @flamingo; 141 | } 142 | .modules-right widget:nth-child(14)>label { 143 | color: @rosewater; 144 | } */ 145 | 146 | 147 | #backlight { 148 | 149 | } 150 | 151 | #battery { 152 | 153 | } 154 | 155 | #battery.good { 156 | color: @green; 157 | } 158 | 159 | #battery.warning { 160 | color: @red; 161 | } 162 | 163 | #battery.critical { 164 | background: @red; 165 | color: @surface0; 166 | } 167 | 168 | #battery.charging { 169 | color: @green; 170 | animation-name: charging; 171 | animation-duration: 1s; 172 | animation-timing-function: linear; 173 | animation-iteration-count: infinite; 174 | animation-direction: alternate-reverse; 175 | } 176 | 177 | @keyframes charging { 178 | from { 179 | color: @sapphire; 180 | } 181 | 30% { 182 | color: @sky; 183 | } 184 | 60% { 185 | color: @teal; 186 | } 187 | to { 188 | color: @green; 189 | } 190 | } 191 | 192 | #battery.plugged { 193 | color: @yellow; 194 | } 195 | 196 | #battery.warning:not(.charging) { 197 | background-color: @red; 198 | color: @surface0; 199 | } 200 | 201 | #bluetooth { 202 | color: @sapphire; 203 | } 204 | 205 | #bluetooth.disabled { 206 | color: @maroon; 207 | } 208 | 209 | #bluetooth.off { 210 | color: @surface2; 211 | } 212 | 213 | #clock { 214 | 215 | } 216 | 217 | #custom-power_profile { 218 | 219 | } 220 | 221 | #custom-fan.off { 222 | color: @surface2; 223 | /* animation: none; */ 224 | } 225 | 226 | #custom-fan.low { 227 | color: @green; 228 | animation-name: spin; 229 | animation-duration: 3s; 230 | } 231 | 232 | #custom-fan.medium { 233 | color: @peach; 234 | animation-name: spin; 235 | animation-duration: 1.5s; 236 | } 237 | 238 | #custom-fan.high { 239 | color: @red; 240 | animation-name: spin; 241 | animation-duration: 0.75s; 242 | } 243 | 244 | #custom-fan { 245 | animation-timing-function: ease-in-out; 246 | animation-iteration-count: infinite; 247 | } 248 | 249 | @keyframes spin { 250 | from { 251 | font-size: 12px; 252 | } 253 | 60% { 254 | font-size: 11px; 255 | } 256 | to { 257 | font-size:12px; 258 | } 259 | } 260 | 261 | #custom-recorder { 262 | background-color: @base; 263 | border-radius: 0.5rem; 264 | color: @red; 265 | margin-right: 5px; 266 | padding: 0 0.7rem 0 0.5rem; 267 | min-width: 15px; 268 | } 269 | 270 | #window { 271 | color: @text; 272 | background-color: @base; 273 | border-radius: 0.5rem; 274 | padding: 0 8px; 275 | /* 276 | margin-right: 8px; 277 | */ 278 | } 279 | 280 | span#window { 281 | border:1px solid red; 282 | } 283 | 284 | 285 | #idle_inhibitor { 286 | color: @surface2; 287 | } 288 | 289 | #idle_inhibitor label span { 290 | border:1px solid yellow; 291 | } 292 | 293 | #idle_inhibitor.activated { 294 | color: @peach; 295 | } 296 | 297 | #network { 298 | 299 | } 300 | 301 | #network.disconnected { 302 | background-color: @maroon; 303 | color: @base; 304 | } 305 | 306 | #network.disabled { 307 | color: @maroon; 308 | } 309 | 310 | #pulseaudio { 311 | /* font-size:24px; */ 312 | } 313 | 314 | #pulseaudio.muted { 315 | color: @surface2; 316 | } 317 | 318 | #mode { 319 | background-color: @red; 320 | color: @surface0; 321 | font-weight: bold; 322 | } 323 | 324 | #custom-session { 325 | 326 | } 327 | 328 | .not-power { 329 | border:1px solid red; 330 | } --------------------------------------------------------------------------------