Skip to content

Configuration Directories

Roubs edited this page Sep 17, 2026 · 1 revision

Configuration Directories

Tuim adheres strictly to the XDG Base Directory Specification. It isolates all of its configuration files, plugins, compiled grammars, session state, and caches in dedicated tuim subdirectories, ensuring it never collides with or modifies your primary Neovim installation.


1. Directory Structure Overview

Standard Path Environment Variable Contents
~/.config/tuim $XDG_CONFIG_HOME/tuim User-defined configuration files.
~/.local/share/tuim $XDG_DATA_HOME/tuim Application settings (settings.json), active log (tuim.log), session files (tuim_session.vim, tuim_handoff_init.lua), installed plugins (lazy/), Treesitter parsers (site/), plugin overrides (plugin_configs/), marketplace records, and release runtime.
~/.local/state/tuim $XDG_STATE_HOME/tuim Runtime state directory checked by desktop themes and targeted by uninstaller cleanups (uninstall.sh --logs --sessions).
~/.cache/tuim $XDG_CACHE_HOME/tuim Build caches, font symbol caches, and temporary artifacts.

If custom XDG environment variables ($XDG_CONFIG_HOME, $XDG_DATA_HOME, etc.) are set in your environment, Tuim respects them.


2. Key Files in the Data Directory

The ~/.local/share/tuim directory is where Tuim persists your application state and plugin infrastructure:

~/.local/share/tuim/
โ”œโ”€โ”€ tuim.log                 # Active runtime log file
โ”œโ”€โ”€ settings.json            # Native application preferences (theme, rulers, keybindings)
โ”œโ”€โ”€ tuim_session.vim         # Saved editor session state
โ”œโ”€โ”€ tuim_handoff_init.lua    # Zen mode session handoff script
โ”œโ”€โ”€ user_plugins.json        # Marketplace plugin list
โ”œโ”€โ”€ plugin_states.json       # Record of enabled, disabled, and removed plugins
โ”œโ”€โ”€ plugin_inventory.json    # Auto-generated bundled and runtime plugin inventory
โ”œโ”€โ”€ plugin_configs/          # Custom Lua spec overrides (<owner>_<repo>.lua)
โ”œโ”€โ”€ lazy/                    # Directory where lazy.nvim clones installed plugins
โ”œโ”€โ”€ site/                    # Compiled Tree-sitter parsers and queries
โ”œโ”€โ”€ tools/                   # Private runtime tools (e.g. private Tree-sitter CLI)
โ””โ”€โ”€ nvim/                    # Bundled Neovim runtime assets (on release installs)

3. Total Isolation from System Neovim

Tuim invokes Neovim processes with:

NVIM_APPNAME=tuim nvim --clean ...

Why this matters:

  • Tuim does not load ~/.config/nvim/init.lua or init.vim.
  • Tuim does not install or tamper with plugins in ~/.local/share/nvim.
  • You can run your existing, customized Neovim setup alongside Tuim without any risk of configuration pollution or version conflicts.

4. Viewing Active Paths at Runtime

To inspect the exact paths being used by your running Tuim instance:

  1. Press F1 to open the command menu.
  2. Select Settings โ†’ About.
  3. The panel displays the active configuration path, data directory, and the exact file path of the runtime log.

Next Steps

Learn how to configure themes, rulers, and shortcuts via the UI in Settings UI.

Clone this wiki locally