This commit is contained in:
2025-11-25 10:11:11 +01:00
parent f530957112
commit ef0b2b07ef
9 changed files with 240 additions and 1 deletions

View File

@@ -0,0 +1,2 @@
The configuration I use is located in [`/modules/home-manager/programs/nixvim.nix`](../../programs/nixvim.nix).
This module has to be included in home manager first as shown in [`/modules/home-manager/default.nix`](../../default.nix)

View File

@@ -12,6 +12,9 @@
inherit pkgs hostname username;
};
modules = [
./plugins/strudel.nix
./plugins/tidal.nix
./aerial.nix
./auto-save.nix
./auto-format.nix
@@ -43,6 +46,7 @@
./languages/python.nix
./languages/rust.nix
./languages/shell.nix
./languages/strudel.nix
./languages/svelte.nix
./remaps/half-page-scroll.nix

View File

@@ -0,0 +1,28 @@
{
lib,
pkgs,
config,
...
}:
let
cfg = config.presets.languages.strudel;
in
{
options.presets.languages.strudel = {
enable = lib.mkEnableOption "Strudel";
};
config = lib.mkIf cfg.enable {
plugins = {
strudel.enable = true;
web-devicons.customIcons = {
str = {
icon = " ";
color = "#34E2E1";
cterm_color = "14";
name = "Strudel";
};
};
};
};
}

View File

@@ -0,0 +1,59 @@
{
lib,
...
}:
let
inherit (lib.nixvim) defaultNullOpts;
in
lib.nixvim.plugins.mkNeovimPlugin {
name = "strudel";
package = "strudel-nvim";
maintainers = [ lib.maintainers.theaninova ];
description = "A Neovim based strudel.cc controller, live coding using Strudel from Neovim.";
settingsOptions = {
ui = {
maximise_menu_panel = defaultNullOpts.mkBool true ''
Maximise the menu panel
'';
hide_menu_panel = defaultNullOpts.mkBool false ''
Hide the Strudel menu panel (and handle)
'';
hide_top_bar = defaultNullOpts.mkBool false ''
Hide the default Strudel top bar (controls)
'';
hide_code_editor = defaultNullOpts.mkBool false ''
Hide the Strudel code editor
'';
hide_error_display = defaultNullOpts.mkBool false ''
Hide the Strudel eval error display under the editor
'';
};
start_on_launch = defaultNullOpts.mkBool true ''
Automatically start playback when launching Strudel
'';
update_on_save = defaultNullOpts.mkBool false ''
Set to `true` to automatically trigger the code evaluation after saving the buffer content
Only works if the playback was already started (doesn't start the playback on save)
'';
sync_cursor = defaultNullOpts.mkBool true ''
Enable two-way cursor position sync between Neovim and Strudel editor
'';
report_eval_errors = defaultNullOpts.mkBool true ''
Report evaluation errors from Strudel as Neovim notifications
'';
custom_css_file = defaultNullOpts.mkStr null ''
Path to a custom CSS file to style the Strudel web editor (base64-encoded and injected at launch)
This allows you to override or extend the default Strudel UI appearance
'';
headless = defaultNullOpts.mkBool false ''
Headless mode: set to `true` to run the browser without launching a window
'';
browser_data_dir = defaultNullOpts.mkStr "~/.cache/strudel-nvim/" ''
Path to the directory where Strudel browser user data (cookies, sessions, etc.) is stored
'';
browser_exec_path = defaultNullOpts.mkStr null ''
Path to a (chromium-based) browser executable of choice
'';
};
}

View File

@@ -0,0 +1,13 @@
{
lib,
...
}:
let
inherit (lib.nixvim) defaultNullOpts;
in
lib.nixvim.plugins.mkVimPlugin {
name = "vim-tidal";
package = "vim-tidal";
maintainers = [ lib.maintainers.theaninova ];
description = "Vim plugin for TidalCycles";
}

View File

@@ -77,6 +77,7 @@
python.enable = true;
rust.enable = true;
shell.enable = true;
strudel.enable = true;
svelte.enable = true;
};
remaps = {
@@ -94,6 +95,7 @@
origami.enable = false;
nvim-surround.enable = true;
fidget.enable = true;
vim-tidal.enable = true;
treesitter-context = {
enable = false; # TODO: looks weird with Neovide
settings.line_numbers = false;