diff --git a/hosts/muon/configuration.nix b/hosts/muon/configuration.nix index bda7f8f..8a430c3 100644 --- a/hosts/muon/configuration.nix +++ b/hosts/muon/configuration.nix @@ -24,6 +24,7 @@ in { gnumeric opensnitch opensnitch-ui + obsidian ]; # System diff --git a/modules/home/terminal/development.nix b/modules/home/terminal/development.nix index c110ceb..9ec1fe8 100644 --- a/modules/home/terminal/development.nix +++ b/modules/home/terminal/development.nix @@ -253,10 +253,123 @@ in { options = { tabstop = 2; shiftwidth = 0; + conceallevel = 2; }; notes = { - # orgmode.enable = true; + obsidian = { + enable = true; + setupOpts = { + workspaces = [ + { + name = "agentic"; + path = "~/work/vaults/agentic"; + } + ]; + completion.nvim_cmp = true; + + note_id_func = + lib.generators.mkLuaInline + /* + lua + */ + '' + function(title) + local suffix = "" + if title ~= nil then + -- If title is given, transform it into valid file name. + suffix = title:gsub(" ", "-"):gsub("[^A-Za-z0-9-]", ""):lower() + else + -- If title is nil, just add 4 random uppercase letters to the suffix. + for _ = 1, 4 do + suffix = suffix .. string.char(math.random(65, 90)) + end + end + return tostring(os.date("%Y%m%d%H%M%S")) .. "-" .. suffix + end + ''; + + ui = { + enable = true; + update_debounce = 200; + max_file_length = 5000; + checkboxes = { + " " = { + char = "󰄱"; + hl_group = "ObsidianTodo"; + }; + "x" = { + char = ""; + hl_group = "ObsidianDone"; + }; + ">" = { + char = ""; + hl_group = "ObsidianRightArrow"; + }; + "~" = { + char = "󰰱"; + hl_group = "ObsidianTilde"; + }; + "!" = { + char = ""; + hl_group = "ObsidianImportant"; + }; + }; + bullets = { + char = "•"; + hl_group = "ObsidianBullet"; + }; + external_link_icon = { + char = ""; + hl_group = "ObsidianExtLinkIcon"; + }; + reference_text = {hl_group = "ObsidianRefText";}; + highlight_text = {hl_group = "ObsidianHighlightText";}; + tags = {hl_group = "ObsidianTag";}; + block_ids = {hl_group = "ObsidianBlockID";}; + hl_groups = { + ObsidianTodo = { + bold = true; + fg = "#f78c6c"; + }; + ObsidianDone = { + bold = true; + fg = "#89ddff"; + }; + ObsidianRightArrow = { + bold = true; + fg = "#f78c6c"; + }; + ObsidianTilde = { + bold = true; + fg = "#ff5370"; + }; + ObsidianImportant = { + bold = true; + fg = "#d73128"; + }; + ObsidianBullet = { + bold = true; + fg = "#89ddff"; + }; + ObsidianRefText = { + underline = true; + fg = "#c792ea"; + }; + ObsidianExtLinkIcon = {fg = "#c792ea";}; + ObsidianTag = { + italic = true; + fg = "#89ddff"; + }; + ObsidianBlockID = { + italic = true; + fg = "#89ddff"; + }; + ObsidianHighlightText = {bg = "#75662e";}; + }; + }; + }; + }; todo-comments.enable = true; }; diff --git a/modules/nixos/unfree/default.nix b/modules/nixos/unfree/default.nix index a8f13d0..4190d50 100644 --- a/modules/nixos/unfree/default.nix +++ b/modules/nixos/unfree/default.nix @@ -15,5 +15,5 @@ in { builtins.elem (lib.getName pkg) ((mkPackages "steam") ++ (mkPackages "minecraft") ++ (mkPackages "nvidia") - ++ (mkPackages "valheim") ++ ["stremio-shell" "stremio-server" "cursor-cli"]); + ++ (mkPackages "valheim") ++ ["stremio-shell" "stremio-server" "cursor-cli" "obsidian"]); }