From 45b99b6b8295141e9a25e29126fe159700c8683c Mon Sep 17 00:00:00 2001 From: "kujiu (@uberwald)" Date: Wed, 27 Sep 2023 03:29:50 +0200 Subject: [PATCH] Pygments style + notmuch + fix some issues in fish theme --- README.rst | 8 +- common/.config/fish/config.fish | 1 + common/.config/fish/fish_variables | 4 +- common/.config/fish/functions/newsboat.fish | 2 +- common/.config/fish/functions/poezio.fish | 2 +- common/.config/fish/functions/tig.fish | 2 +- .../.config/fish/functions/update-homes.fish | 26 + common/.config/fish/themes/Nightfox.theme | 4 +- .../json-fortune/wikiquote-sources.json} | 105 +- common/.config/lvim/config.lua | 13 +- common/.config/nvim/init.lua | 13 +- .../profile_default/ipython_config.py | 1377 +++++++++++++++++ common/.local/bin/json-fortune | 4 +- common/.local/bin/update-quotes | 8 +- desktop/.config/aerc/aerc.conf | 4 +- desktop/.config/afew/config | 45 + desktop/.config/fish/functions/mbsync.fish | 6 + desktop/.config/khal/config | 30 + .../.local/share/mail/.notmuch/hooks/post-new | 3 + .../.local/share/mail/.notmuch/hooks/pre-new | 3 + nightfox_palette/256color.py | 26 + nightfox_palette/ANSI.py | 53 + nightfox_palette/README.rst | 6 + nightfox_palette/html.py | 51 + templates/.config/aerc/accounts.conf | 2 +- .../signature.txt | 0 templates/.config/khal/config | 24 - templates/.config/khard/khard.conf | 2 +- templates/.config/mbsync/mbsyncrc | 38 + templates/.config/notmuch/notmuch-config | 82 + 30 files changed, 1859 insertions(+), 85 deletions(-) rename common/{.wikiquote-sources.json => .config/json-fortune/wikiquote-sources.json} (88%) create mode 100644 common/.ipython/profile_default/ipython_config.py create mode 100644 desktop/.config/afew/config create mode 100755 desktop/.config/fish/functions/mbsync.fish create mode 100644 desktop/.config/khal/config create mode 100755 desktop/.local/share/mail/.notmuch/hooks/post-new create mode 100755 desktop/.local/share/mail/.notmuch/hooks/pre-new create mode 100644 nightfox_palette/256color.py create mode 100644 nightfox_palette/ANSI.py create mode 100644 nightfox_palette/README.rst create mode 100644 nightfox_palette/html.py rename templates/.config/aerc/accounts/{template@example.com => acc:template@example.com}/signature.txt (100%) delete mode 100644 templates/.config/khal/config create mode 100644 templates/.config/mbsync/mbsyncrc create mode 100644 templates/.config/notmuch/notmuch-config diff --git a/README.rst b/README.rst index e72c6e4..3df60e1 100644 --- a/README.rst +++ b/README.rst @@ -10,7 +10,7 @@ Some tools have their upstream licenses. Some configurations for these tools: - Passwords in KeePassXC (access by keyring) -- Neomutt + Aerc (mail) +- Neomutt + Aerc + notmuch + afew (mail) - vdirsyncer + khal + khard (calendar and contacts) - fish - poezio (XMPP) @@ -24,10 +24,12 @@ Some configurations for these tools: - pms - lazygit and tig (git) - lazydocker +- asciinema You need to install: - aerc +- asciinema - browsh - colordiff - colormake @@ -36,6 +38,7 @@ You need to install: - elinks - fish - grammalecte-cli +- isync - KeePassXC - khal - khard @@ -48,11 +51,11 @@ You need to install: - newsboat - notmuch - nvm -- offlineimap3 - pandoc (>= v3.0) - pms - poezio - pyinotify +- pylint - python3-pygments - rbenv - scdoc (debian only) @@ -71,4 +74,5 @@ You need to install: - pms - recent version in go (but installed by script on debian) - poezio-omemo (but installed by script on debian) - poezio-plugins (but installed by script on debian) +- pyright (but installed by script on debian) - virtualfish (but installed by script on debian) diff --git a/common/.config/fish/config.fish b/common/.config/fish/config.fish index fdc90b5..6458af8 100644 --- a/common/.config/fish/config.fish +++ b/common/.config/fish/config.fish @@ -13,6 +13,7 @@ set -x EDITOR "lvim" set -x PAGER "nvimpager" set -x BROWSER "firefox" set -x PATH ~/.local/bin ~/.cargo/bin ~/go/bin /usr/sbin /sbin /usr/local/sbin /usr/local/bin /usr/bin /bin /usr/games +set -x NOTMUCH_CONFIG ~/.config/notmuch/notmuch-config set -x KEYRING_PROPERTY_SCHEME KeePassXC diff --git a/common/.config/fish/fish_variables b/common/.config/fish/fish_variables index d1fffb4..bfeedac 100644 --- a/common/.config/fish/fish_variables +++ b/common/.config/fish/fish_variables @@ -2,7 +2,7 @@ # VERSION: 3.0 SETUVAR VIRTUAL_ENV_DISABLE_PROMPT:true SETUVAR __fish_initialized:3400 -SETUVAR fish_color_autosuggestion:738091 +SETUVAR fish_color_autosuggestion:81b29a SETUVAR fish_color_cancel:9d79d6 SETUVAR fish_color_command:63cdcf SETUVAR fish_color_comment:738091 @@ -26,7 +26,7 @@ SETUVAR fish_color_host_remote:f4a261 SETUVAR fish_color_keyword:9d79d6 SETUVAR fish_color_match:dbc074 SETUVAR fish_color_normal:cdcecf -SETUVAR fish_color_operator:81b29a +SETUVAR fish_color_operator:aeafb0 SETUVAR fish_color_option:dfdfe0 SETUVAR fish_color_param:71839b SETUVAR fish_color_quote:dbc074 diff --git a/common/.config/fish/functions/newsboat.fish b/common/.config/fish/functions/newsboat.fish index 5244784..e324f33 100755 --- a/common/.config/fish/functions/newsboat.fish +++ b/common/.config/fish/functions/newsboat.fish @@ -2,5 +2,5 @@ # function newsboat -d "Newsboat RSS Reader" - TERM=xterm-256color command newsboat $argv + TERM=tmux-256color command newsboat $argv end diff --git a/common/.config/fish/functions/poezio.fish b/common/.config/fish/functions/poezio.fish index 64584a4..caa8a51 100755 --- a/common/.config/fish/functions/poezio.fish +++ b/common/.config/fish/functions/poezio.fish @@ -2,5 +2,5 @@ # function poezio -d "Poezio XMPP client" - TERM=xterm-256color command poezio $argv + TERM=tmux-256color command poezio $argv end diff --git a/common/.config/fish/functions/tig.fish b/common/.config/fish/functions/tig.fish index e7b1379..9d237fb 100755 --- a/common/.config/fish/functions/tig.fish +++ b/common/.config/fish/functions/tig.fish @@ -2,5 +2,5 @@ # function tig -d "Tig git client" - TERM=xterm-256color command tig $argv + TERM=tmux-256color command tig $argv end diff --git a/common/.config/fish/functions/update-homes.fish b/common/.config/fish/functions/update-homes.fish index a6864bd..cc0c4f3 100755 --- a/common/.config/fish/functions/update-homes.fish +++ b/common/.config/fish/functions/update-homes.fish @@ -95,6 +95,12 @@ function update-homes -d "Update homes configuration" echo (set_color 719cd6)"*** Install virtualfish ***"(set_color normal) echo pip install --user --upgrade --break-system-packages virtualfish + + echo + echo + echo (set_color 719cd6)"*** Install pyright ***"(set_color normal) + echo + pip install --user --upgrade --break-system-packages -U pyright end if set -q _flag_desktop && set -q _flag_fix_debian @@ -154,6 +160,12 @@ function update-homes -d "Update homes configuration" echo fundle install fundle update + + echo + echo + echo (set_color 719cd6)"*** Install pygments style ***"(set_color normal) + echo + pip install "git+https://procrastinator.nerv-project.eu/kujiu/pygments_nightfox_style" --user --break-system-packages end if set -q _flag_remove @@ -179,6 +191,9 @@ function update-homes -d "Update homes configuration" rm -rf ~/.config/tmuxinator rm -rf ~/.config/toot rm -rf ~/.config/vdirsyncer + rm -rf ~/.local/share/json-fortune + rm ~/.fortunes.json + rm ~/.wikiquote-sources.json end if set -q _flag_git @@ -216,6 +231,17 @@ function update-homes -d "Update homes configuration" popd end + if set -q _flag_install + echo + echo + echo (set_color 719cd6)"*** Install json-fortune deps ***"(set_color normal) + echo + pip install --user --upgrade --break-system-packages wikiquote + if not test -f ~/.local/share/json-fortune/fortunes.json + update-quotes + end + end + if set -q _flag_root echo echo diff --git a/common/.config/fish/themes/Nightfox.theme b/common/.config/fish/themes/Nightfox.theme index ca21142..60289da 100644 --- a/common/.config/fish/themes/Nightfox.theme +++ b/common/.config/fish/themes/Nightfox.theme @@ -18,12 +18,12 @@ fish_color_match dbc074 fish_color_selection --bold --background=2b3b51 fish_color_search_match --background=2b3b51 fish_color_history_current --bold -fish_color_operator 81b29a +fish_color_operator aeafb0 fish_color_escape d67ad2 fish_color_cwd 81b29a fish_color_cwd_root c94f6d fish_color_valid_path 719cd6 --underline -fish_color_autosuggestion 738091 +fish_color_autosuggestion 81b29a fish_color_user 63cdcf fish_color_host 719cd6 fish_color_cancel 9d79d6 diff --git a/common/.wikiquote-sources.json b/common/.config/json-fortune/wikiquote-sources.json similarity index 88% rename from common/.wikiquote-sources.json rename to common/.config/json-fortune/wikiquote-sources.json index 2bd76d6..650a87d 100644 --- a/common/.wikiquote-sources.json +++ b/common/.config/json-fortune/wikiquote-sources.json @@ -4,7 +4,7 @@ "J. K. Rowling", "Harry Potter", "Harry Potter (films)", - "Harry Potter et le Prince de sang-mêlé" + "Harry Potter et le Prince de sang-mêlé (film)" ], "star_trek": [ "Star Trek", @@ -24,18 +24,20 @@ ], "starwars": [ "Star Wars", - "Star Wars : The Clone Wars (série, 2008)", - "Star Wars, épisode I : La Menace fantôme (film)", - "Star Wars, épisode II : L'Attaque des clones (film)", - "Star Wars, épisode III : La Revanche des Sith (film)", - "Star Wars, épisode IV : Un nouvel espoir (film)", - "Star Wars, épisode V : L'Empire contre-attaque (film)", - "Star Wars, épisode VI : Le Retour du Jedi (film)", - "Star Wars, épisode VI : Le Retour du Jedi (livre)" + "Star Wars : The Clone Wars (série, 2008-2020)", + "Star Wars, épisode I : La Menace fantôme", + "Star Wars, épisode II : L'Attaque des clones", + "Star Wars, épisode III : La Revanche des Sith", + "Star Wars, épisode IV : Un nouvel espoir", + "Star Wars, épisode V : L'Empire contre-attaque", + "Star Wars, épisode VI : Le Retour du Jedi", + "Star Wars, épisode VI : Le Retour du Jedi (livre)", + "Star Wars, épisode VII : Le Réveil de la Force" ], "kaamelott": [ "Kaamelott", "Kaamelott/Bandes dessinées", + "Kaamelott : Premier Volet", "Kaamelott/Dialogues", "Kaamelott/Dialogues/Absurdités de la vie quotidienne", "Kaamelott/Arthur", @@ -78,7 +80,10 @@ "Hero Corp", "Reflets d'Acide", "Terry Pratchett", - "H. P. Lovecraft" + "H. P. Lovecraft", + "Ursula K. Le Guin", + "Lanfeust de Troy", + "Le Donjon de Naheulbeuk" ], "science-fiction": [ "Short Circuit", @@ -88,17 +93,18 @@ "L'Échiquier du mal", "Robert Silverberg", "Starship Troopers (film)", - "Ghost in the Shell", "Hypérion", "La Chute d'Hypérion", "Jules Verne", "1984", "Retour vers le futur", - "Douglas Adams" + "Douglas Adams", + "Hunger Games" ], "dune": [ "Frank Herbert", - "Dune (film)", + "Dune (film, 1984)", + "Dune (film, 2021)", "Dune", "Le Messie de Dune", "Les Enfants de Dune", @@ -132,7 +138,6 @@ "Les Robots de l'aube", "Les Robots et l'Empire", "Tyrann", - "Poussière d'étoiles", "Les Courants de l'espace", "Cailloux dans le ciel", "Fondation (livre)", @@ -153,7 +158,6 @@ "La Tour sombre" ], "detective": [ - "Détective Conan", "La Cité de la peur", "Le Pacte des loups", "Gaston Leroux", @@ -164,13 +168,37 @@ "Fred Vargas", "Agatha Christie" ], + "manga": [ + "Détective Conan", + "Saiyuki - Chronique de l'Extrême Voyage", + "Death Note", + "Ghost in the Shell", + "Gunnm", + "Ranma ½" + ], "ghibli": [ "Le Voyage de Chihiro", "Princesse Mononoké", - "Porco Rosso" + "Porco Rosso", + "Le Royaume des chats", + "Souvenirs de Marnie", + "Les Contes de Terremer", + "Le Château dans le ciel", + "Si tu tends l'oreille", + "La Tortue rouge", + "Kiki la petite sorcière", + "Nausicaä de la Vallée du Vent (film d'animation)", + "Mes voisins les Yamada (film)", + "Mon voisin Totoro", + "Pompoko", + "La Colline aux coquelicots (film)", + "Le Château ambulant", + "Le Tombeau des lucioles", + "Arrietty : Le Petit Monde des Chapardeurs", + "Le Conte de la princesse Kaguya", + "Le vent se lève (film, 2013)" ], "adventure": [ - "Saiyuki - Chronique de l'Extrême Voyage", "Prince of Persia : Les Sables du temps", "Astérix", "Les Aventures de Tintin", @@ -190,13 +218,14 @@ "Grand Corps Malade", "Émile Zola", "Amélie Nothomb", - "Coluche" + "Coluche", + "Le Chat" ] }, "en": { "harry_potter": [ "Harry Potter and the Chamber of Secrets", - "Harry Potter and the Sorcerer's Stone", + "Harry Potter and the Philosopher's Stone", "Harry Potter and the Prisoner of Azkaban", "Harry Potter and the Goblet of Fire", "Harry Potter and the Order of the Phoenix", @@ -214,7 +243,6 @@ "J. K. Rowling" ], "starwars": [ - "Star Wars", "The Empire Strikes Back", "Return of the Jedi", "Rogue One", @@ -226,10 +254,10 @@ "Star Wars: The Clone Wars (film)", "Star Wars: The Force Awakens", "Star Wars: The Last Jedi", - "Star Wars Rebels" + "Star Wars Rebels", + "Star Wars: The Rise of Skywalker" ], "star_trek": [ - "Star Trek", "Star Trek: Discovery", "Jean-Luc Picard", "Klingon proverbs", @@ -278,7 +306,9 @@ "Terry Pratchett", "Discworld", "Good Omens", - "Terry Pratchett's Hogfather" + "Ursula K. Le Guin", + "Terry Pratchett's Hogfather", + "Your Name" ], "science-fiction":[ "Back to the Future", @@ -310,6 +340,8 @@ "Stephen King" ], "disney": [ + "An American Tail: Fievel Goes West", + "An American Tail", "The Lion King", "The Fox and the Hound", "Fantasia (1940 film)", @@ -321,7 +353,9 @@ "Wreck-It Ralph", "One Hundred and One Dalmatians", "The Black Cauldron (film)", - "The Land Before Time", + "The Land Before Time (film)", + "The Land Before Time II: The Great Valley Adventure", + "The Land Before Time III: The Time of the Great Giving", "Dumbo", "Cinderella (1950 film)", "Aladdin (1992 Disney film)", @@ -380,7 +414,7 @@ "Black Butler", "Buso Renkin", "Berserk (anime)", - "Akira (film)", + "Akira (1988 film)", "Wolf's Rain", "Megatokyo", "InuYasha", @@ -403,15 +437,13 @@ "Mobile Suit Gundam: Char's Counterattack", "Gundam Wing", "Mobile Fighter G Gundam", - "Gundam Seed", - "Gundam 00" + "Gundam Seed" ], "final_fantasy": [ "Auron", "Final Fantasy VII: Crisis Core", "Dissidia: Final Fantasy", "Final Fantasy (video game)", - "Final Fantasy", "Final Fantasy II", "Final Fantasy III", "Final Fantasy IV", @@ -438,22 +470,13 @@ ], "kingdom_hearts": [ "Kingdom Hearts", - "Kingdom Hearts (series)", "Kingdom Hearts 3D: Dream Drop Distance", "Kingdom Hearts Birth by Sleep", "Kingdom Hearts coded", "Kingdom Hearts II", "Kingdom Hearts: 358/2 Days", - "Kingdom Hearts: Chain of Memories" - ], - "ghibli": [ - "Your Name", - "Porco Rosso", - "Spirited Away", - "Howl's Moving Castle", - "Nausicaä of the Valley of the Wind", - "Kiki's Delivery Service", - "Princess Mononoke" + "Kingdom Hearts: Chain of Memories", + "Kingdom Hearts III" ], "detective": [ "Who Framed Roger Rabbit", @@ -477,7 +500,7 @@ "Pirates of the Caribbean: On Stranger Tides", "Pirates of the Caribbean: Dead Men Tell No Tales", "Willow (film)", - "Stardust (novel)", + "Stardust (Gaiman novel)", "Stardust (2007 film)", "Prince of Persia", "Reservoir Dogs", @@ -509,7 +532,7 @@ "Indiana Jones and the Fate of Atlantis", "Return to Zork", "Zork", - "Zork Grand Inquisitor", + "Zork: Grand Inquisitor", "The Legend of Spyro: A New Beginning", "The Elder Scrolls V: Skyrim", "Rayman", diff --git a/common/.config/lvim/config.lua b/common/.config/lvim/config.lua index 9e5da2d..514e3de 100644 --- a/common/.config/lvim/config.lua +++ b/common/.config/lvim/config.lua @@ -50,8 +50,17 @@ vim.g.languagetool_jar = '~/.bin/languagetool-commandline.jar' opts = {noremap=true, silent=true} vim.keymap.set('n', '', "gt", opts) vim.keymap.set('n', '', "gT", opts) -vim.keymap.set('v', 'gl', ":'<,'>!lou_translate en-us-brf.dis,fr-bfu-comp6.utb,braille-patterns.cti", opts) -vim.keymap.set('v', 'gL', ":'<,'>!lou_translate --backward en-us-brf.dis,fr-bfu-comp6.utb,braille-patterns.cti", opts) +vim.keymap.set('v', 'gle', ":'<,'>!lou_translate en-us-brf.dis,braille-patterns.cti", opts) +vim.keymap.set('v', 'gLe', ":'<,'>!lou_translate --backward en-us-brf.dis,braille-patterns.cti", opts) +vim.keymap.set('v', 'glf', ":'<,'>!lou_translate fr-bfu-comp6.utb,braille-patterns.cti", opts) +vim.keymap.set('v', 'gLf', ":'<,'>!lou_translate --backward fr-bfu-comp6.utb,braille-patterns.cti", opts) lvim.colorscheme="nightfox" lvim.transparent_window = true + +vim.diagnostic.config({ + virtual_text = false +}) + +vim.o.updatetime = 2500 +vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] diff --git a/common/.config/nvim/init.lua b/common/.config/nvim/init.lua index 8a725d8..f9faa22 100644 --- a/common/.config/nvim/init.lua +++ b/common/.config/nvim/init.lua @@ -58,10 +58,19 @@ vim.g.languagetool_jar = '~/.bin/languagetool-commandline.jar' opts = {noremap=true, silent=true} vim.keymap.set('n', '', "gt", opts) vim.keymap.set('n', '', "gT", opts) -vim.keymap.set('v', 'gl', ":'<,'>!lou_translate en-us-brf.dis,fr-bfu-comp6.utb,braille-patterns.cti", opts) -vim.keymap.set('v', 'gL', ":'<,'>!lou_translate --backward en-us-brf.dis,fr-bfu-comp6.utb,braille-patterns.cti", opts) +vim.keymap.set('v', 'gle', ":'<,'>!lou_translate en-us-brf.dis,braille-patterns.cti", opts) +vim.keymap.set('v', 'gLe', ":'<,'>!lou_translate --backward en-us-brf.dis,braille-patterns.cti", opts) +vim.keymap.set('v', 'glf', ":'<,'>!lou_translate fr-bfu-comp6.utb,braille-patterns.cti", opts) +vim.keymap.set('v', 'gLf', ":'<,'>!lou_translate --backward fr-bfu-comp6.utb,braille-patterns.cti", opts) vim.cmd 'colorscheme nightfox' vim.transparent_window = true vim.cmd 'highlight Normal ctermbg=none guibg=none' + +vim.diagnostic.config({ + virtual_text = false +}) + +vim.o.updatetime = 2500 +vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] diff --git a/common/.ipython/profile_default/ipython_config.py b/common/.ipython/profile_default/ipython_config.py new file mode 100644 index 0000000..fbbbcac --- /dev/null +++ b/common/.ipython/profile_default/ipython_config.py @@ -0,0 +1,1377 @@ +# Configuration file for ipython. + +from IPython.terminal.prompts import Prompts, RichPromptDisplayHook +from pygments.token import Token +from prompt_toolkit.enums import EditingMode +from platform import python_version +import os +import socket +import subprocess +import pygments_nightfox_style + +class NightfoxPrompts(Prompts): + def vi_mode(self): + if (getattr(self.shell.pt_app, 'editing_mode', None) == EditingMode.VI + and self.shell.prompt_includes_vi_mode): + mode = str(self.shell.pt_app.app.vi_state.input_mode) + if "INSERT" in mode: + return 'I' + if "NAV" in mode: + return 'N' + if "REPLACE_SINGLE" in mode: + return 'r' + if "REPLACE" in mode: + return '' + return 'E' # Emacs mode + + def in_prompt_tokens(self): + git_branch = "" + try: + git_branch = subprocess.check_output( + ["git", "branch", "--show-current"], stderr=subprocess.DEVNULL + ) + if git_branch: + git_branch = git_branch.decode("utf-8").replace("\n", "") + except subprocess.CalledProcessError: + pass + + git_branch = str(git_branch) + + venv = (os.environ.get("VIRTUAL_ENV") or "").split("/")[-1] + + return [ + (Token.IPython.Prompt.Login, os.getlogin()), + (Token.IPython.Prompt.Login.Sep, ''), + (Token.IPython.Prompt.Host, socket.gethostname()), + (Token.IPython.Prompt.Host.Sep, ''), + (Token.IPython.Prompt.Venv, venv), + (Token.IPython.Prompt.Venv.Sep, ''), + (Token.IPython.Prompt.Version, ' ' + python_version()), + (Token.IPython.Prompt.Version.Sep, ''), + (Token, '\n'), + (Token.IPython.Prompt.Cwd, os.getcwd()), + (Token.IPython.Prompt.Cwd.Sep, ''), + (Token.IPython.Prompt.Vcs, str(' ') + git_branch if git_branch else ''), + (Token.IPython.Prompt.Vcs.Sep, ''), + (Token, '\n'), + (Token.IPython.Prompt.Mode, self.vi_mode()), + (Token.IPython.Prompt.Mode.Sep, ' '), + ] + + def out_prompt_tokens(self): + return [] + +c = get_config() # noqa + +#------------------------------------------------------------------------------ +# InteractiveShellApp(Configurable) configuration +#------------------------------------------------------------------------------ +## A Mixin for applications that start InteractiveShell instances. +# +# Provides configurables for loading extensions and executing files +# as part of configuring a Shell environment. +# +# The following methods should be called by the :meth:`initialize` method +# of the subclass: +# +# - :meth:`init_path` +# - :meth:`init_shell` (to be implemented by the subclass) +# - :meth:`init_gui_pylab` +# - :meth:`init_extensions` +# - :meth:`init_code` + +## Execute the given command string. +# Default: '' +# c.InteractiveShellApp.code_to_run = '' + +## Run the file referenced by the PYTHONSTARTUP environment +# variable at IPython startup. +# Default: True +# c.InteractiveShellApp.exec_PYTHONSTARTUP = True + +## List of files to run at IPython startup. +# Default: [] +# c.InteractiveShellApp.exec_files = [] + +## lines of code to run at IPython startup. +# Default: [] +# c.InteractiveShellApp.exec_lines = [] + +## A list of dotted module names of IPython extensions to load. +# Default: [] +# c.InteractiveShellApp.extensions = [] + +## Dotted module name(s) of one or more IPython extensions to load. +# +# For specifying extra extensions to load on the command-line. +# +# .. versionadded:: 7.10 +# Default: [] +# c.InteractiveShellApp.extra_extensions = [] + +## A file to be run +# Default: '' +# c.InteractiveShellApp.file_to_run = '' + +## Enable GUI event loop integration with any of ('asyncio', 'glut', 'gtk', +# 'gtk2', 'gtk3', 'gtk4', 'osx', 'pyglet', 'qt', 'qt5', 'qt6', 'tk', 'wx', +# 'gtk2', 'qt4'). +# Choices: any of ['asyncio', 'glut', 'gtk', 'gtk2', 'gtk3', 'gtk4', 'osx', 'pyglet', 'qt', 'qt5', 'qt6', 'tk', 'wx', 'gtk2', 'qt4'] (case-insensitive) or None +# Default: None +# c.InteractiveShellApp.gui = None + +## Should variables loaded at startup (by startup files, exec_lines, etc.) +# be hidden from tools like %who? +# Default: True +# c.InteractiveShellApp.hide_initial_ns = True + +## If True, IPython will not add the current working directory to sys.path. +# When False, the current working directory is added to sys.path, allowing imports +# of modules defined in the current directory. +# Default: False +# c.InteractiveShellApp.ignore_cwd = False + +## Configure matplotlib for interactive use with +# the default matplotlib backend. +# Choices: any of ['auto', 'agg', 'gtk', 'gtk3', 'gtk4', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'qt6', 'svg', 'tk', 'webagg', 'widget', 'wx'] (case-insensitive) or None +# Default: None +# c.InteractiveShellApp.matplotlib = None + +## Run the module as a script. +# Default: '' +# c.InteractiveShellApp.module_to_run = '' + +## Pre-load matplotlib and numpy for interactive use, +# selecting a particular matplotlib backend and loop integration. +# Choices: any of ['auto', 'agg', 'gtk', 'gtk3', 'gtk4', 'inline', 'ipympl', 'nbagg', 'notebook', 'osx', 'pdf', 'ps', 'qt', 'qt4', 'qt5', 'qt6', 'svg', 'tk', 'webagg', 'widget', 'wx'] (case-insensitive) or None +# Default: None +# c.InteractiveShellApp.pylab = None + +## If true, IPython will populate the user namespace with numpy, pylab, etc. +# and an ``import *`` is done from numpy and pylab, when using pylab mode. +# +# When False, pylab mode should not import any names into the user +# namespace. +# Default: True +# c.InteractiveShellApp.pylab_import_all = True + +## Reraise exceptions encountered loading IPython extensions? +# Default: False +# c.InteractiveShellApp.reraise_ipython_extension_failures = False + +#------------------------------------------------------------------------------ +# Application(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ +## This is an application. + +## The date format used by logging formatters for %(asctime)s +# Default: '%Y-%m-%d %H:%M:%S' +# c.Application.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +# Default: '[%(name)s]%(highlevel)s %(message)s' +# c.Application.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +# Choices: any of [0, 10, 20, 30, 40, 50, 'DEBUG', 'INFO', 'WARN', 'ERROR', 'CRITICAL'] +# Default: 30 +# c.Application.log_level = 30 + +## Configure additional log handlers. +# +# The default stderr logs handler is configured by the log_level, log_datefmt +# and log_format settings. +# +# This configuration can be used to configure additional handlers (e.g. to +# output the log to a file) or for finer control over the default handlers. +# +# If provided this should be a logging configuration dictionary, for more +# information see: +# https://docs.python.org/3/library/logging.config.html#logging-config- +# dictschema +# +# This dictionary is merged with the base logging configuration which defines +# the following: +# +# * A logging formatter intended for interactive use called +# ``console``. +# * A logging handler that writes to stderr called +# ``console`` which uses the formatter ``console``. +# * A logger with the name of this application set to ``DEBUG`` +# level. +# +# This example adds a new handler that writes to a file: +# +# .. code-block:: python +# +# c.Application.logging_config = { +# 'handlers': { +# 'file': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '', +# } +# }, +# 'loggers': { +# '': { +# 'level': 'DEBUG', +# # NOTE: if you don't list the default "console" +# # handler here then it will be disabled +# 'handlers': ['console', 'file'], +# }, +# } +# } +# Default: {} +# c.Application.logging_config = {} + +## Instead of starting the Application, dump configuration to stdout +# Default: False +# c.Application.show_config = False + +## Instead of starting the Application, dump configuration to stdout (as JSON) +# Default: False +# c.Application.show_config_json = False + +#------------------------------------------------------------------------------ +# BaseIPythonApplication(Application) configuration +#------------------------------------------------------------------------------ +# Default: False +# c.BaseIPythonApplication.add_ipython_dir_to_sys_path = False + +## Whether to create profile dir if it doesn't exist +# Default: False +# c.BaseIPythonApplication.auto_create = False + +## Whether to install the default config files into the profile dir. +# If a new profile is being created, and IPython contains config files for that +# profile, then they will be staged into the new directory. Otherwise, +# default config files will be automatically generated. +# Default: False +# c.BaseIPythonApplication.copy_config_files = False + +## Path to an extra config file to load. +# +# If specified, load this config file in addition to any other IPython +# config. +# Default: '' +# c.BaseIPythonApplication.extra_config_file = '' + +## The name of the IPython directory. This directory is used for logging +# configuration (through profiles), history storage, etc. The default is usually +# $HOME/.ipython. This option can also be specified through the environment +# variable IPYTHONDIR. +# Default: '' +# c.BaseIPythonApplication.ipython_dir = '' + +## The date format used by logging formatters for %(asctime)s +# See also: Application.log_datefmt +# c.BaseIPythonApplication.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +# See also: Application.log_format +# c.BaseIPythonApplication.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +# See also: Application.log_level +# c.BaseIPythonApplication.log_level = 30 + +## +# See also: Application.logging_config +# c.BaseIPythonApplication.logging_config = {} + +## Whether to overwrite existing config files when copying +# Default: False +# c.BaseIPythonApplication.overwrite = False + +## The IPython profile to use. +# Default: 'default' +# c.BaseIPythonApplication.profile = 'default' + +## Instead of starting the Application, dump configuration to stdout +# See also: Application.show_config +# c.BaseIPythonApplication.show_config = False + +## Instead of starting the Application, dump configuration to stdout (as JSON) +# See also: Application.show_config_json +# c.BaseIPythonApplication.show_config_json = False + +## Create a massive crash report when IPython encounters what may be an +# internal error. The default is to append a short message to the +# usual traceback +# Default: False +c.BaseIPythonApplication.verbose_crash = True + +#------------------------------------------------------------------------------ +# TerminalIPythonApp(BaseIPythonApplication, InteractiveShellApp) configuration +#------------------------------------------------------------------------------ +# See also: BaseIPythonApplication.add_ipython_dir_to_sys_path +# c.TerminalIPythonApp.add_ipython_dir_to_sys_path = False + +## Execute the given command string. +# See also: InteractiveShellApp.code_to_run +# c.TerminalIPythonApp.code_to_run = '' + +## Whether to install the default config files into the profile dir. +# See also: BaseIPythonApplication.copy_config_files +# c.TerminalIPythonApp.copy_config_files = False + +## Whether to display a banner upon starting IPython. +# Default: True +# c.TerminalIPythonApp.display_banner = True + +## Run the file referenced by the PYTHONSTARTUP environment +# See also: InteractiveShellApp.exec_PYTHONSTARTUP +# c.TerminalIPythonApp.exec_PYTHONSTARTUP = True + +## List of files to run at IPython startup. +# See also: InteractiveShellApp.exec_files +# c.TerminalIPythonApp.exec_files = [] + +## lines of code to run at IPython startup. +# See also: InteractiveShellApp.exec_lines +# c.TerminalIPythonApp.exec_lines = [] + +## A list of dotted module names of IPython extensions to load. +# See also: InteractiveShellApp.extensions +# c.TerminalIPythonApp.extensions = [] + +## Path to an extra config file to load. +# See also: BaseIPythonApplication.extra_config_file +# c.TerminalIPythonApp.extra_config_file = '' + +## +# See also: InteractiveShellApp.extra_extensions +# c.TerminalIPythonApp.extra_extensions = [] + +## A file to be run +# See also: InteractiveShellApp.file_to_run +# c.TerminalIPythonApp.file_to_run = '' + +## If a command or file is given via the command-line, +# e.g. 'ipython foo.py', start an interactive shell after executing the +# file or command. +# Default: False +# c.TerminalIPythonApp.force_interact = False + +## Enable GUI event loop integration with any of ('asyncio', 'glut', 'gtk', +# 'gtk2', 'gtk3', 'gtk4', 'osx', 'pyglet', 'qt', 'qt5', 'qt6', 'tk', 'wx', +# 'gtk2', 'qt4'). +# See also: InteractiveShellApp.gui +# c.TerminalIPythonApp.gui = None + +## Should variables loaded at startup (by startup files, exec_lines, etc.) +# See also: InteractiveShellApp.hide_initial_ns +# c.TerminalIPythonApp.hide_initial_ns = True + +## If True, IPython will not add the current working directory to sys.path. +# See also: InteractiveShellApp.ignore_cwd +# c.TerminalIPythonApp.ignore_cwd = False + +## Class to use to instantiate the TerminalInteractiveShell object. Useful for +# custom Frontends +# Default: 'IPython.terminal.interactiveshell.TerminalInteractiveShell' +# c.TerminalIPythonApp.interactive_shell_class = 'IPython.terminal.interactiveshell.TerminalInteractiveShell' + +## +# See also: BaseIPythonApplication.ipython_dir +# c.TerminalIPythonApp.ipython_dir = '' + +## The date format used by logging formatters for %(asctime)s +# See also: Application.log_datefmt +# c.TerminalIPythonApp.log_datefmt = '%Y-%m-%d %H:%M:%S' + +## The Logging format template +# See also: Application.log_format +# c.TerminalIPythonApp.log_format = '[%(name)s]%(highlevel)s %(message)s' + +## Set the log level by value or name. +# See also: Application.log_level +# c.TerminalIPythonApp.log_level = 30 + +## +# See also: Application.logging_config +# c.TerminalIPythonApp.logging_config = {} + +## Configure matplotlib for interactive use with +# See also: InteractiveShellApp.matplotlib +# c.TerminalIPythonApp.matplotlib = None + +## Run the module as a script. +# See also: InteractiveShellApp.module_to_run +# c.TerminalIPythonApp.module_to_run = '' + +## Whether to overwrite existing config files when copying +# See also: BaseIPythonApplication.overwrite +# c.TerminalIPythonApp.overwrite = False + +## The IPython profile to use. +# See also: BaseIPythonApplication.profile +# c.TerminalIPythonApp.profile = 'default' + +## Pre-load matplotlib and numpy for interactive use, +# See also: InteractiveShellApp.pylab +# c.TerminalIPythonApp.pylab = None + +## If true, IPython will populate the user namespace with numpy, pylab, etc. +# See also: InteractiveShellApp.pylab_import_all +# c.TerminalIPythonApp.pylab_import_all = True + +## Start IPython quickly by skipping the loading of config files. +# Default: False +# c.TerminalIPythonApp.quick = False + +## Reraise exceptions encountered loading IPython extensions? +# See also: InteractiveShellApp.reraise_ipython_extension_failures +# c.TerminalIPythonApp.reraise_ipython_extension_failures = False + +## Instead of starting the Application, dump configuration to stdout +# See also: Application.show_config +# c.TerminalIPythonApp.show_config = False + +## Instead of starting the Application, dump configuration to stdout (as JSON) +# See also: Application.show_config_json +# c.TerminalIPythonApp.show_config_json = False + +## Create a massive crash report when IPython encounters what may be an +# See also: BaseIPythonApplication.verbose_crash +# c.TerminalIPythonApp.verbose_crash = False + +#------------------------------------------------------------------------------ +# InteractiveShell(SingletonConfigurable) configuration +#------------------------------------------------------------------------------ +## An enhanced, interactive shell for Python. + +## 'all', 'last', 'last_expr' or 'none', 'last_expr_or_assign' specifying which +# nodes should be run interactively (displaying output from expressions). +# Choices: any of ['all', 'last', 'last_expr', 'none', 'last_expr_or_assign'] +# Default: 'last_expr' +# c.InteractiveShell.ast_node_interactivity = 'last_expr' + +## A list of ast.NodeTransformer subclass instances, which will be applied to +# user input before code is run. +# Default: [] +# c.InteractiveShell.ast_transformers = [] + +## Automatically run await statement in the top level repl. +# Default: True +# c.InteractiveShell.autoawait = True + +## Make IPython automatically call any callable object even if you didn't type +# explicit parentheses. For example, 'str 43' becomes 'str(43)' automatically. +# The value can be '0' to disable the feature, '1' for 'smart' autocall, where +# it is not applied if there are no more arguments on the line, and '2' for +# 'full' autocall, where all callable objects are automatically called (even if +# no arguments are present). +# Choices: any of [0, 1, 2] +# Default: 0 +# c.InteractiveShell.autocall = 0 + +## Autoindent IPython code entered interactively. +# Default: True +# c.InteractiveShell.autoindent = True + +## Enable magic commands to be called without the leading %. +# Default: True +# c.InteractiveShell.automagic = True + +## The part of the banner to be printed before the profile +# Default: "Python 3.11.5 (main, Aug 29 2023, 15:31:31) [GCC 13.2.0]\nType 'copyright', 'credits' or 'license' for more information\nIPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.\n" +# c.InteractiveShell.banner1 = "Python 3.11.5 (main, Aug 29 2023, 15:31:31) [GCC 13.2.0]\nType 'copyright', 'credits' or 'license' for more information\nIPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.\n" + +## The part of the banner to be printed after the profile +# Default: '' +# c.InteractiveShell.banner2 = '' + +## Set the size of the output cache. The default is 1000, you can change it +# permanently in your config file. Setting it to 0 completely disables the +# caching system, and the minimum value accepted is 3 (if you provide a value +# less than 3, it is reset to 0 and a warning is issued). This limit is defined +# because otherwise you'll spend more time re-flushing a too small cache than +# working +# Default: 1000 +# c.InteractiveShell.cache_size = 1000 + +## Use colors for displaying information about objects. Because this information +# is passed through a pager (like 'less'), and some pagers get confused with +# color codes, this capability can be turned off. +# Default: True +# c.InteractiveShell.color_info = True + +## Set the color scheme (NoColor, Neutral, Linux, or LightBG). +# Choices: any of ['Neutral', 'NoColor', 'LightBG', 'Linux'] (case-insensitive) +# Default: 'Neutral' +# c.InteractiveShell.colors = 'Neutral' + +# Default: False +# c.InteractiveShell.debug = False + +## Don't call post-execute functions that have failed in the past. +# Default: False +# c.InteractiveShell.disable_failing_post_execute = False + +## If True, anything that would be passed to the pager +# will be displayed as regular output instead. +# Default: False +# c.InteractiveShell.display_page = False + +## (Provisional API) enables html representation in mime bundles sent to pagers. +# Default: False +# c.InteractiveShell.enable_html_pager = False + +## Total length of command history +# Default: 10000 +# c.InteractiveShell.history_length = 10000 + +## The number of saved history entries to be loaded into the history buffer at +# startup. +# Default: 1000 +# c.InteractiveShell.history_load_length = 1000 + +## Class to use to instantiate the shell inspector +# Default: 'IPython.core.oinspect.Inspector' +# c.InteractiveShell.inspector_class = 'IPython.core.oinspect.Inspector' + +# Default: '' +# c.InteractiveShell.ipython_dir = '' + +## Start logging to the given file in append mode. Use `logfile` to specify a log +# file to **overwrite** logs to. +# Default: '' +# c.InteractiveShell.logappend = '' + +## The name of the logfile to use. +# Default: '' +# c.InteractiveShell.logfile = '' + +## Start logging to the default log file in overwrite mode. Use `logappend` to +# specify a log file to **append** logs to. +# Default: False +# c.InteractiveShell.logstart = False + +## Select the loop runner that will be used to execute top-level asynchronous +# code +# Default: 'IPython.core.interactiveshell._asyncio_runner' +# c.InteractiveShell.loop_runner = 'IPython.core.interactiveshell._asyncio_runner' + +# Choices: any of [0, 1, 2] +# Default: 0 +# c.InteractiveShell.object_info_string_level = 0 + +## Automatically call the pdb debugger after every exception. +# Default: False +# c.InteractiveShell.pdb = False + +# Default: False +# c.InteractiveShell.quiet = False + +# Default: '\n' +# c.InteractiveShell.separate_in = '\n' + +# Default: '' +# c.InteractiveShell.separate_out = '' + +# Default: '' +# c.InteractiveShell.separate_out2 = '' + +## Show rewritten input, e.g. for autocall. +# Default: True +# c.InteractiveShell.show_rewritten_input = True + +## Enables rich html representation of docstrings. (This requires the docrepr +# module). +# Default: False +# c.InteractiveShell.sphinxify_docstring = False + +## Warn if running in a virtual environment with no IPython installed (so IPython +# from the global environment is used). +# Default: True +# c.InteractiveShell.warn_venv = True + +# Default: True +# c.InteractiveShell.wildcards_case_sensitive = True + +## Switch modes for the IPython exception handlers. +# Choices: any of ['Context', 'Plain', 'Verbose', 'Minimal'] (case-insensitive) +# Default: 'Context' +# c.InteractiveShell.xmode = 'Context' + +#------------------------------------------------------------------------------ +# TerminalInteractiveShell(InteractiveShell) configuration +#------------------------------------------------------------------------------ +## +# See also: InteractiveShell.ast_node_interactivity +# c.TerminalInteractiveShell.ast_node_interactivity = 'last_expr' + +## +# See also: InteractiveShell.ast_transformers +# c.TerminalInteractiveShell.ast_transformers = [] + +## Automatically add/delete closing bracket or quote when opening bracket or +# quote is entered/deleted. Brackets: (), [], {} Quotes: '', "" +# Default: False +# c.TerminalInteractiveShell.auto_match = False + +## +# See also: InteractiveShell.autoawait +# c.TerminalInteractiveShell.autoawait = True + +## +# See also: InteractiveShell.autocall +# c.TerminalInteractiveShell.autocall = 0 + +## Autoformatter to reformat Terminal code. Can be `'black'`, `'yapf'` or `None` +# Default: None +# c.TerminalInteractiveShell.autoformatter = None + +## +# See also: InteractiveShell.autoindent +# c.TerminalInteractiveShell.autoindent = True + +## +# See also: InteractiveShell.automagic +# c.TerminalInteractiveShell.automagic = True + +## Specifies from which source automatic suggestions are provided. Can be set to +# ``'NavigableAutoSuggestFromHistory'`` (:kbd:`up` and :kbd:`down` swap +# suggestions), ``'AutoSuggestFromHistory'``, or ``None`` to disable automatic +# suggestions. Default is `'NavigableAutoSuggestFromHistory`'. +# Default: 'NavigableAutoSuggestFromHistory' +# c.TerminalInteractiveShell.autosuggestions_provider = 'NavigableAutoSuggestFromHistory' + +## The part of the banner to be printed before the profile +# See also: InteractiveShell.banner1 +# c.TerminalInteractiveShell.banner1 = "Python 3.11.5 (main, Aug 29 2023, 15:31:31) [GCC 13.2.0]\nType 'copyright', 'credits' or 'license' for more information\nIPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help.\n" + +## The part of the banner to be printed after the profile +# See also: InteractiveShell.banner2 +# c.TerminalInteractiveShell.banner2 = '' + +## +# See also: InteractiveShell.cache_size +# c.TerminalInteractiveShell.cache_size = 1000 + +## +# See also: InteractiveShell.color_info +# c.TerminalInteractiveShell.color_info = True + +## Set the color scheme (NoColor, Neutral, Linux, or LightBG). +# See also: InteractiveShell.colors +# c.TerminalInteractiveShell.colors = 'Neutral' + +## Set to confirm when you try to exit IPython with an EOF (Control-D in Unix, +# Control-Z/Enter in Windows). By typing 'exit' or 'quit', you can force a +# direct exit without any confirmation. +# Default: True +# c.TerminalInteractiveShell.confirm_exit = True + +# See also: InteractiveShell.debug +# c.TerminalInteractiveShell.debug = False + +## File in which to store and read history +# Default: '~/.pdbhistory' +# c.TerminalInteractiveShell.debugger_history_file = '~/.pdbhistory' + +## Don't call post-execute functions that have failed in the past. +# See also: InteractiveShell.disable_failing_post_execute +# c.TerminalInteractiveShell.disable_failing_post_execute = False + +## Options for displaying tab completions, 'column', 'multicolumn', and +# 'readlinelike'. These options are for `prompt_toolkit`, see `prompt_toolkit` +# documentation for more information. +# Choices: any of ['column', 'multicolumn', 'readlinelike'] +# Default: 'multicolumn' +c.TerminalInteractiveShell.display_completions = 'column' + +## If True, anything that would be passed to the pager +# See also: InteractiveShell.display_page +# c.TerminalInteractiveShell.display_page = False + +## Shortcut style to use at the prompt. 'vi' or 'emacs'. +# Default: 'emacs' +c.TerminalInteractiveShell.editing_mode = 'vi' + +## Set the editor used by IPython (default to $EDITOR/vi/notepad). +# Default: 'lvim' +c.TerminalInteractiveShell.editor = 'lvim' + +## Add shortcuts from 'emacs' insert mode to 'vi' insert mode. +# Default: True +# c.TerminalInteractiveShell.emacs_bindings_in_vi_insert_mode = True + +## Allows to enable/disable the prompt toolkit history search +# Default: True +# c.TerminalInteractiveShell.enable_history_search = True + +## +# See also: InteractiveShell.enable_html_pager +# c.TerminalInteractiveShell.enable_html_pager = False + +## Enable vi (v) or Emacs (C-X C-E) shortcuts to open an external editor. This is +# in addition to the F2 binding, which is always enabled. +# Default: False +# c.TerminalInteractiveShell.extra_open_editor_shortcuts = False + +## Provide an alternative handler to be called when the user presses Return. This +# is an advanced option intended for debugging, which may be changed or removed +# in later releases. +# Default: None +# c.TerminalInteractiveShell.handle_return = None + +## Highlight matching brackets. +# Default: True +# c.TerminalInteractiveShell.highlight_matching_brackets = True + +## The name or class of a Pygments style to use for syntax +# highlighting. To see available styles, run `pygmentize -L styles`. +# Default: traitlets.Undefined +c.TerminalInteractiveShell.highlighting_style = pygments_nightfox_style.NightfoxStyle + +## Override highlighting format for specific tokens +# Default: {} +# c.TerminalInteractiveShell.highlighting_style_overrides = {} + +## Total length of command history +# See also: InteractiveShell.history_length +# c.TerminalInteractiveShell.history_length = 10000 + +## +# See also: InteractiveShell.history_load_length +# c.TerminalInteractiveShell.history_load_length = 1000 + +## Class to use to instantiate the shell inspector +# See also: InteractiveShell.inspector_class +# c.TerminalInteractiveShell.inspector_class = 'IPython.core.oinspect.Inspector' + +# See also: InteractiveShell.ipython_dir +# c.TerminalInteractiveShell.ipython_dir = '' + +## +# See also: InteractiveShell.logappend +# c.TerminalInteractiveShell.logappend = '' + +## +# See also: InteractiveShell.logfile +# c.TerminalInteractiveShell.logfile = '' + +## +# See also: InteractiveShell.logstart +# c.TerminalInteractiveShell.logstart = False + +## Select the loop runner that will be used to execute top-level asynchronous +# code +# See also: InteractiveShell.loop_runner +# c.TerminalInteractiveShell.loop_runner = 'IPython.core.interactiveshell._asyncio_runner' + +# Default: {} +# c.TerminalInteractiveShell.mime_renderers = {} + +## Cursor shape changes depending on vi mode: beam in vi insert mode, block in +# nav mode, underscore in replace mode. +# Default: True +# c.TerminalInteractiveShell.modal_cursor = True + +## Enable mouse support in the prompt (Note: prevents selecting text with the +# mouse) +# Default: False +c.TerminalInteractiveShell.mouse_support = True + +# See also: InteractiveShell.object_info_string_level +# c.TerminalInteractiveShell.object_info_string_level = 0 + +## +# See also: InteractiveShell.pdb +# c.TerminalInteractiveShell.pdb = False + +## Display the current vi mode (when using vi editing mode). +# Default: True +# c.TerminalInteractiveShell.prompt_includes_vi_mode = True + +## Class used to generate Prompt token for prompt_toolkit +# Default: 'IPython.terminal.prompts.Prompts' +c.TerminalInteractiveShell.prompts_class = NightfoxPrompts + +# See also: InteractiveShell.quiet +# c.TerminalInteractiveShell.quiet = False + +# See also: InteractiveShell.separate_in +# c.TerminalInteractiveShell.separate_in = '\n' + +# See also: InteractiveShell.separate_out +# c.TerminalInteractiveShell.separate_out = '' + +# See also: InteractiveShell.separate_out2 +# c.TerminalInteractiveShell.separate_out2 = '' + +## Add, disable or modifying shortcuts. +# +# Each entry on the list should be a dictionary with ``command`` key +# identifying the target function executed by the shortcut and at least +# one of the following: +# +# - ``match_keys``: list of keys used to match an existing shortcut, +# - ``match_filter``: shortcut filter used to match an existing shortcut, +# - ``new_keys``: list of keys to set, +# - ``new_filter``: a new shortcut filter to set +# +# The filters have to be composed of pre-defined verbs and joined by one +# of the following conjunctions: ``&`` (and), ``|`` (or), ``~`` (not). +# The pre-defined verbs are: +# +# - `always` +# - `never` +# - `has_line_below` +# - `has_line_above` +# - `is_cursor_at_the_end_of_line` +# - `has_selection` +# - `has_suggestion` +# - `vi_mode` +# - `vi_insert_mode` +# - `emacs_insert_mode` +# - `emacs_like_insert_mode` +# - `has_completions` +# - `insert_mode` +# - `default_buffer_focused` +# - `search_buffer_focused` +# - `ebivim` +# - `supports_suspend` +# - `is_windows_os` +# - `auto_match` +# - `focused_insert` +# - `not_inside_unclosed_string` +# - `readline_like_completions` +# - `preceded_by_paired_double_quotes` +# - `preceded_by_paired_single_quotes` +# - `preceded_by_raw_str_prefix` +# - `preceded_by_two_double_quotes` +# - `preceded_by_two_single_quotes` +# - `followed_by_closing_paren_or_end` +# - `preceded_by_opening_round_paren` +# - `preceded_by_opening_bracket` +# - `preceded_by_opening_brace` +# - `preceded_by_double_quote` +# - `preceded_by_single_quote` +# - `followed_by_closing_round_paren` +# - `followed_by_closing_bracket` +# - `followed_by_closing_brace` +# - `followed_by_double_quote` +# - `followed_by_single_quote` +# - `navigable_suggestions` +# - `cursor_in_leading_ws` +# - `pass_through` +# +# To disable a shortcut set ``new_keys`` to an empty list. +# To add a shortcut add key ``create`` with value ``True``. +# +# When modifying/disabling shortcuts, ``match_keys``/``match_filter`` can +# be omitted if the provided specification uniquely identifies a shortcut +# to be modified/disabled. When modifying a shortcut ``new_filter`` or +# ``new_keys`` can be omitted which will result in reuse of the existing +# filter/keys. +# +# Only shortcuts defined in IPython (and not default prompt-toolkit +# shortcuts) can be modified or disabled. The full list of shortcuts, +# command identifiers and filters is available under +# :ref:`terminal-shortcuts-list`. +# Default: [] +# c.TerminalInteractiveShell.shortcuts = [] + +## Show rewritten input, e.g. for autocall. +# See also: InteractiveShell.show_rewritten_input +# c.TerminalInteractiveShell.show_rewritten_input = True + +## Use `raw_input` for the REPL, without completion and prompt colors. +# +# Useful when controlling IPython as a subprocess, and piping STDIN/OUT/ERR. Known usage are: +# IPython own testing machinery, and emacs inferior-shell integration through elpy. +# +# This mode default to `True` if the `IPY_TEST_SIMPLE_PROMPT` +# environment variable is set, or the current terminal is not a tty. +# Default: False +# c.TerminalInteractiveShell.simple_prompt = False + +## Number of line at the bottom of the screen to reserve for the tab completion +# menu, search history, ...etc, the height of these menus will at most this +# value. Increase it is you prefer long and skinny menus, decrease for short and +# wide. +# Default: 6 +# c.TerminalInteractiveShell.space_for_menu = 6 + +## +# See also: InteractiveShell.sphinxify_docstring +# c.TerminalInteractiveShell.sphinxify_docstring = False + +## Automatically set the terminal title +# Default: True +# c.TerminalInteractiveShell.term_title = True + +## Customize the terminal title format. This is a python format string. +# Available substitutions are: {cwd}. +# Default: 'IPython: {cwd}' +# c.TerminalInteractiveShell.term_title_format = 'IPython: {cwd}' + +## The time in milliseconds that is waited for a mapped key +# sequence to complete. +# Default: 0.5 +# c.TerminalInteractiveShell.timeoutlen = 0.5 + +## Use 24bit colors instead of 256 colors in prompt highlighting. +# If your terminal supports true color, the following command should +# print ``TRUECOLOR`` in orange:: +# +# printf "\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m\n" +# Default: False +c.TerminalInteractiveShell.true_color = True + +## The time in milliseconds that is waited for a key code +# to complete. +# Default: 0.01 +# c.TerminalInteractiveShell.ttimeoutlen = 0.01 + +## Warn if running in a virtual environment with no IPython installed (so IPython +# from the global environment is used). +# See also: InteractiveShell.warn_venv +# c.TerminalInteractiveShell.warn_venv = True + +# See also: InteractiveShell.wildcards_case_sensitive +# c.TerminalInteractiveShell.wildcards_case_sensitive = True + +## Switch modes for the IPython exception handlers. +# See also: InteractiveShell.xmode +# c.TerminalInteractiveShell.xmode = 'Context' + +#------------------------------------------------------------------------------ +# HistoryAccessor(HistoryAccessorBase) configuration +#------------------------------------------------------------------------------ +## Access the history database without adding to it. +# +# This is intended for use by standalone history tools. IPython shells use +# HistoryManager, below, which is a subclass of this. + +## Options for configuring the SQLite connection +# +# These options are passed as keyword args to sqlite3.connect +# when establishing database connections. +# Default: {} +# c.HistoryAccessor.connection_options = {} + +## enable the SQLite history +# +# set enabled=False to disable the SQLite history, +# in which case there will be no stored history, no SQLite connection, +# and no background saving thread. This may be necessary in some +# threaded environments where IPython is embedded. +# Default: True +# c.HistoryAccessor.enabled = True + +## Path to file to use for SQLite history database. +# +# By default, IPython will put the history database in the IPython +# profile directory. If you would rather share one history among +# profiles, you can set this value in each, so that they are consistent. +# +# Due to an issue with fcntl, SQLite is known to misbehave on some NFS +# mounts. If you see IPython hanging, try setting this to something on a +# local disk, e.g:: +# +# ipython --HistoryManager.hist_file=/tmp/ipython_hist.sqlite +# +# you can also use the specific value `:memory:` (including the colon +# at both end but not the back ticks), to avoid creating an history file. +# Default: traitlets.Undefined +# c.HistoryAccessor.hist_file = traitlets.Undefined + +#------------------------------------------------------------------------------ +# HistoryManager(HistoryAccessor) configuration +#------------------------------------------------------------------------------ +## A class to organize all history-related functionality in one place. + +## Options for configuring the SQLite connection +# See also: HistoryAccessor.connection_options +# c.HistoryManager.connection_options = {} + +## Write to database every x commands (higher values save disk access & power). +# Values of 1 or less effectively disable caching. +# Default: 0 +# c.HistoryManager.db_cache_size = 0 + +## Should the history database include output? (default: no) +# Default: False +# c.HistoryManager.db_log_output = False + +## enable the SQLite history +# See also: HistoryAccessor.enabled +# c.HistoryManager.enabled = True + +## Path to file to use for SQLite history database. +# See also: HistoryAccessor.hist_file +# c.HistoryManager.hist_file = traitlets.Undefined + +#------------------------------------------------------------------------------ +# MagicsManager(Configurable) configuration +#------------------------------------------------------------------------------ +## Object that handles all magic-related functionality for IPython. + +## Automatically call line magics without requiring explicit % prefix +# Default: True +# c.MagicsManager.auto_magic = True + +## Mapping from magic names to modules to load. +# +# This can be used in IPython/IPykernel configuration to declare lazy magics +# that will only be imported/registered on first use. +# +# For example:: +# +# c.MagicsManager.lazy_magics = { +# "my_magic": "slow.to.import", +# "my_other_magic": "also.slow", +# } +# +# On first invocation of `%my_magic`, `%%my_magic`, `%%my_other_magic` or +# `%%my_other_magic`, the corresponding module will be loaded as an ipython +# extensions as if you had previously done `%load_ext ipython`. +# +# Magics names should be without percent(s) as magics can be both cell and line +# magics. +# +# Lazy loading happen relatively late in execution process, and complex +# extensions that manipulate Python/IPython internal state or global state might +# not support lazy loading. +# Default: {} +# c.MagicsManager.lazy_magics = {} + +#------------------------------------------------------------------------------ +# ProfileDir(LoggingConfigurable) configuration +#------------------------------------------------------------------------------ +## An object to manage the profile directory and its resources. +# +# The profile directory is used by all IPython applications, to manage +# configuration, logging and security. +# +# This object knows how to find, create and manage these directories. This +# should be used by any code that wants to handle profiles. + +## Set the profile location directly. This overrides the logic used by the +# `profile` option. +# Default: '' +# c.ProfileDir.location = '' + +#------------------------------------------------------------------------------ +# BaseFormatter(Configurable) configuration +#------------------------------------------------------------------------------ +## A base formatter class that is configurable. +# +# This formatter should usually be used as the base class of all formatters. +# It is a traited :class:`Configurable` class and includes an extensible +# API for users to determine how their objects are formatted. The following +# logic is used to find a function to format an given object. +# +# 1. The object is introspected to see if it has a method with the name +# :attr:`print_method`. If is does, that object is passed to that method +# for formatting. +# 2. If no print method is found, three internal dictionaries are consulted +# to find print method: :attr:`singleton_printers`, :attr:`type_printers` +# and :attr:`deferred_printers`. +# +# Users should use these dictionaries to register functions that will be +# used to compute the format data for their objects (if those objects don't +# have the special print methods). The easiest way of using these +# dictionaries is through the :meth:`for_type` and :meth:`for_type_by_name` +# methods. +# +# If no function/callable is found to compute the format data, ``None`` is +# returned and this format type is not used. + +# Default: {} +# c.BaseFormatter.deferred_printers = {} + +# Default: True +# c.BaseFormatter.enabled = True + +# Default: {} +# c.BaseFormatter.singleton_printers = {} + +# Default: {} +# c.BaseFormatter.type_printers = {} + +#------------------------------------------------------------------------------ +# PlainTextFormatter(BaseFormatter) configuration +#------------------------------------------------------------------------------ +## The default pretty-printer. +# +# This uses :mod:`IPython.lib.pretty` to compute the format data of +# the object. If the object cannot be pretty printed, :func:`repr` is used. +# See the documentation of :mod:`IPython.lib.pretty` for details on +# how to write pretty printers. Here is a simple example:: +# +# def dtype_pprinter(obj, p, cycle): +# if cycle: +# return p.text('dtype(...)') +# if hasattr(obj, 'fields'): +# if obj.fields is None: +# p.text(repr(obj)) +# else: +# p.begin_group(7, 'dtype([') +# for i, field in enumerate(obj.descr): +# if i > 0: +# p.text(',') +# p.breakable() +# p.pretty(field) +# p.end_group(7, '])') + +# See also: BaseFormatter.deferred_printers +# c.PlainTextFormatter.deferred_printers = {} + +# Default: '' +# c.PlainTextFormatter.float_precision = '' + +## Truncate large collections (lists, dicts, tuples, sets) to this size. +# +# Set to 0 to disable truncation. +# Default: 1000 +# c.PlainTextFormatter.max_seq_length = 1000 + +# Default: 79 +# c.PlainTextFormatter.max_width = 79 + +# Default: '\n' +# c.PlainTextFormatter.newline = '\n' + +# Default: True +# c.PlainTextFormatter.pprint = True + +# See also: BaseFormatter.singleton_printers +# c.PlainTextFormatter.singleton_printers = {} + +# See also: BaseFormatter.type_printers +# c.PlainTextFormatter.type_printers = {} + +# Default: False +# c.PlainTextFormatter.verbose = False + +#------------------------------------------------------------------------------ +# Completer(Configurable) configuration +#------------------------------------------------------------------------------ +## Enable auto-closing dictionary keys. +# +# When enabled string keys will be suffixed with a final quote (matching the +# opening quote), tuple keys will also receive a separating comma if needed, and +# keys which are final will receive a closing bracket (``]``). +# Default: False +# c.Completer.auto_close_dict_keys = False + +## Enable unicode completions, e.g. \alpha . Includes completion of latex +# commands, unicode names, and expanding unicode characters back to latex +# commands. +# Default: True +# c.Completer.backslash_combining_completions = True + +## Enable debug for the Completer. Mostly print extra information for +# experimental jedi integration. +# Default: False +# c.Completer.debug = False + +## Policy for code evaluation under completion. +# +# Successive options allow to enable more eager evaluation for better +# completion suggestions, including for nested dictionaries, nested lists, +# or even results of function calls. +# Setting ``unsafe`` or higher can lead to evaluation of arbitrary user +# code on :kbd:`Tab` with potentially unwanted or dangerous side effects. +# +# Allowed values are: +# +# - ``forbidden``: no evaluation of code is permitted, +# - ``minimal``: evaluation of literals and access to built-in namespace; +# no item/attribute evaluationm no access to locals/globals, +# no evaluation of any operations or comparisons. +# - ``limited``: access to all namespaces, evaluation of hard-coded methods +# (for example: :any:`dict.keys`, :any:`object.__getattr__`, +# :any:`object.__getitem__`) on allow-listed objects (for example: +# :any:`dict`, :any:`list`, :any:`tuple`, ``pandas.Series``), +# - ``unsafe``: evaluation of all methods and function calls but not of +# syntax with side-effects like `del x`, +# - ``dangerous``: completely arbitrary evaluation. +# Choices: any of ['forbidden', 'minimal', 'limited', 'unsafe', 'dangerous'] +# Default: 'limited' +# c.Completer.evaluation = 'limited' + +## Activate greedy completion. +# +# .. deprecated:: 8.8 +# Use :std:configtrait:`Completer.evaluation` and :std:configtrait:`Completer.auto_close_dict_keys` instead. +# +# When enabled in IPython 8.8 or newer, changes configuration as +# follows: +# +# - ``Completer.evaluation = 'unsafe'`` +# - ``Completer.auto_close_dict_keys = True`` +# Default: False +# c.Completer.greedy = False + +## Experimental: restrict time (in milliseconds) during which Jedi can compute types. +# Set to 0 to stop computing types. Non-zero value lower than 100ms may hurt +# performance by preventing jedi to build its cache. +# Default: 400 +# c.Completer.jedi_compute_type_timeout = 400 + +## Experimental: Use Jedi to generate autocompletions. Default to True if jedi is +# installed. +# Default: True +# c.Completer.use_jedi = True + +#------------------------------------------------------------------------------ +# IPCompleter(Completer) configuration +#------------------------------------------------------------------------------ +## Extension of the completer class with IPython-specific features + +## +# See also: Completer.auto_close_dict_keys +# c.IPCompleter.auto_close_dict_keys = False + +## Enable unicode completions, e.g. \alpha . Includes completion of latex +# commands, unicode names, and expanding unicode characters back to latex +# commands. +# See also: Completer.backslash_combining_completions +# c.IPCompleter.backslash_combining_completions = True + +## Enable debug for the Completer. Mostly print extra information for +# experimental jedi integration. +# See also: Completer.debug +# c.IPCompleter.debug = False + +## List of matchers to disable. +# +# The list should contain matcher identifiers (see +# :any:`completion_matcher`). +# Default: [] +# c.IPCompleter.disable_matchers = [] + +## Policy for code evaluation under completion. +# See also: Completer.evaluation +# c.IPCompleter.evaluation = 'limited' + +## Activate greedy completion. +# See also: Completer.greedy +# c.IPCompleter.greedy = False + +## Experimental: restrict time (in milliseconds) during which Jedi can compute +# types. +# See also: Completer.jedi_compute_type_timeout +# c.IPCompleter.jedi_compute_type_timeout = 400 + +## DEPRECATED as of version 5.0. +# +# Instruct the completer to use __all__ for the completion +# +# Specifically, when completing on ``object.``. +# +# When True: only those names in obj.__all__ will be included. +# +# When False [default]: the __all__ attribute is ignored +# Default: False +# c.IPCompleter.limit_to__all__ = False + +## Whether to merge completion results into a single list +# +# If False, only the completion results from the first non-empty +# completer will be returned. +# +# As of version 8.6.0, setting the value to ``False`` is an alias for: +# ``IPCompleter.suppress_competing_matchers = True.``. +# Default: True +# c.IPCompleter.merge_completions = True + +## Instruct the completer to omit private method names +# +# Specifically, when completing on ``object.``. +# +# When 2 [default]: all names that start with '_' will be excluded. +# +# When 1: all 'magic' names (``__foo__``) will be excluded. +# +# When 0: nothing will be excluded. +# Choices: any of [0, 1, 2] +# Default: 2 +# c.IPCompleter.omit__names = 2 + +## If True, emit profiling data for completion subsystem using cProfile. +# Default: False +# c.IPCompleter.profile_completions = False + +## Template for path at which to output profile data for completions. +# Default: '.completion_profiles' +# c.IPCompleter.profiler_output_dir = '.completion_profiles' + +## Whether to suppress completions from other *Matchers*. +# +# When set to ``None`` (default) the matchers will attempt to auto-detect +# whether suppression of other matchers is desirable. For example, at the +# beginning of a line followed by `%` we expect a magic completion to be the +# only applicable option, and after ``my_dict['`` we usually expect a completion +# with an existing dictionary key. +# +# If you want to disable this heuristic and see completions from all matchers, +# set ``IPCompleter.suppress_competing_matchers = False``. To disable the +# heuristic for specific matchers provide a dictionary mapping: +# ``IPCompleter.suppress_competing_matchers = {'IPCompleter.dict_key_matcher': +# False}``. +# +# Set ``IPCompleter.suppress_competing_matchers = True`` to limit completions to +# the set of matchers with the highest priority; this is equivalent to +# ``IPCompleter.merge_completions`` and can be beneficial for performance, but +# will sometimes omit relevant candidates from matchers further down the +# priority list. +# Default: None +# c.IPCompleter.suppress_competing_matchers = None + +## Experimental: Use Jedi to generate autocompletions. Default to True if jedi is +# installed. +# See also: Completer.use_jedi +# c.IPCompleter.use_jedi = True + +#------------------------------------------------------------------------------ +# ScriptMagics(Magics) configuration +#------------------------------------------------------------------------------ +## Magics for talking to scripts +# +# This defines a base `%%script` cell magic for running a cell +# with a program in a subprocess, and registers a few top-level +# magics that call %%script with common interpreters. + +## Extra script cell magics to define +# +# This generates simple wrappers of `%%script foo` as `%%foo`. +# +# If you want to add script magics that aren't on your path, +# specify them in script_paths +# Default: [] +# c.ScriptMagics.script_magics = [] + +## Dict mapping short 'ruby' names to full paths, such as '/opt/secret/bin/ruby' +# +# Only necessary for items in script_magics where the default path will not +# find the right interpreter. +# Default: {} +# c.ScriptMagics.script_paths = {} + +#------------------------------------------------------------------------------ +# LoggingMagics(Magics) configuration +#------------------------------------------------------------------------------ +## Magics related to all logging machinery. + +## Suppress output of log state when logging is enabled +# Default: False +# c.LoggingMagics.quiet = False + +#------------------------------------------------------------------------------ +# StoreMagics(Magics) configuration +#------------------------------------------------------------------------------ +## Lightweight persistence for python variables. +# +# Provides the %store magic. + +## If True, any %store-d variables will be automatically restored +# when IPython starts. +# Default: False +# c.StoreMagics.autorestore = False diff --git a/common/.local/bin/json-fortune b/common/.local/bin/json-fortune index 5fc80e4..abac41d 100755 --- a/common/.local/bin/json-fortune +++ b/common/.local/bin/json-fortune @@ -61,6 +61,8 @@ class JsonFortune: """ by_category = getattr(options, 'by_category', False) quote = "" + author = "" + lang = "" count = 0 while not quote and count < 50: count += 1 @@ -140,7 +142,7 @@ class JsonFortune: if __name__ == '__main__': parser = argparse.ArgumentParser(description="Print/say a quote from JSON file.") parser.add_argument( - '-s', '--source', default='~/.fortunes.json', + '-s', '--source', default='~/.local/share/json-fortune/fortunes.json', help='JSON file with quotes') parser.add_argument( '-b', '--by_category', default=False, action='store_true', diff --git a/common/.local/bin/update-quotes b/common/.local/bin/update-quotes index 70de335..47a6c93 100755 --- a/common/.local/bin/update-quotes +++ b/common/.local/bin/update-quotes @@ -12,6 +12,7 @@ import json import argparse import logging +import pathlib import sys import os.path import wikiquote @@ -35,6 +36,7 @@ def generate_quotes(srcfile): for category in sources_dict[lang]: quotes[lang].setdefault(category, {}) for author in sources_dict[lang][category]: + print(f"\n***** Retrieving {author} from {lang}/{category} *****") try: quotes[lang][category][author] = wikiquote.quotes( author, lang=lang @@ -69,10 +71,10 @@ Source file must be a JSON in this format:\n }\n """) parser.add_argument( - '--source', default='~/.wikiquote-sources.json', + '--source', default='~/.config/json-fortune/wikiquote-sources.json', help='JSON file with sources') parser.add_argument( - '--dest', default='~/.fortunes.json', + '--dest', default='~/.local/share/json-fortune/fortunes.json', help='Destination file') parser.add_argument( '-d', '--debug', action='store_true', help="Debug mode") @@ -108,5 +110,7 @@ Source file must be a JSON in this format:\n os.path.expandvars(options.dest) ) + pathlib.Path(dest).parent.mkdir(parents=True, exist_ok=True) + with open(dest, 'w') as fout: json.dump(generate_quotes(source), fout, indent=4) diff --git a/desktop/.config/aerc/aerc.conf b/desktop/.config/aerc/aerc.conf index 171a7fa..8d288c1 100644 --- a/desktop/.config/aerc/aerc.conf +++ b/desktop/.config/aerc/aerc.conf @@ -445,7 +445,7 @@ address-book-cmd=khard email --parsable --remove-first-line %s # accepted. The commands are invoked with sh -c and are expected to output # valid UTF-8 text. # -text/html=pandoc -f html -t rst --list-tables=true | pygmentize -l rst | colorize +text/html=elinks -dump 1 | pygmentize -l rst -O style=nightfox_transparent | colorize [filters] # @@ -479,7 +479,7 @@ text/plain=colorize text/calendar=calendar message/delivery-status=colorize message/rfc822=colorize -text/html=pandoc -f html -t rst --list-tables=true | pygmentize -l rst | colorize +text/html=elinks -dump 1 | colorize #text/html=html | colorize #text/*=bat -fP --file-name="$AERC_FILENAME" #application/x-sh=bat -fP -l sh diff --git a/desktop/.config/afew/config b/desktop/.config/afew/config new file mode 100644 index 0000000..d3b2e9d --- /dev/null +++ b/desktop/.config/afew/config @@ -0,0 +1,45 @@ +[global] + +[FolderNameFilter] +folder_transforms = Junk:spam Drafts:draft Sent:sent INBOX:inbox Trash:deleted +maildir_separator = / + +[SpamFilter] +[KillThreadsFilter] +[ListMailsFilter] +[SentMailsFilter] +[ArchiveSentMailsFilter] +sent_tag = sent + +[DMARCReportInspectionFilter] +[DKIMValidityFilter] + +[HeaderMatchingFilter.0] +header = List-Id +pattern = <(?P.*)> +tags = +lists;+{list_id} + +[HeaderMatchingFilter.1] +header = To +pattern = .*[-+](?P\w*)@.* +tags = -nodelimiter;+dtr:{autotag} + +[HeaderMatchingFilter.2] +header = Cc +pattern = .*[-+](?P\w*)@.* +tags = -nodelimiter;+dtr:{autotag} + +[HeaderMatchingFilter.3] +header = Bcc +pattern = .*[-+](?P\w*)@.* +tags = -nodelimiter;+dtr:{autotag} + +[HeaderMatchingFilter.4] +header = X-Mailer +pattern = (?P.*) +tags = +mailer:{mailer} + +[HeaderMatchingFilter.5] +header = X-Operating-System +pattern = (?P.*) +tags = +os:{os} diff --git a/desktop/.config/fish/functions/mbsync.fish b/desktop/.config/fish/functions/mbsync.fish new file mode 100755 index 0000000..dc31a74 --- /dev/null +++ b/desktop/.config/fish/functions/mbsync.fish @@ -0,0 +1,6 @@ +#!/usr/bin/env fish +# + +function mbsync -d "mbsync with config file in ~/.config/mbsync" + command mbsync -c ~/.config/mbsync/mbsyncrc $argv +end diff --git a/desktop/.config/khal/config b/desktop/.config/khal/config new file mode 100644 index 0000000..aa5b389 --- /dev/null +++ b/desktop/.config/khal/config @@ -0,0 +1,30 @@ +[calendars] + +[[calendars]] +path = ~/.local/share/calendars/*/* +type = discover +timedelta = 7d + +[locale] +timeformat = %H:%M +dateformat = %d/%m +longdateformat = %d/%m/%y +datetimeformat = %d/%m %H:%M +longdatetimeformat = %d/%m/%y %H:%M +local_timezone = Europe/Brussels +default_timezone = Europe/Brussels +firstweekday = 0 +weeknumbers = left + +[default] +default_calendar = IRL +highlight_event_days = true + +[highlight_days] +method = fg + +[view] +event_format = "{calendar-color}{cancelled}{start}-{end} {repeat-symbol}{alarm-symbol}{title}{description-separator}{description}{reset}" +agenda_day_format = "{bold}{name}, {date-long}{reset}" +agenda_event_format = "{calendar-color}{cancelled}{start-end-time-style}{repeat-symbol}{alarm-symbol} {title}{description-separator}{description}{reset}" +bold_for_light_color = False diff --git a/desktop/.local/share/mail/.notmuch/hooks/post-new b/desktop/.local/share/mail/.notmuch/hooks/post-new new file mode 100755 index 0000000..e751cf5 --- /dev/null +++ b/desktop/.local/share/mail/.notmuch/hooks/post-new @@ -0,0 +1,3 @@ +#!/usr/bin/env fish + +afew --tag --new diff --git a/desktop/.local/share/mail/.notmuch/hooks/pre-new b/desktop/.local/share/mail/.notmuch/hooks/pre-new new file mode 100755 index 0000000..d7b17cd --- /dev/null +++ b/desktop/.local/share/mail/.notmuch/hooks/pre-new @@ -0,0 +1,3 @@ +#!/usr/bin/env fish + +mbsync -a diff --git a/nightfox_palette/256color.py b/nightfox_palette/256color.py new file mode 100644 index 0000000..327561c --- /dev/null +++ b/nightfox_palette/256color.py @@ -0,0 +1,26 @@ +NFOX_BLACK = 59 +NFOX_RED = 167 +NFOX_GREEN = 108 +NFOX_YELLOW = 180 +NFOX_BLUE = 39 +NFOX_MAGENTA = 140 +NFOX_CYAN = 80 +NFOX_WHITE = 188 +NFOX_ORANGE = 215 +NFOX_PINK = 176 + +NFOX_COMMENT = 102 + +NFOX_BG0 = 16 +NFOX_BG1 = 17 +NFOX_BG2 = 17 +NFOX_BG3 = 237 +NFOX_BG4 = 59 + +NFOX_FG0 = 188 +NFOX_FG1 = 188 +NFOX_FG2 = 145 +NFOX_FG3 = 67 + +NFOX_SEL0 = 23 +NFOX_SEL1 = 59 diff --git a/nightfox_palette/ANSI.py b/nightfox_palette/ANSI.py new file mode 100644 index 0000000..c2cbc0a --- /dev/null +++ b/nightfox_palette/ANSI.py @@ -0,0 +1,53 @@ +NFOX_BLACK_FG = "\033[38;2;57;59;68m" +NFOX_BLACK_BG = "\033[48;2;57;59;68m" +NFOX_RED_FG = "\033[38;2;201;79;109m" +NFOX_RED_BG = "\033[48;2;201;79;109m" +NFOX_GREEN_FG = "\033[38;2;129;178;154m" +NFOX_GREEN_BG = "\033[48;2;129;178;154m" +NFOX_YELLOW_FG = "\033[38;2;219;192;116m" +NFOX_YELLOW_BG = "\033[48;2;219;192;116m" +NFOX_BLUE_FG = "\033[38;2;113;156;214m" +NFOX_BLUE_BG = "\033[48;2;113;156;214m" +NFOX_MAGENTA_FG = "\033[38;2;157;121;214m" +NFOX_MAGENTA_BG = "\033[48;2;157;121;214m" +NFOX_CYAN_FG = "\033[38;2;99;205;207m" +NFOX_CYAN_BG = "\033[48;2;99;205;207m" +NFOX_WHITE_FG = "\033[38;2;223;223;224m" +NFOX_WHITE_BG = "\033[48;2;223;223;224m" +NFOX_ORANGE_FG = "\033[38;2;244;162;97m" +NFOX_ORANGE_BG = "\033[48;2;244;162;97m" +NFOX_PINK_FG = "\033[38;2;214;122;210m" +NFOX_PINK_BG = "\033[48;2;214;122;210m" +NFOX_COMMENT_FG = "\033[38;2;115;128;145m" +NFOX_COMMENT_BG = "\033[48;2;115;128;145m" +NFOX_BG0_FG = "\033[38;2;19;26;36m" +NFOX_BG0_BG = "\033[48;2;19;26;36m" +NFOX_BG1_FG = "\033[38;2;25;35;48m" +NFOX_BG1_BG = "\033[48;2;25;35;48m" +NFOX_BG2_FG = "\033[38;2;33;46;63m" +NFOX_BG2_BG = "\033[48;2;33;46;63m" +NFOX_BG3_FG = "\033[38;2;41;57;79m" +NFOX_BG3_BG = "\033[48;2;41;57;79m" +NFOX_BG4_FG = "\033[38;2;57;80;109m" +NFOX_BG4_BG = "\033[48;2;57;80;109m" +NFOX_FG0_FG = "\033[38;2;214;214;215m" +NFOX_FG0_BG = "\033[48;2;214;214;215m" +NFOX_FG1_FG = "\033[38;2;205;206;207m" +NFOX_FG1_BG = "\033[48;2;205;206;207m" +NFOX_FG2_FG = "\033[38;2;174;175;176m" +NFOX_FG2_BG = "\033[48;2;174;175;176m" +NFOX_FG3_FG = "\033[38;2;113;131;155m" +NFOX_FG3_BG = "\033[48;2;113;131;155m" +NFOX_SEL0_FG = "\033[38;2;43;59;81m" +NFOX_SEL0_BG = "\033[48;2;43;59;81m" +NFOX_SEL1_FG = "\033[38;2;60;83;114m" +NFOX_SEL1_BG = "\033[48;2;60;83;114m" + +NO_COLOR = "\033[39m\033[49m\033[00m" +NO_BG = "\033[49m" +NO_FG = "\033[49m" +BOLD = "\033[01m" +ITALIC = "\033[03m" +UNDERLINE = "\033[04m" +REVERSE = "\033[07m" +OVERLINED = "\033[53m" diff --git a/nightfox_palette/README.rst b/nightfox_palette/README.rst new file mode 100644 index 0000000..fe13715 --- /dev/null +++ b/nightfox_palette/README.rst @@ -0,0 +1,6 @@ +Palette from EdenEast +===================== + +MIT license + +See https://github.com/EdenEast/nightfox.nvim diff --git a/nightfox_palette/html.py b/nightfox_palette/html.py new file mode 100644 index 0000000..8d085eb --- /dev/null +++ b/nightfox_palette/html.py @@ -0,0 +1,51 @@ +# Normal +NFOX_BLACK = "#393b44" +NFOX_RED = "#c94f6d" +NFOX_GREEN = "#81b29a" +NFOX_YELLOW = "#dbc074" +NFOX_BLUE = "#719cd6" +NFOX_MAGENTA = "#9d79d6" +NFOX_CYAN = "#63cdcf" +NFOX_WHITE = "#dfdfe0" +NFOX_ORANGE = "#f4a261" +NFOX_PINK = "#d67ad2" + +NFOX_COMMENT = "#738091" + +NFOX_BG0 = "#131a24" +NFOX_BG1 = "#192330" +NFOX_BG2 = "#212e3f" +NFOX_BG3 = "#29394f" +NFOX_BG4 = "#39506d" + +NFOX_FG0 = "#d6d6d7" +NFOX_FG1 = "#cdcecf" +NFOX_FG2 = "#aeafb0" +NFOX_FG3 = "#71839b" + +NFOX_SEL0 = "#2b3b51" +NFOX_SEL1 = "#3c5372" + +# Darker +NFOX_BLACK_D = "#13151e" +NFOX_RED_D = "#a32947" +NFOX_GREEN_D = "#5b8c74" +NFOX_YELLOW_D = "#b59a4e" +NFOX_BLUE_D = "#4b76b0" +NFOX_MAGENTA_D = "#7753b0" +NFOX_CYAN_D = "#3da7a9" +NFOX_WHITE_D = "#b9b9ba" +NFOX_ORANGE_D = "#ce7c3b" +NFOX_PINK_D = "#b054ac" + +#Lighter +NFOX_BLACK_L = "#5F616A" +NFOX_RED_L = "#ef7593" +NFOX_GREEN_L = "#9bccb4" +NFOX_YELLOW_L = "#ffe69a" +NFOX_BLUE_L = "#97c2fc" +NFOX_MAGENTA_L = "#eac6ff" +NFOX_CYAN_L = "#89f3f5" +NFOX_WHITE_L = "#ffffff" +NFOX_ORANGE_L = "#ffc887" +NFOX_PINK_L = "#fca0f8" diff --git a/templates/.config/aerc/accounts.conf b/templates/.config/aerc/accounts.conf index 1354bc4..94a2763 100644 --- a/templates/.config/aerc/accounts.conf +++ b/templates/.config/aerc/accounts.conf @@ -6,6 +6,6 @@ from = Template Example copy-to = Sent source-cred-cmd = keyring get "mail:template@example.com" "template@example.com" outgoing-cred-cmd = keyring get "mail:template@example.com" "template@example.com" -signature-file = "~/.config/aerc/accounts/template@example.com/signature.txt" +signature-file = "~/.config/aerc/accounts/acc:template@example.com/signature.txt" pgp-auto-sign = true pgp-opportunistic-encrypt = true diff --git a/templates/.config/aerc/accounts/template@example.com/signature.txt b/templates/.config/aerc/accounts/acc:template@example.com/signature.txt similarity index 100% rename from templates/.config/aerc/accounts/template@example.com/signature.txt rename to templates/.config/aerc/accounts/acc:template@example.com/signature.txt diff --git a/templates/.config/khal/config b/templates/.config/khal/config deleted file mode 100644 index 2b73da4..0000000 --- a/templates/.config/khal/config +++ /dev/null @@ -1,24 +0,0 @@ -[calendars] - -[[example_calendar_local]] -path = ~/.local/share/calendars/Example/* -type = discover -priority = 10 - -[[example_contacts_local]] -path = ~/.local/share/contacts/Example/* -type = discover -priority = 5 - -[locale] -timeformat = %H:%M -dateformat = %d/%m/%Y -longdateformat = %d/%m/%Y -datetimeformat = %d/%m/%Y %H:%M -longdatetimeformat = %d/%m/%Y %H:%M -local_timezone = Europe/Brussels -default_timezone = Europe/Brussels - -[default] -default_calendar = ExampleCalendar -highlight_event_days = true diff --git a/templates/.config/khard/khard.conf b/templates/.config/khard/khard.conf index 2650bc0..2e13ff1 100644 --- a/templates/.config/khard/khard.conf +++ b/templates/.config/khard/khard.conf @@ -47,7 +47,7 @@ preferred_email_address_type = pref, work, home # example: # private_objects = Jabber, Skype, Twitter # default: , (the empty list) -private_objects = Jabber, Skype, XMPP, Mastodon, Matrix, Peertube +private_objects = XMPP, Mastodon, Matrix, Peertube, Diaspora, PixelFed, Gemini, Youtube, Skype # preferred vcard version: 3.0 / 4.0 preferred_version = 4.0 # Look into source vcf files to speed up search queries: yes / no diff --git a/templates/.config/mbsync/mbsyncrc b/templates/.config/mbsync/mbsyncrc new file mode 100644 index 0000000..a2de326 --- /dev/null +++ b/templates/.config/mbsync/mbsyncrc @@ -0,0 +1,38 @@ +# Global configuration section +# Values here are used as defaults for any following Channel section that +# doesn't specify them. +Expunge Both +Create Both +SyncState * + +MaildirStore local +Path ~/.local/share/mail/local/ +Subfolders Verbatim +Trash Trash + +############################# +# + +IMAPStore test1@example.com +Host imap.example.com +User test1@example.com +PassCmd "keyring get 'cas:test1@example.com' 'test1@example.com'" +SSLType STARTTLS + +Channel test1@example.com +Far :test1@example.com: +Near :local:test1@example.com/ + +############################# +# + +IMAPStore test2@example.com +Host imap.example.com +User test2@example.com +PassCmd "keyring get 'cas:test2@example.com' 'test2@example.com'" +SSLType STARTTLS + +Channel test2@example.com +Far :test2@example.com: +Near :local:test2@example.com/ + diff --git a/templates/.config/notmuch/notmuch-config b/templates/.config/notmuch/notmuch-config new file mode 100644 index 0000000..17e9e8e --- /dev/null +++ b/templates/.config/notmuch/notmuch-config @@ -0,0 +1,82 @@ +# .notmuch-config - Configuration file for the notmuch mail system +# +# For more information about notmuch, see https://notmuchmail.org +# 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] +path=/home/kujiu/~/.local/share/mail +# User configuration +# +# Here is where you can let notmuch know how you would like to be +# addressed. Valid settings are +# +# name Your full name. +# primary_email Your primary email address. +# other_email A list (separated by ';') of other email addresses +# at which you receive email. +# +# Notmuch will use the various email addresses configured here when +# formatting replies. It will avoid including your own addresses in the +# recipient list of replies, and will set the From address based on the +# address to which the original email was addressed. +# +[user] +name=Test Example +primary_email=test1@example.com +other_email=test2@example.com;test3@example.com +# Configuration for "notmuch new" +# +# The following options are supported here: +# +# tags A list (separated by ';') of the tags that will be +# added to all messages incorporated by "notmuch new". +# +# ignore A list (separated by ';') of file and directory names +# that will not be searched for messages by "notmuch new". +# +# NOTE: *Every* file/directory that goes by one of those +# names will be ignored, independent of its depth/location +# in the mail store. +# +[new] +tags=new +# Search configuration +# +# The following option is supported here: +# +# exclude_tags +# A ;-separated list of tags that will be excluded from +# search results by default. Using an excluded tag in a +# query will override that exclusion. +# +[search] +exclude_tags=deleted;spam; +# Maildir compatibility configuration +# +# The following option is supported here: +# +# synchronize_flags Valid values are true and false. +# +# If true, then the following maildir flags (in message filenames) +# will be synchronized with the corresponding notmuch tags: +# +# Flag Tag +# ---- ------- +# D draft +# F flagged +# P passed +# R replied +# S unread (added when 'S' flag is not present) +# +# The "notmuch new" command will notice flag changes in filenames +# and update tags, while the "notmuch tag" and "notmuch restore" +# commands will notice tag changes and update flags in filenames +# +[maildir] +synchronize_flags=true