1
0
Fork 0
❄️ Module that loads programs and settings for languages, editors, and the repository for use in my projects.
Find a file
2025-07-23 22:29:29 -05:00
base Move overlay to separate module argument 2025-07-19 22:56:50 -05:00
editors Use filename for config definitions 2025-07-23 08:27:49 -05:00
languages Fix Readability package for Vale 2025-07-23 21:54:58 -05:00
LICENSES Cleanup unused files and code snippets 2025-07-22 19:50:40 -05:00
scratch Add command list for different Typst entrypoints 2025-07-22 22:41:21 -05:00
screenshots Add screenshot 2025-07-20 17:46:23 -05:00
.envrc Add proper licenses 2025-07-15 03:00:42 -05:00
.gitignore Add proper licenses 2025-07-15 03:00:42 -05:00
flake-module.nix Add proper licenses 2025-07-15 03:00:42 -05:00
flake.lock Add Typst live preview 2025-07-19 22:24:09 -05:00
flake.lock.license Add proper licenses 2025-07-15 03:00:42 -05:00
flake.nix Improve formatting in flake.nix 2025-07-23 21:50:40 -05:00
README.md Improve readability 2025-07-23 22:29:29 -05:00

❄️ Nix Flake base

Devshell

Module that loads programs and settings for languages, editors, and the repository. Can enable individual languages and editors in flake.nix as needed. For use in my projects.

Features

  • 🧩 flake-parts: Makes the Flake modular and reusable. Enables clean separation of components.
  • treefmt (with Helix integration): Formats the code in this repository when modifying it. Enables features to check the Flake for consistent formatting.
  • ⌨️ Devshell: Clean shell management. Prints project-specific commands on launch with icons using Nerd Fonts.
  • 💬 Language Server Protocol (LSP): Has language servers for defined languages. Works with Helix text editor. Defines each language's configuration in its own file. Allows for commands that launch different Helix LSP setups.
  • 📝 Language tools: Checks for grammatical and styling issues using Vale, Harper, LTeX (LanguageTool), and Typos. Centralizes the user dictionary for these tools in flake.nix. Loads Vale styles specified in flake.nix.
  • 🌐 qutebrowser: Launches a lightweight browser for supported languages to quickly view visual outputs.
  • ⚙️ Git pre-commit hooks: Lints the files before making a commit. Supports both programming and natural languages.
  • 🏛 REUSE: Simplifies software licensing and checks for errors.

💡 How it works

editors/helix exposes a set of Nix options to write to languages.toml. This file defines the language servers used and the formatters. Although Helix does not accept languages.toml as an argument, it can read from .helix/languages.toml in the project directory. This setup uses a wrapper that automatically creates this file when Helix launches.

Because some configuration options do not allow per-file configurations, a wrapper creation script can generate Helix variations with different configurations. For example, typst-default launches a Helix instance where tinymist points to scratch/typst.typ. typst-alt launches a Helix instance pointing to scratch/typst-alt.typ.

flake-parts allows different modules to build onto the configuration defined in editors/helix. Each language in languages adds its own language and language-server definitions when enabled.

🔧 Usage

Use this template.