ANBVBV75BSHVMRKV4GEBMF7XQCEKVOFAHVA3VONWEVDNGXILJOBQC
xmonad
polybar
rofi
picom
kitty
#!/bin/sh
set -e
die()
{
echo "ERROR: $1" >&2
exit 1
}
db=$(notmuch config get database.path)
meta=$db/.notmuch
base=$meta/.lore
[ -d $db -a -d $meta ] || die "Please run 'notmuch setup' first."
mkdir -p $base
getvar() {
# From the INI file $1, get the value of key $3 in section $2.
awk -vsect=$2 -vvar=$3 -F= '
/^\[.*\]$/ {
accept = $1 == "[" sect "]";
}
/=/ {
if (accept && $1 == var) {
print($2);
exit(0);
}
}' $1
}
import()
{
local git="git --git-dir=$2"
# Make sure the Maildir exists
mkdir -p $db/$1/tmp -p $db/$1/new $db/$1/cur
# Extract the message from each commit in the range and store it
# in the Maildir for notmuch to consume.
$git rev-list $3 | while read sha; do
$git show $sha:m >$db/$1/new/$sha
done
}
sync()
{
local gitdir=$base/git/$1
# Fetch new messages from all epochs and inject them to the
# corresponding Maildir.
for epoch in $(ls -v $gitdir/); do
local git="git --git-dir=$gitdir/$epoch"
local head=$($git rev-list -n1 master)
echo " epoch$epoch: syncing" >&2
$git fetch --quiet
import $1 $gitdir/$epoch $head..master
# Basically we now want to `git fetch --depth=1`, but that
# would race against new messages that came in during the
# import. So instead we "manually" move the shallow boundary
# to HEAD, and then get rid of all objects beyond it.
echo $head >$gitdir/$epoch/shallow
$git gc --quiet --prune=all
done
}
initialize()
{
local gitdir=$base/git/$1
local epoch=$(ls -v $gitdir/ 2>/dev/null | tail -n1)
local url=$(getvar $base/sources $1 url)
local since=$(getvar $base/sources $1 since)
epoch=${epoch:--1}
since=${since:-3 months ago}
echo "$1: initialize ($url)" >&2
# Try to fetch newer epochs until there are no more.
while git clone --quiet --depth 1 --mirror \
$url/$(($epoch + 1)) $gitdir/$(($epoch + 1)) 2>/dev/null; do
epoch=$(($epoch + 1))
echo " epoch$epoch: initial import" >&2
if ! git --git-dir=$gitdir/$epoch fetch --quiet \
--shallow-since="$since" 2>/dev/null; then
if [ $epoch -eq 0 ]; then
# retry without separate git fetch, e.g. linuxppc-dev
rm -rf "${gitdir:?}/$epoch"
if ! git clone --mirror --shallow-since="$since" "$url/0" "$gitdir/0"; then
echo " failed cloning repo $url"
continue
fi
else
echo " no messages in range." >&2
continue
fi
fi
import $1 $gitdir/$epoch master
done
if [ $epoch -lt 0 ]; then
echo " WARN: no epochs found." >&2
return 1
fi
}
sources=$(grep -e '^\[.*\]$' <$base/sources | tr -d '[]')
for source in $sources; do
if ! initialize $source; then
continue
fi
sync $source
done
#!/bin/sh
mbsync -a
/home/alex/mail/.notmuch/hooks/notmuch-lore/pre-new
#!/bin/sh
afew --new --tag
afew --new --move
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKSVArZ2FJVHA1Um90RHBn
SzV4bUpQaE84QTFETmxXM0VsazdCUTE1cVMwCkJxT0hBbEdFYkxBWkowL09nc3cz
NU45amtXaWNkSFpyUnd0a2dpSFE2b0UKLS0tIEE3TDRYd0lMb2ZWeXE4YmlUNGVq
SzFYT0s5NlNQZzN0Y2RleURpN0Y3Z0UK4k2db/Vv3vKJbQq5UFolXMXTlaRljcdW
KZACwJ1zbjJ8Uogo6VYKuhruA2IEKOZ5Mf8sOrcOnW9VsaHajdxJ6YTL7DH48BWs
F7JkU2LRDFsXHitrB5UW3EXM/RAOT9bDKYQG6s5eeBOOI8nfFsZUfA+pvb9Oxz7j
w+H5iBt3ZiqA/1N9ZftCnx+JjstDMFj5aYSEzp3YQxio6K0BAVxLkZRKebVjSCCX
IRioSD+yTKfe215Wf4Bb3vl9aftbdmUdUO4kou6BE9aTSvL00I28yAf7WFFp+59n
eaSTiGESwARk2BY57dC3ivdVtSmyRntzBsdXC9Npubf0DQbFBykbDoqv+pUSSwP2
x3RQQ3k9IejHtnihlZvAkMYjQ7RUA7A0wI6JJ1Ch7lp10Va0UiTaYooZ1RsxlByT
HgXFZoNok8HBMccmNZ5UOqYdES87rkJR9DolCAm20Wg1RPUiXA+qYpS4EYWm57wX
Bmp4ZiugpjYMF5frbWvOb3h4fMWK8T/EkAXk5AUcIJbud6r/e++6sA4KGLt/uJ36
fQ==
-----END AGE ENCRYPTED FILE-----
setxkbmap fr bepo
feh --bg-fill ~/pictures/wallpaper.jpeg &
## Menu to edit the connexion
##nm-applet &
# Nice bar
#polybar &
redshift &
# Nice effets (transparency, shadow...)
#picom -b
## For ibus (japanese)
export GTK_IM_MODULES=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -drx
# Status bar with dwm
while true; do
xsetroot -name "$(date +"%A - %B %d, %H:%M")"
sleep 2
done &
# Recommanded by NVIDIA
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
exec dwm
-- Pull in the wezterm API
local wezterm = require("wezterm")
local config = wezterm.config_builder()
config.default_prog = { "nu" }
config.color_scheme = "GruvboxDark"
config.font = wezterm.font("Iosevka")
config.font_size = 14
config.enable_scroll_bar = true
local act = wezterm.action
-- Saner shortcuts for ergol (and homerow)
config.keys = {
{ key = "'", mods = "ALT|CTRL", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
{ key = "\\", mods = "ALT|CTRL", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
{ key = "w", mods = "ALT|CTRL", action = wezterm.action.CloseCurrentPane({ confirm = true }) },
}
return config
# [Created by task 3.4.1 6/14/2025 09:03:52]
data.location=/home/alex/.task
news.version=3.4.1
# To use the default location of the XDG directories,
# move this configuration file from ~/.taskrc to ~/.config/task/taskrc and update location config as follows:
#data.location=~/.local/share/task
#hooks.location=~/.config/task/hooks
# Color theme (uncomment one to use)
#include light-16.theme
#include light-256.theme
#include bubblegum-256.theme
#include dark-16.theme
#include dark-256.theme
#include dark-red-256.theme
#include dark-green-256.theme
#include dark-blue-256.theme
#include dark-violets-256.theme
#include dark-yellow-green.theme
include dark-gray-256.theme
#include dark-gray-blue-256.theme
#include solarized-dark-256.theme
#include solarized-light-256.theme
#include no-color.theme
context.work.read=+work
context.work.write=+work
context.home.read=+home
context.home.write=+home
context.research.read=+research
context.research.write=+research
context=home
# For movies
uda.rating.type = numeric
uda.rating.label = Rating
report.films.description = films seen
report.films.labels = Title,Rating,Watched on
report.films.columns = description,rating,end
report.films.filter = status:completed limit:page project:films
report.films.sort = end-
#!/usr/bin/env python3
###############################################################################
#
# Copyright 2016 - 2021, 2023, Gothenburg Bit Factory
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# https://www.opensource.org/licenses/mit-license.php
#
###############################################################################
import json
import subprocess
import sys
# Hook should extract all the following for use as Timewarrior tags:
# UUID
# Project
# Tags
# Description
# UDAs
try:
input_stream = sys.stdin.buffer
except AttributeError:
input_stream = sys.stdin
def extract_tags_from(json_obj):
# Extract attributes for use as tags.
tags = [json_obj['description']]
if 'project' in json_obj:
tags.append(json_obj['project'])
if 'tags' in json_obj:
if type(json_obj['tags']) is str:
# Usage of tasklib (e.g. in taskpirate) converts the tag list into a string
# If this is the case, convert it back into a list first
# See https://github.com/tbabej/taskpirate/issues/11
tags.extend(json_obj['tags'].split(','))
else:
tags.extend(json_obj['tags'])
return tags
def extract_annotation_from(json_obj):
if 'annotations' not in json_obj:
return '\'\''
return json_obj['annotations'][0]['description']
def main(old, new):
start_or_stop = ''
# Started task.
if 'start' in new and 'start' not in old:
start_or_stop = 'start'
# Stopped task.
elif ('start' not in new or 'end' in new) and 'start' in old:
start_or_stop = 'stop'
if start_or_stop:
tags = extract_tags_from(new)
subprocess.call(['timew', start_or_stop] + tags + [':yes'])
# Modifications to task other than start/stop
elif 'start' in new and 'start' in old:
old_tags = extract_tags_from(old)
new_tags = extract_tags_from(new)
if old_tags != new_tags:
subprocess.call(['timew', 'untag', '@1'] + old_tags + [':yes'])
subprocess.call(['timew', 'tag', '@1'] + new_tags + [':yes'])
old_annotation = extract_annotation_from(old)
new_annotation = extract_annotation_from(new)
if old_annotation != new_annotation:
subprocess.call(['timew', 'annotate', '@1', new_annotation])
if __name__ == "__main__":
old = json.loads(input_stream.readline().decode("utf-8", errors="replace"))
new = json.loads(input_stream.readline().decode("utf-8", errors="replace"))
print(json.dumps(new))
main(old, new)
# Database configuration
#
# The only value supported here is 'path' which should be the top-level
# directory where your mail currently exists and to where mail will be
# delivered in the future. Files should be individual email messages.
# Notmuch will store its database within a sub-directory of the path
# configured here named ".notmuch".
#
[database]
# Error if the default path is not set...
path=/home/alex/mail
[user]
name=Alexis Praga
primary_email=alexis@praga.dev
[new]
tags=new
[search]
[maildir]
IMAPAccount infomaniak
Host mail.infomaniak.com
Port 993
User alexis@praga.dev
Pass mosDyw-cufbem-4cymfa
SSLType IMAPS
IMAPStore info-remote
Account infomaniak
MaildirStore info-local
Path ~/mail/
Inbox ~/mail/INBOX/
Subfolders Verbatim
Channel info
Far :info-remote:
Near :info-local:
Patterns INBOX Archives Drafts Sent Spam Trash
Create Both
Expunge Both
SyncState *
text/html; w3m -I %{charset} -T text/html; copiousoutput;
Mise à jour
<async-shell-command "sudo emaint sync -a ; sudo emerge -auDN @world">
<async-shell-command "guix pull">
Projets
- {C-c a r} Revue hebdomadaire
- {C-c a w} Tâches en attente
---
title: {{title}}
tags: [draft]
---
{{content}}
# {{title}}
{{content}}
---
title: {{ format-date now }}
tags: [journal]
---
# zk configuration file
[notebook]
dir = "/home/alex/notes"
#
#
# Uncomment the properties you want to customize.
# NOTE SETTINGS
#
# Defines the default options used when generating new notes.
[note]
# Language used when writing notes.
# This is used to generate slugs or with date formats.
#language = "en"
# The default title used for new note, if no `--title` flag is provided.
#default-title = "Untitled"
# Template used to generate a note's filename, without extension.
filename = "{{slug title}}"
# Template used to generate a note's content.
# If not an absolute path or "~/unix/path", it's relative to .zk/templates/
template = "note.md"
# Path globs ignored while indexing existing notes.
#exclude = [
# "drafts/*",
# "log.md"
#]
# EXTRA VARIABLES
#
# A dictionary of variables you can use for any custom values when generating
# new notes. They are accessible in templates with {{extra.<key>}}
[extra]
#key = "value"
# GROUP OVERRIDES
#
# You can override global settings from [note] and [extra] for a particular
# group of notes by declaring a [group."<name>"] section.
#
# Specify the list of directories which will automatically belong to the group
# with the optional `paths` property.
#
# Omitting `paths` is equivalent to providing a single path equal to the name of
# the group. This can be useful to quickly declare a group by the name of the
# directory it applies to.
#[group."<NAME>"]
#paths = ["<DIR1>", "<DIR2>"]
#[group."<NAME>".note]
#filename = "{{format-date now}}"
#[group."<NAME>".extra]
#key = "value"
# MARKDOWN SETTINGS
[format.markdown]
# Format used to generate links between notes.
# Either "wiki", "markdown" or a custom template. Default is "markdown".
#link-format = "wiki"
# Indicates whether a link's path will be percent-encoded.
# Defaults to true for "markdown" format and false for "wiki" format.
#link-encode-path = true
# Indicates whether a link's path file extension will be removed.
# Defaults to true.
#link-drop-extension = true
# Enable support for #hashtags.
hashtags = false
# Enable support for :colon:separated:tags:.
colon-tags = false
# Enable support for Bear's #multi-word tags#
# Hashtags must be enabled for multi-word tags to work.
multiword-tags = false
# EXTERNAL TOOLS
[tool]
# Default editor used to open notes. When not set, the EDITOR or VISUAL
# environment variables are used.
#editor = "vim"
# Pager used to scroll through long output. If you want to disable paging
# altogether, set it to an empty string "".
#pager = "less -FIRX"
# Command used to preview a note during interactive fzf mode.
# Set it to an empty string "" to disable preview.
# bat is a great tool to render Markdown document with syntax highlighting.
#https://github.com/sharkdp/bat
#fzf-preview = "bat -p --color always {-1}"
# LSP
#
# Configure basic editor integration for LSP-compatible editors.
# See https://github.com/zk-org/zk/blob/main/docs/editors-integration.md
#
[lsp]
[lsp.diagnostics]
# Each diagnostic can have for value: none, hint, info, warning, error
# Report titles of wiki-links as hints.
#wiki-title = "hint"
# Warn for dead links between notes.
dead-link = "error"
[lsp.completion]
# Customize the completion pop-up of your LSP client.
# Show the note title in the completion pop-up, or fallback on its path if empty.
#note-label = "{{title-or-path}}"
# Filter out the completion pop-up using the note title or its path.
#note-filter-text = "{{title}} {{path}}"
# Show the note filename without extension as detail.
#note-detail = "{{filename-stem}}"
# NAMED FILTERS
#
# A named filter is a set of note filtering options used frequently together.
#
[filter]
# Matches the notes created the last two weeks. For example:
# $ zk list recents --limit 15
# $ zk edit recents --interactive
#recents = "--sort created- --created-after 'last two weeks'"
# COMMAND ALIASES
#
# Aliases are user commands called with `zk <alias> [<flags>] [<args>]`.
#
# The alias will be executed with `$SHELL -c`, please refer to your shell's
# man page to see the available syntax. In most shells:
# * $@ can be used to expand all the provided flags and arguments
# * you can pipe commands together with the usual | character
#
[group.daily]
# Directories listed here will automatically use this group when creating notes.
paths = ["journal"]
[group.daily.note]
# %Y-%m-%d is actually the default format, so you could use {{format-date now}} instead.
filename = "{{format-date now '%Y-%m-%d'}}"
extension = "md"
template = "daily.md"
[alias]
# Here are a few aliases to get you started.
# Shortcut to a command.
#ls = "zk list $@"
# Default flags for an existing command.
#list = "zk list --quiet $@"
# Edit the last modified note.
#editlast = "zk edit --limit 1 --sort modified- $@"
# Edit the notes selected interactively among the notes created the last two weeks.
# This alias doesn't take any argument, so we don't use $@.
#recent = "zk edit --sort created- --created-after 'last two weeks' --interactive"
# Print paths separated with colons for the notes found with the given
# arguments. This can be useful to expand a complex search query into a flag
# taking only paths. For example:
# zk list --link-to "`zk path -m potatoe`"
#path = "zk list --quiet --format {{path}} --delimiter , $@"
# Show a random note.
#lucky = "zk list --quiet --format full --sort random --limit 1"
# Returns the Git history for the notes found with the given arguments.
# Note the use of a pipe and the location of $@.
#hist = "zk list --format path --delimiter0 --quiet $@ | xargs -t -0 git log --patch --"
# Edit this configuration file.
#conf = '$EDITOR "$ZK_NOTEBOOK_DIR/.zk/config.toml"'
themes {
rose-pine {
text_unselected {
base 224 222 244
background 33 32 46
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
text_selected {
base 224 222 244
background 64 61 82
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
ribbon_selected {
base 33 32 46
background 49 116 143
emphasis_0 246 193 119
emphasis_1 235 188 186
emphasis_2 196 167 231
emphasis_3 156 207 216
}
ribbon_unselected {
base 25 23 36
background 224 222 244
emphasis_0 246 193 119
emphasis_1 235 188 186
emphasis_2 196 167 231
emphasis_3 156 207 216
}
table_title {
base 49 116 143
background 0 0 0
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
table_cell_selected {
base 224 222 244
background 64 61 82
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
table_cell_unselected {
base 224 222 244
background 33 32 46
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
list_selected {
base 224 222 244
background 64 61 82
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
list_unselected {
base 224 222 244
background 33 32 46
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 49 116 143
emphasis_3 196 167 231
}
frame_selected {
base 49 116 143
background 0 0 0
emphasis_0 235 188 186
emphasis_1 156 207 216
emphasis_2 196 167 231
emphasis_3 0 0 0
}
frame_highlight {
base 235 188 186
background 0 0 0
emphasis_0 235 188 186
emphasis_1 235 188 186
emphasis_2 235 188 186
emphasis_3 235 188 186
}
exit_code_success {
base 49 116 143
background 0 0 0
emphasis_0 156 207 216
emphasis_1 33 32 46
emphasis_2 196 167 231
emphasis_3 49 116 143
}
exit_code_error {
base 235 111 146
background 0 0 0
emphasis_0 246 193 119
emphasis_1 0 0 0
emphasis_2 0 0 0
emphasis_3 0 0 0
}
multiplayer_user_colors {
player_1 196 167 231
player_2 49 116 143
player_3 235 188 186
player_4 246 193 119
player_5 156 207 216
player_6 235 111 146
player_7 0 0 0
player_8 0 0 0
player_9 0 0 0
player_10 0 0 0
}
}
}
themes {
rose-pine-moon {
text_unselected {
base 224 222 244
background 42 40 62
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
text_selected {
base 224 222 244
background 68 65 90
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
ribbon_selected {
base 42 40 62
background 62 143 176
emphasis_0 246 193 119
emphasis_1 234 154 151
emphasis_2 196 167 231
emphasis_3 156 207 216
}
ribbon_unselected {
base 35 33 54
background 224 222 244
emphasis_0 246 193 119
emphasis_1 234 154 151
emphasis_2 196 167 231
emphasis_3 156 207 216
}
table_title {
base 62 143 176
background 0 0 0
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
table_cell_selected {
base 224 222 244
background 68 65 90
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
table_cell_unselected {
base 224 222 244
background 42 40 62
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
list_selected {
base 224 222 244
background 68 65 90
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
list_unselected {
base 224 222 244
background 42 40 62
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 62 143 176
emphasis_3 196 167 231
}
frame_selected {
base 62 143 176
background 0 0 0
emphasis_0 234 154 151
emphasis_1 156 207 216
emphasis_2 196 167 231
emphasis_3 0 0 0
}
frame_highlight {
base 234 154 151
background 0 0 0
emphasis_0 234 154 151
emphasis_1 234 154 151
emphasis_2 234 154 151
emphasis_3 234 154 151
}
exit_code_success {
base 62 143 176
background 0 0 0
emphasis_0 156 207 216
emphasis_1 42 40 62
emphasis_2 196 167 231
emphasis_3 62 143 176
}
exit_code_error {
base 235 111 146
background 0 0 0
emphasis_0 246 193 119
emphasis_1 0 0 0
emphasis_2 0 0 0
emphasis_3 0 0 0
}
multiplayer_user_colors {
player_1 196 167 231
player_2 62 143 176
player_3 234 154 151
player_4 246 193 119
player_5 156 207 216
player_6 235 111 146
player_7 0 0 0
player_8 0 0 0
player_9 0 0 0
player_10 0 0 0
}
}
}
themes {
rose-pine-dawn {
text_unselected {
base 87 82 121
background 244 237 232
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
text_selected {
base 87 82 121
background 223 218 217
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
ribbon_selected {
base 244 237 232
background 40 105 131
emphasis_0 234 157 52
emphasis_1 215 130 126
emphasis_2 144 122 169
emphasis_3 86 148 159
}
ribbon_unselected {
base 250 244 237
background 87 82 121
emphasis_0 234 157 52
emphasis_1 215 130 126
emphasis_2 144 122 169
emphasis_3 86 148 159
}
table_title {
base 40 105 131
background 0 0 0
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
table_cell_selected {
base 87 82 121
background 223 218 217
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
table_cell_unselected {
base 87 82 121
background 244 237 232
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
list_selected {
base 87 82 121
background 223 218 217
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
list_unselected {
base 87 82 121
background 244 237 232
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 40 105 131
emphasis_3 144 122 169
}
frame_selected {
base 40 105 131
background 0 0 0
emphasis_0 215 130 126
emphasis_1 86 148 159
emphasis_2 144 122 169
emphasis_3 0 0 0
}
frame_highlight {
base 215 130 126
background 0 0 0
emphasis_0 215 130 126
emphasis_1 215 130 126
emphasis_2 215 130 126
emphasis_3 215 130 126
}
exit_code_success {
base 40 105 131
background 0 0 0
emphasis_0 86 148 159
emphasis_1 244 237 232
emphasis_2 144 122 169
emphasis_3 40 105 131
}
exit_code_error {
base 180 99 122
background 0 0 0
emphasis_0 234 157 52
emphasis_1 0 0 0
emphasis_2 0 0 0
emphasis_3 0 0 0
}
multiplayer_user_colors {
player_1 144 122 169
player_2 40 105 131
player_3 215 130 126
player_4 234 157 52
player_5 86 148 159
player_6 180 99 122
player_7 0 0 0
player_8 0 0 0
player_9 0 0 0
player_10 0 0 0
}
}
}
//
// THIS FILE WAS AUTOGENERATED BY ZELLIJ, THE PREVIOUS FILE AT THIS LOCATION WAS COPIED TO: /home/alex/.config/zellij/config.kdl.bak
//
keybinds clear-defaults=true {
locked {
bind "Ctrl g" { SwitchToMode "normal"; }
}
pane {
bind "left" { MoveFocus "left"; }
bind "down" { MoveFocus "down"; }
bind "up" { MoveFocus "up"; }
bind "right" { MoveFocus "right"; }
bind "c" { SwitchToMode "renamepane"; PaneNameInput 0; }
bind "d" { NewPane "down"; SwitchToMode "normal"; }
bind "e" { TogglePaneEmbedOrFloating; SwitchToMode "normal"; }
bind "f" { ToggleFocusFullscreen; SwitchToMode "normal"; }
bind "h" { MoveFocus "left"; }
bind "i" { TogglePanePinned; SwitchToMode "normal"; }
bind "j" { MoveFocus "down"; }
bind "k" { MoveFocus "up"; }
bind "l" { MoveFocus "right"; }
bind "n" { NewPane; SwitchToMode "normal"; }
bind "p" { SwitchFocus; }
bind "Ctrl p" { SwitchToMode "normal"; }
bind "r" { NewPane "right"; SwitchToMode "normal"; }
bind "w" { ToggleFloatingPanes; SwitchToMode "normal"; }
bind "z" { TogglePaneFrames; SwitchToMode "normal"; }
}
tab {
bind "left" { GoToPreviousTab; }
bind "down" { GoToNextTab; }
bind "up" { GoToPreviousTab; }
bind "right" { GoToNextTab; }
bind "1" { GoToTab 1; SwitchToMode "normal"; }
bind "2" { GoToTab 2; SwitchToMode "normal"; }
bind "3" { GoToTab 3; SwitchToMode "normal"; }
bind "4" { GoToTab 4; SwitchToMode "normal"; }
bind "5" { GoToTab 5; SwitchToMode "normal"; }
bind "6" { GoToTab 6; SwitchToMode "normal"; }
bind "7" { GoToTab 7; SwitchToMode "normal"; }
bind "8" { GoToTab 8; SwitchToMode "normal"; }
bind "9" { GoToTab 9; SwitchToMode "normal"; }
bind "[" { BreakPaneLeft; SwitchToMode "normal"; }
bind "]" { BreakPaneRight; SwitchToMode "normal"; }
bind "b" { BreakPane; SwitchToMode "normal"; }
bind "h" { GoToPreviousTab; }
bind "j" { GoToNextTab; }
bind "k" { GoToPreviousTab; }
bind "l" { GoToNextTab; }
bind "n" { NewTab; SwitchToMode "normal"; }
bind "r" { SwitchToMode "renametab"; TabNameInput 0; }
bind "s" { ToggleActiveSyncTab; SwitchToMode "normal"; }
bind "Ctrl t" { SwitchToMode "normal"; }
bind "x" { CloseTab; SwitchToMode "normal"; }
bind "tab" { ToggleTab; }
}
resize {
bind "left" { Resize "Increase left"; }
bind "down" { Resize "Increase down"; }
bind "up" { Resize "Increase up"; }
bind "right" { Resize "Increase right"; }
bind "+" { Resize "Increase"; }
bind "-" { Resize "Decrease"; }
bind "=" { Resize "Increase"; }
bind "H" { Resize "Decrease left"; }
bind "J" { Resize "Decrease down"; }
bind "K" { Resize "Decrease up"; }
bind "L" { Resize "Decrease right"; }
bind "h" { Resize "Increase left"; }
bind "j" { Resize "Increase down"; }
bind "k" { Resize "Increase up"; }
bind "l" { Resize "Increase right"; }
bind "Ctrl n" { SwitchToMode "normal"; }
}
move {
bind "left" { MovePane "left"; }
bind "down" { MovePane "down"; }
bind "up" { MovePane "up"; }
bind "right" { MovePane "right"; }
bind "h" { MovePane "left"; }
bind "Ctrl h" { SwitchToMode "normal"; }
bind "j" { MovePane "down"; }
bind "k" { MovePane "up"; }
bind "l" { MovePane "right"; }
bind "n" { MovePane; }
bind "p" { MovePaneBackwards; }
bind "tab" { MovePane; }
}
scroll {
bind "e" { EditScrollback; SwitchToMode "normal"; }
bind "s" { SwitchToMode "entersearch"; SearchInput 0; }
}
search {
bind "c" { SearchToggleOption "CaseSensitivity"; }
bind "n" { Search "down"; }
bind "o" { SearchToggleOption "WholeWord"; }
bind "p" { Search "up"; }
bind "w" { SearchToggleOption "Wrap"; }
}
session {
bind "a" {
LaunchOrFocusPlugin "zellij:about" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "c" {
LaunchOrFocusPlugin "configuration" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "Ctrl o" { SwitchToMode "normal"; }
bind "p" {
LaunchOrFocusPlugin "plugin-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
bind "w" {
LaunchOrFocusPlugin "zellij:session-manager" {
floating true
move_to_focused_tab true
}
SwitchToMode "normal"
}
}
shared_except "locked" {
bind "Alt left" { MoveFocusOrTab "left"; }
bind "Alt down" { MoveFocus "down"; }
bind "Alt up" { MoveFocus "up"; }
bind "Alt right" { MoveFocusOrTab "right"; }
bind "Alt +" { Resize "Increase"; }
bind "Alt -" { Resize "Decrease"; }
bind "Alt =" { Resize "Increase"; }
bind "Alt [" { PreviousSwapLayout; }
bind "Alt ]" { NextSwapLayout; }
bind "Alt f" { ToggleFloatingPanes; }
bind "Ctrl g" { SwitchToMode "locked"; }
bind "Alt h" { MoveFocusOrTab "left"; }
bind "Alt i" { MoveTab "left"; }
bind "Alt j" { MoveFocus "down"; }
bind "Alt k" { MoveFocus "up"; }
bind "Alt l" { MoveFocusOrTab "right"; }
bind "Alt n" { NewPane; }
bind "Alt o" { MoveTab "right"; }
bind "Ctrl q" { Quit; }
}
shared_except "locked" "move" {
bind "Ctrl h" { SwitchToMode "move"; }
}
shared_except "locked" "session" {
bind "Ctrl o" { SwitchToMode "session"; }
}
shared_except "locked" "scroll" "search" "tmux" {
bind "Ctrl b" { SwitchToMode "tmux"; }
}
shared_except "locked" "scroll" "search" {
bind "Ctrl s" { SwitchToMode "scroll"; }
}
shared_except "locked" "tab" {
bind "Ctrl t" { SwitchToMode "tab"; }
}
shared_except "locked" "pane" {
bind "Ctrl p" { SwitchToMode "pane"; }
}
shared_except "locked" "resize" {
bind "Ctrl n" { SwitchToMode "resize"; }
}
shared_except "normal" "locked" "entersearch" {
bind "enter" { SwitchToMode "normal"; }
}
shared_except "normal" "locked" "entersearch" "renametab" "renamepane" {
bind "esc" { SwitchToMode "normal"; }
}
shared_among "pane" "tmux" {
bind "x" { CloseFocus; SwitchToMode "normal"; }
}
shared_among "scroll" "search" {
bind "PageDown" { PageScrollDown; }
bind "PageUp" { PageScrollUp; }
bind "left" { PageScrollUp; }
bind "down" { ScrollDown; }
bind "up" { ScrollUp; }
bind "right" { PageScrollDown; }
bind "Ctrl b" { PageScrollUp; }
bind "Ctrl c" { ScrollToBottom; SwitchToMode "normal"; }
bind "d" { HalfPageScrollDown; }
bind "Ctrl f" { PageScrollDown; }
bind "h" { PageScrollUp; }
bind "j" { ScrollDown; }
bind "k" { ScrollUp; }
bind "l" { PageScrollDown; }
bind "Ctrl s" { SwitchToMode "normal"; }
bind "u" { HalfPageScrollUp; }
}
entersearch {
bind "Ctrl c" { SwitchToMode "scroll"; }
bind "esc" { SwitchToMode "scroll"; }
bind "enter" { SwitchToMode "search"; }
}
renametab {
bind "esc" { UndoRenameTab; SwitchToMode "tab"; }
}
shared_among "renametab" "renamepane" {
bind "Ctrl c" { SwitchToMode "normal"; }
}
renamepane {
bind "esc" { UndoRenamePane; SwitchToMode "pane"; }
}
shared_among "session" "tmux" {
bind "d" { Detach; }
}
tmux {
bind "left" { MoveFocus "left"; SwitchToMode "normal"; }
bind "down" { MoveFocus "down"; SwitchToMode "normal"; }
bind "up" { MoveFocus "up"; SwitchToMode "normal"; }
bind "right" { MoveFocus "right"; SwitchToMode "normal"; }
bind "space" { NextSwapLayout; }
bind "\"" { NewPane "down"; SwitchToMode "normal"; }
bind "%" { NewPane "right"; SwitchToMode "normal"; }
bind "," { SwitchToMode "renametab"; }
bind "[" { SwitchToMode "scroll"; }
bind "Ctrl b" { Write 2; SwitchToMode "normal"; }
bind "c" { NewTab; SwitchToMode "normal"; }
bind "h" { MoveFocus "left"; SwitchToMode "normal"; }
bind "j" { MoveFocus "down"; SwitchToMode "normal"; }
bind "k" { MoveFocus "up"; SwitchToMode "normal"; }
bind "l" { MoveFocus "right"; SwitchToMode "normal"; }
bind "n" { GoToNextTab; SwitchToMode "normal"; }
bind "o" { FocusNextPane; }
bind "p" { GoToPreviousTab; SwitchToMode "normal"; }
bind "z" { ToggleFocusFullscreen; SwitchToMode "normal"; }
}
}
// Plugin aliases - can be used to change the implementation of Zellij
// changing these requires a restart to take effect
plugins {
about location="zellij:about"
compact-bar location="zellij:compact-bar"
configuration location="zellij:configuration"
filepicker location="zellij:strider" {
cwd "/"
}
plugin-manager location="zellij:plugin-manager"
session-manager location="zellij:session-manager"
status-bar location="zellij:status-bar"
strider location="zellij:strider"
tab-bar location="zellij:tab-bar"
welcome-screen location="zellij:session-manager" {
welcome_screen true
}
}
// Plugins to load in the background when a new session starts
// eg. "file:/path/to/my-plugin.wasm"
// eg. "https://example.com/my-plugin.wasm"
load_plugins {
}
// Use a simplified UI without special fonts (arrow glyphs)
// Options:
// - true
// - false (Default)
//
// simplified_ui true
// Choose the theme that is specified in the themes section.
// Default: default
//
theme "catppuccin-latte"
// Choose the base input mode of zellij.
// Default: normal
//
// default_mode "locked"
// Choose the path to the default shell that zellij will use for opening new panes
// Default: $SHELL
//
default_shell "nu"
// Choose the path to override cwd that zellij will use for opening new panes
//
// default_cwd "/tmp"
// The name of the default layout to load on startup
// Default: "default"
//
// default_layout "compact"
// The folder in which Zellij will look for layouts
// (Requires restart)
//
// layout_dir "/tmp"
// The folder in which Zellij will look for themes
// (Requires restart)
//
// theme_dir "/tmp"
// Toggle enabling the mouse mode.
// On certain configurations, or terminals this could
// potentially interfere with copying text.
// Options:
// - true (default)
// - false
//
// mouse_mode false
// Toggle having pane frames around the panes
// Options:
// - true (default, enabled)
// - false
//
// pane_frames false
// When attaching to an existing session with other users,
// should the session be mirrored (true)
// or should each user have their own cursor (false)
// (Requires restart)
// Default: false
//
// mirror_session true
// Choose what to do when zellij receives SIGTERM, SIGINT, SIGQUIT or SIGHUP
// eg. when terminal window with an active zellij session is closed
// (Requires restart)
// Options:
// - detach (Default)
// - quit
//
// on_force_close "quit"
// Configure the scroll back buffer size
// This is the number of lines zellij stores for each pane in the scroll back
// buffer. Excess number of lines are discarded in a FIFO fashion.
// (Requires restart)
// Valid values: positive integers
// Default value: 10000
//
// scroll_buffer_size 10000
// Provide a command to execute when copying text. The text will be piped to
// the stdin of the program to perform the copy. This can be used with
// terminal emulators which do not support the OSC 52 ANSI control sequence
// that will be used by default if this option is not set.
// Examples:
//
// copy_command "xclip -selection clipboard" // x11
// copy_command "wl-copy" // wayland
// copy_command "pbcopy" // osx
//
// copy_command "pbcopy"
// Choose the destination for copied text
// Allows using the primary selection buffer (on x11/wayland) instead of the system clipboard.
// Does not apply when using copy_command.
// Options:
// - system (default)
// - primary
//
// copy_clipboard "primary"
// Enable automatic copying (and clearing) of selection when releasing mouse
// Default: true
//
// copy_on_select true
// Path to the default editor to use to edit pane scrollbuffer
// Default: $EDITOR or $VISUAL
// scrollback_editor "/usr/bin/vim"
// A fixed name to always give the Zellij session.
// Consider also setting `attach_to_session true,`
// otherwise this will error if such a session exists.
// Default: <RANDOM>
//
// session_name "My singleton session"
// When `session_name` is provided, attaches to that session
// if it is already running or creates it otherwise.
// Default: false
//
// attach_to_session true
// Toggle between having Zellij lay out panes according to a predefined set of layouts whenever possible
// Options:
// - true (default)
// - false
//
// auto_layout false
// Whether sessions should be serialized to the cache folder (including their tabs/panes, cwds and running commands) so that they can later be resurrected
// Options:
// - true (default)
// - false
//
// session_serialization false
// Whether pane viewports are serialized along with the session, default is false
// Options:
// - true
// - false (default)
//
// serialize_pane_viewport false
// Scrollback lines to serialize along with the pane viewport when serializing sessions, 0
// defaults to the scrollback size. If this number is higher than the scrollback size, it will
// also default to the scrollback size. This does nothing if `serialize_pane_viewport` is not true.
//
// scrollback_lines_to_serialize 10000
// Enable or disable the rendering of styled and colored underlines (undercurl).
// May need to be disabled for certain unsupported terminals
// (Requires restart)
// Default: true
//
// styled_underlines false
// How often in seconds sessions are serialized
//
// serialization_interval 10000
// Enable or disable writing of session metadata to disk (if disabled, other sessions might not know
// metadata info on this session)
// (Requires restart)
// Default: false
//
// disable_session_metadata false
// Enable or disable support for the enhanced Kitty Keyboard Protocol (the host terminal must also support it)
// (Requires restart)
// Default: true (if the host terminal supports it)
//
// support_kitty_keyboard_protocol false
// Whether to stack panes when resizing beyond a certain size
// Default: true
//
// stacked_resize false
// Whether to show tips on startup
// Default: true
//
show_startup_tips false
// Whether to show release notes on first version run
// Default: true
//
// show_release_notes false
// Zed settings
//
// For information on how to configure Zed, see the Zed
// documentation: https://zed.dev/docs/configuring-zed
//
// To see all of Zed's default settings without changing your
// custom settings, run `zed: open default settings` from the
// command palette (cmd-shift-p / ctrl-shift-p)
{
"ssh_connections": [
{
"host": "meso",
"projects": [
{
"paths": ["//Work/Users/apraga/"]
},
{
"paths": ["~/vcf2parquet"]
}
]
}
],
"assistant": {
"default_model": {
"provider": "copilot_chat",
"model": "gpt-4o"
},
"version": "2"
},
"vim_mode": true,
"ui_font_size": 18,
"buffer_font_size": 18,
"buffer_font_family": "Iosevka Term",
"theme": {
"mode": "dark",
"light": "Catppuccin Latte",
"dark": "Catppuccin Latte"
},
"relative_line_numbers": true
}
// Zed keymap
//
// For information on binding keys, see the Zed
// documentation: https://zed.dev/docs/key-bindings
//
// To see the default key bindings run `zed: open default keymap`
// from the command palette.
[
{
"context": "Workspace",
"bindings": {
// "shift shift": "file_finder::Toggle"
}
},
{
"context": "Editor",
"bindings": {
// "j k": ["workspace::SendKeystrokes", "escape"]
}
},
{
"context": "Editor && VimControl && !VimWaiting && !menu",
"bindings": {
"space f f": "file_finder::Toggle",
"space o": "tab_switcher::Toggle",
"space d": "workspace::ToggleLeftDock",
"space /": "workspace::NewSearch",
"n": "search::SelectNextMatch",
"shift-n": "search::SelectPrevMatch",
"space t": "workspace::NewCenterTerminal",
"g b": "editor::ToggleComments",
"space f s": "workspace::Save",
"space c": "pane::CloseActiveItem"
}
}
]
* {
/* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
font-size: 13px;
}
window#waybar {
background-color: rgba(43, 48, 59, 0.5);
border-bottom: 3px solid rgba(100, 114, 125, 0.5);
color: #ffffff;
transition-property: background-color;
transition-duration: .5s;
}
window#waybar.hidden {
opacity: 0.2;
}
/*
window#waybar.empty {
background-color: transparent;
}
window#waybar.solo {
background-color: #FFFFFF;
}
*/
window#waybar.termite {
background-color: #3F3F3F;
}
window#waybar.chromium {
background-color: #000000;
border: none;
}
button {
/* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
/* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
box-shadow: inset 0 -3px #ffffff;
}
/* you can set a style on hover for any module like this */
#pulseaudio:hover {
background-color: #a37800;
}
#workspaces button {
padding: 0 5px;
background-color: transparent;
color: #ffffff;
}
#workspaces button:hover {
background: rgba(0, 0, 0, 0.2);
}
#workspaces button.focused {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#workspaces button.urgent {
background-color: #eb4d4b;
}
#mode {
background-color: #64727D;
box-shadow: inset 0 -3px #ffffff;
}
#clock,
#battery,
#cpu,
#memory,
#disk,
#temperature,
#backlight,
#network,
#pulseaudio,
#wireplumber,
#custom-media,
#tray,
#mode,
#idle_inhibitor,
#scratchpad,
#power-profiles-daemon,
#mpd {
padding: 0 10px;
color: #ffffff;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#clock {
background-color: #64727D;
}
#battery {
background-color: #ffffff;
color: #000000;
}
#battery.charging, #battery.plugged {
color: #ffffff;
background-color: #26A65B;
}
@keyframes blink {
to {
background-color: #ffffff;
color: #000000;
}
}
/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: steps(12);
animation-iteration-count: infinite;
animation-direction: alternate;
}
#power-profiles-daemon {
padding-right: 15px;
}
#power-profiles-daemon.performance {
background-color: #f53c3c;
color: #ffffff;
}
#power-profiles-daemon.balanced {
background-color: #2980b9;
color: #ffffff;
}
#power-profiles-daemon.power-saver {
background-color: #2ecc71;
color: #000000;
}
label:focus {
background-color: #000000;
}
#cpu {
background-color: #2ecc71;
color: #000000;
}
#memory {
background-color: #9b59b6;
}
#disk {
background-color: #964B00;
}
#backlight {
background-color: #90b1b1;
}
#network {
background-color: #2980b9;
}
#network.disconnected {
background-color: #f53c3c;
}
#pulseaudio {
background-color: #f1c40f;
color: #000000;
}
#pulseaudio.muted {
background-color: #90b1b1;
color: #2a5c45;
}
#wireplumber {
background-color: #fff0f5;
color: #000000;
}
#wireplumber.muted {
background-color: #f53c3c;
}
#custom-media {
background-color: #66cc99;
color: #2a5c45;
min-width: 100px;
}
#custom-media.custom-spotify {
background-color: #66cc99;
}
#custom-media.custom-vlc {
background-color: #ffa000;
}
#temperature {
background-color: #f0932b;
}
#temperature.critical {
background-color: #eb4d4b;
}
#tray {
background-color: #2980b9;
}
#tray > .passive {
-gtk-icon-effect: dim;
}
#tray > .needs-attention {
-gtk-icon-effect: highlight;
background-color: #eb4d4b;
}
#idle_inhibitor {
background-color: #2d3436;
}
#idle_inhibitor.activated {
background-color: #ecf0f1;
color: #2d3436;
}
#mpd {
background-color: #66cc99;
color: #2a5c45;
}
#mpd.disconnected {
background-color: #f53c3c;
}
#mpd.stopped {
background-color: #90b1b1;
}
#mpd.paused {
background-color: #51a37a;
}
#language {
background: #00b093;
color: #740864;
padding: 0 5px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state {
background: #97e1ad;
color: #000000;
padding: 0 0px;
margin: 0 5px;
min-width: 16px;
}
#keyboard-state > label {
padding: 0 5px;
}
#keyboard-state > label.locked {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad {
background: rgba(0, 0, 0, 0.2);
}
#scratchpad.empty {
background-color: transparent;
}
#privacy {
padding: 0;
}
#privacy-item {
padding: 0 5px;
color: white;
}
#privacy-item.screenshare {
background-color: #cf5700;
}
#privacy-item.audio-in {
background-color: #1ca000;
}
#privacy-item.audio-out {
background-color: #0069d4;
}
// -*- mode: jsonc -*-
{
// "layer": "top", // Waybar at top layer
// "position": "bottom", // Waybar position (top|bottom|left|right)
"height": 30, // Waybar height (to be removed for auto height)
// "width": 1280, // Waybar width
"spacing": 4, // Gaps between modules (4px)
// Choose the order of the modules
"modules-left": [
"hyprland/workspaces",
"sway/mode",
"sway/scratchpad",
"custom/media"
],
"modules-center": [
"sway/window"
],
"modules-right": [
"mpd",
"idle_inhibitor",
"pulseaudio",
"network",
"power-profiles-daemon",
"cpu",
"memory",
"temperature",
"backlight",
"keyboard-state",
"sway/language",
"battery",
"battery#bat2",
"clock",
"tray"
],
// Modules configuration
// "hyprland/workspaces": {
// "disable-scroll": true,
// "all-outputs": true,
// "warp-on-scroll": false,
// "format": "{name}: {icon}",
// "format-icons": {
// "1": "",
// "2": "",
// "3": "",
// "4": "",
// "5": "",
// "urgent": "",
// "focused": "",
// "default": ""
// }
// },
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"sway/scratchpad": {
"format": "{icon} {count}",
"show-empty": false,
"format-icons": ["", ""],
"tooltip": true,
"tooltip-format": "{app}: {title}"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "Disconnected ",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 5,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
// "icon-size": 21,
"spacing": 10
},
"clock": {
// "timezone": "America/New_York",
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format-alt": "{:%Y-%m-%d}"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
// "good": 95,
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-full": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "",
"balanced": "",
"power-saver": ""
}
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
}
}
set-option -g default-shell /usr/bin/nu
run ~/.config/tmux/plugins/catppuccin/tmux/catppuccin.tmux
# Advised by neovim :checkhealth
set-option -a terminal-features 'alacritty:RGB'
/usr/lib/systemd/user/wireplumber.service
[Unit]
Description=SSH key agent
[Service]
Type=simple
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
[Install]
WantedBy=default.target
[Unit]
Description=Kanata keyboard remapper
Documentation=https://github.com/jtroo/kanata
[Service]
Environment=PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/bin
Environment=DISPLAY=:0
Environment=HOME=/home/alex
Type=simple
ExecStart=/home/alex/.cargo/bin/kanata --cfg /home/alex/arsenik/kanata.kbd
Restart=no
[Install]
WantedBy=default.target
[Unit]
Description=Emacs text editor
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
[Service]
Type=notify
# Avoid ssh-passphrase in emacs, started by another systmed. ssh-add is in ~/.bas_profil
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
#ExecStart=/usr/bin/emacs --fg-daemon
ExecStart=bash -c '. /home/alex/.guix-profile/etc/profile ; emacs --fg-daemon'
# Emacs will exit with status 15 after having received SIGTERM, which
# is the default "KillSignal" value systemd uses to stop services.
SuccessExitStatus=15
# The location of the SSH auth socket varies by distribution, and some
# set it from PAM, so don't override by default.
# Environment=SSH_AUTH_SOCK=%t/keyring/ssh
Restart=on-failure
[Install]
WantedBy=default.target
# Windows key
set $mod Mod4
# Home row direction keys, like vim
set $left h
set $down j
set $up k
set $right l
# Your preferred terminal emulator
set $term alacritty
# Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on.
set $menu dmenu_path | dmenu | xargs swaymsg exec --
### Bepo keyboard
input type:keyboard {
xkb_layout "fr"
xkb_variant "bepo"
}
### Output configuration
# wallpaper
# Must be a .png (default compilatin option)
output * bg /home/alex/pictures/wallpaper.png fill
exec wlsunset -l 47.5104 -L 6.7985
## Key bindings
#
# Basics:
#
# Start a terminal
bindsym $mod+Return exec $term
# Kill focused window
bindsym $mod+Shift+q kill
# Start your launcher
bindsym $mod+d exec $menu
# Drag floating windows by holding down $mod and left mouse button.
# Resize them with right mouse button + $mod.
# Despite the name, also works for non-floating windows.
# Change normal to inverse to use left mouse button for resizing and right
# mouse button for dragging.
floating_modifier $mod normal
# Reload the configuration file
bindsym $mod+Shift+c reload
# Exit sway (logs you out of your Wayland session)
bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'
#
# Moving around:
#
# Move your focus around
bindsym $mod+$left focus left
bindsym $mod+$down focus down
bindsym $mod+$up focus up
bindsym $mod+$right focus right
# Or use $mod+[up|down|left|right]
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Move the focused window with the same, but add Shift
bindsym $mod+Shift+$left move left
bindsym $mod+Shift+$down move down
bindsym $mod+Shift+$up move up
bindsym $mod+Shift+$right move right
# Ditto, with arrow keys
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
#
# Workspaces (bepo)
# Switch to workspace
bindsym $mod+quotedbl workspace 1
bindsym $mod+guillemotleft workspace 2
bindsym $mod+guillemotright workspace 3
bindsym $mod+parenleft workspace 4
bindsym $mod+parenright workspace 5
bindsym $mod+at workspace 6
bindsym $mod+plus workspace 7
# Move focused container to workspace
bindsym $mod+Shift+quotedbl move container to workspace number 1
bindsym $mod+Shift+guillemotleft move container to workspace number 2
bindsym $mod+Shift+guillemotright move container to workspace number 3
bindsym $mod+Shift+parenleft move container to workspace number 4
bindsym $mod+Shift+parenright move container to workspace number 5
bindsym $mod+Shift+at move container to workspace number 6
bindsym $mod+Shift+plus move container to workspace number 7
# Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default.
#
# Layout stuff:
#
# You can "split" the current object of your focus with
# $mod+b or $mod+v, for horizontal and vertical splits
# respectively.
bindsym $mod+b splith
bindsym $mod+v splitv
# Switch the current container between different layout styles
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
# Make the current focus fullscreen
bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode
bindsym $mod+Shift+space floating toggle
# Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle
# Move focus to the parent container
bindsym $mod+a focus parent
#
# Scratchpad:
#
# Sway has a "scratchpad", which is a bag of holding for windows.
# You can send windows there and get them back later.
# Move the currently focused window to the scratchpad
bindsym $mod+Shift+minus move scratchpad
# Show the next scratchpad window or hide the focused scratchpad window.
# If there are multiple scratchpad windows, this command cycles through them.
bindsym $mod+minus scratchpad show
#
# Resizing containers:
#
mode "resize" {
# left will shrink the containers width
# right will grow the containers width
# up will shrink the containers height
# down will grow the containers height
bindsym $left resize shrink width 10px
bindsym $down resize grow height 10px
bindsym $up resize shrink height 10px
bindsym $right resize grow width 10px
# Ditto, with arrow keys
bindsym Left resize shrink width 10px
bindsym Down resize grow height 10px
bindsym Up resize shrink height 10px
bindsym Right resize grow width 10px
# Return to default mode
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+r mode "resize"
bindsym $mod+Shift+f exec firefox
#
# Status Bar:
#
# Read `man 5 sway-bar` for more information about this section.
bar {
position top
# When the status_command prints a new line to stdout, swaybar updates.
# The default just shows the current date and time.
status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done
colors {
statusline #ffffff
background #323232
inactive_workspace #32323200 #32323200 #5c5c5c
}
}
include /etc/sway/config.d/*
[colors]
# Normal
foreground = '#cdd6f4'
background = '#1e1e2e'
black = '#45475a'
blue = '#89b4fa'
cursor = '#f5e0dc'
cyan = '#94e2d5'
green = '#a6e3a1'
magenta = '#f5c2e7'
red = '#f38ba8'
white = '#bac2de'
yellow = '#f9e2af'
# UI colors
tabs = '#1e1e2e'
tabs-foreground = '#cdd6f4'
tabs-active = '#b4befe'
tabs-active-highlight = '#b4befe'
tabs-active-foreground = '#11111b'
selection-foreground = '#1e1e2e'
selection-background = '#f5e0dc'
# Dim colors
dim-black = '#45475a'
dim-blue = '#89b4fa'
dim-cyan = '#94e2d5'
dim-foreground = '#cdd6f4'
dim-green = '#a6e3a1'
dim-magenta = '#f5c2e7'
dim-red = '#f38ba8'
dim-white = '#bac2de'
dim-yellow = '#f9e2af'
# Light colors
light-black = '#585b70'
light-blue = '#89b4fa'
light-cyan = '#94e2d5'
light-foreground = '#cdd6f4'
light-green = '#a6e3a1'
light-magenta = '#f5c2e7'
light-red = '#f38ba8'
light-white = '#a6adc8'
light-yellow = '#f9e2af'
[colors]
# Normal
foreground = '#cad3f5'
background = '#24273a'
black = '#494d64'
blue = '#8aadf4'
cursor = '#f4dbd6'
cyan = '#8bd5ca'
green = '#a6da95'
magenta = '#f5bde6'
red = '#ed8796'
white = '#b8c0e0'
yellow = '#eed49f'
# UI colors
tabs = '#24273a'
tabs-foreground = '#cad3f5'
tabs-active = '#b7bdf8'
tabs-active-highlight = '#b7bdf8'
tabs-active-foreground = '#181926'
selection-foreground = '#24273a'
selection-background = '#f4dbd6'
# Dim colors
dim-black = '#494d64'
dim-blue = '#8aadf4'
dim-cyan = '#8bd5ca'
dim-foreground = '#cad3f5'
dim-green = '#a6da95'
dim-magenta = '#f5bde6'
dim-red = '#ed8796'
dim-white = '#b8c0e0'
dim-yellow = '#eed49f'
# Light colors
light-black = '#5b6078'
light-blue = '#8aadf4'
light-cyan = '#8bd5ca'
light-foreground = '#cad3f5'
light-green = '#a6da95'
light-magenta = '#f5bde6'
light-red = '#ed8796'
light-white = '#a5adcb'
light-yellow = '#eed49f'
[colors]
# Normal
foreground = '#4c4f69'
background = '#eff1f5'
black = '#bcc0cc'
blue = '#1e66f5'
cursor = '#dc8a78'
cyan = '#179299'
green = '#40a02b'
magenta = '#ea76cb'
red = '#d20f39'
white = '#5c5f77'
yellow = '#df8e1d'
# UI colors
tabs = '#eff1f5'
tabs-foreground = '#4c4f69'
tabs-active = '#7287fd'
tabs-active-highlight = '#7287fd'
tabs-active-foreground = '#dce0e8'
selection-foreground = '#eff1f5'
selection-background = '#dc8a78'
# Dim colors
dim-black = '#bcc0cc'
dim-blue = '#1e66f5'
dim-cyan = '#179299'
dim-foreground = '#4c4f69'
dim-green = '#40a02b'
dim-magenta = '#ea76cb'
dim-red = '#d20f39'
dim-white = '#5c5f77'
dim-yellow = '#df8e1d'
# Light colors
light-black = '#acb0be'
light-blue = '#1e66f5'
light-cyan = '#179299'
light-foreground = '#4c4f69'
light-green = '#40a02b'
light-magenta = '#ea76cb'
light-red = '#d20f39'
light-white = '#6c6f85'
light-yellow = '#df8e1d'
[colors]
# Normal
foreground = '#c6d0f5'
background = '#303446'
black = '#51576d'
blue = '#8caaee'
cursor = '#f2d5cf'
cyan = '#81c8be'
green = '#a6d189'
magenta = '#f4b8e4'
red = '#e78284'
white = '#b5bfe2'
yellow = '#e5c890'
# UI colors
tabs = '#303446'
tabs-foreground = '#c6d0f5'
tabs-active = '#babbf1'
tabs-active-highlight = '#babbf1'
tabs-active-foreground = '#232634'
selection-foreground = '#303446'
selection-background = '#f2d5cf'
# Dim colors
dim-black = '#51576d'
dim-blue = '#8caaee'
dim-cyan = '#81c8be'
dim-foreground = '#c6d0f5'
dim-green = '#a6d189'
dim-magenta = '#f4b8e4'
dim-red = '#e78284'
dim-white = '#b5bfe2'
dim-yellow = '#e5c890'
# Light colors
light-black = '#626880'
light-blue = '#8caaee'
light-cyan = '#81c8be'
light-foreground = '#c6d0f5'
light-green = '#a6d189'
light-magenta = '#f4b8e4'
light-red = '#e78284'
light-white = '#a5adce'
light-yellow = '#e5c890'
# Hide the cursor while typing
#
# Default is `false`
#
# hide-cursor-when-typing = false
# Ignore theme selection foreground color
#
# Default is false
#
# Example:
# ignore-selection-foreground-color = false
# Theme
#
# It makes Rio look for the specified theme in the themes folder
# (macos: ~/.config/rio/themes/dracula.toml)
# (linux: $XDG_HOME_CONFIG/rio/themes/dracula.toml or ~/.config/rio/themes/dracula.toml)
# (windows: C:\Users\USER\AppData\Local\rio\themes\dracula.toml)
#
# Example:
theme = "catppuccin-mocha"
# Padding-x
#
# define x axis padding (default is 0)
#
# Example:
# padding-x = 10
# Padding-y
#
# define y axis padding based on a format [top, bottom]
# (default is [0, 0])
#
# Example:
# padding-y = [30, 10]
# Option as Alt
#
# This config only works on MacOS.
# Possible choices: 'both', 'left' and 'right'.
#
# Example:
# option-as-alt = 'left'
# Line height
#
# This option will apply an modifier to line-height
# Default is `1.0`
#
# Example:
# line-height = 1.2
# Startup directory
#
# Directory the shell is started in. If this is unset the working
# directory of the parent process will be used.
#
# This configuration only has effect if use-fork is disabled.
#
# Example:
# working-dir = "/Users/raphael/Documents/"
# Environment variables
#
# Example:
# env-vars = []
# Use fork
#
# Defaults for POSIX-based systems (Windows is not configurable):
# MacOS: spawn processes
# Linux/BSD: fork processes
#
# Example:
# use-fork = false
# Confirm before exiting Rio
# Default is `true`
#
# confirm-before-quit = false
# Cursor
#
# shape - Default cursor shape is 'block'
# Other available options are: 'underline', 'beam' or 'hidden'
#
# blinking - Whether the cursor blinks. The default is false
#
# blinking-interval - Cursor update on milliseconds interval
#
# [cursor]
# shape = 'block'
# blinking = false
# blinking-interval = 800
# Editor
#
# Default editor on Linux and MacOS is "vi",
# on Windows it is "notepad".
#
# Whenever the key binding `OpenConfigEditor` is triggered it will
# use the value of the editor along with the rio configuration path.
# [editor]
# program = "vi"
# args = []
# Window configuration
#
# • width - define the initial window width.
# Default: 600
#
# • height - define the initial window height.
# Default: 400
#
# • mode - define how the window will be created
# - "Windowed" (default) is based on width and height
# - "Maximized" window is created with maximized
# - "Fullscreen" window is created with fullscreen
#
# • opacity - Set window opacity
#
# • blur - Set blur on the window background. Changing this config requires restarting Rio to take effect.
#
# • decorations - Set window decorations, options: "Enabled", "Disabled", "Transparent", "Buttonless"
#
# Example:
# [window]
# width = 600
# height = 400
# mode = "windowed"
# opacity = 1.0
# blur = false
# decorations = "enabled"
# Renderer
#
# • Performance: Set WGPU rendering performance
# - High: Adapter that has the highest performance. This is often a discrete GPU.
# - Low: Adapter that uses the least possible power. This is often an integrated GPU.
#
# • Backend: Set WGPU rendering backend
# - Automatic: Leave Sugarloaf/WGPU to decide
# - GL: Supported on Linux/Android, and Windows and macOS/iOS via ANGLE
# - Vulkan: Supported on Windows, Linux/Android
# - DX12: Supported on Windows 10
# - Metal: Supported on macOS/iOS
#
# • disable-unfocused-render: This property disable renderer processes while Rio is unfocused.
#
# • level: Configure renderer level
# - Available options: 0 and 1.
# Higher the level more rendering features and computations
# will be done like enable font ligatures or emoji support.
# For more information please check the docs.
#
# • filters: A list of paths to RetroArch slang shaders. Might not work with OpenGL.
#
# Example:
# [renderer]
# performance = "high"
# backend = "automatic"
# disable-unfocused-render = false
# level = 1
# filters = []
[renderer]
performance = "high"
backend = "automatic"
disable-unfocused-render = false
level = 1
filters = []
# Keyboard
#
# use-kitty-keyboard-protocol - Enable Kitty Keyboard protocol
#
# disable-ctlseqs-alt - Disable ctlseqs with ALT keys
# - For example: Terminal.app does not deal with ctlseqs with ALT keys
#
# Example:
# [keyboard]
# use-kitty-keyboard-protocol = false
# disable-ctlseqs-alt = false
# Fonts
#
# Configure fonts used by the terminal
#
# Note: You can set different font families but Rio terminal
# will always look for regular font bounds whene
#
# You can also set family on root to overwrite all fonts.
[fonts]
size = 18
family = "Aporetic Sans Mono"
#family = "Iosevka Term"
# #
# You can also specify extra fonts to load
# [fonts]
# extras = [{ family = "Microsoft JhengHei" }]
#
# In case you want to specify any font feature:
# [fonts]
# features = ["ss02", "ss03", "ss05", "ss19"]
#
# Note: Font features do not have support to live reload on configuration,
# so to reflect your changes, you will need to close and reopen Rio.
#
# You can also disable font hinting. Font hinting is enabled by default.
# [fonts]
# hinting = false
#
# You can also map the specified Unicode codepoints to a particular font.
# [fonts]
# symbol-map = [
# { start = "2297", end = "2299", font-family = "Cascadia Code NF" }
# ]
#
# Simple example:
# [fonts]
# size = 18
#
# [fonts.regular]
# family = "cascadiamono"
# style = "Normal"
# weight = 400
#
# [fonts.bold]
# family = "cascadiamono"
# style = "Normal"
# weight = 800
#
# [fonts.italic]
# family = "cascadiamono"
# style = "Italic"
# weight = 400
#
# [fonts.bold-italic]
# family = "cascadiamono"
# style = "Italic"
# weight = 800
# Scroll
#
# You can change how many lines are scrolled each time by setting this option.
#
# Scroll calculation for canonical mode will be based on `lines = (accumulated scroll * multiplier / divider)`,
# If you want a quicker scroll, keep increasing the multiplier.
# If you want to reduce scroll speed you will need to increase the divider.
# You can use both properties also to find the best scroll for you.
#
# Multiplier default is 3.0.
# Divider default is 1.0.
# Example:
# [scroll]
# multiplier = 3.0
# divider = 1.0
# Navigation
#
# "mode" - Define navigation mode
# • NativeTab (MacOS only)
# • Bookmark
# • BottomTab
# • TopTab
# • Plain
#
# "hide-if-single" - Hide navigation UI if is single.
# "clickable" - Enable click on tabs to switch.
# "use-current-path" - Use same path whenever a new tab is created (Note: requires `use-fork` to be set to false).
# "color-automation" - Set a specific color for the tab whenever a specific program is running, or in a specific directory.
#
# Example:
# [navigation]
# mode = "bookmark"
# clickable = false
# hide-if-single = true
# use-current-path = false
# color-automation = []
# Shell
#
# You can set `shell.program` to the path of your favorite shell, e.g. `/bin/fish`.
# Entries in `shell.args` are passed unmodified as arguments to the shell.
#
# Default:
# - (macOS) user login shell
# - (Linux/BSD) user login shell
# - (Windows) powershell
#
# Example 1 using fish shell from bin path:
#
# [shell]
# program = "/bin/fish"
# args = ["--login"]
#
# Example 2 for Windows using powershell
#
# [shell]
# program = "pwsh"
# args = []
#
# Example 3 for Windows using powershell with login
#
# [shell]
# program = "pwsh"
# args = ["-l"]
#
# Example 4 for MacOS with tmux installed by homebrew
#
# [shell]
# program = "/opt/homebrew/bin/tmux"
# args = ["new-session", "-c", "/var/www"]
[shell]
program = "nu"
# Colors
#
# Colors definition will overwrite any property in theme
# (considering if theme folder does exists and is being used)
#
# Example:
# [colors]
# background = '#0F0D0E'
# foreground = '#F9F4DA'
# cursor = '#F38BA3'
# tabs = '#443d40'
# tabs-active = '#F38BA3'
# green = '#0BA95B'
# red = '#ED203D'
# blue = '#12B5E5'
# yellow = '#FCBA28'
# Bindings
#
# Create custom Key bindings for Rio terminal
# More information in: https://raphamorim.io/rio/docs/key-bindings
#
# Example:
# [bindings]
# keys = [
# { key = "q", with = "super", action = "Quit" },
# # Bytes[27, 91, 53, 126] is equivalent to "\x1b[5~"
# { key = "home", with = "super | shift", bytes = [27, 91, 53, 126] }
# ]
# Platform
#
# Rio now allows you to have different configurations per OS
# You can write ovewrite properties like `Shell`, `Navigation`
# and `Window`.
#
# Example:
# [shell]
# # default (in this case will be used only on MacOS)
# program = "/bin/fish"
# args = ["--login"]
#
# [platform]
# # Microsoft Windows overwrite
# windows.shell.program = "pwsh"
# windows.shell.args = ["-l"]
#
# # Linux overwrite
# linux.shell.program = "tmux"
# linux.shell.args = ["new-session", "-c", "/var/www"]
# Log level
#
# This property enables log level filter and file. The default level is "OFF" and the logs are not logged to a file as default.
#
# Example:
# [developer]
# log-level = "OFF"
# enable-log-file = false
[redshift]
location-provide=manual
[manual]
lat=47.226
lon=5.942
MinAlertLevel = suggestion
[*]
BasedOnStyles = Vale
[settings]
default-library = papers
notes-name = notes.norg
database-backend = whoosh
doctor-key-type-check-keys = ['year:int', 'month:int', 'files:list', 'notes:str', 'author_list:list', 'doi:str', 'ref:str', 'isbn:str', 'author:str', 'journal:str', 'note:str', 'type:str', 'publisher:str', 'title:str', 'shorttitle:str', 'tags:list']
doctor-key-type-check-separator = ' '
[papers]
dir = ~/papers
add-folder-name = '{doc[title]}'
indent_type = "Spaces"
indent_width = 2
column_width = 120
local W = {}
-- Local variables (module-scoped)
local current_field = 1
local function save_workout(workout_data)
local entry = { "- date: " .. workout_data.date, " type: " .. workout_data.type }
-- Add fields dynamically
for field, value in pairs(workout_data) do
if field ~= "date" and field ~= "type" then
if field == "exercises" then
table.insert(entry, " exercises:")
for exercise in value:gmatch("[^,]+") do
table.insert(entry, " - " .. exercise:match("^%s*(.-)%s*$")) -- trim whitespace
end
else
table.insert(entry, " " .. field .. ": " .. value)
end
end
end
table.insert(entry, "")
local workout_file = "/home/alex/notes/sport.yaml"
local file = io.open(workout_file, "a")
if file then
file:write(table.concat(entry, "\n") .. "\n")
file:close()
print("✓ " .. workout_data.type .. " workout logged!")
else
print("✗ Error: Could not open workout file")
end
end
-- Local helper functions
local function collect_next_field(data, config)
if current_field > #config then
-- All fields collected, save workout
save_workout(data)
return
end
local field_config = config[current_field]
vim.ui.input({ prompt = field_config.prompt }, function(input)
if field_config.required and not input then
return
end
if input then
data[field_config.field] = input
end
current_field = current_field + 1
collect_next_field(data, config)
end)
end
-- Public function (exported)
function W.capture()
local workout_configs = {
handstand = {
type = "équilibre",
exercises = {
{ field = "durée", prompt = "Durée (sec): ", required = true },
},
},
climbing = {
type = "escalade",
exercises = {
{ field = "durée", prompt = "Durée (min): ", required = true },
},
},
running = {
type = "course",
exercises = {
{ field = "durée", prompt = "Durée (min): ", required = true },
},
},
roller = {
type = "roller",
exercises = {
{ field = "durée", prompt = "Durée (sec): ", required = true },
{ field = "notes", prompt = "Notes: ", required = false },
},
},
stretching = {
type = "étirement", -- Fixed: was "tyepe"
exercises = {
{ field = "hamstring", prompt = "Hamstring (sec): ", required = true },
{ field = "fenêtre", prompt = "Fenêtre (sec): ", required = true },
{ field = "pigeon", prompt = "Pigeon (sec): ", required = true },
{ field = "butterfly", prompt = "Butterfly (sec): ", required = true },
{ field = "middle_split", prompt = "Middle split (sec): ", required = true },
{ field = "pancake", prompt = "Pancake (sec): ", required = true },
},
},
muscu = {
type = "muscu",
exercises = {
{ field = "pseudo_muscle_up", prompt = "Pseudo muscle up (reps): ", required = false },
{ field = "l-sit", prompt = "L-sit(sec): ", required = false },
{ field = "compression", prompt = "Compression (reps): ", required = false },
{ field = "extension", prompt = "Extension (reps): ", required = false },
{ field = "push_up_tucked", prompt = "Push up tucked (reps): ", required = false },
{ field = "planche_tucked", prompt = "Planche tucked (sec): ", required = false },
},
},
}
vim.ui.select(
{ "muscu", "roller", "handstand", "running", "stretching", "climbing" }, -- Added "climbing"
{ prompt = "Workout type:" },
function(workout)
if not workout then
return
end
local config = workout_configs[workout]
local data = {
type = config.type, -- Fixed: proper access to type
date = os.date("%Y-%m-%d"),
}
current_field = 1 -- Reset for each capture
collect_next_field(data, config.exercises) -- Fixed: proper access to exercises
end
)
end
return W
return {
{
"nvim-telescope/telescope.nvim",
config = function()
require("telescope").setup({
extensions = {
bibtex = {
global_files = { "/home/alexis/research/biblio.bib" },
-- custom_formats = { { id = "md-pandoc", format = "[lol-@%s]" } },
custom_formats = {
{ id = "pandoc", cite_marker = "[@%s]" },
},
format = "pandoc",
},
},
})
end,
},
{
"nvim-telescope/telescope-bibtex.nvim",
requires = {
{ "nvim-telescope/telescope.nvim" },
},
config = function()
require("telescope").load_extension("bibtex")
end,
},
}
-- return {
-- "vimwiki/vimwiki",
-- event = "BufEnter *.md",
-- -- The keys that trigger the plugin
-- keys = { "<leader>ww", "<leader>wt" },
-- init = function()
-- vim.g.vimwiki_list = {
-- {
-- path = "~/notes/",
-- -- The syntax for the wiki
-- syntax = "markdown",
-- ext = "md",
-- },
-- }
-- -- vim.g.vimwiki_ext2syntax = {}
-- end,
-- }
--
return {
"serenevoid/kiwi.nvim",
opts = {
{
name = "notes",
path = "~/notes",
},
},
keys = {
{ "<leader>ww", ':lua require("kiwi").open_wiki_index()<cr>', desc = "Open Wiki index" },
},
lazy = true,
}
return {
"3rd/image.nvim",
build = false, -- so that it doesn't build the rock https://github.com/3rd/image.nvim/issues/91#issuecomment-2453430239
opts = {
processor = "magick_cli",
backend = "ueberzug",
integrations = {
markdown = {
enabled = true,
clear_in_insert_mode = false,
download_remote_images = true,
only_render_image_at_cursor = false,
filetypes = { "markdown", "vimwiki" }, -- markdown extensions (ie. quarto) can go here
},
},
},
}
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
--
-- In your plugin files, you can:
-- * add extra plugins
-- * disable/enabled LazyVim plugins
-- * override the configuration of LazyVim plugins
return {
-- add gruvbox
{ "ellisonleao/gruvbox.nvim" },
}
-- lua/plugins/rose-pine.lua
return {
{
"catppuccin/nvim",
name = "catppuccin",
lazy = false,
config = function()
vim.cmd("colorscheme catppuccin-mocha")
end,
},
-- "rose-pine/neovim",
-- name = "rose-pine",
-- config = function()
-- vim.cmd("colorscheme rose-pine-moon")
-- end,
-- }
}
-- Options are automatically loaded before lazy.nvim startup
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
-- Add any additional options here
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
-- add LazyVim and import its plugins
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
-- import/override with your plugins
{ import = "plugins" },
},
defaults = {
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
lazy = false,
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
-- have outdated releases, which may break your Neovim install.
version = false, -- always use the latest git commit
-- version = "*", -- try installing the latest stable version for plugins that support semver
},
install = { colorscheme = { "gruvbox" } },
checker = {
enabled = true, -- check for plugin updates periodically
notify = false, -- notify on update
}, -- automatically check for plugin updates
performance = {
rtp = {
-- disable some rtp plugins
disabled_plugins = {
"gzip",
-- "matchit",
-- "matchparen",
-- "netrwPlugin",
"tarPlugin",
"tohtml",
"tutor",
"zipPlugin",
},
},
},
})
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
--
-- Add any additional autocmds here
-- with `vim.api.nvim_create_autocmd`
--
-- Or remove existing autocmds by their group name (which is prefixed with `lazyvim_` for the defaults)
-- e.g. vim.api.nvim_del_augroup_by_name("lazyvim_wrap_spell")
vim.api.nvim_create_autocmd("FileType", {
pattern = { "markdown" },
callback = function()
vim.opt_local.spell = false
end,
})
{
"extras": [
"lazyvim.plugins.extras.lang.markdown",
"lazyvim.plugins.extras.lang.nix"
],
"install_version": 8,
"news": {
"NEWS.md": "10960"
},
"version": 8
}
{
"LazyVim": { "branch": "main", "commit": "25abbf546d564dc484cf903804661ba12de45507" },
"blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" },
"bufferline.nvim": { "branch": "main", "commit": "655133c3b4c3e5e05ec549b9f8cc2894ac6f51b3" },
"catppuccin": { "branch": "main", "commit": "fa42eb5e26819ef58884257d5ae95dd0552b9a66" },
"conform.nvim": { "branch": "master", "commit": "8132ec733eed3bf415b97b76797ca41b59f51d7d" },
"flash.nvim": { "branch": "main", "commit": "3c942666f115e2811e959eabbdd361a025db8b63" },
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
"gitsigns.nvim": { "branch": "main", "commit": "1b0350ab707713b2bc6c236151f1a324175347b1" },
"grug-far.nvim": { "branch": "main", "commit": "b3f9412b1ed76f14cfc68e1ee899873544330c80" },
"gruvbox.nvim": { "branch": "main", "commit": "58a2cda2e953a99e2f87c12b7fb4602da4e0709c" },
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
"lazydev.nvim": { "branch": "main", "commit": "2367a6c0a01eb9edb0464731cc0fb61ed9ab9d2c" },
"lualine.nvim": { "branch": "master", "commit": "a94fc68960665e54408fe37dcf573193c4ce82c9" },
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "1a31f824b9cd5bc6f342fc29e9a53b60d74af245" },
"mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" },
"mini.ai": { "branch": "main", "commit": "d172ada7b0281044a06cb9a625a862553c457b6f" },
"mini.icons": { "branch": "main", "commit": "94848dad1589a199f876539bd79befb0c5e3abf0" },
"mini.pairs": { "branch": "main", "commit": "42407ccb80ec59c84e7c91d815f42ed90a8cc093" },
"noice.nvim": { "branch": "main", "commit": "0427460c2d7f673ad60eb02b35f5e9926cf67c59" },
"nui.nvim": { "branch": "main", "commit": "de740991c12411b663994b2860f1a4fd0937c130" },
"nvim-lint": { "branch": "master", "commit": "2b0039b8be9583704591a13129c600891ac2c596" },
"nvim-lspconfig": { "branch": "master", "commit": "6bba673aa8993eceec233be17b42ddfb9540794b" },
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
"nvim-treesitter-textobjects": { "branch": "master", "commit": "89ebe73cd2836db80a22d9748999ace0241917a5" },
"nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" },
"persistence.nvim": { "branch": "main", "commit": "166a79a55bfa7a4db3e26fc031b4d92af71d0b51" },
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
"render-markdown.nvim": { "branch": "main", "commit": "c809fc129f842a7055c672593d24be6346bcc673" },
"rose-pine": { "branch": "main", "commit": "f93360149e9ed4df8677fbb07c7231ea0fd03b97" },
"snacks.nvim": { "branch": "main", "commit": "bc0630e43be5699bb94dadc302c0d21615421d93" },
"telekasten.nvim": { "branch": "main", "commit": "6a10a7929421d6e696e46bbc5aa5627a8cbcf61d" },
"telescope-bibtex.nvim": { "branch": "master", "commit": "289a6f86ebec06e8ae1590533b732b9981d84900" },
"telescope.nvim": { "branch": "master", "commit": "b4da76be54691e854d3e0e02c36b0245f945c2c7" },
"todo-comments.nvim": { "branch": "main", "commit": "304a8d204ee787d2544d8bc23cd38d2f929e7cc5" },
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
"trouble.nvim": { "branch": "main", "commit": "85bedb7eb7fa331a2ccbecb9202d8abba64d37b3" },
"ts-comments.nvim": { "branch": "main", "commit": "1bd9d0ba1d8b336c3db50692ffd0955fe1bb9f0c" },
"which-key.nvim": { "branch": "main", "commit": "370ec46f710e058c9c1646273e6b225acf47cbed" },
"zk-nvim": { "branch": "main", "commit": "b18782530b23ad118d578c0fa0e4d0b8d386db4c" }
}
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")
local workout = require("workout")
vim.keymap.set("n", "<leader>wc", workout.capture, { desc = "Capture workout" })
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data
# 💤 LazyVim
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}
# Nushell Environment Config File
#
# version = "0.84.0"
def create_left_prompt [] {
mut home = ""
try {
if $nu.os-info.name == "windows" {
$home = $env.USERPROFILE
} else {
$home = $env.HOME
}
}
let dir = ([
($env.PWD | str substring 0..($home | str length) | str replace $home "~"),
($env.PWD | str substring ($home | str length)..)
] | str join)
let path_color = (if (is-admin) { ansi red_bold } else { ansi green_bold })
let separator_color = (if (is-admin) { ansi light_red_bold } else { ansi light_green_bold })
let path_segment = $"($path_color)($dir)"
$path_segment | str replace --all (char path_sep) $"($separator_color)/($path_color)"
}
def create_right_prompt [] {
# create a right prompt in magenta with green separators and am/pm underlined
let time_segment = ([
(ansi reset)
(ansi magenta)
(date now | format date '%Y/%m/%d %r')
] | str join | str replace --regex --all "([/:])" $"(ansi green)${1}(ansi magenta)" |
str replace --regex --all "([AP]M)" $"(ansi magenta_underline)${1}")
let last_exit_code = if ($env.LAST_EXIT_CODE != 0) {([
(ansi rb)
($env.LAST_EXIT_CODE)
] | str join)
} else { "" }
([$last_exit_code, (char space), $time_segment] | str join)
}
# Use nushell functions to define your right and left prompt
$env.PROMPT_COMMAND = {|| create_left_prompt }
# $env.PROMPT_COMMAND_RIGHT = {|| create_right_prompt }
# The prompt indicators are environmental variables that represent
# the state of the prompt
$env.PROMPT_INDICATOR = {|| "> " }
$env.PROMPT_INDICATOR_VI_INSERT = {|| ": " }
$env.PROMPT_INDICATOR_VI_NORMAL = {|| "> " }
$env.PROMPT_MULTILINE_INDICATOR = {|| "::: " }
# Specifies how environment variables are:
# - converted from a string to a value on Nushell startup (from_string)
# - converted from a value back to a string when running external commands (to_string)
# Note: The conversions happen *after* config.nu is loaded
$env.ENV_CONVERSIONS = {
"PATH": {
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
}
"Path": {
from_string: { |s| $s | split row (char esep) | path expand --no-symlink }
to_string: { |v| $v | path expand --no-symlink | str join (char esep) }
}
}
# Directories to search for scripts when calling source or use
$env.NU_LIB_DIRS = [
# ($nu.default-config-dir | path join 'scripts') # add <nushell-config-dir>/scripts
]
# Directories to search for plugin binaries when calling register
$env.NU_PLUGIN_DIRS = [
# ($nu.default-config-dir | path join 'plugins') # add <nushell-config-dir>/plugins
]
#$env.LS_COLORS = $"(vivid generate catppuccin-latte)"
$env.EDITOR = "hx"
# User systmed config starts ssh-agent
$env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent.socket"
$env.GTK_IM_MODULE = "fcitx"
$env.QT_IM_MODULE = "fcitx"
$env.XMODIFIERS = "@im=fcitx"
$env.PATH ++= ['~/.cargo/bin']
# Zoxide support
zoxide init nushell | save -f ~/.zoxide.nu
# Nushell Config File
#
# version = "0.94.2"
# For more information on defining custom themes, see
# https://www.nushell.sh/book/coloring_and_theming.html
# And here is the theme collection
# https://github.com/nushell/nu_scripts/tree/main/themes
let dark_theme = {
# color for nushell primitives
separator: white
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
header: green_bold
empty: blue
# Closures can be used to choose colors for specific values.
# The value (in this case, a bool) is piped into the closure.
# eg) {|| if $in { 'light_cyan' } else { 'light_gray' } }
bool: light_cyan
int: white
filesize: cyan
duration: white
date: purple
range: white
float: white
string: white
nothing: white
binary: white
cell-path: white
row_index: green_bold
record: white
list: white
block: white
hints: dark_gray
search_result: { bg: red fg: white }
shape_and: purple_bold
shape_binary: purple_bold
shape_block: blue_bold
shape_bool: light_cyan
shape_closure: green_bold
shape_custom: green
shape_datetime: cyan_bold
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_external_resolved: light_yellow_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: white bg: red attr: b}
shape_globpattern: cyan_bold
shape_int: purple_bold
shape_internalcall: cyan_bold
shape_keyword: cyan_bold
shape_list: cyan_bold
shape_literal: blue
shape_match_pattern: green
shape_matching_brackets: { attr: u }
shape_nothing: light_cyan
shape_operator: yellow
shape_or: purple_bold
shape_pipe: purple_bold
shape_range: yellow_bold
shape_record: cyan_bold
shape_redirection: purple_bold
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_table: blue_bold
shape_variable: purple
shape_vardecl: purple
shape_raw_string: light_purple
}
let light_theme = {
# color for nushell primitives
separator: dark_gray
leading_trailing_space_bg: { attr: n } # no fg, no bg, attr none effectively turns this off
header: green_bold
empty: blue
# Closures can be used to choose colors for specific values.
# The value (in this case, a bool) is piped into the closure.
# eg) {|| if $in { 'dark_cyan' } else { 'dark_gray' } }
bool: dark_cyan
int: dark_gray
filesize: cyan_bold
duration: dark_gray
date: purple
range: dark_gray
float: dark_gray
string: dark_gray
nothing: dark_gray
binary: dark_gray
cell-path: dark_gray
row_index: green_bold
record: dark_gray
list: dark_gray
block: dark_gray
hints: dark_gray
search_result: { fg: white bg: red }
shape_and: purple_bold
shape_binary: purple_bold
shape_block: blue_bold
shape_bool: light_cyan
shape_closure: green_bold
shape_custom: green
shape_datetime: cyan_bold
shape_directory: cyan
shape_external: cyan
shape_externalarg: green_bold
shape_external_resolved: light_purple_bold
shape_filepath: cyan
shape_flag: blue_bold
shape_float: purple_bold
# shapes are used to change the cli syntax highlighting
shape_garbage: { fg: white bg: red attr: b}
shape_globpattern: cyan_bold
shape_int: purple_bold
shape_internalcall: cyan_bold
shape_keyword: cyan_bold
shape_list: cyan_bold
shape_literal: blue
shape_match_pattern: green
shape_matching_brackets: { attr: u }
shape_nothing: light_cyan
shape_operator: yellow
shape_or: purple_bold
shape_pipe: purple_bold
shape_range: yellow_bold
shape_record: cyan_bold
shape_redirection: purple_bold
shape_signature: green_bold
shape_string: green
shape_string_interpolation: cyan_bold
shape_table: blue_bold
shape_variable: purple
shape_vardecl: purple
shape_raw_string: light_purple
}
# External completer example
# let carapace_completer = {|spans|
# carapace $spans.0 nushell ...$spans | from json
# }
# The default config record. This is where much of your global configuration is setup.
$env.config = {
show_banner: false # true or false to enable or disable the welcome banner at startup
ls: {
use_ls_colors: true # use the LS_COLORS environment variable to colorize output
clickable_links: true # enable or disable clickable links. Your terminal has to support links.
}
rm: {
always_trash: false # always act as if -t was given. Can be overridden with -p
}
table: {
mode: rounded # basic, compact, compact_double, light, thin, with_love, rounded, reinforced, heavy, none, other
index_mode: always # "always" show indexes, "never" show indexes, "auto" = show indexes when a table has "index" column
show_empty: true # show 'empty list' and 'empty record' placeholders for command output
padding: { left: 1, right: 1 } # a left right padding of each column in a table
trim: {
methodology: wrapping # wrapping or truncating
wrapping_try_keep_words: true # A strategy used by the 'wrapping' methodology
truncating_suffix: "..." # A suffix used by the 'truncating' methodology
}
header_on_separator: false # show header text on separator/border line
# abbreviated_row_count: 10 # limit data rows from top and bottom after reaching a set point
}
error_style: "fancy" # "fancy" or "plain" for screen reader-friendly error messages
# datetime_format determines what a datetime rendered in the shell would look like.
# Behavior without this configuration point will be to "humanize" the datetime display,
# showing something like "a day ago."
datetime_format: {
# normal: '%a, %d %b %Y %H:%M:%S %z' # shows up in displays of variables or other datetime's outside of tables
# table: '%m/%d/%y %I:%M:%S%p' # generally shows up in tabular outputs such as ls. commenting this out will change it to the default human readable datetime format
}
explore: {
status_bar_background: { fg: "#1D1F21", bg: "#C4C9C6" },
command_bar_text: { fg: "#C4C9C6" },
highlight: { fg: "black", bg: "yellow" },
status: {
error: { fg: "white", bg: "red" },
warn: {}
info: {}
},
table: {
split_line: { fg: "#404040" },
selected_cell: { bg: light_blue },
selected_row: {},
selected_column: {},
},
}
history: {
max_size: 100_000 # Session has to be reloaded for this to take effect
sync_on_enter: true # Enable to share history between multiple sessions, else you have to close the session to write history to file
file_format: "plaintext" # "sqlite" or "plaintext"
isolation: false # only available with sqlite file_format. true enables history isolation, false disables it. true will allow the history to be isolated to the current session using up/down arrows. false will allow the history to be shared across all sessions.
}
completions: {
case_sensitive: false # set to true to enable case-sensitive completions
quick: true # set this to false to prevent auto-selecting completions when only one remains
partial: true # set this to false to prevent partial filling of the prompt
algorithm: "prefix" # prefix or fuzzy
external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up may be very slow
max_results: 100 # setting it lower can improve completion performance at the cost of omitting some options
completer: null # check 'carapace_completer' above as an example
}
use_ls_colors: true # set this to true to enable file/path/directory completions using LS_COLORS
}
cursor_shape: {
emacs: line # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (line is the default)
vi_insert: block # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (block is the default)
vi_normal: underscore # block, underscore, line, blink_block, blink_underscore, blink_line, inherit to skip setting cursor shape (underscore is the default)
}
# color_config: $light_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
# color_config: $dark_theme # if you want a more interesting theme, you can replace the empty record with `$dark_theme`, `$light_theme` or another custom record
footer_mode: "always"
float_precision: 2 # the precision for displaying floats in tables
buffer_editor: "" # command that will be used to edit the current line buffer with ctrl+o, if unset fallback to $env.EDITOR and $env.VISUAL
use_ansi_coloring: true
bracketed_paste: true # enable bracketed paste, currently useless on windows
edit_mode: emacs # emacs, vi
shell_integration: {
# osc2 abbreviates the path if in the home_dir, sets the tab/window title, shows the running command in the tab/window title
osc2: true
# osc7 is a way to communicate the path to the terminal, this is helpful for spawning new tabs in the same directory
osc7: true
# osc8 is also implemented as the deprecated setting ls.show_clickable_links, it shows clickable links in ls output if your terminal supports it. show_clickable_links is deprecated in favor of osc8
osc8: true
# osc9_9 is from ConEmu and is starting to get wider support. It's similar to osc7 in that it communicates the path to the terminal
osc9_9: false
# osc133 is several escapes invented by Final Term which include the supported ones below.
# 133;A - Mark prompt start
# 133;B - Mark prompt end
# 133;C - Mark pre-execution
# 133;D;exit - Mark execution finished with exit code
# This is used to enable terminals to know where the prompt is, the command is, where the command finishes, and where the output of the command is
osc133: true
# osc633 is closely related to osc133 but only exists in visual studio code (vscode) and supports their shell integration features
# 633;A - Mark prompt start
# 633;B - Mark prompt end
# 633;C - Mark pre-execution
# 633;D;exit - Mark execution finished with exit code
# 633;E - NOT IMPLEMENTED - Explicitly set the command line with an optional nonce
# 633;P;Cwd=<path> - Mark the current working directory and communicate it to the terminal
# and also helps with the run recent menu in vscode
osc633: true
# reset_application_mode is escape \x1b[?1l and was added to help ssh work better
reset_application_mode: true
}
render_right_prompt_on_last_line: false # true or false to enable or disable right prompt to be rendered on last line of the prompt.
use_kitty_protocol: false # enables keyboard enhancement protocol implemented by kitty console, only if your terminal support this.
highlight_resolved_externals: false # true enables highlighting of external commands in the repl resolved by which.
recursion_limit: 50 # the maximum number of times nushell allows recursion before stopping it
plugins: {} # Per-plugin configuration. See https://www.nushell.sh/contributor-book/plugins.html#configuration.
plugin_gc: {
# Configuration for plugin garbage collection
default: {
enabled: true # true to enable stopping of inactive plugins
stop_after: 10sec # how long to wait after a plugin is inactive to stop it
}
plugins: {
# alternate configuration for specific plugins, by name, for example:
#
# gstat: {
# enabled: false
# }
}
}
hooks: {
pre_prompt: [{ null }] # run before the prompt is shown
pre_execution: [{ null }] # run before the repl input is run
env_change: {
PWD: [
{ ||
if (which direnv | is-empty) {
return
}
direnv export json | from json | default {} | load-env
}
] # run if the PWD environment is different since the last repl input
}
display_output: "if (term size).columns >= 100 { table -e } else { table }" # run to display the output of a pipeline
command_not_found: { null } # return an error message when a command is not found
}
menus: [
# Configuration for default nushell menus
# Note the lack of source parameter
{
name: completion_menu
only_buffer_difference: false
marker: "| "
type: {
layout: columnar
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
}
style: {
text: green
selected_text: { attr: r }
description_text: yellow
match_text: { attr: u }
selected_match_text: { attr: ur }
}
}
{
name: ide_completion_menu
only_buffer_difference: false
marker: "| "
type: {
layout: ide
min_completion_width: 0,
max_completion_width: 50,
max_completion_height: 10, # will be limited by the available lines in the terminal
padding: 0,
border: true,
cursor_offset: 0,
description_mode: "prefer_right"
min_description_width: 0
max_description_width: 50
max_description_height: 10
description_offset: 1
# If true, the cursor pos will be corrected, so the suggestions match up with the typed text
#
# C:\> str
# str join
# str trim
# str split
correct_cursor_pos: false
}
style: {
text: green
selected_text: { attr: r }
description_text: yellow
match_text: { attr: u }
selected_match_text: { attr: ur }
}
}
{
name: history_menu
only_buffer_difference: true
marker: "? "
type: {
layout: list
page_size: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
{
name: help_menu
only_buffer_difference: true
marker: "? "
type: {
layout: description
columns: 4
col_width: 20 # Optional value. If missing all the screen width is used to calculate column width
col_padding: 2
selection_rows: 4
description_rows: 10
}
style: {
text: green
selected_text: green_reverse
description_text: yellow
}
}
]
keybindings: [
{
name: completion_menu
modifier: none
keycode: tab
mode: [emacs vi_normal vi_insert]
event: {
until: [
{ send: menu name: completion_menu }
{ send: menunext }
{ edit: complete }
]
}
}
{
name: ide_completion_menu
modifier: control
keycode: char_n
mode: [emacs vi_normal vi_insert]
event: {
until: [
{ send: menu name: ide_completion_menu }
{ send: menunext }
{ edit: complete }
]
}
}
{
name: history_menu
modifier: control
keycode: char_r
mode: [emacs, vi_insert, vi_normal]
event: { send: menu name: history_menu }
}
{
name: help_menu
modifier: none
keycode: f1
mode: [emacs, vi_insert, vi_normal]
event: { send: menu name: help_menu }
}
{
name: completion_previous_menu
modifier: shift
keycode: backtab
mode: [emacs, vi_normal, vi_insert]
event: { send: menuprevious }
}
{
name: next_page_menu
modifier: control
keycode: char_x
mode: emacs
event: { send: menupagenext }
}
{
name: undo_or_previous_page_menu
modifier: control
keycode: char_z
mode: emacs
event: {
until: [
{ send: menupageprevious }
{ edit: undo }
]
}
}
{
name: escape
modifier: none
keycode: escape
mode: [emacs, vi_normal, vi_insert]
event: { send: esc } # NOTE: does not appear to work
}
{
name: cancel_command
modifier: control
keycode: char_c
mode: [emacs, vi_normal, vi_insert]
event: { send: ctrlc }
}
{
name: quit_shell
modifier: control
keycode: char_d
mode: [emacs, vi_normal, vi_insert]
event: { send: ctrld }
}
{
name: clear_screen
modifier: control
keycode: char_l
mode: [emacs, vi_normal, vi_insert]
event: { send: clearscreen }
}
{
name: search_history
modifier: control
keycode: char_q
mode: [emacs, vi_normal, vi_insert]
event: { send: searchhistory }
}
{
name: open_command_editor
modifier: control
keycode: char_o
mode: [emacs, vi_normal, vi_insert]
event: { send: openeditor }
}
{
name: move_up
modifier: none
keycode: up
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: menuup }
{ send: up }
]
}
}
{
name: move_down
modifier: none
keycode: down
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: menudown }
{ send: down }
]
}
}
{
name: move_left
modifier: none
keycode: left
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: menuleft }
{ send: left }
]
}
}
{
name: move_right_or_take_history_hint
modifier: none
keycode: right
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: historyhintcomplete }
{ send: menuright }
{ send: right }
]
}
}
{
name: move_one_word_left
modifier: control
keycode: left
mode: [emacs, vi_normal, vi_insert]
event: { edit: movewordleft }
}
{
name: move_one_word_right_or_take_history_hint
modifier: control
keycode: right
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: historyhintwordcomplete }
{ edit: movewordright }
]
}
}
{
name: move_to_line_start
modifier: none
keycode: home
mode: [emacs, vi_normal, vi_insert]
event: { edit: movetolinestart }
}
{
name: move_to_line_start
modifier: control
keycode: char_a
mode: [emacs, vi_normal, vi_insert]
event: { edit: movetolinestart }
}
{
name: move_to_line_end_or_take_history_hint
modifier: none
keycode: end
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: historyhintcomplete }
{ edit: movetolineend }
]
}
}
{
name: move_to_line_end_or_take_history_hint
modifier: control
keycode: char_e
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: historyhintcomplete }
{ edit: movetolineend }
]
}
}
{
name: move_to_line_start
modifier: control
keycode: home
mode: [emacs, vi_normal, vi_insert]
event: { edit: movetolinestart }
}
{
name: move_to_line_end
modifier: control
keycode: end
mode: [emacs, vi_normal, vi_insert]
event: { edit: movetolineend }
}
{
name: move_up
modifier: control
keycode: char_p
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: menuup }
{ send: up }
]
}
}
{
name: move_down
modifier: control
keycode: char_t
mode: [emacs, vi_normal, vi_insert]
event: {
until: [
{ send: menudown }
{ send: down }
]
}
}
{
name: delete_one_character_backward
modifier: none
keycode: backspace
mode: [emacs, vi_insert]
event: { edit: backspace }
}
{
name: delete_one_word_backward
modifier: control
keycode: backspace
mode: [emacs, vi_insert]
event: { edit: backspaceword }
}
{
name: delete_one_character_forward
modifier: none
keycode: delete
mode: [emacs, vi_insert]
event: { edit: delete }
}
{
name: delete_one_character_forward
modifier: control
keycode: delete
mode: [emacs, vi_insert]
event: { edit: delete }
}
{
name: delete_one_character_backward
modifier: control
keycode: char_h
mode: [emacs, vi_insert]
event: { edit: backspace }
}
{
name: delete_one_word_backward
modifier: control
keycode: char_w
mode: [emacs, vi_insert]
event: { edit: backspaceword }
}
{
name: move_left
modifier: none
keycode: backspace
mode: vi_normal
event: { edit: moveleft }
}
{
name: newline_or_run_command
modifier: none
keycode: enter
mode: emacs
event: { send: enter }
}
{
name: move_left
modifier: control
keycode: char_b
mode: emacs
event: {
until: [
{ send: menuleft }
{ send: left }
]
}
}
{
name: move_right_or_take_history_hint
modifier: control
keycode: char_f
mode: emacs
event: {
until: [
{ send: historyhintcomplete }
{ send: menuright }
{ send: right }
]
}
}
{
name: redo_change
modifier: control
keycode: char_g
mode: emacs
event: { edit: redo }
}
{
name: undo_change
modifier: control
keycode: char_z
mode: emacs
event: { edit: undo }
}
{
name: paste_before
modifier: control
keycode: char_y
mode: emacs
event: { edit: pastecutbufferbefore }
}
{
name: cut_word_left
modifier: control
keycode: char_w
mode: emacs
event: { edit: cutwordleft }
}
{
name: cut_line_to_end
modifier: control
keycode: char_k
mode: emacs
event: { edit: cuttoend }
}
{
name: cut_line_from_start
modifier: control
keycode: char_u
mode: emacs
event: { edit: cutfromstart }
}
{
name: swap_graphemes
modifier: control
keycode: char_t
mode: emacs
event: { edit: swapgraphemes }
}
{
name: move_one_word_left
modifier: alt
keycode: left
mode: emacs
event: { edit: movewordleft }
}
{
name: move_one_word_right_or_take_history_hint
modifier: alt
keycode: right
mode: emacs
event: {
until: [
{ send: historyhintwordcomplete }
{ edit: movewordright }
]
}
}
{
name: move_one_word_left
modifier: alt
keycode: char_b
mode: emacs
event: { edit: movewordleft }
}
{
name: move_one_word_right_or_take_history_hint
modifier: alt
keycode: char_f
mode: emacs
event: {
until: [
{ send: historyhintwordcomplete }
{ edit: movewordright }
]
}
}
{
name: delete_one_word_forward
modifier: alt
keycode: delete
mode: emacs
event: { edit: deleteword }
}
{
name: delete_one_word_backward
modifier: alt
keycode: backspace
mode: emacs
event: { edit: backspaceword }
}
{
name: delete_one_word_backward
modifier: alt
keycode: char_m
mode: emacs
event: { edit: backspaceword }
}
{
name: cut_word_to_right
modifier: alt
keycode: char_d
mode: emacs
event: { edit: cutwordright }
}
{
name: upper_case_word
modifier: alt
keycode: char_u
mode: emacs
event: { edit: uppercaseword }
}
{
name: lower_case_word
modifier: alt
keycode: char_l
mode: emacs
event: { edit: lowercaseword }
}
{
name: capitalize_char
modifier: alt
keycode: char_c
mode: emacs
event: { edit: capitalizechar }
}
# The following bindings with `*system` events require that Nushell has
# been compiled with the `system-clipboard` feature.
# This should be the case for Windows, macOS, and most Linux distributions
# Not available for example on Android (termux)
# If you want to use the system clipboard for visual selection or to
# paste directly, uncomment the respective lines and replace the version
# using the internal clipboard.
{
name: copy_selection
modifier: control_shift
keycode: char_c
mode: emacs
event: { edit: copyselection }
# event: { edit: copyselectionsystem }
}
{
name: cut_selection
modifier: control_shift
keycode: char_x
mode: emacs
event: { edit: cutselection }
# event: { edit: cutselectionsystem }
}
# {
# name: paste_system
# modifier: control_shift
# keycode: char_v
# mode: emacs
# event: { edit: pastesystem }
# }
{
name: select_all
modifier: control_shift
keycode: char_a
mode: emacs
event: { edit: selectall }
}
]
}
# Yazi wrapper
def --env y [...args] {
let tmp = (mktemp -t "yazi-cwd.XXXXXX")
yazi ...$args --cwd-file $tmp
let cwd = (open $tmp)
if $cwd != "" and $cwd != $env.PWD {
cd $cwd
}
rm -fp $tmp
}
# Clone https://github.com/nushell/nu_scripts/tree/main/themes/nu-themes
# use /home/alex/.config/nushell/nu_scripts/themes/nu-themes/gruvbox-dark.nu
# $env.config = ($env.config | merge {color_config: (gruvbox-dark)})
# source /home/alex/.config/nushell/nu_scripts/themes/nu-themes/gruvbox-dark.nu
alias b = buku
alias c = chezmoi
alias t = task
alias tt = taskwarrior-tui
alias m = neomutt
alias h = hx
alias ll = eza
# Jump to a directory with "z"
source ~/.zoxide.nu
# Better prompt
mkdir ($nu.data-dir | path join "vendor/autoload")
starship init nu | save -f ($nu.data-dir | path join "vendor/autoload/starship.nu")
# Better shell history
source ~/.local/share/atuin/init.nu
experimental-features = nix-command flakes
#---- Mail setup ----
set from = "alexis@praga.dev"
set realname = "Alexis Praga"
set mbox_type = Maildir # an we avoid that ?
set folder = "~/mail"
set sendmail = "msmtp"
# notmuch
set nm_default_url = "notmuch:///home/alex/mail"
set virtual_spoolfile=yes # enable virtual folders
virtual-mailboxes \
"INBOX" "notmuch://?query=tag:new"\
"Archives" "notmuch://?query=tag:archive"\
"Unread" "notmuch://?query=tag:unread"\
"Starred" "notmuch://?query=tag:*"\
"Sent" "notmuch://?query=tag:sent" # sets up queries for virtual folders
# notmuch bindings
macro index s "<vfolder-from-query>" # looks up a hand made query
macro index a "<modify-labels>+archive -unread -new<enter>" # tag as Archived
bind index g noop
bind pager g noop
macro index,pager gi "<change-vfolder>!<enter>" "Go to Inbox"
macro index,pager ga "<change-vfolder>Archives<enter>" "Go to Inbox"
macro index,pager gs "<change-vfolder>Sent<enter>" "Go to Inbox"
macro index d "<modify-labels-then-hide>-new -unread +deleted<enter>" # tag as Junk mail
macro index + "<modify-labels>+*<enter><sync-mailbox>" # tag as starred
macro index - "<modify-labels>-*<enter><sync-mailbox>" # tag as unstarred
macro index - "<modify-labels>-*<enter><sync-mailbox>" # tag as unstarred
# Adress completion
set query_command = "notmuch address %s"
set query_format = "%5c %t %a %n %?e?(%e)?"
bind editor <Tab> complete-query
# mailbox settings
set spoolfile = +INBOX
set postponed = +Drafts
set record = +Sent
set trash = +Trash
# cache settings
set header_cache = "~/.cache/mutt/infomaniak/header_cache"
set message_cachedir = "~/.cache/mutt/infomaniak/message_cache"
# synchronization settings ['s' to sync]
macro index S "<shell-escape>mbsync -a<enter>" "sync email"
#---- Esthetic setup ----
# set sidebar_visible = yes
# Better sort
set sort = 'threads'
set sort_aux = 'reverse-date-received'
# view html automatically
auto_view text/html
alternative_order text/plain text/enriched text/html
# Catppuccin mocha
color normal default default # Text is "Text"
color index color2 default ~N # New Messages are Green
color index color1 default ~F # Flagged messages are Red
color index color13 default ~T # Tagged Messages are Red
color index color1 default ~D # Messages to delete are Red
color attachment color5 default # Attachments are Pink
color signature color8 default # Signatures are Surface 2
color search color4 default # Highlighted results are Blue
color indicator default color8 # currently highlighted message Surface 2=Background Text=Foreground
color error color1 default # error messages are Red
color status color15 default # status line "Subtext 0"
color tree color15 default # thread tree arrows Subtext 0
color tilde color15 default # blank line padding Subtext 0
color hdrdefault color13 default # default headers Pink
color header color13 default "^From:"
color header color13 default "^Subject:"
color quoted color15 default # Subtext 0
color quoted1 color7 default # Subtext 1
color quoted2 color8 default # Surface 2
color quoted3 color0 default # Surface 1
color quoted4 color0 default
color quoted5 color0 default
color body color2 default [\-\.+_a-zA-Z0-9]+@[\-\.a-zA-Z0-9]+ # email addresses Green
color body color2 default (https?|ftp)://[\-\.,/%~_:?&=\#a-zA-Z0-9]+ # URLs Green
color body color4 default (^|[[:space:]])\\*[^[:space:]]+\\*([[:space:]]|$) # *bold* text Blue
color body color4 default (^|[[:space:]])_[^[:space:]]+_([[:space:]]|$) # _underlined_ text Blue
color body color4 default (^|[[:space:]])/[^[:space:]]+/([[:space:]]|$) # /italic/ text Blue
color sidebar_flagged color1 default # Mailboxes with flagged mails are Red
color sidebar_new color10 default # Mailboxes with new mail are Green
ncmpcpp_directory = "~/.ncmpcpp"
mpd_host = "localhost"
mpd_port = "6600"
mpd_music_dir = "/data/music/"
visualizer_color = 7, 2, 5, 15, 10, 14
color1 = 5
color2 = 5
# Read the user manual for documentation: http://www.musicpd.org/doc/user/
# Start mpd as the current user (default)
music_directory "/data/music"
playlist_directory "~/.mpd/playlists"
db_file "~/.mpd/database"
log_file "~/.mpd/log"
pid_file "~/.mpd/pid"
state_file "~/.mpd/state"
bind_to_address "localhost"
port "6600"
audio_output {
type "pulse"
name "My MPD PulseAudio Output"
#server "localhost" # optional
#sink "alsa_output" # optional
}
[Default Applications]
x-scheme-handler/http=userapp-Firefox-T6KD41.desktop
x-scheme-handler/https=userapp-Firefox-T6KD41.desktop
x-scheme-handler/chrome=userapp-Firefox-T6KD41.desktop
text/html=firefox-bin.desktop
application/x-extension-htm=userapp-Firefox-T6KD41.desktop
application/x-extension-html=userapp-Firefox-T6KD41.desktop
application/x-extension-shtml=userapp-Firefox-T6KD41.desktop
application/xhtml+xml=userapp-Firefox-T6KD41.desktop
application/x-extension-xhtml=userapp-Firefox-T6KD41.desktop
application/x-extension-xht=userapp-Firefox-T6KD41.desktop
application/pdf=org.pwmt.zathura.desktop
x-scheme-handler/about=firefox-bin.desktop
x-scheme-handler/unknown=firefox-bin.desktop
application/javascript=firefox-bin.desktop
[Added Associations]
x-scheme-handler/http=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
x-scheme-handler/https=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
x-scheme-handler/chrome=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
text/html=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/x-extension-htm=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/x-extension-html=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/x-extension-shtml=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/xhtml+xml=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/x-extension-xhtml=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
application/x-extension-xht=firefox-esr.desktop;userapp-Firefox-T6KD41.desktop;
modus-operandi.conf
font_family Iosevka
font_size 14
# include modus-operandi.conf
include modus-vivendi-tinted.conf
# BEGIN_KITTY_THEME
# Catppuccin-Latte
include current-theme.conf
# END_KITTY_THEME
font_family Iosevka
font_size 14
# include modus-operandi.conf
include modus-vivendi-tinted.conf
# BEGIN_KITTY_THEME
# Catppuccin-Mocha
include current-theme.conf
# END_KITTY_THEME
# vim:ft=kitty
## name: Modus Vivendi
## author: Protesilaos Stavrou
## license: GNU GPLv3
## blurb: Highly accessible themes made for GNU Emacs, conforming with the highest
## standard for colour contrast between background and foreground values (WCAG AAA)
# The basic colors
foreground #ffffff
background #000000
selection_foreground #ffffff
selection_background #5c5c5c
# Cursor colors
cursor #ffffff
cursor_text_color #000000
# kitty window border colors
active_border_color #c6daff
inactive_border_color #646464
# Tab bar colors
active_tab_foreground #ffffff
active_tab_background #545454
inactive_tab_foreground #969696
inactive_tab_background #2f2f2f
# The basic 16 colors
# black
color0 #000000
color8 #595959
# red
color1 #ff5f59
color9 #ff7f9f
# green
color2 #44bc44
color10 #70b900
# yellow
color3 #d0bc00
color11 #fec43f
# blue
color4 #2fafff
color12 #79a8ff
# magenta
color5 #feacd0
color13 #b6a0ff
# cyan
color6 #00d3d0
color14 #6ae4b9
# white
color7 #989898
color15 #ffffff
# vim:ft=kitty
## name: Modus Vivendi Tinted
## author: Protesilaos Stavrou
## license: GNU GPLv3
## blurb: Highly accessible themes made for GNU Emacs, conforming with the highest
## standard for colour contrast between background and foreground values (WCAG AAA)
# The basic colors
foreground #ffffff
background #0d0e1c
selection_foreground #ffffff
selection_background #5c5c5c
# Cursor colors
cursor #ffffff
cursor_text_color #0d0e1c
# kitty window border colors
active_border_color #c6daff
inactive_border_color #595959
# Tab bar colors
active_tab_foreground #ffffff
active_tab_background #4a4f6a
inactive_tab_foreground #969696
inactive_tab_background #2b3046
# The basic 16 colors
# black
color0 #0d0e1c
color8 #595959
# red
color1 #ff5f59
color9 #ff7f9f
# green
color2 #44bc44
color10 #70b900
# yellow
color3 #d0bc00
color11 #fec43f
# blue
color4 #2fafff
color12 #79a8ff
# magenta
color5 #feacd0
color13 #b6a0ff
# cyan
color6 #00d3d0
color14 #6ae4b9
# white
color7 #989898
color15 #ffffff
# vim:ft=kitty
## name: Modus Operandi
## author: Protesilaos Stavrou
## license: GNU GPLv3
## blurb: Highly accessible themes made for GNU Emacs, conforming with the highest
## standard for colour contrast between background and foreground values (WCAG AAA)
# The basic colors
foreground #000000
background #ffffff
selection_foreground #000000
selection_background #bcbcbc
# Cursor colors
cursor #000000
cursor_text_color #ffffff
# kitty window border colors
active_border_color #193668
inactive_border_color #9f9f9f
# Tab bar colors
active_tab_foreground #000000
active_tab_background #c4c4c4
inactive_tab_foreground #585858
inactive_tab_background #e3e3e3
# The basic 16 colors
# black
color0 #000000
color8 #585858
# red
color1 #a60000
color9 #972500
# green
color2 #006800
color10 #316500
# yellow
color3 #6f5500
color11 #884900
# blue
color4 #0031a9
color12 #354fcf
# magenta
color5 #721045
color13 #531ab6
# cyan
color6 #00538b
color14 #005a5f
# white
color7 #c4c4c4
color15 #595959
# vim:ft=kitty
## name: Modus Operandi Tinted
## author: Protesilaos Stavrou
## license: GNU GPLv3
## blurb: Highly accessible themes made for GNU Emacs, conforming with the highest
## standard for colour contrast between background and foreground values (WCAG AAA)
# The basic colors
foreground #000000
background #fbf7f0
selection_foreground #000000
selection_background #bcbcbc
# Cursor colors
cursor #000000
cursor_text_color #fbf7f0
# kitty window border colors
active_border_color #193668
inactive_border_color #9f9f9f
# Tab bar colors
active_tab_foreground #000000
active_tab_background #c9b8b1
inactive_tab_foreground #585858
inactive_tab_background #dfd6cd
# The basic 16 colors
# black
color0 #000000
color8 #585858
# red
color1 #a60000
color9 #972500
# green
color2 #006800
color10 #316500
# yellow
color3 #6f5500
color11 #884900
# blue
color4 #0031a9
color12 #354fcf
# magenta
color5 #721045
color13 #531ab6
# cyan
color6 #00538b
color14 #005a5f
# white
color7 #c9b8b1
color15 #585858
# vim:ft=kitty
## name: Catppuccin-Mocha
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #F5E0DC
# Kitty window border colors
active_border_color #B4BEFE
inactive_border_color #6C7086
bell_border_color #F9E2AF
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #B4BEFE
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #45475A
color8 #585B70
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #89B4FA
color12 #89B4FA
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #BAC2DE
color15 #A6ADC8
## name: Gruvbox Light
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-light.conf
selection_foreground #3c3836
selection_background #d65d0e
background #fbf1c7
foreground #3c3836
color0 #ebdbb2
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #7c6f64
color8 #928374
color9 #9d0006
color10 #79740e
color11 #b57614
color12 #076678
color13 #8f3f71
color14 #427b58
color15 #282828
cursor #665c54
cursor_text_color #bdae93
url_color #458588
## name: Gruvbox Dark
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
selection_foreground #ebdbb2
selection_background #d65d0e
background #282828
foreground #ebdbb2
color0 #3c3836
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #a89984
color8 #928374
color9 #fb4934
color10 #b8bb26
color11 #fabd2f
color12 #83a598
color13 #d3869b
color14 #8ec07c
color15 #fbf1c7
cursor #bdae93
cursor_text_color #665c54
url_color #458588
# vim:ft=kitty
## name: Catppuccin-Mocha
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #F5E0DC
# Kitty window border colors
active_border_color #B4BEFE
inactive_border_color #6C7086
bell_border_color #F9E2AF
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #B4BEFE
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #45475A
color8 #585B70
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #89B4FA
color12 #89B4FA
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #BAC2DE
color15 #A6ADC8
# vim:ft=kitty
## name: Catppuccin-Latte
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #4C4F69
background #EFF1F5
selection_foreground #EFF1F5
selection_background #DC8A78
# Cursor colors
cursor #DC8A78
cursor_text_color #EFF1F5
# URL underline color when hovering with mouse
url_color #DC8A78
# Kitty window border colors
active_border_color #7287FD
inactive_border_color #9CA0B0
bell_border_color #DF8E1D
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #EFF1F5
active_tab_background #8839EF
inactive_tab_foreground #4C4F69
inactive_tab_background #9CA0B0
tab_bar_background #BCC0CC
# Colors for marks (marked text in the terminal)
mark1_foreground #EFF1F5
mark1_background #7287fD
mark2_foreground #EFF1F5
mark2_background #8839EF
mark3_foreground #EFF1F5
mark3_background #209FB5
# The 16 terminal colors
# black
color0 #5C5F77
color8 #6C6F85
# red
color1 #D20F39
color9 #D20F39
# green
color2 #40A02B
color10 #40A02B
# yellow
color3 #DF8E1D
color11 #DF8E1D
# blue
color4 #1E66F5
color12 #1E66F5
# magenta
color5 #EA76CB
color13 #EA76CB
# cyan
color6 #179299
color14 #179299
# white
color7 #ACB0BE
color15 #BCC0CC
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
autogenerated = 0 # remove this line to remove the warning
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/Configuring-Hyprland/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
# monitor=,preferred,auto,auto # This flickers...
# change monitor to high resolution, the last argument is the scale factor
# This is equivalent to "preferred" (see wlr-randr) but flickers...
# monitor = HDMI-A-1, 1680x1050@59.95399, auto, 1
# This is equivalent to "highres"
# monitor = HDMI-A-1, 1920x1080@59.939999, 1920x0, 1
# 1 for gimp, gephe
# monitor = , highres, auto, 1,
# availableModes: 1680x1050@59.95Hz 1920x1080@60.00Hz 1920x1080@59.94Hz 1920x1080@50.00Hz 1600x1000@60.01Hz 1280x1024@75.03Hz 1280x1024@60.02Hz 1440x900@59.90Hz 1280x960@60.00Hz 1280x800@59.95Hz 1152x864@75.00Hz 1280x720@60.00Hz 1280x720@59.94Hz 1280x720@50.00Hz 1152x720@59.97Hz 1024x768@75.03Hz 1024x768@60.00Hz 832x624@74.55Hz 800x600@75.00Hz 800x600@60.32Hz 720x576@50.00Hz 720x576@50.00Hz 720x480@60.00Hz 720x480@59.94Hz 720x480@59.94Hz 640x480@75.00Hz 640x480@60.00Hz 640x480@59.94Hz 640x480@59.94Hz 720x400@70.08Hz
monitor = eDP-1, 1920x1200@60, 0x0, 1
# After many trials !!
monitor = HDMI-A-1, 1600x1050@60, 1920x0, 1
#monitor = , preferred, auto, 1
#monitor = , highres, auto, auto
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = alacritty
# need https://github.com/wez/wezterm/pull/4991
#$terminal = ~/.cargo/bin/wezterm
$menu = wofi --show run
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
exec-once=fcitx5-remote -r
exec-once=fcitx5 -d --replace &
exec-once=fcitx5-remote -r
bind=SUPER_CTRL,space,execr,fcitx5-remote -t
exec-once = nm-applet &
exec-once = waybar # & hyprpaper & firefox
exec-once= wlsunset -L 47.255 -l 6.0121
exec-once = brightnessctl s 10%
#exec-once = pueued -d
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 20
border_size = 2
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 10
# Change transparency of focused and unfocused windows
# active_opacity = 1.0
# inactive_opacity = 1.0
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = false
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = true
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 7, myBezier
animation = windowsOut, 1, 7, default, popin 80%
animation = border, 1, 10, default
animation = borderangle, 1, 8, default
animation = fade, 1, 7, default
animation = workspaces, 1, 6, default
}
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
# master {
# new_is_master = true
# }
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = fr
kb_variant = ergol
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = false
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = false
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
####################
### KEYBINDINGSS ###
####################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $emacs
bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
bind = $mainMod SHIFT, F, exec, firefox-bin
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Resize with keyboard only
bind = $mainMod SHIFT, right, resizeactive, 10 0
bind = $mainMod SHIFT, left, resizeactive, -10 0
bind = $mainMod SHIFT, up, resizeactive, 0 -10
bind = $mainMod SHIFT, down, resizeactive, 0 10
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
exec-once=dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG-CURRENT-DESKTOP
[language-server]
zk-lsp = { command = "zk", args = [ "lsp"]}
# Require a vale.ini !
vale-ls = { command = "vale-ls"}
[[language]]
name = "markdown"
# language-servers = ["marksman", "mpls", "vale-ls"]
roots = [ ".zk" ]
language-servers = [ "zk-lsp" ]
[language-server.mpls]
command = "mpls"
args = ["--dark-mode", "--enable-emoji", "--no-auto"]
[[language]]
name = "typst"
language-servers = [ "tinymist", "vale-ls"]
theme = "rose_pine_dawn"
[keys.normal.space]
#"n-l" = ":pipe zk list --format=link --match-title"
# Create new note and link
# "n" = ":pipe-to zk new --title"
(setopt load-prefer-newer t) ;; Always load newest byte code
(setopt package-archives '(("melpa" . "https://melpa.org/packages/")
("gnu" . "https://elpa.gnu.org/packages/")
("nongnu" . "https://elpa.nongnu.org/nongnu/")))
(setopt package-archive-priorities '(("gnu" . 99)
("nongnu" . 80)
("melpa" . 70)))
(setopt use-package-always-ensure t)
(package-initialize)
;; (use-package ef-themes
;; :config
;; (ef-themes-select 'ef-day))
(load-theme 'modus-operandi)
;; For nix and guix
(add-to-list 'exec-path "/home/alex/.guix-profile/bin")
(add-to-list 'exec-path "/home/alex/. :if (eq system-type 'darwin)nix-profile/bin")
(when (eq system-type 'windows-nt)
;; On some windows computers, there are encoding issues with consult-fd
(setopt current-language-environment "French")
(prefer-coding-system 'utf-8)
)
;; Better user experience
(setopt line-number-mode t
column-number-mode t)
;; Window dividers for better visual separation
(setopt window-divider-default-places 'right-only
window-divider-default-right-width 1)
;; automatic backup
(setopt auto-save-default t
auto-save-interval 300
auto-save-timeout 30
make-backup-files t
vc-make-backup-files t
kept-old-versions 10
kept-new-versions 10)
;; /smoother scrollingt (setopt not needed for mac)
(setopt pixel-scroll-precision-use-momentum nil)
(setopt pixel-scroll-precision-mode t)
;; Replace selected text when typing
(setopt delete-selection-mode t)
;; Performance settings
(setopt gc-cons-threshold 100000000 ; 100MB
read-process-output-max (* 1024 1024)) ; 1MB
;; Hide files from dired
(setopt dired-omit-files (concat "\\`[.]\\'"
"\\|\\(?:\\.js\\)?\\.meta\\'"
"\\|\\.\\(?:elc|a\\|o\\|pyc\\|pyo\\|swp\\|class\\)\\'"
"\\|^\\.DS_Store\\'"
"\\|^\\.\\(?:svn\\|git\\)\\'"
"\\|^\\.ccls-cache\\'"
"\\|^__pycache__\\'"
"\\|^\\.project\\(?:ile\\)?\\'"
"\\|^flycheck_.*"
"\\|^flymake_.*"))
(add-hook 'after-init-hook #'recentf-mode)
(add-hook 'after-init-hook #'savehist-mode)
(add-hook 'after-init-hook #'save-place-mode)
(add-hook 'after-init-hook #'show-paren-mode) ; Highlight parenthesis match
(add-hook 'after-init-hook #'winner-mode) ; Undo window closing
(add-hook 'after-init-hook #'display-time-mode) ; Time in modeline
(add-hook 'after-init-hook #'window-divider-mode) ; Resize windows with the mouse
(add-hook 'kill-emacs-hook #'recentf-cleanup)
(add-hook 'dired-mode-hook #'dired-omit-mode) ; Dired buffers: Automatically hide file details (permissions, size,
(add-hook 'dired-mode-hook #'dired-hide-details-mode)
(provide 'init-start)
;; ;; ----- Spellcheck -----
;; On gentoo, requires miscutils to have a dictionary list
(use-package ispell
:ensure nil
:defer t
:commands (ispell ispell-minor-mode)
:custom
;; Set the ispell program name to aspell
(ispell-program-name "aspell")
;; Configures Aspell's suggestion mode to "ultra", which provides more
;; aggressive and detailed suggestions for misspelled words. The language
(ispell-extra-args '("--sug-mode=ultra" "--lang=fr_FR")))
(use-package flyspell
:ensure nil
:defer t
:commands flyspell-mode
:hook
((prog-mode . flyspell-prog-mode)
(text-mode . (lambda()
(if (or (derived-mode-p 'yaml-mode)
(derived-mode-p 'yaml-ts-mode)
(derived-mode-p 'ansible-mode))
(flyspell-prog-mode)
(flyspell-mode 1)))))
:config
;; Remove strings from Flyspell
(setq flyspell-prog-text-faces (delq 'font-lock-string-face
flyspell-prog-text-faces))
;; Remove doc from Flyspell
(setq flyspell-prog-text-faces (delq 'font-lock-doc-face
flyspell-prog-text-faces)))
(provide 'init-spellcheck)
;; ----- Org ------
(defun my/gtd-agenda (view-name)
"Create an agenda view for GTD in different context based on tags.
With this approach, we cannot have an \"shared\" inbox as tag filtering
is applied to the whole view *before* this function."
(let ((agenda-header view-name))
`((agenda "" ((org-agenda-span 'day)
(org-agenda-overriding-header ,agenda-header)
(org-agenda-skip-function
'(org-agenda-skip-entry-if 'todo 'done))
))
(todo "NEXT"
((org-agenda-skip-function
'(org-agenda-skip-entry-if 'scheduled 'deadline))
(org-agenda-overriding-header "Next")
))
(tags-todo "CATEGORY=\"inbox\""
((org-agenda-prefix-format " %?-12t% s")
(org-agenda-overriding-header "Inbox"))))))
(use-package org
:ensure t
:defer t
:commands (org-mode org-version)
:hook (org-mode . visual-line-mode)
:mode
("\\.org\\'" . org-mode)
:bind (("C-c a" . org-agenda)
("C-c c" . org-capture)
("C-c ," . nil) ; For homw
:map org-mode-map
("C-'" . nil)) ; For avy-goto-char2 (org-cycle-agenda-files)
:custom
(org-directory (expand-file-name "~/org/"))
(org-cycle-hide-drawers 'all) ; Cleaner view
(org-startup-folded 'fold) ; Cleaner view
(org-hide-block-startup t)
(org-todo-keywords '((sequence "TODO(t)" "WAIT(w)" "NEXT(n)" "STARTED(s)" "|" "CANCEL(c)" "DONE(d)")))
;; Agenda
(org-agenda-files '("inbox.org" "todo.org"))
(org-capture-templates
'(("t" "Todo" entry (file "inbox.org")
"* TODO %?\n /Entered on/ %U")
("s" "Sport")
("sc" "Course" entry (file "sport.org")
"* %t :course:
%^{durée}p
%^{intensité}p")
("st" "Étirement" entry (file "sport.org")
"* %t :étirement:
%^{hamstring}p
%^{butterfly}p
%^{pancake}p
%^{pigeon}p
%^{middle_split}p
%^{fenêtre}p")
("ss" "Escalade" entry (file "sport.org")
"* %t :escalade: \n %^{durée}p")
("sm" "Muscu" entry (file "sport.org")
"* %t :muscu:
%^{muscle_up_bar}p
%^{compression}p
%^{extension}p
%^{push_up_tucked}p
%^{planche_tucked}p
")
("sk" "Parkour" entry (file "sport.org")
"* %t :parkour: \n %^{durée}p")
("sp" "Patinage" entry (file "sport.org")
"* %t :patinage: \n %^{durée}p")
("sr" "Roller" entry (file "sport.org")
"* %t :roller: \n %^{durée}p")))
(org-return-follows-link t) ; RET
(org-mouse-1-follows-link t)
(org-log-done 'time) ; Store date when CLOSED
(org-link-descriptive t) ; Display links as the description provided
(org-hide-leading-stars t) ; Better display
(org-hide-emphasis-marker t) ; Better display
(org-refile-targets ; Refile in subprojets
'((org-agenda-files . (:maxlevel . 4))
(nil . (:maxlevel . 2))))
(org-agenda-custom-commands
`(
("h" "Home" ,(my/gtd-agenda "Home") ((org-agenda-tag-filter-preset '("-work"))))
("w" "Work" ,(my/gtd-agenda "Work") ((org-agenda-tag-filter-preset '("+work"))))
("r" "Rewiew"
((todo "TODO"))
((org-agenda-skip-scheduled-if-deadline-is-shown t)))
("w" "Waiting tasks" ((todo "WAIT")))))
:config
;; gunlpot support
(org-babel-do-load-languages
'org-babel-load-languages
'((gnuplot . t))))
;; Quick and dirty plotting
(use-package gnuplot)
;;(use-package gnuplot-mode)
(provide 'init-org)
(use-package org-roam
:ensure t
:custom
(org-roam-directory "~/org/notes")
;; Show tags in search
(org-roam-node-display-template (concat "${title:*} " (propertize "${tags:15}" 'face 'org-tag)))
;; Journal notes with dailies
(org-roam-dailies-directory "journal/")
(org-roam-autosync-mode 1)
(org-roam-dailies-capture-templates
'(("d" "default" entry
"* %?"
:target (file+head "%<%Y-%m-%d>.org"
"#+title: %<%Y-%m-%d>\n#+filetags: :draft:\n"))))
:bind
(("C-c n f" . org-roam-node-find)
("C-c n i" . org-roam-node-insert)
("C-c n j" . org-roam-dailies-capture-today)
("C-c n J" . org-roam-dailies-goto-today)
))
(provide 'init-notes)
(use-package vertico
;; (Note: It is recommended to also enable the savehist package.)
:ensure t
:defer t
:commands vertico-mode
:hook (after-init . vertico-mode))
(use-package orderless
;; Vertico leverages Orderless' flexible matching capabilities, allowing users
;; to input multiple patterns separated by spaces, which Orderless then
;; matches in any order against the candidates.
:ensure t
:custom
(completion-styles '(orderless basic))
(completion-category-defaults nil)
(completion-category-overrides '((file (styles partial-completion)))))
(use-package marginalia
;; Marginalia allows Embark to offer you preconfigured actions in more contextes.
;; In addition to that, Marginalia also enhances Vertico by adding rich
;; annotations to the completion candidates displayed in Vertico's interface.
:ensure t
:defer t
:commands (marginalia-mode marginalia-cycle)
:hook (after-init . marginalia-mode))
(use-package embark
;; Embark is an Emacs package that acts like a context menu, allowing
;; users to perform context-sensitive actions on selected items
;; directly from the completion interface.
:ensure t
:defer t
:commands (embark-act
embark-dwim
embark-export
embark-collect
embark-bindings
embark-prefix-help-command)
:bind
(("C-." . embark-act) ;; pick some comfortable binding
("M-." . embark-dwim) ;; good alternative: M-.
("C-h B" . embark-bindings) ; alternative for `describe-bindings'
)
:init
(setq prefix-help-command #'embark-prefix-help-command)
:config
;; Hide the mode line of the Embark live/completions buffers
(add-to-list 'display-buffer-alist
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
nil
(window-parameters (mode-line-format . none)))))
(use-package embark-consult
:ensure t
:hook
(embark-collect-mode . consult-preview-at-point-mode))
(use-package consult
:ensure t
:bind (;; C-c bindings in `mode-specific-map'
("C-c M-x" . consult-mode-command)
("C-c h" . consult-history)
("C-c r" . consult-recent-file) ; <3
;; C-x bindings in `ctl-x-map'
("C-x M-:" . consult-complex-command)
("C-x b" . consult-buffer)
("C-x 4 b" . consult-buffer-other-window)
("C-x 5 b" . consult-buffer-other-frame)
("C-x t b" . consult-buffer-other-tab)
("C-x r b" . consult-bookmark)
("C-x p b" . consult-project-buffer)
;; Other custom bindings
("M-y" . consult-yank-pop)
;; M-g bindings in `goto-map'
;; M-s bindings in `search-map'
("M-s d" . consult-find)
("M-s c" . consult-locate)
("M-s g" . consult-grep)
("M-s r" . consult-ripgrep)
("M-s l" . consult-line)
("M-s L" . consult-line-multi)
("M-s k" . consult-keep-lines)
("M-s u" . consult-focus-lines)
;; Isearch integration
("M-s e" . consult-isearch-history)
:map isearch-mode-map
("M-e" . consult-isearch-history)
("M-s e" . consult-isearch-history)
("M-s l" . consult-line)
("M-s L" . consult-line-multi)
;; Minibuffer history
:map minibuffer-local-map
("M-s" . consult-history)
("M-r" . consult-history))
;; Enable automatic preview at point in the *Completions* buffer.
:hook (completion-list-mode . consult-preview-at-point-mode)
:init
;; Use Consult to select xref locations with preview
(setq xref-show-xrefs-function #'consult-xref
xref-show-definitions-function #'consult-xref)
:config
(consult-customize
consult-theme :preview-key '(:debounce 0.2 any)
consult-ripgrep consult-git-grep consult-grep
consult-bookmark consult-recent-file consult-xref
consult--source-bookmark consult--source-file-register
consult--source-recent-file consult--source-project-recent-file
;; :preview-key "M-."
:preview-key '(:debounce 0.4 any))
(setq consult-narrow-key "<"))
(provide 'init-minibuffer)
(use-package notmuch
:ensure t
:defer t
:bind
;; Go to inbox by default ("m" for mail)
;; FIXME avoid duplicates
(("C-c m" . (lambda () (interactive)
(notmuch-search "tag:new AND not (tag:deleted OR tag:archive)")))
:map notmuch-search-mode-map
("d" . (lambda ()
(interactive)
(notmuch-search-tag '("+deleted" "-new"))
(notmuch-search-next-thread))))
:custom
(send-mail-function 'sendmail-send-it)
(sendmail-program "/usr/bin/msmtp")
(user-mail-address "alexis@praga.dev")
;; Afew should move deleted and archived tag but until the next sync, we want a clean view of inbox
(notmuch-saved-searches '((:name "inbox" :query "tag:new AND not (tag:deleted OR tag:archive)" :key "i")
(:name "archive" :query "tag:archive" :key "a")))
(notmuch-archive-tags '("+archive"))
(notmuch-fcc-dirs nil)
)
(provide 'init-mail)
(use-package ace-window
:bind
(("C-x o" . ace-window)))
(provide 'init-graphical)
;; When emacs is not enough
(use-package eshell
:bind (("C-c s" . eshell)))
; Nice link, not enabled by defaut
(use-package hyperbole
:pin melpa ; 9.0.1 do not define a default for hyrolo, get the latest
:config
(remove-hook 'hyrolo-add-hook #'hyrolo-set-date)
:custom
(hyrolo-file-list '("~/org/contacts.org"))
)
;; ----- Misc, better experience -----
(use-package which-key
:ensure nil ; builtin
:defer t
:commands which-key-mode
:hook (after-init . which-key-mode))
(use-package dired-preview) ; Enable on demand
;; Edit grep résulta
(use-package wgrep
:ensure t
:after grep
:bind
( :map grep-mode-map
("e" . wgrep-change-to-wgrep-mode)
("C-x C-q" . wgrep-change-to-wgrep-mode)
("C-c C-c" . wgrep-finish-edit))
:config
(setq wgrep-auto-save-buffer t)
(setq wgrep-change-readonly-file t))
(provide 'init-extras)
(use-package undo-fu
:ensure t)
(use-package avy
:ensure t
:config
(avy-setup-default)
:bind
;; Follow abo-abo idea : C-. is used by emark, C-, by flyspell.
(("C-'" . avy-goto-char-timer)
("M-g f" . avy-goto-line)
("M-g w" . avy-goto-word-1)
("M-g e" . avy-goto-word-0)
))
;; Emacs 30 built-in code completion instead of corfu+cape
;; For org-mode, does not start without the hack below (thanks https://www.reddit.com/r/emacs/comments/1j0wonk/how_to_trigger_completionpreview_in_orgmode_to/)
(use-package completion-preview
:hook ((prog-mode . completion-preview-mode)
(text-mode . completion-preview-mode))
;; Bindings that take effect when the preview is shown:
;; Cycle the completion candidate that the preview shows
:bind
(:map completion-preview-active-mode-map
("M-n" . completion-preview-next-candidate)
("M-p" . completion-preview-prev-candidate))
:config
;; From the dev himself https://eshelyaron.com/posts/2023-11-17-completion-preview-in-emacs.html
;; and in \\[shell] and friends
(with-eval-after-load 'comint
(add-hook 'comint-mode-hook #'completion-preview-mode))
;; Show the preview already after two symbol characters
(setq completion-preview-minimum-symbol-length 2)
;; Non-standard commands to that should show the preview:
;; Org mode has a custom `self-insert-command'
(push 'org-self-insert-command completion-preview-commands)
;; Paredit has a custom `delete-backward-char' command
(push 'paredit-backward-delete completion-preview-commands)
)
;; ------ LSP ------
(use-package eglot
:ensure nil
:defer t
:commands (eglot
eglot-ensure
eglot-rename
eglot-format-buffer))
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs
'(rust-mode . ("rust-analyzer"))))
(use-package nix-mode
:ensure t
:defer t
:mode "\\.nix\\'")
(use-package rust-mode
:ensure t
:defer t
:mode "\\.rs\\'"
:hook (rust-mode . eglot-ensure))
(use-package magit
:ensure t
:defer t
:init
(setq magit-define-global-key-bindings "recommended")) ; Evaluated after-init-hook
(provide 'init-code)
(use-package erc
:if (not (eq system-type 'windows-nt)) ; Disabled on windows
:config
;; Password is in ~/.authinfo
(erc-tls :server "irc.libera.chat" :port 6697 :nick "scut")
:custom
(erc-sasl-mechanism 'plain)
(erc-hide-list '("JOIN" "PART" "QUIT"))
(erc-autojoin-channels-alist '((Libera.Chat "#emacs" "#guix"))))
(provide 'init-chat)
;; ----- Bibliography ------
(use-package citar
:ensure t
:defer t
:bind
(("C-c b o" . citar-open) ; Open
("C-c b i" . citar-insert-citation))
;; paths to your bibtex
:custom
(citar-bibliography '("~/org/biblio/main.bib"))
;; Allow multiple notes per bibliographic entry
(citar-open-always-create-notes nil)
; (citar-notes-paths '("~/org/biblio"))
)
(use-package citar-embark
:after citar embark
:no-require
:config (citar-embark-mode))
(use-package citar-denote
:ensure t
:demand t ;; Ensure minor mode loads
:after (:any citar denote)
:preface
(bind-key "C-c n b" #'citar-denote-open-note)
:init
(citar-denote-mode))
(provide 'init-biblio)
(specifications->manifest
'( ;; "emacs"
"emacs-next-pgtk" ; wayland _ ergol
"emacs-avy"
"emacs-ace-window"
"emacs-citar"
;; "emacs-citar-embark"
"emacs-consult"
;; "emacs-org-roam" ; issue with compiled files
"emacs-dired-preview"
"emacs-embark"
;; "emacs-embark-consult"
"emacs-gnuplot"
;; "emacs-hyperbole" ; we need the latest
"emacs-magit"
"emacs-marginalia"
"emacs-nix-mode"
"emacs-notmuch"
"emacs-orderless"
"emacs-rust-mode"
"emacs-vertico"
"emacs-wgrep"
"emacs-undo-fu"
;; Non-emacs
"nushell"
"afew"
"notmuch"
"coreutils"
"findutils"
"font-aporetic"
"git"
"git-annex"
))
;; My config based on use-package, with inspiration from minimal-emacs (for the setup,
;; we basically dropped early-init and init), and some ideas from Prelude and Prot config
(add-to-list 'load-path "~/.config/emacs/modules")
(require 'init-start)
(require 'init-biblio)
(require 'init-chat)
(require 'init-code)
(require 'init-extras)
(require 'init-graphical)
(require 'init-mail)
(require 'init-minibuffer)
(require 'init-notes)
(require 'init-org)
(require 'init-spellcheck)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(org-fold-core-style 'overlays)
'(safe-local-variable-values
'((geiser-repl-per-project-p . t)
(eval with-eval-after-load 'yasnippet
(let
((guix-yasnippets
(expand-file-name "etc/snippets/yas"
(locate-dominating-file
default-directory ".dir-locals.el"))))
(unless (member guix-yasnippets yas-snippet-dirs)
(add-to-list 'yas-snippet-dirs guix-yasnippets)
(yas-reload-all))))
(eval with-eval-after-load 'tempel
(if (stringp tempel-path)
(setq tempel-path (list tempel-path)))
(let
((guix-tempel-snippets
(concat
(expand-file-name "etc/snippets/tempel"
(locate-dominating-file
default-directory
".dir-locals.el"))
"/*.eld")))
(unless (member guix-tempel-snippets tempel-path)
(add-to-list 'tempel-path guix-tempel-snippets))))
(eval with-eval-after-load 'git-commit
(add-to-list 'git-commit-trailers "Change-Id"))
(eval setq-local guix-directory
(locate-dominating-file default-directory ".dir-locals.el"))
(eval add-to-list 'completion-ignored-extensions ".go"))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
;; From Prot config
(setopt menu-bar-mode nil ; Clean-up GUIX
scroll-bar-mode nil
tool-bar-mode nil
inhibit-splash-screen t
inhibit-startup-screen t
use-file-dialog nil ; Better questions
use-short-answers t)
(set-face-attribute 'default nil :family "Iosevka" :height 140)
;; Theme is set with the daemon so flashing at startup should not be an issue
(setq package-enable-at-startup nil) ; Let the init.el file handle this
#throttle.min_peers.normal.set =50
#throttle.max_peers.normal.set =150
#throttle.min_peers.seed.set =50
#throttle.max_peers.seed.set =150
#throttle.max_uploads.set = 80
#trackers.numwant.set = -1
#throttle.global_down.max_rate.set_kb = 0
#throttle.global_up.max_rate.set_kb = 0
directory.default.set = ~/downloads
schedule2 = watch.directory,5,5,load.start=~/downloads/watch/rtorrent/*.torrent
schedule2 = watch_directory_jazz, 21, 10, "load.verbose=~/downloads/rtorrent/music/jazz/*.torrent,d.directory.set=~/media/music/Jazz"
schedule2 = watch_directory_classical, 22, 10, "load.verbose=~/downloads/rtorrent/music/classical/*.torrent,d.directory.set=~/media/music/Classical"
# network.port_range.set = 45000-60000
network.port_range.set = 46744-46744
network.port_random.set =no
#network.port_random.set =yes
pieces.hash.on_completion.set = no
pieces.hash.on_completion.set = no
trackers.use_udp.set = yes
encryption = allow_incoming,enable_retry,try_outgoing
dht.mode.set = disable
protocol.pex.set = no
network.http.ssl_verify_peer.set = 0
encoding.add = UTF-8
network.xmlrpc.size_limit.set = 2097152
system.file.max_size.set = -1
session.path.set = /home36/fitzwilly/.config/.session
network.bind_address.set = 37.48.95.197
network.scgi.open_port = 127.0.0.1:5035
execute2 = {sh,-c,/usr/bin/php /home36/fitzwilly/www/fitzwilly.bull.seedhost.eu/fitzwilly/rutorrent/php/initplugins.php fitzwilly &}
#log.open_file = rtorrent.log, (cat,/home36/fitzwilly/rtorrent.log)
#log.add_output = debug, rtorrent.log
#log.add_output = torrent_debug, rtorrent.log
#log.add_output = critical, rtorrent.log
#log.add_output = storage_debug, rtorrent.log
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; (package! org-super-agenda)
(package! org-ref)
(package! nushell-mode);
(package! typst-ts-mode :recipe (:host codeberg :repo "meow_king/typst-ts-mode"))
(package! denote) ; Alternative to org-roam
(package! consult-denote)
;; Bibliography. Bug fix : no slash neeede for subdir
;; https://github.com/pprevos/citar-denote/commit/4ae054c1a5f723bb4e8ffedeb59e0cfd3803f776
(package! citar-denote
:recipe (:host github :repo "pprevos/citar-denote"))
;; :pin "4ae054c")
(package! org-ql) ; Easier search org files
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a link to Doom's Module Index where all
;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
;; company ; the ultimate code completion backend
(corfu +orderless) ; complete with cap(f), cape and a flying feather!
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life
vertico ; the search engine of the future
:ui
deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
;; doom-dashboard ; a nifty splash screen for Emacs
;;doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
(ligatures +iosevka) ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
;; zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
;; file-templates ; auto-snippets for empty files Disable it for denote
fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
;;ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
; eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;;vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
grammar ; tasing grammar mistake every you make
:tools
;;ansible
biblio ; Writes a PhD for you (citation needed)
;;collab ; buffers with friends
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
lookup ; navigate your code and its documentation
(lsp +eglot) ; M-x vscode
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;tree-sitter ; syntax and parsing, sitting in a tree...
;;upload ; map local to remote projects via ssh/ftp
:os
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
;;(cc +lsp) ; C > C++ == 1
;;clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
;;json ; At least it ain't XML
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
;; latex ; writing papers in Emacs has never been so fun
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
;; markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org +pandoc) ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
;;(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
;;web ; the tubes
;;yaml ; JSON, but readable
;;zig ; C, but simpler
;;(mu4e +org +gmail)
notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
;;literate
(default +bindings +smartparens))
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(custom-safe-themes
'("94bed81ca0be98f58d2cfa2676221c492c8fd5f76b40abd9d73ac00c0d0c9711" "0325a6b5eea7e5febae709dab35ec8648908af12cf2d2b569bedc8da0a3a81c1" default))
'(package-selected-packages
'(catppuccin-theme autothemer modus-themes nano-theme vc-darcs csv-mode))
'(safe-local-variable-values
'((eval progn
(require 'lisp-mode)
(defun emacs27-lisp-fill-paragraph
(&optional justify)
(interactive "P")
(or
(fill-comment-paragraph justify)
(let
((paragraph-start
(concat paragraph-start "\\|\\s-*\\([(;\"]\\|\\s-:\\|`(\\|#'(\\)"))
(paragraph-separate
(concat paragraph-separate "\\|\\s-*\".*[,\\.]$"))
(fill-column
(if
(and
(integerp emacs-lisp-docstring-fill-column)
(derived-mode-p 'emacs-lisp-mode))
emacs-lisp-docstring-fill-column fill-column)))
(fill-paragraph justify))
t))
(setq-local fill-paragraph-function #'emacs27-lisp-fill-paragraph))
(eval modify-syntax-entry 43 "'")
(eval modify-syntax-entry 36 "'")
(eval modify-syntax-entry 126 "'")
(geiser-repl-per-project-p . t)
(eval with-eval-after-load 'yasnippet
(let
((guix-yasnippets
(expand-file-name "etc/snippets/yas"
(locate-dominating-file default-directory ".dir-locals.el"))))
(unless
(member guix-yasnippets yas-snippet-dirs)
(add-to-list 'yas-snippet-dirs guix-yasnippets)
(yas-reload-all))))
(eval with-eval-after-load 'tempel
(if
(stringp tempel-path)
(setq tempel-path
(list tempel-path)))
(let
((guix-tempel-snippets
(concat
(expand-file-name "etc/snippets/tempel"
(locate-dominating-file default-directory ".dir-locals.el"))
"/*.eld")))
(unless
(member guix-tempel-snippets tempel-path)
(add-to-list 'tempel-path guix-tempel-snippets))))
(eval setq-local guix-directory
(locate-dominating-file default-directory ".dir-locals.el"))
(eval add-to-list 'completion-ignored-extensions ".go"))))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
(setq doom-theme 'modus-vivendi
doom-font (font-spec :family "Aporetic Serif Mono" :size 19))
;; ----------- Org configuration
(after! org
:config
(setq org-archive-location "archive/%s_archive::" ; Avoid polluting with archive files
org-agenda-files (list "inbox.org" "projects.org")
;; We use org-agenda for day view, org-ql for the rest
org-log-done 'time ; Track done tasks
org-todo-keywords
'((sequence "TODO(t)" "NEXT(n)" "HOLD(h)" "STRT(s)" "|" "KILL(k)" "DONE(d)"))
org-agenda-start-day "0d" ; Day view by default
org-agenda-span 1 ; Day view by default
org-agenda-skip-scheduled-if-done t
org-agenda-skip-deadline-if-done t
org-agenda-skip-scheduled-if-deadline-is-shown t
org-capture-templates
'(("t" "Todo" entry (file "inbox.org")
"* TODO %?\n /Entered on/ %U")
("r" "Réunion" entry (file "reunions.org")
"* TODO %?\nEntered on %U\n %i"))
org-agenda-custom-commands
'(("w" "Work" agenda "" ((org-agenda-tag-filter-preset '("+work"))))
("h" "Home" agenda "" ((org-agenda-tag-filter-preset '("-work")))))
;; Latex
org-latex-pdf-process
'("lualatex -shell-escape -interaction nonstopmode %f")))
;; List books to read or waiting
(defun org-books()
(interactive)
(org-ql-search "~/org/livres.org"
'(todo "STRT" "TODO" "HOLD")
:sort '(todo reverse)))
;; List books to read or waiting
(defun org-movies()
(interactive)
(org-ql-search "~/org/films.org" '(todo)))
(use-package! org-habit) ; Recurring tasks
(after! ox-latex; Add koma-script
org-latex-classes
'("scrartcl"
"\\documentclass{scrartcl}"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
;; Mail settings
(after! notmuch
(setq +notmuch-sync-backend "notmuch new"
+notmuch-delete-tags '("+deleted" "-inbox" "-new" "-unread")
+notmuch-home-function (lambda () (notmuch-search "tag:new"))
notmuch-archive-tags '("+archive" "-inbox" "-new" "-unread")))
(setq sendmail-program "/usr/bin/msmtp" )
;; Use denote insteal of org-roam
(after! denote
:config
(setq denote-directory "~/org/zk"
;; Avoid date in english
denote-journal-extras-title-format '"%Y-%m-%d"))
;; Bibliography managed by denote in a subdirectory
(after! citar
:config
(setq! citar-bibliography '("~/org/biblio/main.bib")))
(use-package citar-denote
:ensure t
:after (:any citar denote)
:custom
;; Package defaults
(citar-denote-subdir "biblio") ; See packages.el
(citar-denote-title-format "author-year")
:config
(citar-denote-mode)
)
(after! deft
:config
(setq deft-directory "~/org/zk"))
;; Use denote insteal of org-roam
(map! :leader
(:prefix-map ("n" . "notes")
:desc "Find files in notes" "f" #'consult-denote-find
:desc "Open/create note" "o" #'denote-open-or-create
:desc "Insert link" "l" #'denote-link-or-create
:desc "Insert link to heading" "h" #'denote-org-extras-link-to-heading
:desc "Rename note" "r" #'denote-rename-file
:desc "Rename note title" "t" #'denote-rename-file-title
:desc "Rename note keywords" "k" #'denote-rename-file-keywords
:desc "Journal-entry" "j" #'denote-journal-extras-new-or-existing-entry
;; custom function to open papers or biblio urlsnotes. Assume vertico
(:when (modulep! :tools biblio)
:desc "Bibliography papers" "p" #'citar-open-files
:desc "Bibliography URLs" "u" #'citar-open-links)))
###############################################################
# This file contains the verb definitions for broot
#
# Some verbs here are examples and not enabled by default: you
# need to uncomment them if you want to use them.
#
# Documentation at https://dystroy.org/broot/verbs/
###############################################################
verbs: [
# You should customize this standard opening of text files.
# If you edit text files in your terminal (vi, emacs, helix, eg.), then
# you'll find it convenient to change the 'key' from 'ctrl-e' to 'enter'.
#
# If $EDITOR isn't set on your computer, you should either set it using
# something similar to
# export EDITOR=/usr/local/bin/nvim
# or just replace it with your editor of choice in the 'execution'
# pattern.
# If your editor is able to open a file on a specific line, use {line}
# so that you may jump directly at the right line from a preview or
# a content search.
# Examples depending on your favourite editor:
# execution: "nvim +{line} {file}"
# execution: "helix {file}:{line}"
{
invocation: edit
shortcut: e
key: ctrl-e
apply_to: text_file
execution: "$EDITOR {file}"
leave_broot: false
}
# Example 1: launching `tail -n` on the selected file (leaving broot)
# {
# name: tail_lines
# invocation: tl {lines_count}
# execution: "tail -f -n {lines_count} {file}"
# }
# Example 2: creating a new file without leaving broot
# {
# name: touch
# invocation: touch {new_file}
# execution: "touch {directory}/{new_file}"
# leave_broot: false
# }
# A convenient shortcut to create new text files in
# the current directory or below
{
invocation: create {subpath}
execution: "$EDITOR {directory}/{subpath}"
leave_broot: false
}
{
invocation: git_diff
shortcut: gd
leave_broot: false
execution: "git difftool -y {file}"
}
# On ctrl-b, propose the creation of a copy of the selection.
# While this might occasionally be useful, this verb is mostly here
# as an example to demonstrate rare standard groups like {file-stem}
# and {file-dot-extension} and the auto_exec verb property which
# allows verbs to stay unexecuted until you hit enter
{
invocation: "backup {version}"
key: ctrl-b
leave_broot: false
auto_exec: false
execution: "cp -r {file} {parent}/{file-stem}-{version}{file-dot-extension}"
}
# By default, `rm` does the system rm, and completely removes
# the file. If you prefer to have the file moved to the system
# trash, you may use the ':trash' internal with the verb below:
# {
# invocation: "rm"
# internal: "trash"
# leave_broot: false
# }
# This verb lets you launch a terminal on ctrl-T
# (on exit you'll be back in broot)
{
invocation: terminal
key: ctrl-t
execution: "$SHELL"
set_working_dir: true
leave_broot: false
}
# Here's an example of a verb needing the shell capabilities.
# It copies all children of the currently selected directory
# to a destination you type.
# It uses a star, which needs the shell for expansion. That's
# why such verb must have the `from_shell: true` parameter.
# {
# invocation: "cpa {dest}"
# external: "cp -r {directory}/* {dest}"
# from_shell: true
# }
# Here's an example of a shortcut bringing you to your home directory
# {
# invocation: home
# key: ctrl-home
# execution: ":focus ~"
# }
# Here's going to the work-dir root of the current git repository
# {
# invocation: gtr
# execution: ":focus {git-root}"
# }
# A popular set of shortcuts for going up and down:
#
# {
# key: ctrl-k
# execution: ":line_up"
# }
# {
# key: ctrl-j
# execution: ":line_down"
# }
# {
# key: ctrl-u
# execution: ":page_up"
# }
# {
# key: ctrl-d
# execution: ":page_down"
# }
# If you develop using git, you might like to often switch
# to the git status filter:
# {
# key: alt-g
# execution: ":toggle_git_status"
# }
# You can reproduce the bindings of Norton Commander
# on copying or moving to the other panel:
# {
# key: F5
# external: "cp -r {file} {other-panel-directory}"
# leave_broot: false
# }
# {
# key: F6
# external: "mv {file} {other-panel-directory}"
# leave_broot: false
# }
]
###############################################################
# A skin for a terminal with a white background
#
# To create your own skin, copy this file, change the entries
# and import your skin file from the main conf file (look
# for "imports")
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
syntax_theme: base16-ocean.light
skin: {
default: gray(1) None
tree: gray(7) None / gray(18) None
file: gray(3) None / gray(8) None
directory: ansi(25) None Bold / ansi(25) None
exe: ansi(130) None
link: Magenta None
pruning: gray(12) None Italic
perm__: gray(5) None
perm_r: ansi(94) None
perm_w: ansi(132) None
perm_x: ansi(65) None
owner: ansi(138) None
group: ansi(131) None
dates: ansi(66) None
sparse: ansi(214) None
git_branch: ansi(229) None
git_insertions: ansi(28) None
git_deletions: ansi(160) None
git_status_current: gray(5) None
git_status_modified: ansi(28) None
git_status_new: ansi(94) None Bold
git_status_ignored: gray(17) None
git_status_conflicted: ansi(88) None
git_status_other: ansi(88) None
selected_line: None gray(19) / None gray(21)
char_match: ansi(22) None
file_error: Red None
flag_label: gray(9) None
flag_value: ansi(166) None Bold
input: gray(1) None / gray(4) gray(20)
status_error: gray(22) ansi(124)
status_normal: gray(2) gray(20)
status_job: ansi(220) gray(5)
status_italic: ansi(166) gray(20)
status_bold: ansi(166) gray(20)
status_code: ansi(17) gray(20)
status_ellipsis: gray(19) gray(15)
purpose_normal: gray(20) gray(2)
purpose_italic: ansi(178) gray(2)
purpose_bold: ansi(178) gray(2) Bold
purpose_ellipsis: gray(20) gray(2)
scrollbar_track: gray(20) none
scrollbar_thumb: ansi(238) none
help_paragraph: gray(2) none
help_bold: ansi(202) none bold
help_italic: ansi(202) none italic
help_code: gray(5) gray(22)
help_headers: ansi(202) none
help_table_border: ansi(239) None
preview_title: gray(3) None / gray(5) None
preview: gray(5) gray(23) / gray(7) gray(23)
preview_line_number: gray(6) gray(20)
preview_separator: gray(7) None / gray(18) None
preview_match: None ansi(29) Underlined
hex_null: gray(15) None
hex_ascii_graphic: gray(2) None
hex_ascii_whitespace: ansi(143) None
hex_ascii_other: ansi(215) None
hex_non_ascii: ansi(167) None
staging_area_title: gray(8) None / gray(13) None
mode_command_mark: gray(15) ansi(204) Bold
good_to_bad_0: ansi(28)
good_to_bad_1: ansi(29)
good_to_bad_2: ansi(29)
good_to_bad_3: ansi(29)
good_to_bad_4: ansi(29)
good_to_bad_5: ansi(100)
good_to_bad_6: ansi(136)
good_to_bad_7: ansi(172)
good_to_bad_8: ansi(166)
good_to_bad_9: ansi(196)
}
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
//
//
// The Solarized Light skin uses RGB values, so it might not work well with some
// terminals
//
// If you prefer to keep the background the same as your terminal background, change
// the "default" entry to
// default: "none none / rgb(147, 161, 161) none"
//
// Doc at https://dystroy.org/broot/skins/
skin: {
// base00 default / base1 base2
default: "rgb(101, 123, 131) none / rgb(147, 161, 161) none"
// base1 default
tree: "rgb(147, 161, 161) none"
// default default
file: "none none"
// blue default bold
directory: "rgb(38, 139, 210) none bold"
// red default
exe: "rgb(211, 1, 2) none"
// magenta default
link: "rgb(211, 54, 130) none"
// base1 default italic
pruning: "rgb(147, 161, 161) none italic"
// base1 default
perm__: "rgb(147, 161, 161) none"
// default default
perm_r: "none none"
// default default
perm_w: "none none"
// default default
perm_x: "none none"
// base1 default
owner: "rgb(147, 161, 161) none"
// base1 default
group: "rgb(147, 161, 161) none"
// default default
sparse: "none none"
// base01 default
git_branch: "rgb(88, 110, 117) none"
// green default
git_insertions: "rgb(133, 153, 0) none"
// red default
git_deletions: "rgb(211, 1, 2) none"
// default default
git_status_current: "none none"
// yellow default
git_status_modified: "rgb(181, 137, 0) none"
// green default
git_status_new: "rgb(133, 153, 0) none"
// base1 default
git_status_ignored: "rgb(147, 161, 161) none"
// red default
git_status_conflicted: "rgb(211, 1, 2) none"
// red default
git_status_other: "rgb(211, 1, 2) none"
// default base2
selected_line: "none rgb(238, 232, 213)"
// green default underlined
char_match: "rgb(133, 153, 0) none underlined"
// orange default italic
file_error: "rgb(203, 75, 22) none italic"
// default default
flag_label: "none none"
// yellow default bold
flag_value: "rgb(181, 137, 0) none bold"
// default default
input: "none none"
// orange base2
status_error: "rgb(203, 75, 22) rgb(238, 232, 213)"
// violet base2 bold
status_job: "rgb(108, 113, 196) rgb(238, 232, 213) bold"
// default base2
status_normal: "none rgb(238, 232, 213)"
// yellow base2
status_italic: "rgb(181, 137, 0) rgb(238, 232, 213)"
// base01 base2 bold
status_bold: "rgb(88, 110, 117) rgb(238, 232, 213) bold"
// violet base2
status_code: "rgb(108, 113, 196) rgb(238, 232, 213)"
// default base2
status_ellipsis: "none rgb(238, 232, 213)"
// base2 default
scrollbar_track: "rgb(238, 232, 213) none"
// default default
scrollbar_thumb: "none none"
// default default
help_paragraph: "none none"
// base01 default bold
help_bold: "rgb(88, 110, 117) none bold"
// base01 default italic
help_italic: "rgb(88, 110, 117) none italic"
// base01 base2
help_code: "rgb(88, 110, 117) rgb(238, 232, 213)"
// yellow default
help_headers: "rgb(181, 137, 0) none"
// default default
help_table_border: "none none"
preview_title: "rgb(147, 161, 161) rgb(238, 232, 213)"
preview: "rgb(101, 123, 131) rgb(253, 246, 227) / rgb(147, 161, 161) rgb(238, 232, 213)"
preview_line_number: "rgb(147, 161, 161) rgb(238, 232, 213)"
preview_separator: "rgb(147, 161, 161) rgb(238, 232, 213)"
preview_match: "None ansi(29)"
staging_area_title: "gray(22) rgb(253, 246, 227)"
good_to_bad_0: ansi(28)
good_to_bad_1: ansi(29)
good_to_bad_2: ansi(29)
good_to_bad_3: ansi(29)
good_to_bad_4: ansi(29)
good_to_bad_5: ansi(100)
good_to_bad_6: ansi(136)
good_to_bad_7: ansi(172)
good_to_bad_8: ansi(166)
good_to_bad_9: ansi(196)
}
// contributed by [@danieltrautmann](https://github.com/danieltrautmann)
//
//
// The Solarized Dark skin uses RGB values, so it might not work well with some
// terminals
//
// Doc at https://dystroy.org/broot/skins/
skin: {
default: "rgb(131, 148, 150) rgb(0, 43, 54) / rgb(131, 148, 150) rgb(7, 54, 66)" // base0 base03 / base01 base02
tree: "rgb(88, 110, 117) none" // base01 default
file: "none none" // default default
directory: "rgb(38, 139, 210) none bold" // blue default bold
exe: "rgb(211, 1, 2) none" // red default
link: "rgb(211, 54, 130) none" // magenta default
pruning: "rgb(88, 110, 117) none italic" // base01 default italic
perm__: "rgb(88, 110, 117) none" // base01 default
perm_r: "none none" // default default
perm_w: "none none" // default default
perm_x: "none none" // default default
owner: "rgb(88, 110, 117) none" // base01 default
group: "rgb(88, 110, 117) none" // base01 default
sparse: "none none" // default default
git_branch: "rgb(147, 161, 161) none" // base1 default
git_insertions: "rgb(133, 153, 0) none" // green default
git_deletions: "rgb(211, 1, 2) none" // red default
git_status_current: "none none" // default default
git_status_modified: "rgb(181, 137, 0) none" // yellow default
git_status_new: "rgb(133, 153, 0) none" // green default
git_status_ignored: "rgb(88, 110, 117) none" // base01 default
git_status_conflicted: "rgb(211, 1, 2) none" // red default
git_status_other: "rgb(211, 1, 2) none" // red default
selected_line: "none rgb(7, 54, 66)" // default base02
char_match: "rgb(133, 153, 0) none underlined" // green default underlined
file_error: "rgb(203, 75, 22) none italic" // orange default italic
flag_label: "none none" // default default
flag_value: "rgb(181, 137, 0) none bold" // yellow default bold
input: "none none" // default default
status_error: "rgb(203, 75, 22) rgb(7, 54, 66)" // orange base02
status_job: "rgb(108, 113, 196) rgb(7, 54, 66) bold" // violet base02 bold
status_normal: "none rgb(7, 54, 66)" // default base02
status_italic: "rgb(181, 137, 0) rgb(7, 54, 66)" // yellow base02
status_bold: "rgb(147, 161, 161) rgb(7, 54, 66) bold" // base1 base02 bold
status_code: "rgb(108, 113, 196) rgb(7, 54, 66)" // violet base02
status_ellipsis: "none rgb(7, 54, 66)" // default base02
scrollbar_track: "rgb(7, 54, 66) none" // base02 default
scrollbar_thumb: "none none" // default default
help_paragraph: "none none" // default default
help_bold: "rgb(147, 161, 161) none bold" // base1 default bold
help_italic: "rgb(147, 161, 161) none italic" // base1 default italic
help_code: "rgb(147, 161, 161) rgb(7, 54, 66)" // base1 base02
help_headers: "rgb(181, 137, 0) none" // yellow default
help_table_border: "none none" // default default
preview_title: "gray(20) rgb(0, 43, 54)"
staging_area_title: "gray(22) rgb(0, 43, 54)"
good_to_bad_0: "ansi(28)" // green
good_to_bad_1: "ansi(29)"
good_to_bad_2: "ansi(29)"
good_to_bad_3: "ansi(29)"
good_to_bad_4: "ansi(29)"
good_to_bad_5: "ansi(100)"
good_to_bad_6: "ansi(136)"
good_to_bad_7: "ansi(172)"
good_to_bad_8: "ansi(166)"
good_to_bad_9: "ansi(196)" // red
}
###############################################################
# 16 ANSI color theme. Colors in this theme are restricted from
# ANSI color 0 - 15. This will allow the theme to adapt to your
# terminal emulator's theme. Note that, for now, the preview
# mode does not yet support this theme because of syntect not
# having a 16 ansi color theme.
#
# More info at https://jeffkreeftmeijer.com/vim-16-color/
# Doc at https://dystroy.org/broot/skins/
###############################################################
skin: {
directory: ansi(12)
file: ansi(7)
pruning: ansi(8) none italic
selected_line: none ansi(0)
tree: ansi(8)
# Search
char_match: ansi(3) none underlined
parent: ansi(4) none bold
# File properties
exe: ansi(2)
link: ansi(13)
sparse: ansi(12)
# Prompt
input: ansi(6)
# Status bar
status_bold: ansi(7) ansi(8) bold
status_code: ansi(10) ansi(8)
status_ellipsis: ansi(7) ansi(8)
status_error: ansi(7) ansi(8)
status_italic: ansi(7) ansi(8) italic
status_job: ansi(7) ansi(8)
status_normal: ansi(7) ansi(8)
# Flag status
flag_label: ansi(6)
flag_value: ansi(14) none bold
# Background
default: none none
# Scrollbar
scrollbar_track: ansi(0)
scrollbar_thumb: ansi(3)
# Git
git_branch: ansi(13)
git_deletions: ansi(1)
git_insertions: ansi(2)
git_status_conflicted: ansi(1)
git_status_current: ansi(6)
git_status_ignored: ansi(8)
git_status_modified: ansi(3)
git_status_new: ansi(2) none bold
git_status_other: ansi(5)
# Staging area
staging_area_title: ansi(3)
# Documentation
help_bold: ansi(7) none bold
help_code: ansi(4)
help_headers: ansi(3)
help_italic: ansi(7) none italic
help_paragraph: ansi(7)
help_table_border: ansi(8)
# Device column
device_id_major: ansi(5)
device_id_minor: ansi(5)
device_id_sep: ansi(5)
# Counts column
count: ansi(13)
# Dates column
dates: ansi(6)
# Permissions column
group: ansi(3)
owner: ansi(3)
perm__: ansi(8)
perm_r: ansi(3)
perm_w: ansi(1)
perm_x: ansi(2)
# Hex preview
hex_null: ansi(8)
hex_ascii_graphic: ansi(2)
hex_ascii_whitespace: ansi(3)
hex_ascii_other: ansi(4)
hex_non_ascii: ansi(5)
# Preview
# preview: none
# preview_line_number: none
# preview_match: none
# preview_title: none
# Used for displaying errors
file_error: ansi(1)
# Content searches
content_extract: ansi(7)
content_match: ansi(3) none underlined
# Used in status line
purpose_bold: ansi(0) ansi(7) bold
purpose_ellipsis: ansi(0)
purpose_italic: ansi(0) ansi(7) italic
purpose_normal: ansi(0)
# Modal indicator
mode_command_mark: ansi(7) ansi(4)
# File system occupation
good_to_bad_0: ansi(2)
good_to_bad_1: ansi(2)
good_to_bad_2: ansi(2)
good_to_bad_3: ansi(2)
good_to_bad_4: ansi(2)
good_to_bad_5: ansi(1)
good_to_bad_6: ansi(1)
good_to_bad_7: ansi(1)
good_to_bad_8: ansi(1)
good_to_bad_9: ansi(1)
}
###############################################################
# A skin for a terminal with a dark background
#
# To create your own skin, copy this file, change the entries
# and import your skin file from the main conf file (look
# for "imports")
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
###############################################################
# Skin
# If you want to change the colors of broot,
# uncomment the following bloc and start messing
# with the various values.
# A skin entry value is made of two parts separated with a '/':
# The first one is the skin for the active panel.
# The second one, optional, is the skin for non active panels.
# You may find explanations and other skins on
# https://dystroy.org/broot/skins
###############################################################
skin: {
default: none none / gray(20) none
tree: ansi(94) None / gray(3) None
parent: gray(18) None / gray(13) None
file: gray(20) None / gray(15) None
directory: ansi(208) None Bold / ansi(172) None bold
exe: Cyan None
link: Magenta None
pruning: gray(12) None Italic
perm__: gray(5) None
perm_r: ansi(94) None
perm_w: ansi(132) None
perm_x: ansi(65) None
owner: ansi(138) None
group: ansi(131) None
count: ansi(136) gray(3)
dates: ansi(66) None
sparse: ansi(214) None
content_extract: ansi(29) None
content_match: ansi(34) None
git_branch: ansi(229) None
git_insertions: ansi(28) None
git_deletions: ansi(160) None
git_status_current: gray(5) None
git_status_modified: ansi(28) None
git_status_new: ansi(94) None Bold
git_status_ignored: gray(17) None
git_status_conflicted: ansi(88) None
git_status_other: ansi(88) None
selected_line: None gray(5) / None gray(4)
char_match: Yellow None
file_error: Red None
flag_label: gray(15) None
flag_value: ansi(208) None Bold
input: White None / gray(15) gray(2)
status_error: gray(22) ansi(124)
status_job: ansi(220) gray(5)
status_normal: gray(20) gray(3) / gray(2) gray(2)
status_italic: ansi(208) gray(3) / gray(2) gray(2)
status_bold: ansi(208) gray(3) Bold / gray(2) gray(2)
status_code: ansi(229) gray(3) / gray(2) gray(2)
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
purpose_normal: gray(20) gray(2)
purpose_italic: ansi(178) gray(2)
purpose_bold: ansi(178) gray(2) Bold
purpose_ellipsis: gray(20) gray(2)
scrollbar_track: gray(7) None / gray(4) None
scrollbar_thumb: gray(22) None / gray(14) None
help_paragraph: gray(20) None
help_bold: ansi(208) None Bold
help_italic: ansi(166) None
help_code: gray(21) gray(3)
help_headers: ansi(208) None
help_table_border: ansi(239) None
preview: gray(20) gray(1) / gray(18) gray(2)
preview_line_number: gray(12) gray(3)
preview_separator: ansi(94) None / gray(3) None
preview_match: None ansi(29)
hex_null: gray(11) None
hex_ascii_graphic: gray(18) None
hex_ascii_whitespace: ansi(143) None
hex_ascii_other: ansi(215) None
hex_non_ascii: ansi(167) None
good_to_bad_0: ansi(28)
good_to_bad_1: ansi(29)
good_to_bad_2: ansi(29)
good_to_bad_3: ansi(29)
good_to_bad_4: ansi(29)
good_to_bad_5: ansi(100)
good_to_bad_6: ansi(136)
good_to_bad_7: ansi(172)
good_to_bad_8: ansi(166)
good_to_bad_9: ansi(196)
}
###############################################################
# Syntax Theme
#
# If you want to choose the theme used for preview, uncomment
# one of the following lines:
#
# syntax_theme: GitHub
# syntax_theme: SolarizedDark
# syntax_theme: SolarizedLight
syntax_theme: SolarizedDark
# syntax_theme: MochaDark
# syntax_theme: OceanDark
# syntax_theme: OceanLight
###############################################################
# A skin for a terminal with a dark background
# This skin uses RGB values so won't work for some
# terminals.
#
#
# (initially contributed by @basbebe)
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
skin: {
default: rgb(235, 219, 178) none / rgb(189, 174, 147) none
tree: rgb(70, 70, 80) None / rgb(60, 60, 60) None
parent: rgb(235, 219, 178) none / rgb(189, 174, 147) none Italic
file: None None / None None Italic
directory: rgb(131, 165, 152) None Bold / rgb(131, 165, 152) None
exe: rgb(184, 187, 38) None
link: rgb(104, 157, 106) None
pruning: rgb(124, 111, 100) None Italic
perm__: None None
perm_r: rgb(215, 153, 33) None
perm_w: rgb(204, 36, 29) None
perm_x: rgb(152, 151, 26) None
owner: rgb(215, 153, 33) None Bold
group: rgb(215, 153, 33) None
count: rgb(69, 133, 136) rgb(50, 48, 47)
dates: rgb(168, 153, 132) None
sparse: rgb(250, 189,47) None
content_extract: ansi(29) None Italic
content_match: ansi(34) None Bold
git_branch: rgb(251, 241, 199) None
git_insertions: rgb(152, 151, 26) None
git_deletions: rgb(190, 15, 23) None
git_status_current: rgb(60, 56, 54) None
git_status_modified: rgb(152, 151, 26) None
git_status_new: rgb(104, 187, 38) None Bold
git_status_ignored: rgb(213, 196, 161) None
git_status_conflicted: rgb(204, 36, 29) None
git_status_other: rgb(204, 36, 29) None
selected_line: None rgb(60, 56, 54) / None rgb(50, 48, 47)
char_match: rgb(250, 189, 47) None
file_error: rgb(251, 73, 52) None
flag_label: rgb(189, 174, 147) None
flag_value: rgb(211, 134, 155) None Bold
input: rgb(251, 241, 199) None / rgb(189, 174, 147) None Italic
status_error: rgb(213, 196, 161) rgb(204, 36, 29)
status_job: rgb(250, 189, 47) rgb(60, 56, 54)
status_normal: None rgb(40, 38, 37) / None None
status_italic: rgb(211, 134, 155) rgb(40, 38, 37) Italic / None None
status_bold: rgb(211, 134, 155) rgb(40, 38, 37) Bold / None None
status_code: rgb(251, 241, 199) rgb(40, 38, 37) / None None
status_ellipsis: rgb(251, 241, 199) rgb(40, 38, 37) Bold / None None
purpose_normal: None None
purpose_italic: rgb(177, 98, 134) None Italic
purpose_bold: rgb(177, 98, 134) None Bold
purpose_ellipsis: None None
scrollbar_track: rgb(80, 73, 69) None / rgb(50, 48, 47) None
scrollbar_thumb: rgb(213, 196, 161) None / rgb(102, 92, 84) None
help_paragraph: None None
help_bold: rgb(214, 93, 14) None Bold
help_italic: rgb(211, 134, 155) None Italic
help_code: rgb(142, 192, 124) rgb(50, 48, 47)
help_headers: rgb(254, 128, 25) None Bold
help_table_border: rgb(80, 73, 69) None
preview_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
preview: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40)
preview_line_number: rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40)
preview_separator: rgb(70, 70, 80) None / rgb(60, 60, 60) None
preview_match: None ansi(29) Bold
hex_null: rgb(189, 174, 147) None
hex_ascii_graphic: rgb(213, 196, 161) None
hex_ascii_whitespace: rgb(152, 151, 26) None
hex_ascii_other: rgb(254, 128, 25) None
hex_non_ascii: rgb(214, 93, 14) None
staging_area_title: rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)
mode_command_mark: gray(5) ansi(204) Bold
good_to_bad_0: ansi(28)
good_to_bad_1: ansi(29)
good_to_bad_2: ansi(29)
good_to_bad_3: ansi(29)
good_to_bad_4: ansi(29)
good_to_bad_5: ansi(100)
good_to_bad_6: ansi(136)
good_to_bad_7: ansi(172)
good_to_bad_8: ansi(166)
good_to_bad_9: ansi(196)
}
###############################################################
# A skin for a terminal with a dark background
#
# To create your own skin, copy this file, change the entries
# and import your skin file from the main conf file (look
# for "imports")
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
###############################################################
# Skin
# If you want to change the colors of broot,
# uncomment the following block and start messing
# with the various values.
# A skin entry value is made of two parts separated with a '/':
# The first one is the skin for the active panel.
# The second one, optional, is the skin for non active panels.
# You may find explanations and other skins on
# https://dystroy.org/broot/skins
###############################################################
skin: {
default: gray(22) none / gray(20) none
tree: gray(8) None / gray(4) None
parent: gray(18) None / gray(13) None
file: gray(22) None / gray(15) None
directory: ansi(110) None bold / ansi(110) None
exe: Cyan None
link: Magenta None
pruning: gray(12) None Italic
perm__: gray(5) None
perm_r: ansi(94) None
perm_w: ansi(132) None
perm_x: ansi(65) None
owner: ansi(138) None
group: ansi(131) None
count: ansi(138) gray(4)
dates: ansi(66) None
sparse: ansi(214) None
content_extract: ansi(29) None
content_match: ansi(34) None
device_id_major: ansi(138) None
device_id_sep: ansi(102) None
device_id_minor: ansi(138) None
git_branch: ansi(178) None
git_insertions: ansi(28) None
git_deletions: ansi(160) None
git_status_current: gray(5) None
git_status_modified: ansi(28) None
git_status_new: ansi(94) None bold
git_status_ignored: gray(17) None
git_status_conflicted: ansi(88) None
git_status_other: ansi(88) None
selected_line: None gray(6) / None gray(4)
char_match: Green None
file_error: Red None
flag_label: gray(15) gray(2)
flag_value: ansi(178) gray(2) bold
input: White gray(2) / gray(15) None
status_error: gray(22) ansi(124)
status_job: ansi(220) gray(5)
status_normal: gray(20) gray(4) / gray(2) gray(2)
status_italic: ansi(178) gray(4) / gray(2) gray(2)
status_bold: ansi(178) gray(4) bold / gray(2) gray(2)
status_code: ansi(229) gray(4) / gray(2) gray(2)
status_ellipsis: gray(19) gray(1) / gray(2) gray(2)
purpose_normal: gray(20) gray(2)
purpose_italic: ansi(178) gray(2)
purpose_bold: ansi(178) gray(2) bold
purpose_ellipsis: gray(20) gray(2)
scrollbar_track: gray(7) None / gray(4) None
scrollbar_thumb: gray(22) None / gray(14) None
help_paragraph: gray(20) None
help_bold: ansi(178) None bold
help_italic: ansi(229) None
help_code: gray(21) gray(3)
help_headers: ansi(178) None
help_table_border: ansi(239) None
preview: gray(20) gray(1) / gray(18) gray(2)
preview_title: gray(23) gray(2) / gray(21) gray(2)
preview_line_number: gray(12) gray(3)
preview_separator: gray(5) None
preview_match: None ansi(29)
hex_null: gray(8) None
hex_ascii_graphic: gray(18) None
hex_ascii_whitespace: ansi(143) None
hex_ascii_other: ansi(215) None
hex_non_ascii: ansi(167) None
staging_area_title: gray(22) gray(2) / gray(20) gray(3)
mode_command_mark: gray(5) ansi(204) bold
good_to_bad_0: ansi(28)
good_to_bad_1: ansi(29)
good_to_bad_2: ansi(29)
good_to_bad_3: ansi(29)
good_to_bad_4: ansi(29)
good_to_bad_5: ansi(100)
good_to_bad_6: ansi(136)
good_to_bad_7: ansi(172)
good_to_bad_8: ansi(166)
good_to_bad_9: ansi(196)
}
###############################################################
# Syntax Theme
#
# If you want to choose the theme used for preview, uncomment
# one of the following lines:
#
# syntax_theme: GitHub
# syntax_theme: SolarizedDark
# syntax_theme: SolarizedLight
syntax_theme: MochaDark
# syntax_theme: MochaDark
# syntax_theme: OceanDark
# syntax_theme: OceanLight
###############################################################
# A skin for a terminal with a dark background
# This skin uses RGB values so won't work for some
# terminals.
#
# Created by A. Taha Baki <atahabaki@pm.me>
# Based on the built-in gruvbox theme.
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
skin: {
input: rgb(205, 214, 244) none
# fg:none bg:$surface2
selected_line: none rgb(88, 91, 112)
# fg:$text bg:none
default: rgb(205, 214, 244) none
# fg:$overlay0 bg:none
tree: rgb(108, 112, 134) none
# fg:$sapphire bg:none
parent: rgb(116, 199, 236) none
file: none none
#
### PERMISSIONS
#
perm__: rgb(186, 194, 222) none
# $peach
perm_r: rgb(250, 179, 135) none
# $maroon
perm_w: rgb(235, 160, 172) none
# $green
perm_x: rgb(166, 227, 161) none
# $teal
owner: rgb(148, 226, 213) none
# $sky
group: rgb(137, 220, 235) none
#
### DATE
#
# $subtext1
dates: rgb(186, 194, 222) none
#
### DIRECTORY
#
# $lavender
directory: rgb(180, 190, 254) none Bold
# $green
exe: rgb(166, 227, 161) none
# $yellow
link: rgb(249, 226, 175) none
# $subtext0
pruning: rgb(166, 173, 200) none Italic
#
### PREVIEW
#
# fg:$text bg:$mantle
preview_title: rgb(205, 214, 244) rgb(24, 24, 37)
# fg:$text bg:$mantle
preview: rgb(205, 214, 244) rgb(24, 24, 37)
# fg:$overlay0
preview_line_number: rgb(108, 112, 134) none
# fg:$overlay0
preview_separator: rgb(108, 112, 134) none
#
### MATCH
#
char_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
content_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
preview_match: rgb(249, 226, 175) rgb(69, 71, 90) Bold Italic
# children count
# fg:$yellow bg:none
count: rgb(249, 226, 175) none
sparse: rgb(243, 139, 168) none
content_extract: rgb(243, 139, 168) none Italic
#
### GIT
#
git_branch: rgb(250, 179, 135) none
git_insertions: rgb(250, 179, 135) none
git_deletions: rgb(250, 179, 135) none
git_status_current: rgb(250, 179, 135) none
git_status_modified: rgb(250, 179, 135) none
git_status_new: rgb(250, 179, 135) none Bold
git_status_ignored: rgb(250, 179, 135) none
git_status_conflicted: rgb(250, 179, 135) none
git_status_other: rgb(250, 179, 135) none
staging_area_title: rgb(250, 179, 135) none
#
### FLAG
#
flag_label: rgb(243, 139, 168) none
flag_value: rgb(243, 139, 168) none Bold
#
### STATUS
#
# fg:none #bg:$mantle
status_normal: none rgb(24, 24, 37)
# fg:$red bg:$mantle
status_italic: rgb(243, 139, 168) rgb(24, 24, 37) Italic
# fg:$maroon bg:$mantle
status_bold: rgb(235, 160, 172) rgb(24, 24, 37) Bold
# fg:$maroon bg:$mantle
status_ellipsis: rgb(235, 160, 172) rgb(24, 24, 37) Bold
# fg:$text bg:$red
status_error: rgb(205, 214, 244) rgb(243, 139, 168)
# fg:$maroon bg:$mantle
status_job: rgb(235, 160, 172) rgb(40, 38, 37)
# fg:$maroon bg:$mantle
status_code: rgb(235, 160, 172) rgb(24, 24, 37) Italic
# fg:$maroon bg:$mantle
mode_command_mark: rgb(235, 160, 172) rgb(24, 24, 37) Bold
#
### HELP
#
# fg:$text
help_paragraph: rgb(205, 214, 244) none
# fg:$red
help_headers: rgb(243, 139, 168) none Bold
# fg:$peach
help_bold: rgb(250, 179, 135) none Bold
# fg:$yellow
help_italic: rgb(249, 226, 175) none Italic
# fg:green bg:$surface0
help_code: rgb(166, 227, 161) rgb(49, 50, 68)
# fg:$overlay0
help_table_border: rgb(108, 112, 134) none
#
### HEX
#
# fg:$text
hex_null: rgb(205, 214, 244) none
# fg:$peach
hex_ascii_graphic: rgb(250, 179, 135) none
# fg:$green
hex_ascii_whitespace: rgb(166, 227, 161) none
# fg: teal
hex_ascii_other: rgb(148, 226, 213) none
# fg: red
hex_non_ascii: rgb(243, 139, 168) none
# fg:$text bg:$red
file_error: rgb(251, 73, 52) none
#
### PURPOSE
#
purpose_normal: none none
purpose_italic: rgb(177, 98, 134) none Italic
purpose_bold: rgb(177, 98, 134) none Bold
purpose_ellipsis: none none
#
### SCROLLBAR
#
# fg:$surface0
scrollbar_track: rgb(49, 50, 68) none
# fg:$surface1
scrollbar_thumb: rgb(88, 91, 112) none
#
### GOODTOBAD
#
good_to_bad_0: rgb(166, 227, 161) none
good_to_bad_1: rgb(148, 226, 213) none
good_to_bad_2: rgb(137, 220, 235) none
good_to_bad_3: rgb(116, 199, 236) none
good_to_bad_4: rgb(137, 180, 250) none
good_to_bad_5: rgb(180, 190, 254) none
good_to_bad_6: rgb(203, 166, 247) none
good_to_bad_7: rgb(250, 179, 135) none
good_to_bad_8: rgb(235, 160, 172) none
good_to_bad_9: rgb(243, 139, 168) none
}
###############################################################
# A skin for a terminal with a dark background
# This skin uses RGB values so won't work for some
# terminals.
#
# Created by Majixed
# Based on the catppuccin-mocha theme by A. Taha Baki <atahabaki@pm.me>
#
# Doc at https://dystroy.org/broot/skins/
###############################################################
skin: {
input: rgb(202, 211, 245) none
# fg:none bg:$surface2
selected_line: none rgb(91, 96, 120)
# fg:$text bg:none
default: rgb(202, 211, 245) none
# fg:$overlay0 bg:none
tree: rgb(110, 115, 141) none
# fg:$sapphire bg:none
parent: rgb(125, 196, 228) none
file: none none
#
### PERMISSIONS
#
perm__: rgb(184, 192, 224) none
# $peach
perm_r: rgb(245, 169, 127) none
# $maroon
perm_w: rgb(238, 153, 160) none
# $green
perm_x: rgb(166, 218, 149) none
# $teal
owner: rgb(139, 213, 202) none
# $sky
group: rgb(145, 215, 227) none
#
### DATE
#
# $subtext1
dates: rgb(184, 192, 224) none
#
### DIRECTORY
#
# $lavender
directory: rgb(183, 189, 248) none Bold
# $green
exe: rgb(166, 218, 149) none
# $yellow
link: rgb(238, 212, 159) none
# $subtext0
pruning: rgb(165, 173, 203) none Italic
#
### PREVIEW
#
# fg:$text bg:$mantle
preview_title: rgb(202, 211, 245) rgb(30, 32, 48)
# fg:$text bg:$mantle
preview: rgb(202, 211, 245) rgb(30, 32, 48)
# fg:$overlay0
preview_line_number: rgb(110, 115, 141) none
# fg:$overlay0
preview_separator: rgb(110, 115, 141) none
#
### MATCH
#
char_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
content_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
preview_match: rgb(238, 212, 159) rgb(73, 77, 100) Bold Italic
# children count
# fg:$yellow bg:none
count: rgb(238, 212, 159) none
sparse: rgb(237, 135, 150) none
content_extract: rgb(237, 135, 150) none Italic
#
### GIT
#
git_branch: rgb(245, 169, 127) none
git_insertions: rgb(245, 169, 127) none
git_deletions: rgb(245, 169, 127) none
git_status_current: rgb(245, 169, 127) none
git_status_modified: rgb(245, 169, 127) none
git_status_new: rgb(245, 169, 127) none Bold
git_status_ignored: rgb(245, 169, 127) none
git_status_conflicted: rgb(245, 169, 127) none
git_status_other: rgb(245, 169, 127) none
staging_area_title: rgb(245, 169, 127) none
#
### FLAG
#
flag_label: rgb(237, 135, 150) none
flag_value: rgb(237, 135, 150) none Bold
#
### STATUS
#
# fg:none #bg:$mantle
status_normal: none rgb(30, 32, 48)
# fg:$red bg:$mantle
status_italic: rgb(237, 135, 150) rgb(30, 32, 48) Italic
# fg:$maroon bg:$mantle
status_bold: rgb(238, 153, 160) rgb(30, 32, 48) Bold
# fg:$maroon bg:$mantle
status_ellipsis: rgb(238, 153, 160) rgb(30, 32, 48) Bold
# fg:$text bg:$red
status_error: rgb(202, 211, 245) rgb(237, 135, 150)
# fg:$maroon bg:$mantle
status_job: rgb(238, 153, 160) rgb(40, 38, 37)
# fg:$maroon bg:$mantle
status_code: rgb(238, 153, 160) rgb(30, 32, 48) Italic
# fg:$maroon bg:$mantle
mode_command_mark: rgb(238, 153, 160) rgb(30, 32, 48) Bold
#
### HELP
#
# fg:$text
help_paragraph: rgb(202, 211, 245) none
# fg:$red
help_headers: rgb(237, 135, 150) none Bold
# fg:$peach
help_bold: rgb(245, 169, 127) none Bold
# fg:$yellow
help_italic: rgb(238, 212, 159) none Italic
# fg:green bg:$surface0
help_code: rgb(166, 218, 149) rgb(54, 58, 79)
# fg:$overlay0
help_table_border: rgb(110, 115, 141) none
#
### HEX
#
# fg:$text
hex_null: rgb(202, 211, 245) none
# fg:$peach
hex_ascii_graphic: rgb(245, 169, 127) none
# fg:$green
hex_ascii_whitespace: rgb(166, 218, 149) none
# fg: teal
hex_ascii_other: rgb(139, 213, 202) none
# fg: red
hex_non_ascii: rgb(237, 135, 150) none
# fg:$text bg:$red
file_error: rgb(243, 60, 44) none
#
### PURPOSE
#
purpose_normal: none none
purpose_italic: rgb(169, 90, 127) none Italic
purpose_bold: rgb(169, 90, 127) none Bold
purpose_ellipsis: none none
#
### SCROLLBAR
#
# fg:$surface0
scrollbar_track: rgb(54, 58, 79) none
# fg:$surface1
scrollbar_thumb: rgb(91, 96, 120) none
#
### GOODTOBAD
#
good_to_bad_0: rgb(166, 218, 149) none
good_to_bad_1: rgb(139, 213, 202) none
good_to_bad_2: rgb(145, 215, 227) none
good_to_bad_3: rgb(125, 196, 228) none
good_to_bad_4: rgb(138, 173, 244) none
good_to_bad_5: rgb(183, 189, 248) none
good_to_bad_6: rgb(198, 160, 246) none
good_to_bad_7: rgb(245, 169, 127) none
good_to_bad_8: rgb(238, 153, 160) none
good_to_bad_9: rgb(237, 135, 150) none
}
/home/alex/.local/share/broot/launcher/nushell/6
This file tells broot the installation of the br function was done.
If there's a problem and you want to install it again run
broot -- install
/home/alex/.local/share/broot/launcher/bash/1
###############################################################
# This configuration file lets you
# - define new commands
# - change the shortcut or triggering keys of built-in verbs
# - change the colors
# - set default values for flags
# - set special behaviors on specific paths
# - and more...
#
# Configuration documentation is available at
# https://dystroy.org/broot
#
# This file's format is Hjson ( https://hjson.github.io/ ). Some
# properties are commented out. To enable them, remove the `#`.
#
###############################################################
###############################################################
# Default flags
# You can set up flags you want broot to start with by
# default, for example `default_flags="-ihp"` if you usually want
# to see hidden and gitignored files and the permissions (then
# if you don't want the hidden files at a specific launch,
# you can launch broot with `br -H`).
# A popular flag is the `g` one which displays git related info.
#
# default_flags:
###############################################################
# Terminal's title
# If you want the terminal's title to be updated when you change
# directory, set a terminal_title pattern by uncommenting one of
# the examples below and tuning it to your taste.
#
# terminal_title: "[broot] {git-name}"
# terminal_title: "{file} 🐄"
# terminal_title: "-= {file-name} =-"
###############################################################
# Date/Time format
# If you want to change the format for date/time, uncomment the
# following line and change it according to
# https://docs.rs/chrono/0.4.11/chrono/format/strftime/index.html
#
# date_time_format: %Y/%m/%d %R
###############################################################
# uncomment to activate modal mode
#
# (you really should read https://dystroy.org/broot/modal/
# before as it may not suit everybody even among vim users)
#
# You may start either in 'command' mode, or in 'input' mode
#
# modal: true
# initial_mode: command
###############################################################
# Whether to mark the selected line with a triangle
#
show_selection_mark: true
###############################################################
# Column order
# cols_order, if specified, must be a permutation of the following
# array. You should keep the name column at the end as it has a
# variable length.
#
# cols_order: [
# mark
# git
# size
# permission
# date
# count
# branch
# name
# ]
###############################################################
# True Colors
# If this parameter isn't set, broot tries to automatically
# determine whether true colors (24 bits) are available.
# As this process is unreliable, you may uncomment this setting
# and set it to false or true if you notice the colors in
# previewed images are too off.
#
# true_colors: false
###############################################################
# Icons
# If you want to display icons in broot, uncomment this line
# (see https://dystroy.org/broot/icons for installation and
# troubleshooting)
#
# icon_theme: vscode
###############################################################
# Special paths
# If some paths must be handled specially, uncomment (and change
# this section as per the examples)
# Setting "list":"never" on a dir prevents broot from looking at its
# children when searching, unless the dir is the selected root.
# Setting "sum":"never" on a dir prevents broot from looking at its
# children when computing the total size and count of files.
# Setting "show":"always" makes a file visible even if its name
# starts with a dot.
# Setting "list":"always" may be useful on a link to a directory
# (they're otherwise not entered by broot unless selected)
#
special_paths: {
"/media" : {
list: "never"
sum: "never"
}
"~/.config": { "show": "always" }
"trav": {
show: always
list: "always",
sum: "never"
}
# "~/useless": { "show": "never" }
# "~/my-link-I-want-to-explore": { "list": "always" }
}
###############################################################
# Quit on last cancel
# You can usually cancel the last state change on escape.
# If you want the escape key to quit broot when there's nothing
# to cancel (for example when you just opened broot), uncomment
# this parameter
#
# quit_on_last_cancel: true
###############################################################
# Search modes
#
# broot allows many search modes.
# A search mode is defined by
# - the way to search: 'fuzzy', 'exact', 'regex', or 'tokens'.
# - where to search: file 'name', 'path', or file 'content'
# A search pattern may for example be "fuzzy path" (default),
# "regex content" or "exact path".
#
# The search mode is selected from its prefix. For example, if
# you type "abc", the default mode is "fuzzy path". If you type
# "/abc", the mode is "regex path". If you type "rn/abc", the mode
# is "regex name".
#
# This mapping may be modified. You may want to dedicate the
# empty prefix (the one which doesn't need a '/') to the
# search mode you use most often. The example below makes it
# easy to search on name rather than on the subpath.
#
# More information on
# https://dystroy.org/broot/input/#the-filtering-pattern
#
# search_modes: {
# <empty>: fuzzy name
# /: regex name
# }
###############################################################
# File Extension Colors
#
# uncomment and modify the next section if you want to color
# file name depending on their extension
#
# ext_colors: {
# png: rgb(255, 128, 75)
# rs: yellow
# }
###############################################################
# Max file size for content search
#
# Bigger files are ignored when searching their content. You
# can specify this size either in ISO units (eg 5GB) or in
# the old binary units (eg 44Kib)
content_search_max_file_size: 10MB
###############################################################
# Max Panels Count
#
# Change this if you sometimes want to have more than 2 panels
# open
# max_panels_count: 2
###############################################################
# Update work dir
#
# By default, broot process' work dir is kept in sync with the
# current's panel root. If you want to keep it unchanged,
# uncomment this setting
#
# update_work_dir: false
###############################################################
# Kitty Keyboard extension
#
# If you want to use advanced keyboard shortcuts in Kitty
# compatible terminals (Kitty, Wezterm), set this to true.
#
# This makes it possible to use shortcuts like 'space-n',
# 'ctrl-alt-a-b', 'shift-space', etc.
#
enable_kitty_keyboard: false
###############################################################
# lines around matching line in filtered preview
#
# When searching the content of a file, you can have either
# only the matching lines displayed, or some of the surrounding
# ones too.
#
lines_before_match_in_preview: 1
lines_after_match_in_preview: 1
###############################################################
# transformations before preview
#
# It's possible to define transformations to apply to some files
# before calling one of the default preview renderers in broot.
# Below are two examples that you may uncomment and adapt:
#
preview_transformers: [
// # Use mutool to render any PDF file as an image
// # In this example we use placeholders for the input and output files
// {
// input_extensions: [ "pdf" ] // case doesn't matter
// output_extension: png
// mode: image
// command: [ "mutool", "draw", "-w", "1000", "-o", "{output-path}", "{input-path}" ]
// }
// # Use LibreOffice to render Office files as images
// # In this example, {output-dir} is used to specify where LibreOffice must write the result
// {
// input_extensions: [ "xls", "xlsx", "doc", "docx", "ppt", "pptx", "ods", "odt", "odp" ]
// output_extension: png
// mode: image
// command: [
// "libreoffice", "--headless",
// "--convert-to", "png",
// "--outdir", "{output-dir}",
// "{input-path}"
// ]
// }
// # Use jq to beautify JSON
// # In this example, the command refers to neither the input nor the output,
// # so broot pipes them to the stdin and stdout of the jq process
// {
// input_extensions: [ "json" ]
// output_extension: json
// mode: text
// command: [ "jq" ]
// }
]
###############################################################
# Imports
#
# While it's possible to have all configuration in one file,
# it's more convenient to split it in several ones.
# Importing also allows to set a condition on the terminal's
# color, which makes it possible to have a different skin
# chosen when your terminal has a light background and when
# it has a light one.
imports: [
# Verbs are better configured in verbs.hjson. But you
# can also add another files for your personal verbs
verbs.hjson
# This file contains the skin to use when the terminal
# is dark (or when this couldn't be determined)
{
luma: [
dark
unknown
]
# (un)comment to choose your preferred skin
file: skins/dark-blue.hjson
//file: skins/catppuccin-macchiato.hjson
//file: skins/catppuccin-mocha.hjson
//file: skins/dark-gruvbox.hjson
//file: skins/dark-orange.hjson
//file: skins/solarized-dark.hjson
}
# This skin is imported when your terminal is light
{
luma: light
# (un)comment to choose your preferred skin
//file: skins/solarized-light.hjson
file: skins/white.hjson
}
]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>background</key>
<string>#eff1f5</string>
<key>caret</key>
<string>#5c5f77</string>
<key>invisibles</key>
<string>#6c6f85</string>
<key>gutterForeground</key>
<string>#7c7f93</string>
<key>gutterForegroundHighlight</key>
<string>#40a02b</string>
<key>lineHighlight</key>
<string>#acb0be</string>
<key>selection</key>
<string>#9ca0b0</string>
<key>selectionBorder</key>
<string>#eff1f5</string>
<key>activeGuide</key>
<string>#fe640b</string>
<key>findHighlightForeground</key>
<string>#e6e9ef</string>
<key>findHighlight</key>
<string>#df8e1d</string>
<key>bracketsForeground</key>
<string>#7c7f93</string>
<key>bracketContentsForeground</key>
<string>#7c7f93</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9ca0b0</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String regex</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Boolean</string>
<key>scope</key>
<string>constant.language.boolean</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string>bold italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in function</string>
<key>scope</key>
<string>support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>variable.other.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict></dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Conditional/loop</string>
<key>scope</key>
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Return</string>
<key>scope</key>
<string>keyword.control.return, keyword.control.flow.return</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exception</string>
<key>scope</key>
<string>support.type.exception</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operator</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation separator</string>
<key>scope</key>
<string>punctuation.separator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation terminator</string>
<key>scope</key>
<string>punctuation.terminator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation bracket</string>
<key>scope</key>
<string>punctuation.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7c7f93</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Include</string>
<key>scope</key>
<string>keyword.control.import.include</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type</string>
<key>scope</key>
<string>storage.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type namespace</string>
<key>scope</key>
<string>entity.name.namespace, meta.path</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type class</string>
<key>scope</key>
<string>storage.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Label</string>
<key>scope</key>
<string>entity.name.label</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword class</string>
<key>scope</key>
<string>keyword.declaration.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class, meta.toc-list.full-identifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function macro</string>
<key>scope</key>
<string>entity.name.function.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Macro directive - ifdef</string>
<key>scope</key>
<string>keyword.control.import</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constructor</string>
<key>scope</key>
<string>entity.name.function.constructor, entity.name.function.destructor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function declaration</string>
<key>scope</key>
<string>keyword.declaration.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable parameter</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable other</string>
<key>scope</key>
<string>variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable field</string>
<key>scope</key>
<string>variable.other.member</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag delimiter</string>
<key>scope</key>
<string>punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown URL</string>
<key>scope</key>
<string>markup.underline.link.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
<key>fontStyle</key>
<string>italic underline</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown reference</string>
<key>scope</key>
<string>meta.link.inline.description</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown literal</string>
<key>scope</key>
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown title</string>
<key>scope</key>
<string>punctuation.definition.heading, entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown emphasis</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown strong</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash built-in function</string>
<key>scope</key>
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash parameter</string>
<key>scope</key>
<string>variable.language.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua field</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua constructor</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dd7878</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java constant</string>
<key>scope</key>
<string>entity.name.constant.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS property</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dd7878</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS constant</string>
<key>scope</key>
<string>support.constant.property-value.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS suffix</string>
<key>scope</key>
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variable property</string>
<key>scope</key>
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SCSS tag</string>
<key>scope</key>
<string>entity.name.tag.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SASS variable</string>
<key>scope</key>
<string>variable.other.sass</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>background</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>background</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9ca0b0</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Message error</string>
<key>scope</key>
<string>message.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.Catppuccin</string>
<key>author</key>
<string>BrunDerSchwarzmagier</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#c6d0f5</string>
<key>background</key>
<string>#303446</string>
<key>caret</key>
<string>#b5bfe2</string>
<key>invisibles</key>
<string>#a5adce</string>
<key>gutterForeground</key>
<string>#949cbb</string>
<key>gutterForegroundHighlight</key>
<string>#a6d189</string>
<key>lineHighlight</key>
<string>#626880</string>
<key>selection</key>
<string>#737994</string>
<key>selectionBorder</key>
<string>#303446</string>
<key>activeGuide</key>
<string>#ef9f76</string>
<key>findHighlightForeground</key>
<string>#292c3c</string>
<key>findHighlight</key>
<string>#e5c890</string>
<key>bracketsForeground</key>
<string>#949cbb</string>
<key>bracketContentsForeground</key>
<string>#949cbb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment</string>
<key>scope</key>
<string>comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#737994</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String</string>
<key>scope</key>
<string>string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6d189</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String regex</string>
<key>scope</key>
<string>string.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Number</string>
<key>scope</key>
<string>constant.numeric</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Boolean</string>
<key>scope</key>
<string>constant.language.boolean</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string>bold italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in constant</string>
<key>scope</key>
<string>constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#babbf1</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-in function</string>
<key>scope</key>
<string>support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>User-defined constant</string>
<key>scope</key>
<string>variable.other.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable</string>
<key>scope</key>
<string>variable</string>
<key>settings</key>
<dict></dict>
</dict>
<dict>
<key>name</key>
<string>Keyword</string>
<key>scope</key>
<string>keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Conditional/loop</string>
<key>scope</key>
<string>keyword.control.loop, keyword.control.conditional, keyword.control.c++</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ca9ee6</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Return</string>
<key>scope</key>
<string>keyword.control.return, keyword.control.flow.return</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f4b8e4</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exception</string>
<key>scope</key>
<string>support.type.exception</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operator</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#99d1db</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation separator</string>
<key>scope</key>
<string>punctuation.separator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation terminator</string>
<key>scope</key>
<string>punctuation.terminator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation bracket</string>
<key>scope</key>
<string>punctuation.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#949cbb</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Include</string>
<key>scope</key>
<string>keyword.control.import.include</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage</string>
<key>scope</key>
<string>storage</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type</string>
<key>scope</key>
<string>storage.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e5c890</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage modifier</string>
<key>scope</key>
<string>storage.modifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type namespace</string>
<key>scope</key>
<string>entity.name.namespace, meta.path</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Storage type class</string>
<key>scope</key>
<string>storage.type.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Label</string>
<key>scope</key>
<string>entity.name.label</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Keyword class</string>
<key>scope</key>
<string>keyword.declaration.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Class name</string>
<key>scope</key>
<string>entity.name.class, meta.toc-list.full-identifier</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#99d1db</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Inherited class</string>
<key>scope</key>
<string>entity.other.inherited-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#99d1db</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function name</string>
<key>scope</key>
<string>entity.name.function, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function macro</string>
<key>scope</key>
<string>entity.name.function.preprocessor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Macro directive - ifdef</string>
<key>scope</key>
<string>keyword.control.import</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Constructor</string>
<key>scope</key>
<string>entity.name.function.constructor, entity.name.function.destructor</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#babbf1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function argument</string>
<key>scope</key>
<string>variable.parameter.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Function declaration</string>
<key>scope</key>
<string>keyword.declaration.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea999c</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library function</string>
<key>scope</key>
<string>support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#99d1db</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library constant</string>
<key>scope</key>
<string>support.constant</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library class/type</string>
<key>scope</key>
<string>support.type, support.class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Library variable</string>
<key>scope</key>
<string>support.other.variable</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable function</string>
<key>scope</key>
<string>variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable parameter</string>
<key>scope</key>
<string>variable.parameter</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable other</string>
<key>scope</key>
<string>variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#c6d0f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable field</string>
<key>scope</key>
<string>variable.other.member</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Variable language</string>
<key>scope</key>
<string>variable.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag name</string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ef9f76</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag attribute</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ca9ee6</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Tag delimiter</string>
<key>scope</key>
<string>punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea999c</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown URL</string>
<key>scope</key>
<string>markup.underline.link.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2d5cf</string>
<key>fontStyle</key>
<string>italic underline</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown reference</string>
<key>scope</key>
<string>meta.link.inline.description</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#babbf1</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown literal</string>
<key>scope</key>
<string>comment.block.markdown, meta.code-fence, markup.raw.code-fence, markup.raw.inline</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown title</string>
<key>scope</key>
<string>punctuation.definition.heading, entity.name.section</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8caaee</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown emphasis</string>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea999c</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown strong</string>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea999c</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Escape</string>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f4b8e4</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash built-in function</string>
<key>scope</key>
<string>source.shell.bash meta.function.shell meta.compound.shell meta.function-call.identifier.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f4b8e4</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Bash parameter</string>
<key>scope</key>
<string>variable.language.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua field</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.value.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#babbf1</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua constructor</string>
<key>scope</key>
<string>source.lua meta.function.lua meta.block.lua meta.mapping.key.lua string.unquoted.key.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eebebe</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java constant</string>
<key>scope</key>
<string>entity.name.constant.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS property</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eebebe</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS constant</string>
<key>scope</key>
<string>support.constant.property-value.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#c6d0f5</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS suffix</string>
<key>scope</key>
<string>constant.numeric.suffix.css, keyword.other.unit.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variable property</string>
<key>scope</key>
<string>variable.other.custom-property.name.css, support.type.custom-property.name.css, punctuation.definition.custom-property.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SCSS tag</string>
<key>scope</key>
<string>entity.name.tag.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#babbf1</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>SASS variable</string>
<key>scope</key>
<string>variable.other.sass</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#81c8be</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid</string>
<key>scope</key>
<string>invalid</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#c6d0f5</string>
<key>background</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Invalid deprecated</string>
<key>scope</key>
<string>invalid.deprecated</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#c6d0f5</string>
<key>background</key>
<string>#ca9ee6</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff header</string>
<key>scope</key>
<string>meta.diff, meta.diff.header</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#737994</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff deleted</string>
<key>scope</key>
<string>markup.deleted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff inserted</string>
<key>scope</key>
<string>markup.inserted</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6d189</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff changed</string>
<key>scope</key>
<string>markup.changed</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e5c890</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Message error</string>
<key>scope</key>
<string>message.error</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e78284</string>
<key>fontStyle</key>
<string></string>
</dict>
</dict>
</array>
<key>uuid</key>
<string>4d0379b5-ef82-467b-b8b8-365889420646</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>semanticClass</key>
<string>theme.dark.Catppuccin</string>
<key>author</key>
<string>BrunDerSchwarzmagier</string>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin Mocha</string>
<key>semanticClass</key>
<string>theme.dark.catppuccin-mocha</string>
<key>uuid</key>
<string>627ce890-fabb-4d39-9819-7be71f4bdca7</string>
<key>author</key>
<string>Catppuccin Org</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#1e1e2e</string>
<key>foreground</key>
<string>#cdd6f4</string>
<key>caret</key>
<string>#f5e0dc</string>
<key>lineHighlight</key>
<string>#313244</string>
<key>misspelling</key>
<string>#f38ba8</string>
<key>accent</key>
<string>#cba6f7</string>
<key>selection</key>
<string>#9399b240</string>
<key>activeGuide</key>
<string>#45475a</string>
<key>findHighlight</key>
<string>#3e5767</string>
<key>gutterForeground</key>
<string>#7f849c</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Basic text & variable names (incl. leading punctuation)</string>
<key>scope</key>
<string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Parentheses, Brackets, Braces</string>
<key>scope</key>
<string>punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9399b2</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comments</string>
<key>scope</key>
<string>comment, punctuation.definition.comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c7086</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>string, punctuation.definition.string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Booleans, constants, numbers</string>
<key>scope</key>
<string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.name.tag.documentation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes</string>
<key>scope</key>
<string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Enum</string>
<key>scope</key>
<string>entity.name.enum</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Enum member</string>
<key>scope</key>
<string>meta.enum variable.other.readwrite, variable.other.enummember</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Object properties</string>
<key>scope</key>
<string>meta.property.object</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Types</string>
<key>scope</key>
<string>meta.type, meta.type-alias, support.type, entity.name.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Decorators</string>
<key>scope</key>
<string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>variable.parameter, meta.function.parameters</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-ins</string>
<key>scope</key>
<string>constant.language, support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.other.attribute-name.documentation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Preprocessor directives</string>
<key>scope</key>
<string>keyword.control.directive, punctuation.definition.directive</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Type parameters</string>
<key>scope</key>
<string>punctuation.definition.typeparameters</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Namespaces</string>
<key>scope</key>
<string>entity.name.namespace</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Property names (left hand assignments in json/yaml/css)</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>This/Self keyword</string>
<key>scope</key>
<string>variable.language.this, variable.language.this punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Object properties</string>
<key>scope</key>
<string>variable.object.property</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String template interpolation</string>
<key>scope</key>
<string>string.template variable, string variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>`new` as bold</string>
<key>scope</key>
<string>keyword.operator.new</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ extern keyword</string>
<key>scope</key>
<string>storage.modifier.specifier.extern.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ scope resolution</string>
<key>scope</key>
<string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ doc keywords</string>
<key>scope</key>
<string>storage.type.class.doxygen</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ operators</string>
<key>scope</key>
<string>storage.modifier.reference.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C# Interpolated Strings</string>
<key>scope</key>
<string>meta.interpolation.cs</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C# xml-style docs</string>
<key>scope</key>
<string>comment.block.documentation.cs</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes, reflecting the className color in JSX</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operators</string>
<key>scope</key>
<string>punctuation.separator.operator.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Pseudo classes</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.pseudo-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.css constant.other.unicode-range</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.css variable.parameter.url</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS vendored property names</string>
<key>scope</key>
<string>support.type.vendored.property-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Less/SCSS right-hand variables (@/$-prefixed)</string>
<key>scope</key>
<string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variables (--prefixed)</string>
<key>scope</key>
<string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS Percentage values, styled the same as numbers</string>
<key>scope</key>
<string>keyword.other.unit.percentage.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS Attribute selectors, styled the same as strings</string>
<key>scope</key>
<string>source.css meta.attribute-selector</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON/YAML keys, other left-hand assignments</string>
<key>scope</key>
<string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON/YAML constants</string>
<key>scope</key>
<string>constant.language.json, constant.language.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML anchors</string>
<key>scope</key>
<string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>TOML tables / ini groups</string>
<key>scope</key>
<string>support.type.property-name.table, entity.name.section.group-title.ini</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>TOML dates</string>
<key>scope</key>
<string>constant.other.time.datetime.offset.toml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML anchor puctuation</string>
<key>scope</key>
<string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML triple dashes</string>
<key>scope</key>
<string>entity.other.document.begin.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markup Diff</string>
<key>scope</key>
<string>markup.changed.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff</string>
<key>scope</key>
<string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff Inserted</string>
<key>scope</key>
<string>markup.inserted.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff Deleted</string>
<key>scope</key>
<string>markup.deleted.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>dotenv left-hand side assignments</string>
<key>scope</key>
<string>variable.other.env</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>dotenv reference to existing env variable</string>
<key>scope</key>
<string>string.quoted variable.other.env</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GDScript functions</string>
<key>scope</key>
<string>support.function.builtin.gdscript</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GDScript constants</string>
<key>scope</key>
<string>constant.language.gdscript</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment keywords</string>
<key>scope</key>
<string>comment meta.annotation.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>go:embed, go:build, etc.</string>
<key>scope</key>
<string>comment meta.annotation.parameters.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Go constants (nil, true, false)</string>
<key>scope</key>
<string>constant.language.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL variables</string>
<key>scope</key>
<string>variable.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL aliases</string>
<key>scope</key>
<string>string.unquoted.alias.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL enum members</string>
<key>scope</key>
<string>constant.character.enum.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL field in types</string>
<key>scope</key>
<string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML DOCTYPE as keyword</string>
<key>scope</key>
<string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML-like <tags/></string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Special characters like &amp;</string>
<key>scope</key>
<string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML tag attribute values</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Components</string>
<key>scope</key>
<string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Annotations</string>
<key>scope</key>
<string>punctuation.definition.annotation, storage.type.annotation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java enums</string>
<key>scope</key>
<string>constant.other.enum.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java imports</string>
<key>scope</key>
<string>storage.modifier.import.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Javadoc</string>
<key>scope</key>
<string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exported Variable</string>
<key>scope</key>
<string>meta.export variable.other.readwrite.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS/TS constants & properties</string>
<key>scope</key>
<string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSDoc; these are mainly params, so styled as such</string>
<key>scope</key>
<string>variable.other.jsdoc, comment.block.documentation variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSDoc keywords</string>
<key>scope</key>
<string>storage.type.class.jsdoc</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>scope</key>
<string>support.type.object.console.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Node constants as keywords (module, etc.)</string>
<key>scope</key>
<string>support.constant.node, support.type.object.module.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>implements as keyword</string>
<key>scope</key>
<string>storage.modifier.implements</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Builtin types</string>
<key>scope</key>
<string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>variable.parameter.generic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Arrow functions</string>
<key>scope</key>
<string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
<key>scope</key>
<string>punctuation.decorator.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Extra JS/TS keywords</string>
<key>scope</key>
<string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia macros</string>
<key>scope</key>
<string>support.function.macro.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia language constants (true, false)</string>
<key>scope</key>
<string>constant.language.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia other constants (these seem to be arguments inside arrays)</string>
<key>scope</key>
<string>constant.other.symbol.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX preamble</string>
<key>scope</key>
<string>text.tex keyword.control.preamble</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX be functions</string>
<key>scope</key>
<string>text.tex support.function.be</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX math</string>
<key>scope</key>
<string>constant.other.general.math.tex</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f2cdcd</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua docstring keywords</string>
<key>scope</key>
<string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua docstring variables</string>
<key>scope</key>
<string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.strikethrough</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6adc8</string>
<key>fontStyle</key>
<string>strikethrough</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown auto links</string>
<key>scope</key>
<string>punctuation.definition.link, markup.underline.link</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown links</string>
<key>scope</key>
<string>text.html.markdown punctuation.definition.link.title, string.other.link.title.markdown, markup.link, punctuation.definition.constant.markdown, constant.other.reference.link.markdown, markup.substitution.attribute-reference</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown code spans</string>
<key>scope</key>
<string>punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown triple backtick language identifier</string>
<key>scope</key>
<string>fenced_code.block.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown triple backticks</string>
<key>scope</key>
<string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9399b2</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown quotes</string>
<key>scope</key>
<string>markup.quote, punctuation.definition.quote.begin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown separators</string>
<key>scope</key>
<string>meta.separator.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown list bullets</string>
<key>scope</key>
<string>punctuation.definition.list.begin.markdown, markup.list.bullet</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix attribute names</string>
<key>scope</key>
<string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix parameter names</string>
<key>scope</key>
<string>variable.parameter.name.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix interpolated parameter names</string>
<key>scope</key>
<string>meta.embedded variable.parameter.name.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#b4befe</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix paths</string>
<key>scope</key>
<string>string.unquoted.path.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Attributes</string>
<key>scope</key>
<string>support.attribute.builtin, meta.attribute.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Parameters (needed for the leading dollar sign)</string>
<key>scope</key>
<string>meta.function.parameters.php punctuation.definition.variable.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Constants (null, __FILE__, etc.)</string>
<key>scope</key>
<string>constant.language.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP functions</string>
<key>scope</key>
<string>text.html.php support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHPdoc keywords</string>
<key>scope</key>
<string>keyword.other.phpdoc.php</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
<key>scope</key>
<string>support.variable.magic.python, meta.function-call.arguments.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python double underscore functions</string>
<key>scope</key>
<string>support.function.magic.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python `self` keyword</string>
<key>scope</key>
<string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python keyword flow/logical (for ... in)</string>
<key>scope</key>
<string>keyword.control.flow.python, keyword.operator.logical.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python storage type</string>
<key>scope</key>
<string>storage.type.function.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function support</string>
<key>scope</key>
<string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function calls</string>
<key>scope</key>
<string>meta.function-call.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function decorators</string>
<key>scope</key>
<string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python placeholder reset to normal string</string>
<key>scope</key>
<string>constant.character.format.placeholder.other.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python exception & builtins such as exit()</string>
<key>scope</key>
<string>support.type.exception.python, support.function.builtin.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>entity.name.type</string>
<key>scope</key>
<string>support.type.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python constants (True/False)</string>
<key>scope</key>
<string>constant.language.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Arguments accessed later in the function body</string>
<key>scope</key>
<string>meta.indexed-name.python, meta.item-access.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python f-strings/binary/unicode storage types</string>
<key>scope</key>
<string>storage.type.string.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python type hints</string>
<key>scope</key>
<string>meta.function.parameters.python</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex string begin/end in JS/TS</string>
<key>scope</key>
<string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex anchors (^, $)</string>
<key>scope</key>
<string>keyword.control.anchor.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex regular string match</string>
<key>scope</key>
<string>string.regexp.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex group parenthesis & backreference (\1, \2, \3, ...)</string>
<key>scope</key>
<string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#a6e3a1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex character class []</string>
<key>scope</key>
<string>punctuation.definition.character-class.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex character classes (\d, \w, \s)</string>
<key>scope</key>
<string>constant.other.character-class.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex range</string>
<key>scope</key>
<string>constant.other.character-class.range.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5e0dc</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex quantifier</string>
<key>scope</key>
<string>keyword.operator.quantifier.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex constant/numeric</string>
<key>scope</key>
<string>constant.character.numeric.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
<key>scope</key>
<string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust attribute</string>
<key>scope</key>
<string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust attribute strings</string>
<key>scope</key>
<string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust keyword</string>
<key>scope</key>
<string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust u/i32, u/i64, etc.</string>
<key>scope</key>
<string>entity.name.type.numeric.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust generic</string>
<key>scope</key>
<string>meta.generic.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust impl</string>
<key>scope</key>
<string>entity.name.impl.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust module</string>
<key>scope</key>
<string>entity.name.module.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust trait</string>
<key>scope</key>
<string>entity.name.trait.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust struct</string>
<key>scope</key>
<string>storage.type.source.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust union</string>
<key>scope</key>
<string>entity.name.union.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust enum member</string>
<key>scope</key>
<string>meta.enum.rust storage.type.source.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust macro</string>
<key>scope</key>
<string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust lifetime</string>
<key>scope</key>
<string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust string formatting</string>
<key>scope</key>
<string>string.quoted.double.rust constant.other.placeholder.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust return type generic</string>
<key>scope</key>
<string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust functions</string>
<key>scope</key>
<string>meta.function.call.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust angle brackets</string>
<key>scope</key>
<string>punctuation.brackets.angle.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89dceb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust constants</string>
<key>scope</key>
<string>constant.other.caps.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust function parameters</string>
<key>scope</key>
<string>meta.function.definition.rust variable.other.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#eba0ac</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust closure variables</string>
<key>scope</key>
<string>meta.function.call.rust variable.other.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust self</string>
<key>scope</key>
<string>variable.language.self.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust metavariable names</string>
<key>scope</key>
<string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell shebang</string>
<key>scope</key>
<string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell shebang command</string>
<key>scope</key>
<string>comment.line.shebang constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell interpolated command</string>
<key>scope</key>
<string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell interpolated command variable</string>
<key>scope</key>
<string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#94e2d5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell EOF</string>
<key>scope</key>
<string>entity.name.tag.heredoc.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell quoted variable</string>
<key>scope</key>
<string>string.quoted.double.shell variable.other.normal.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cdd6f4</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#cba6f7</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.commands.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#89b4fa</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.env.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f5c2e7</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.1.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f38ba8</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.2.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fab387</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#f9e2af</string>
</dict>
</dict>
</array>
</dict>
</plist>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Catppuccin Latte</string>
<key>semanticClass</key>
<string>theme.light.catppuccin-latte</string>
<key>uuid</key>
<string>96a262cd-4b2f-49f5-9125-8dd0077cbfe1</string>
<key>author</key>
<string>Catppuccin Org</string>
<key>colorSpaceName</key>
<string>sRGB</string>
<key>settings</key>
<array>
<dict>
<key>settings</key>
<dict>
<key>background</key>
<string>#eff1f5</string>
<key>foreground</key>
<string>#4c4f69</string>
<key>caret</key>
<string>#dc8a78</string>
<key>lineHighlight</key>
<string>#ccd0da</string>
<key>misspelling</key>
<string>#d20f39</string>
<key>accent</key>
<string>#8839ef</string>
<key>selection</key>
<string>#7c7f934d</string>
<key>activeGuide</key>
<string>#bcc0cc</string>
<key>findHighlight</key>
<string>#a9daf0</string>
<key>gutterForeground</key>
<string>#8c8fa1</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Basic text & variable names (incl. leading punctuation)</string>
<key>scope</key>
<string>text, source, variable.other.readwrite, punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Parentheses, Brackets, Braces</string>
<key>scope</key>
<string>punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7c7f93</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comments</string>
<key>scope</key>
<string>comment, punctuation.definition.comment</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#9ca0b0</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>string, punctuation.definition.string</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>constant.character.escape</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Booleans, constants, numbers</string>
<key>scope</key>
<string>constant.numeric, variable.other.constant, entity.name.constant, constant.language.boolean, constant.language.false, constant.language.true, keyword.other.unit.user-defined, keyword.other.unit.suffix.floating-point</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>keyword, keyword.operator.word, keyword.operator.new, variable.language.super, support.type.primitive, storage.type, storage.modifier, punctuation.definition.keyword</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.name.tag.documentation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Punctuation</string>
<key>scope</key>
<string>keyword.operator, punctuation.accessor, punctuation.definition.generic, meta.function.closure punctuation.section.parameters, punctuation.definition.tag, punctuation.separator.key-value</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.name.function, meta.function-call.method, support.function, support.function.misc, variable.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes</string>
<key>scope</key>
<string>entity.name.class, entity.other.inherited-class, support.class, meta.function-call.constructor, entity.name.struct</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Enum</string>
<key>scope</key>
<string>entity.name.enum</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Enum member</string>
<key>scope</key>
<string>meta.enum variable.other.readwrite, variable.other.enummember</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Object properties</string>
<key>scope</key>
<string>meta.property.object</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Types</string>
<key>scope</key>
<string>meta.type, meta.type-alias, support.type, entity.name.type</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Decorators</string>
<key>scope</key>
<string>meta.annotation variable.function, meta.annotation variable.annotation.function, meta.annotation punctuation.definition.annotation, meta.decorator, punctuation.decorator</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>variable.parameter, meta.function.parameters</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Built-ins</string>
<key>scope</key>
<string>constant.language, support.function.builtin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>entity.other.attribute-name.documentation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Preprocessor directives</string>
<key>scope</key>
<string>keyword.control.directive, punctuation.definition.directive</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Type parameters</string>
<key>scope</key>
<string>punctuation.definition.typeparameters</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Namespaces</string>
<key>scope</key>
<string>entity.name.namespace</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Property names (left hand assignments in json/yaml/css)</string>
<key>scope</key>
<string>support.type.property-name.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>This/Self keyword</string>
<key>scope</key>
<string>variable.language.this, variable.language.this punctuation.definition.variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Object properties</string>
<key>scope</key>
<string>variable.object.property</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>String template interpolation</string>
<key>scope</key>
<string>string.template variable, string variable</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>`new` as bold</string>
<key>scope</key>
<string>keyword.operator.new</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ extern keyword</string>
<key>scope</key>
<string>storage.modifier.specifier.extern.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ scope resolution</string>
<key>scope</key>
<string>entity.name.scope-resolution.template.call.cpp, entity.name.scope-resolution.parameter.cpp, entity.name.scope-resolution.cpp, entity.name.scope-resolution.function.definition.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ doc keywords</string>
<key>scope</key>
<string>storage.type.class.doxygen</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>C++ operators</string>
<key>scope</key>
<string>storage.modifier.reference.cpp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C# Interpolated Strings</string>
<key>scope</key>
<string>meta.interpolation.cs</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>C# xml-style docs</string>
<key>scope</key>
<string>comment.block.documentation.cs</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Classes, reflecting the className color in JSX</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.class.css, entity.other.attribute-name.parent-selector.css punctuation.definition.entity.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Operators</string>
<key>scope</key>
<string>punctuation.separator.operator.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Pseudo classes</string>
<key>scope</key>
<string>source.css entity.other.attribute-name.pseudo-class</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.css constant.other.unicode-range</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.css variable.parameter.url</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS vendored property names</string>
<key>scope</key>
<string>support.type.vendored.property-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Less/SCSS right-hand variables (@/$-prefixed)</string>
<key>scope</key>
<string>source.css meta.property-value variable, source.css meta.property-value variable.other.less, source.css meta.property-value variable.other.less punctuation.definition.variable.less, meta.definition.variable.scss</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS variables (--prefixed)</string>
<key>scope</key>
<string>source.css meta.property-list variable, meta.property-list variable.other.less, meta.property-list variable.other.less punctuation.definition.variable.less</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS Percentage values, styled the same as numbers</string>
<key>scope</key>
<string>keyword.other.unit.percentage.css</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>CSS Attribute selectors, styled the same as strings</string>
<key>scope</key>
<string>source.css meta.attribute-selector</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON/YAML keys, other left-hand assignments</string>
<key>scope</key>
<string>keyword.other.definition.ini, punctuation.support.type.property-name.json, support.type.property-name.json, punctuation.support.type.property-name.toml, support.type.property-name.toml, entity.name.tag.yaml, punctuation.support.type.property-name.yaml, support.type.property-name.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSON/YAML constants</string>
<key>scope</key>
<string>constant.language.json, constant.language.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML anchors</string>
<key>scope</key>
<string>entity.name.type.anchor.yaml, variable.other.alias.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>TOML tables / ini groups</string>
<key>scope</key>
<string>support.type.property-name.table, entity.name.section.group-title.ini</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>TOML dates</string>
<key>scope</key>
<string>constant.other.time.datetime.offset.toml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML anchor puctuation</string>
<key>scope</key>
<string>punctuation.definition.anchor.yaml, punctuation.definition.alias.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>YAML triple dashes</string>
<key>scope</key>
<string>entity.other.document.begin.yaml</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markup Diff</string>
<key>scope</key>
<string>markup.changed.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff</string>
<key>scope</key>
<string>meta.diff.header.from-file, meta.diff.header.to-file, punctuation.definition.from-file.diff, punctuation.definition.to-file.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff Inserted</string>
<key>scope</key>
<string>markup.inserted.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Diff Deleted</string>
<key>scope</key>
<string>markup.deleted.diff</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>dotenv left-hand side assignments</string>
<key>scope</key>
<string>variable.other.env</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>dotenv reference to existing env variable</string>
<key>scope</key>
<string>string.quoted variable.other.env</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GDScript functions</string>
<key>scope</key>
<string>support.function.builtin.gdscript</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GDScript constants</string>
<key>scope</key>
<string>constant.language.gdscript</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Comment keywords</string>
<key>scope</key>
<string>comment meta.annotation.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>go:embed, go:build, etc.</string>
<key>scope</key>
<string>comment meta.annotation.parameters.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Go constants (nil, true, false)</string>
<key>scope</key>
<string>constant.language.go</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL variables</string>
<key>scope</key>
<string>variable.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL aliases</string>
<key>scope</key>
<string>string.unquoted.alias.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dd7878</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL enum members</string>
<key>scope</key>
<string>constant.character.enum.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>GraphQL field in types</string>
<key>scope</key>
<string>meta.objectvalues.graphql constant.object.key.graphql string.unquoted.graphql</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dd7878</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML DOCTYPE as keyword</string>
<key>scope</key>
<string>keyword.other.doctype, meta.tag.sgml.doctype punctuation.definition.tag, meta.tag.metadata.doctype entity.name.tag, meta.tag.metadata.doctype punctuation.definition.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML-like <tags/></string>
<key>scope</key>
<string>entity.name.tag</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Special characters like &amp;</string>
<key>scope</key>
<string>text.html constant.character.entity, text.html constant.character.entity punctuation, constant.character.entity.xml, constant.character.entity.xml punctuation, constant.character.entity.js.jsx, constant.charactger.entity.js.jsx punctuation, constant.character.entity.tsx, constant.character.entity.tsx punctuation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>HTML/XML tag attribute values</string>
<key>scope</key>
<string>entity.other.attribute-name</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Components</string>
<key>scope</key>
<string>support.class.component, support.class.component.jsx, support.class.component.tsx, support.class.component.vue</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Annotations</string>
<key>scope</key>
<string>punctuation.definition.annotation, storage.type.annotation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java enums</string>
<key>scope</key>
<string>constant.other.enum.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Java imports</string>
<key>scope</key>
<string>storage.modifier.import.java</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Javadoc</string>
<key>scope</key>
<string>comment.block.javadoc.java keyword.other.documentation.javadoc.java</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Exported Variable</string>
<key>scope</key>
<string>meta.export variable.other.readwrite.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JS/TS constants & properties</string>
<key>scope</key>
<string>variable.other.constant.js, variable.other.constant.ts, variable.other.property.js, variable.other.property.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSDoc; these are mainly params, so styled as such</string>
<key>scope</key>
<string>variable.other.jsdoc, comment.block.documentation variable.other</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>JSDoc keywords</string>
<key>scope</key>
<string>storage.type.class.jsdoc</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>scope</key>
<string>support.type.object.console.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Node constants as keywords (module, etc.)</string>
<key>scope</key>
<string>support.constant.node, support.type.object.module.js</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>implements as keyword</string>
<key>scope</key>
<string>storage.modifier.implements</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Builtin types</string>
<key>scope</key>
<string>constant.language.null.js, constant.language.null.ts, constant.language.undefined.js, constant.language.undefined.ts, support.type.builtin.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>variable.parameter.generic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Arrow functions</string>
<key>scope</key>
<string>keyword.declaration.function.arrow.js, storage.type.function.arrow.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Decorator punctuations (decorators inherit from blue functions, instead of styleguide peach)</string>
<key>scope</key>
<string>punctuation.decorator.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Extra JS/TS keywords</string>
<key>scope</key>
<string>keyword.operator.expression.in.js, keyword.operator.expression.in.ts, keyword.operator.expression.infer.ts, keyword.operator.expression.instanceof.js, keyword.operator.expression.instanceof.ts, keyword.operator.expression.is, keyword.operator.expression.keyof.ts, keyword.operator.expression.of.js, keyword.operator.expression.of.ts, keyword.operator.expression.typeof.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia macros</string>
<key>scope</key>
<string>support.function.macro.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia language constants (true, false)</string>
<key>scope</key>
<string>constant.language.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Julia other constants (these seem to be arguments inside arrays)</string>
<key>scope</key>
<string>constant.other.symbol.julia</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX preamble</string>
<key>scope</key>
<string>text.tex keyword.control.preamble</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX be functions</string>
<key>scope</key>
<string>text.tex support.function.be</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>LaTeX math</string>
<key>scope</key>
<string>constant.other.general.math.tex</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dd7878</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua docstring keywords</string>
<key>scope</key>
<string>comment.line.double-dash.documentation.lua storage.type.annotation.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Lua docstring variables</string>
<key>scope</key>
<string>comment.line.double-dash.documentation.lua entity.name.variable.lua, comment.line.double-dash.documentation.lua variable.lua</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.1.markdown punctuation.definition.heading.markdown, heading.1.markdown, markup.heading.atx.1.mdx, markup.heading.atx.1.mdx punctuation.definition.heading.mdx, markup.heading.setext.1.markdown, markup.heading.heading-0.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.2.markdown punctuation.definition.heading.markdown, heading.2.markdown, markup.heading.atx.2.mdx, markup.heading.atx.2.mdx punctuation.definition.heading.mdx, markup.heading.setext.2.markdown, markup.heading.heading-1.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.3.markdown punctuation.definition.heading.markdown, heading.3.markdown, markup.heading.atx.3.mdx, markup.heading.atx.3.mdx punctuation.definition.heading.mdx, markup.heading.heading-2.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.4.markdown punctuation.definition.heading.markdown, heading.4.markdown, markup.heading.atx.4.mdx, markup.heading.atx.4.mdx punctuation.definition.heading.mdx, markup.heading.heading-3.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.5.markdown punctuation.definition.heading.markdown, heading.5.markdown, markup.heading.atx.5.mdx, markup.heading.atx.5.mdx punctuation.definition.heading.mdx, markup.heading.heading-4.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>heading.6.markdown punctuation.definition.heading.markdown, heading.6.markdown, markup.heading.atx.6.mdx, markup.heading.atx.6.mdx punctuation.definition.heading.mdx, markup.heading.heading-5.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.bold</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>bold</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.italic</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.strikethrough</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#6c6f85</string>
<key>fontStyle</key>
<string>strikethrough</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown auto links</string>
<key>scope</key>
<string>punctuation.definition.link, markup.underline.link</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown links</string>
<key>scope</key>
<string>text.html.markdown punctuation.definition.link.title, string.other.link.title.markdown, markup.link, punctuation.definition.constant.markdown, constant.other.reference.link.markdown, markup.substitution.attribute-reference</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown code spans</string>
<key>scope</key>
<string>punctuation.definition.raw.markdown, markup.inline.raw.string.markdown, markup.raw.block.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown triple backtick language identifier</string>
<key>scope</key>
<string>fenced_code.block.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown triple backticks</string>
<key>scope</key>
<string>markup.fenced_code.block punctuation.definition, markup.raw support.asciidoc</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7c7f93</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown quotes</string>
<key>scope</key>
<string>markup.quote, punctuation.definition.quote.begin</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown separators</string>
<key>scope</key>
<string>meta.separator.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Markdown list bullets</string>
<key>scope</key>
<string>punctuation.definition.list.begin.markdown, markup.list.bullet</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix attribute names</string>
<key>scope</key>
<string>entity.other.attribute-name.multipart.nix, entity.other.attribute-name.single.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix parameter names</string>
<key>scope</key>
<string>variable.parameter.name.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix interpolated parameter names</string>
<key>scope</key>
<string>meta.embedded variable.parameter.name.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#7287fd</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Nix paths</string>
<key>scope</key>
<string>string.unquoted.path.nix</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Attributes</string>
<key>scope</key>
<string>support.attribute.builtin, meta.attribute.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Parameters (needed for the leading dollar sign)</string>
<key>scope</key>
<string>meta.function.parameters.php punctuation.definition.variable.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP Constants (null, __FILE__, etc.)</string>
<key>scope</key>
<string>constant.language.php</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHP functions</string>
<key>scope</key>
<string>text.html.php support.function</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>PHPdoc keywords</string>
<key>scope</key>
<string>keyword.other.phpdoc.php</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python argument functions reset to text, otherwise they inherit blue from function-call</string>
<key>scope</key>
<string>support.variable.magic.python, meta.function-call.arguments.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python double underscore functions</string>
<key>scope</key>
<string>support.function.magic.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python `self` keyword</string>
<key>scope</key>
<string>variable.parameter.function.language.special.self.python, variable.language.special.self.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python keyword flow/logical (for ... in)</string>
<key>scope</key>
<string>keyword.control.flow.python, keyword.operator.logical.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python storage type</string>
<key>scope</key>
<string>storage.type.function.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function support</string>
<key>scope</key>
<string>support.token.decorator.python, meta.function.decorator.identifier.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function calls</string>
<key>scope</key>
<string>meta.function-call.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python function decorators</string>
<key>scope</key>
<string>entity.name.function.decorator.python, punctuation.definition.decorator.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python placeholder reset to normal string</string>
<key>scope</key>
<string>constant.character.format.placeholder.other.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python exception & builtins such as exit()</string>
<key>scope</key>
<string>support.type.exception.python, support.function.builtin.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>entity.name.type</string>
<key>scope</key>
<string>support.type.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>python constants (True/False)</string>
<key>scope</key>
<string>constant.language.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Arguments accessed later in the function body</string>
<key>scope</key>
<string>meta.indexed-name.python, meta.item-access.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python f-strings/binary/unicode storage types</string>
<key>scope</key>
<string>storage.type.string.python</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Python type hints</string>
<key>scope</key>
<string>meta.function.parameters.python</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex string begin/end in JS/TS</string>
<key>scope</key>
<string>string.regexp punctuation.definition.string.begin, string.regexp punctuation.definition.string.end</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex anchors (^, $)</string>
<key>scope</key>
<string>keyword.control.anchor.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex regular string match</string>
<key>scope</key>
<string>string.regexp.ts</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex group parenthesis & backreference (\1, \2, \3, ...)</string>
<key>scope</key>
<string>punctuation.definition.group.regexp, keyword.other.back-reference.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#40a02b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex character class []</string>
<key>scope</key>
<string>punctuation.definition.character-class.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex character classes (\d, \w, \s)</string>
<key>scope</key>
<string>constant.other.character-class.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex range</string>
<key>scope</key>
<string>constant.other.character-class.range.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#dc8a78</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex quantifier</string>
<key>scope</key>
<string>keyword.operator.quantifier.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex constant/numeric</string>
<key>scope</key>
<string>constant.character.numeric.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Regex lookaheads, negative lookaheads, lookbehinds, negative lookbehinds</string>
<key>scope</key>
<string>punctuation.definition.group.no-capture.regexp, meta.assertion.look-ahead.regexp, meta.assertion.negative-look-ahead.regexp</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust attribute</string>
<key>scope</key>
<string>meta.annotation.rust, meta.annotation.rust punctuation, meta.attribute.rust, punctuation.definition.attribute.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust attribute strings</string>
<key>scope</key>
<string>meta.attribute.rust string.quoted.double.rust, meta.attribute.rust string.quoted.single.char.rust</string>
<key>settings</key>
<dict>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust keyword</string>
<key>scope</key>
<string>entity.name.function.macro.rules.rust, storage.type.module.rust, storage.modifier.rust, storage.type.struct.rust, storage.type.enum.rust, storage.type.trait.rust, storage.type.union.rust, storage.type.impl.rust, storage.type.rust, storage.type.function.rust, storage.type.type.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust u/i32, u/i64, etc.</string>
<key>scope</key>
<string>entity.name.type.numeric.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
<key>fontStyle</key>
<string/>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust generic</string>
<key>scope</key>
<string>meta.generic.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust impl</string>
<key>scope</key>
<string>entity.name.impl.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust module</string>
<key>scope</key>
<string>entity.name.module.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust trait</string>
<key>scope</key>
<string>entity.name.trait.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust struct</string>
<key>scope</key>
<string>storage.type.source.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust union</string>
<key>scope</key>
<string>entity.name.union.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust enum member</string>
<key>scope</key>
<string>meta.enum.rust storage.type.source.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust macro</string>
<key>scope</key>
<string>support.macro.rust, meta.macro.rust support.function.rust, entity.name.function.macro.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust lifetime</string>
<key>scope</key>
<string>storage.modifier.lifetime.rust, entity.name.type.lifetime</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust string formatting</string>
<key>scope</key>
<string>string.quoted.double.rust constant.other.placeholder.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust return type generic</string>
<key>scope</key>
<string>meta.function.return-type.rust meta.generic.rust storage.type.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust functions</string>
<key>scope</key>
<string>meta.function.call.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust angle brackets</string>
<key>scope</key>
<string>punctuation.brackets.angle.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#04a5e5</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust constants</string>
<key>scope</key>
<string>constant.other.caps.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust function parameters</string>
<key>scope</key>
<string>meta.function.definition.rust variable.other.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#e64553</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust closure variables</string>
<key>scope</key>
<string>meta.function.call.rust variable.other.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust self</string>
<key>scope</key>
<string>variable.language.self.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Rust metavariable names</string>
<key>scope</key>
<string>variable.other.metavariable.name.rust, meta.macro.metavariable.rust keyword.operator.macro.dollar.rust</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell shebang</string>
<key>scope</key>
<string>comment.line.shebang, comment.line.shebang punctuation.definition.comment, comment.line.shebang, punctuation.definition.comment.shebang.shell, meta.shebang.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell shebang command</string>
<key>scope</key>
<string>comment.line.shebang constant.language</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell interpolated command</string>
<key>scope</key>
<string>meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation, meta.function-call.arguments.shell punctuation.definition.variable.shell, meta.function-call.arguments.shell punctuation.section.interpolation</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell interpolated command variable</string>
<key>scope</key>
<string>meta.string meta.interpolation.parameter.shell variable.other.readwrite</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
<key>fontStyle</key>
<string>italic</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>source.shell punctuation.section.interpolation, punctuation.definition.evaluation.backticks.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#179299</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell EOF</string>
<key>scope</key>
<string>entity.name.tag.heredoc.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>name</key>
<string>Shell quoted variable</string>
<key>scope</key>
<string>string.quoted.double.shell variable.other.normal.shell</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#4c4f69</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.synopsis.man, markup.heading.title.man, markup.heading.other.man, markup.heading.env.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#8839ef</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.commands.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#1e66f5</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.env.man</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#ea76cb</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.1.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#d20f39</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.2.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#fe640b</string>
</dict>
</dict>
<dict>
<key>scope</key>
<string>markup.heading.markdown</string>
<key>settings</key>
<dict>
<key>foreground</key>
<string>#df8e1d</string>
</dict>
</dict>
</array>
</dict>
</plist>
--theme="Catppuccin Latte"
# Colors section of "Alacritty - TOML configuration file format"
# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
[colors.primary]
foreground = "#e0def4"
background = "#191724"
dim_foreground = "#908caa"
bright_foreground = "#e0def4"
[colors.cursor]
text = "#e0def4"
cursor = "#524f67"
[colors.vi_mode_cursor]
text = "#e0def4"
cursor = "#524f67"
[colors.search.matches]
foreground = "#908caa"
background = "#26233a"
[colors.search.focused_match]
foreground = "#191724"
background = "#ebbcba"
[colors.hints.start]
foreground = "#908caa"
background = "#1f1d2e"
[colors.hints.end]
foreground = "#6e6a86"
background = "#1f1d2e"
[colors.line_indicator]
foreground = "None"
background = "None"
[colors.footer_bar]
foreground = "#e0def4"
background = "#1f1d2e"
[colors.selection]
text = "#e0def4"
background = "#403d52"
[colors.normal]
black = "#26233a"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"
[colors.bright]
black = "#6e6a86"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"
[colors.dim]
black = "#6e6a86"
red = "#eb6f92"
green = "#31748f"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ebbcba"
white = "#e0def4"
# Colors section of "Alacritty - TOML configuration file format"
# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
[colors.primary]
foreground = "#e0def4"
background = "#232136"
dim_foreground = "#908caa"
bright_foreground = "#e0def4"
[colors.cursor]
text = "#e0def4"
cursor = "#56526e"
[colors.vi_mode_cursor]
text = "#e0def4"
cursor = "#56526e"
[colors.search.matches]
foreground = "#908caa"
background = "#393552"
[colors.search.focused_match]
foreground = "#232136"
background = "#ea9a97"
[colors.hints.start]
foreground = "#908caa"
background = "#2a273f"
[colors.hints.end]
foreground = "#6e6a86"
background = "#2a273f"
[colors.line_indicator]
foreground = "None"
background = "None"
[colors.footer_bar]
foreground = "#e0def4"
background = "#2a273f"
[colors.selection]
text = "#e0def4"
background = "#44415a"
[colors.normal]
black = "#393552"
red = "#eb6f92"
green = "#3e8fb0"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ea9a97"
white = "#e0def4"
[colors.bright]
black = "#6e6a86"
red = "#eb6f92"
green = "#3e8fb0"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ea9a97"
white = "#e0def4"
[colors.dim]
black = "#6e6a86"
red = "#eb6f92"
green = "#3e8fb0"
yellow = "#f6c177"
blue = "#9ccfd8"
magenta = "#c4a7e7"
cyan = "#ea9a97"
white = "#e0def4"
# Colors section of "Alacritty - TOML configuration file format"
# https://github.com/alacritty/alacritty/blob/master/extra/man/alacritty.5.scd#colors
[colors.primary]
foreground = "#575279"
background = "#faf4ed"
dim_foreground = "#797593"
bright_foreground = "#575279"
[colors.cursor]
text = "#575279"
cursor = "#cecacd"
[colors.vi_mode_cursor]
text = "#575279"
cursor = "#cecacd"
[colors.search.matches]
foreground = "#797593"
background = "#f2e9e1"
[colors.search.focused_match]
foreground = "#faf4ed"
background = "#d7827e"
[colors.hints.start]
foreground = "#797593"
background = "#fffaf3"
[colors.hints.end]
foreground = "#9893a5"
background = "#fffaf3"
[colors.line_indicator]
foreground = "None"
background = "None"
[colors.footer_bar]
foreground = "#575279"
background = "#fffaf3"
[colors.selection]
text = "#575279"
background = "#dfdad9"
[colors.normal]
black = "#f2e9e1"
red = "#b4637a"
green = "#286983"
yellow = "#ea9d34"
blue = "#56949f"
magenta = "#907aa9"
cyan = "#d7827e"
white = "#575279"
[colors.bright]
black = "#9893a5"
red = "#b4637a"
green = "#286983"
yellow = "#ea9d34"
blue = "#56949f"
magenta = "#907aa9"
cyan = "#d7827e"
white = "#575279"
[colors.dim]
black = "#9893a5"
red = "#b4637a"
green = "#286983"
yellow = "#ea9d34"
blue = "#56949f"
magenta = "#907aa9"
cyan = "#d7827e"
white = "#575279"
[font]
size = 14
normal = { family = "Iosevka" } #`, style = "Regular" }
[general]
import = [
"./rose-pine-dawn.toml"
]
[terminal]
# Don't set SHELL
shell = "nu"
[window]
padding = {x = 10, y = 10}
[cursor]
thickness = 1
[colors.primary]
background = "#1e1e2e"
foreground = "#cdd6f4"
dim_foreground = "#7f849c"
bright_foreground = "#cdd6f4"
[colors.cursor]
text = "#1e1e2e"
cursor = "#f5e0dc"
[colors.vi_mode_cursor]
text = "#1e1e2e"
cursor = "#b4befe"
[colors.search.matches]
foreground = "#1e1e2e"
background = "#a6adc8"
[colors.search.focused_match]
foreground = "#1e1e2e"
background = "#a6e3a1"
[colors.footer_bar]
foreground = "#1e1e2e"
background = "#a6adc8"
[colors.hints.start]
foreground = "#1e1e2e"
background = "#f9e2af"
[colors.hints.end]
foreground = "#1e1e2e"
background = "#a6adc8"
[colors.selection]
text = "#1e1e2e"
background = "#f5e0dc"
[colors.normal]
black = "#45475a"
red = "#f38ba8"
green = "#a6e3a1"
yellow = "#f9e2af"
blue = "#89b4fa"
magenta = "#f5c2e7"
cyan = "#94e2d5"
white = "#bac2de"
[colors.bright]
black = "#585b70"
red = "#f38ba8"
green = "#a6e3a1"
yellow = "#f9e2af"
blue = "#89b4fa"
magenta = "#f5c2e7"
cyan = "#94e2d5"
white = "#a6adc8"
[[colors.indexed_colors]]
index = 16
color = "#fab387"
[[colors.indexed_colors]]
index = 17
color = "#f5e0dc"
[colors.primary]
background = "#24273a"
foreground = "#cad3f5"
dim_foreground = "#8087a2"
bright_foreground = "#cad3f5"
[colors.cursor]
text = "#24273a"
cursor = "#f4dbd6"
[colors.vi_mode_cursor]
text = "#24273a"
cursor = "#b7bdf8"
[colors.search.matches]
foreground = "#24273a"
background = "#a5adcb"
[colors.search.focused_match]
foreground = "#24273a"
background = "#a6da95"
[colors.footer_bar]
foreground = "#24273a"
background = "#a5adcb"
[colors.hints.start]
foreground = "#24273a"
background = "#eed49f"
[colors.hints.end]
foreground = "#24273a"
background = "#a5adcb"
[colors.selection]
text = "#24273a"
background = "#f4dbd6"
[colors.normal]
black = "#494d64"
red = "#ed8796"
green = "#a6da95"
yellow = "#eed49f"
blue = "#8aadf4"
magenta = "#f5bde6"
cyan = "#8bd5ca"
white = "#b8c0e0"
[colors.bright]
black = "#5b6078"
red = "#ed8796"
green = "#a6da95"
yellow = "#eed49f"
blue = "#8aadf4"
magenta = "#f5bde6"
cyan = "#8bd5ca"
white = "#a5adcb"
[[colors.indexed_colors]]
index = 16
color = "#f5a97f"
[[colors.indexed_colors]]
index = 17
color = "#f4dbd6"
[colors.primary]
background = "#eff1f5"
foreground = "#4c4f69"
dim_foreground = "#8c8fa1"
bright_foreground = "#4c4f69"
[colors.cursor]
text = "#eff1f5"
cursor = "#dc8a78"
[colors.vi_mode_cursor]
text = "#eff1f5"
cursor = "#7287fd"
[colors.search.matches]
foreground = "#eff1f5"
background = "#6c6f85"
[colors.search.focused_match]
foreground = "#eff1f5"
background = "#40a02b"
[colors.footer_bar]
foreground = "#eff1f5"
background = "#6c6f85"
[colors.hints.start]
foreground = "#eff1f5"
background = "#df8e1d"
[colors.hints.end]
foreground = "#eff1f5"
background = "#6c6f85"
[colors.selection]
text = "#eff1f5"
background = "#dc8a78"
[colors.normal]
black = "#bcc0cc"
red = "#d20f39"
green = "#40a02b"
yellow = "#df8e1d"
blue = "#1e66f5"
magenta = "#ea76cb"
cyan = "#179299"
white = "#5c5f77"
[colors.bright]
black = "#acb0be"
red = "#d20f39"
green = "#40a02b"
yellow = "#df8e1d"
blue = "#1e66f5"
magenta = "#ea76cb"
cyan = "#179299"
white = "#6c6f85"
[[colors.indexed_colors]]
index = 16
color = "#fe640b"
[[colors.indexed_colors]]
index = 17
color = "#dc8a78"
[colors.primary]
background = "#303446"
foreground = "#c6d0f5"
dim_foreground = "#838ba7"
bright_foreground = "#c6d0f5"
[colors.cursor]
text = "#303446"
cursor = "#f2d5cf"
[colors.vi_mode_cursor]
text = "#303446"
cursor = "#babbf1"
[colors.search.matches]
foreground = "#303446"
background = "#a5adce"
[colors.search.focused_match]
foreground = "#303446"
background = "#a6d189"
[colors.footer_bar]
foreground = "#303446"
background = "#a5adce"
[colors.hints.start]
foreground = "#303446"
background = "#e5c890"
[colors.hints.end]
foreground = "#303446"
background = "#a5adce"
[colors.selection]
text = "#303446"
background = "#f2d5cf"
[colors.normal]
black = "#51576d"
red = "#e78284"
green = "#a6d189"
yellow = "#e5c890"
blue = "#8caaee"
magenta = "#f4b8e4"
cyan = "#81c8be"
white = "#b5bfe2"
[colors.bright]
black = "#626880"
red = "#e78284"
green = "#a6d189"
yellow = "#e5c890"
blue = "#8caaee"
magenta = "#f4b8e4"
cyan = "#81c8be"
white = "#a5adce"
[[colors.indexed_colors]]
index = 16
color = "#ef9f76"
[[colors.indexed_colors]]
index = 17
color = "#f2d5cf"
# This is the default filter chain
[SpamFilter]
[KillThreadsFilter]
[ListMailsFilter]
[ArchiveSentMailsFilter]
# Disable default behavior (all message not spam and not 'killed' have the inbox tag)
# [InboxFilter]
# Assume afew is run with --new
[Filter.1]
message = 'Remove new tag for archived and trashed mail'
query = folder:Archives OR tag:archive OR folder:Trash or tag:deleted
tags = -new;+archive
[MailMover]
folders = INBOX Archives
rename = True
# rules
# Assume afew is run with --new
INBOX = 'tag:deleted':Trash 'tag:archive':Archives
Archives = 'tag:deleted':Trash
#!/usr/bin/env bash
PATH=$PATH:/usr/bin
# Test for an interactive shell. There is no need to set anything
# past this point for scp and rcp, and it's important to refrain from
# outputting anything in those cases.
if [[ $- != *i* ]]; then
# Shell is non-interactive. Be done now!
return
fi
# Put your fun stuff here.
export NIX_PATH=/home/alex/.nix-defexpr/channels:/nix/var/nix/profiles/per-user/root/channels
# Japanase with anthy
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
# /etc/skel/.bash_profile
# This file is sourced by bash for login shells. The following line
# runs your .bashrc and is recommended by the bash info pages.
if [[ -f ~/.bashrc ]]; then
. ~/.bashrc
fi
. "$HOME/.local/share/../bin/env"
# Started from systemd
export SSH_AUTH_SOCK=/run/user/1000/ssh-agent.socket
ssh-add $HOME/.ssh/id_rsa
*faceSize:10
! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
! title Nord XResources +
! project nord-xresources +
! version 0.1.0 +
! repository https://github.com/arcticicestudio/nord-xresources +
! author Arctic Ice Studio +
! email development@arcticicestudio.com +
! copyright Copyright (C) 2016 +
! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define nord0 #2E3440
#define nord1 #3B4252
#define nord2 #434C5E
#define nord3 #4C566A
#define nord4 #D8DEE9
#define nord5 #E5E9F0
#define nord6 #ECEFF4
#define nord7 #8FBCBB
#define nord8 #88C0D0
#define nord9 #81A1C1
#define nord10 #5E81AC
#define nord11 #BF616A
#define nord12 #D08770
#define nord13 #EBCB8B
#define nord14 #A3BE8C
#define nord15 #B48EAD
*.foreground: nord4
*.background: nord0
*.cursorColor: nord4
*fading: 0
*fadeColor: nord3
*.color0: nord1
*.color1: nord11
*.color2: nord14
*.color3: nord13
*.color4: nord9
*.color5: nord15
*.color6: nord8
*.color7: nord5
*.color8: nord3
*.color9: nord11
*.color10: nord14
*.color11: nord13
*.color12: nord9
*.color13: nord15
*.color14: nord7
*.color15: nord6
# List of usefull packages to install with nix
with import <nixpkgs>{};
[
bat
du-dust
exa
fd
ncftp
procs
ripgrep
sd
starship
vivid
zoxide
]
.git
.DS_Store
{{ if eq .chezmoi.os "freebsd" }}
destDir = "/usr/home/alex"
{{ end }}
encryption = "age"
[age]
{{ if eq .chezmoi.os "freebsd" }}
identity = "/usr/home/alex/.key.txt"
{{ else if eq .chezmoi.os "linux" }}
identity = "/home/alex/.key.txt"
{{ else }}
identity = "~/.key.txt"
{{ end }}
recipient = "age1z8ghfrl9mw0plvkj2t070smlafj6qwlz8hrwffs2asrp64sydgfs0awkfn"