- [ ] fix workspace 4 icon
- [ ] fix startup tmux session
+
+## Fish
+
+- [ ] keybind to accept autocomplete other than right arrow
--- /dev/null
+{
+ config,
+ lib,
+ ...
+}: {
+ options = {
+ dotfiles = {
+ mutable = lib.mkEnableOption "mutable dotfiles";
+
+ path = lib.mkOption {
+ type = lib.types.path;
+ apply = toString;
+ default = "${config.home.homeDirectory}/.dotfiles/";
+ example = "${config.home.homeDirectory}/.dotfiles/astronvim-config";
+ description = "Location of the dotfiles working copy";
+ };
+ };
+ };
+}
"type": "github"
}
},
- "crane": {
- "locked": {
- "lastModified": 1736032295,
- "narHash": "sha256-QNRlMxQTT3rdgsQb3QxljO14kE8xxdDXNJ/4jIm4u3Q=",
- "owner": "ipetkov",
- "repo": "crane",
- "rev": "9fa361afe873c740d5ca10ff526463d5807eab88",
- "type": "github"
- },
- "original": {
- "owner": "ipetkov",
- "repo": "crane",
- "type": "github"
- }
- },
"firefox-gnome-theme": {
"flake": false,
"locked": {
"type": "github"
}
},
- "flake-compat": {
- "flake": false,
- "locked": {
- "lastModified": 1751685974,
- "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
- "ref": "refs/heads/main",
- "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
- "revCount": 92,
- "type": "git",
- "url": "https://git.lix.systems/lix-project/flake-compat.git"
- },
- "original": {
- "type": "git",
- "url": "https://git.lix.systems/lix-project/flake-compat.git"
- }
- },
- "flake-compat_2": {
- "flake": false,
- "locked": {
- "lastModified": 1747046372,
- "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
- "owner": "edolstra",
- "repo": "flake-compat",
- "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
- "type": "github"
- },
- "original": {
- "owner": "edolstra",
- "repo": "flake-compat",
- "type": "github"
- }
- },
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
}
},
"flake-parts_2": {
- "inputs": {
- "nixpkgs-lib": [
- "nvf",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1759362264,
- "narHash": "sha256-wfG0S7pltlYyZTM+qqlhJ7GMw2fTF4mLKCIVhLii/4M=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "758cf7296bee11f1706a574c77d072b8a7baa881",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_3": {
- "inputs": {
- "nixpkgs-lib": [
- "schizofox",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1754487366,
- "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_4": {
- "inputs": {
- "nixpkgs-lib": "nixpkgs-lib"
- },
- "locked": {
- "lastModified": 1735774679,
- "narHash": "sha256-soePLBazJk0qQdDVhdbM98vYdssfs3WFedcq+raipRI=",
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "rev": "f2f7418ce0ab4a5309a4596161d154cfc877af66",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "flake-parts",
- "type": "github"
- }
- },
- "flake-parts_5": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"type": "github"
}
},
- "hercules-ci-effects": {
- "inputs": {
- "flake-parts": [
- "schizofox",
- "nixpak",
- "flake-parts"
- ],
- "nixpkgs": [
- "schizofox",
- "nixpak",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1755233722,
- "narHash": "sha256-AavrbMltJKcC2Fx0lfJoZfmy7g87ebXU0ddVenhajLA=",
- "owner": "hercules-ci",
- "repo": "hercules-ci-effects",
- "rev": "99e03e72e3f7e13506f80ef9ebaedccb929d84d0",
- "type": "github"
- },
- "original": {
- "owner": "hercules-ci",
- "repo": "hercules-ci-effects",
- "type": "github"
- }
- },
"home-manager": {
"inputs": {
"nixpkgs": [
"type": "github"
}
},
- "home-manager_2": {
- "inputs": {
- "nixpkgs": [
- "schizofox",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1756261190,
- "narHash": "sha256-eiy0klFK5EVJLNilutR7grsZN/7Itj9DyD75eyOf83k=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "77f348da3176dc68b20a73dab94852a417daf361",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "mnw": {
- "locked": {
- "lastModified": 1758834834,
- "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=",
- "owner": "Gerg-L",
- "repo": "mnw",
- "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001",
- "type": "github"
- },
- "original": {
- "owner": "Gerg-L",
- "repo": "mnw",
- "type": "github"
- }
- },
- "nixpak": {
- "inputs": {
- "flake-parts": [
- "schizofox",
- "flake-parts"
- ],
- "hercules-ci-effects": "hercules-ci-effects",
- "nixpkgs": [
- "schizofox",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1755744259,
- "narHash": "sha256-Geu6lISTz97euRVTx4MSksRNafEEXzClN0b15aT/IrE=",
- "owner": "nixpak",
- "repo": "nixpak",
- "rev": "52c4b650843c3aec1ca3a4200c6b7bb7ed0faaed",
- "type": "github"
- },
- "original": {
- "owner": "nixpak",
- "repo": "nixpak",
- "type": "github"
- }
- },
"nixpkgs": {
"locked": {
"lastModified": 1761373498,
"type": "github"
}
},
- "nixpkgs-lib": {
- "locked": {
- "lastModified": 1735774519,
- "narHash": "sha256-CewEm1o2eVAnoqb6Ml+Qi9Gg/EfNAxbRx1lANGVyoLI=",
- "type": "tarball",
- "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
- },
- "original": {
- "type": "tarball",
- "url": "https://github.com/NixOS/nixpkgs/archive/e9b51731911566bbf7e4895475a87fe06961de0b.tar.gz"
- }
- },
"nixpkgs_2": {
"locked": {
"lastModified": 1761373498,
"type": "github"
}
},
- "nixpkgs_3": {
- "locked": {
- "lastModified": 1759386674,
- "narHash": "sha256-wg1Lz/1FC5Q13R+mM5a2oTV9TA9L/CHHTm3/PiLayfA=",
- "owner": "nixos",
- "repo": "nixpkgs",
- "rev": "625ad6366178f03acd79f9e3822606dd7985b657",
- "type": "github"
- },
- "original": {
- "owner": "nixos",
- "ref": "nixpkgs-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "nixpkgs_4": {
- "locked": {
- "lastModified": 1756266583,
- "narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable-small",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
"nur": {
"inputs": {
"flake-parts": "flake-parts",
"type": "github"
}
},
- "nvf": {
- "inputs": {
- "flake-compat": "flake-compat",
- "flake-parts": "flake-parts_2",
- "mnw": "mnw",
- "nixpkgs": "nixpkgs_3",
- "systems": "systems"
- },
- "locked": {
- "lastModified": 1761486540,
- "narHash": "sha256-O0VNqERaZ1H+4P3XwHNd8wVCqUcGtMPJT1z4cJodRFc=",
- "owner": "notashelf",
- "repo": "nvf",
- "rev": "4b904de36157035fa3dddf0312a4242e5d0d9bd0",
- "type": "github"
- },
- "original": {
- "owner": "notashelf",
- "repo": "nvf",
- "type": "github"
- }
- },
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nur": "nur",
- "nvf": "nvf",
- "schizofox": "schizofox",
"stylix": "stylix"
}
},
- "schizofox": {
- "inputs": {
- "flake-compat": "flake-compat_2",
- "flake-parts": "flake-parts_3",
- "home-manager": "home-manager_2",
- "nixpak": "nixpak",
- "nixpkgs": "nixpkgs_4",
- "searx-randomizer": "searx-randomizer",
- "systems": "systems_2"
- },
- "locked": {
- "lastModified": 1756308127,
- "narHash": "sha256-BGHVikTQAMlGuxhJ3BHh5meuylDh1CZd8I3XGgIK5Hc=",
- "owner": "schizofox",
- "repo": "schizofox",
- "rev": "428833d6a0fbc577b05de130a9bc3c99b027d8da",
- "type": "github"
- },
- "original": {
- "owner": "schizofox",
- "repo": "schizofox",
- "type": "github"
- }
- },
- "searx-randomizer": {
- "inputs": {
- "crane": "crane",
- "flake-parts": "flake-parts_4",
- "nixpkgs": [
- "schizofox",
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1736054833,
- "narHash": "sha256-fSvHee00LQpndvJ0N4ZahRuoAQd06g8ecdUzfNPLvLk=",
- "owner": "schizofox",
- "repo": "searx-randomizer",
- "rev": "63d6fed21ae5a6608bac71665887a432781161c6",
- "type": "github"
- },
- "original": {
- "owner": "schizofox",
- "repo": "searx-randomizer",
- "type": "github"
- }
- },
"stylix": {
"inputs": {
"base16": "base16",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
- "flake-parts": "flake-parts_5",
+ "flake-parts": "flake-parts_2",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur_2",
- "systems": "systems_3",
+ "systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"type": "github"
}
},
- "systems_2": {
- "locked": {
- "lastModified": 1689347949,
- "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
- "owner": "nix-systems",
- "repo": "default-linux",
- "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default-linux",
- "type": "github"
- }
- },
- "systems_3": {
- "locked": {
- "lastModified": 1681028828,
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
- "owner": "nix-systems",
- "repo": "default",
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
- "type": "github"
- },
- "original": {
- "owner": "nix-systems",
- "repo": "default",
- "type": "github"
- }
- },
"tinted-foot": {
"flake": false,
"locked": {
url = "github:nix-community/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
- nvf = {
- url = "github:notashelf/nvf";
- };
- schizofox.url = "github:schizofox/schizofox";
nur = {
url = "github:nix-community/NUR";
#inputs.nixpkgs.follows = "nixpkgs";
nixpkgs,
home-manager,
stylix,
- nvf,
- schizofox,
nur,
...
} @ inputs: let
config.allowUnfree = true;
overlays = [nur.overlay];
};
- skullNeovim = nvf.lib.neovimConfiguration {
- inherit pkgs;
- modules = [
- ./neovim.nix
- ];
- extraSpecialArgs = {inherit inputs;};
- };
in {
nixosConfigurations = {
home = lib.nixosSystem {
modules = [
stylix.homeModules.stylix
#nur.modules.nixos.default
+ ./dotfiles.nix
./home.nix
+ {dotfiles.mutable = true;}
];
- extraSpecialArgs = {inherit inputs skullNeovim;};
+ extraSpecialArgs = {inherit inputs;};
};
};
- packages.${system}.skull-neovim = skullNeovim.neovim;
};
}
window-save-state = "always";
copy-on-select = "clipboard";
clipboard-read = "allow";
-
clipboard-write = "allow";
confirm-close-surface = false;
auto-update = "off";
lib,
pkgs,
inputs,
- skullNeovim,
...
}: {
imports = [
./sh.nix
./ghostty.nix
./tmux.nix
+ ./neovim.nix
./hyprland/hyprland.nix
./hyprpaper.nix
./hypridle.nix
./freetube.nix
./qutebrowser.nix
./librewolf.nix
- #./schizofox.nix
];
# Home Manager needs a bit of information about you and the paths it should
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = with pkgs; [
- # # Adds the 'hello':wq command to your environment. It prints a friendly
- # # "Hello, world!" when run.
audacity
mpc
discord
vlc
- skullNeovim.neovim
-
protonvpn-cli
protonvpn-gui
qbittorrent
# /etc/profiles/per-user/andrew/etc/profile.d/hm-session-vars.sh
#
home.sessionVariables = {
- EDITOR = "nvim";
- VISUAL = "nvim";
NIXOS_OZONE_WL = "1";
};
];
input = {
kb_layout = "us";
- kb_options = "caps:escape,altwin:swap_lalt_lwin";
+ kb_options = "caps:escape_shifted_capslock,altwin:swap_lalt_lwin";
numlock_by_default = true;
};
pkgs,
inputs,
...
-}: {
- config.vim = {
- viAlias = true;
- vimAlias = true;
- debugMode = {
- enable = false;
- level = 16;
- logFile = "/tmp/nvim.log";
- };
-
- spellcheck = {
- enable = true;
- programmingWordlist.enable = true;
- };
-
- lsp = {
- # This must be enabled for the language modules to hook into
- # the LSP API.
- enable = true;
-
- formatOnSave = true;
- lspkind.enable = false;
- lightbulb.enable = true;
- lspsaga.enable = false;
- trouble.enable = true;
- lspSignature.enable = !true; # conflicts with blink in maximal
- otter-nvim.enable = true;
- nvim-docs-view.enable = true;
- };
-
- debugger = {
- nvim-dap = {
- enable = true;
- ui.enable = true;
- };
- };
-
- # This section does not include a comprehensive list of available language modules.
- # To list all available language module options, please visit the nvf manual.
- languages = {
- enableFormat = true;
- enableTreesitter = true;
- enableExtraDiagnostics = true;
-
- # Languages that will be supported in default and maximal configurations.
- nix.enable = true;
- markdown = {
- enable = true;
- extensions.render-markdown-nvim = {
- enable = true;
- setupOpts = {
- enabled = true;
- render_modes = ["n" "c" "t"];
- max_file_size = 10.0;
- debounce = 100;
- preset = "none";
- log_level = "error";
- log_runtime = false;
- file_types = ["markdown"];
- #ignore = ''
- # function()
- # return false
- # end
- #'';
- #nested = true;
- change_events = {};
- #restart_highlighter = false;
- injections = {
- gitcommit = {
- enabled = true;
- query = ''
- ((message) @injection.content
- (#set! injection.combined)
- (#set! injection.include-children)
- (#set! injection.language "markdown"))
- '';
- };
- };
- patterns = {
- markdown = {
- disable = true;
- directives = [
- {
- id = 17;
- name = "conceal_lines";
- }
- {
- id = 18;
- name = "conceal_lines";
- }
- ];
- };
- };
- anti_conceal = {
- enabled = true;
- disabled_modes = false;
- above = 0;
- below = 0;
- ignore = {
- code_background = true;
- indent = true;
- sign = true;
- virtual_lines = true;
- };
- };
- padding = {
- highlight = "Normal";
- };
- latex = {
- enabled = false; # Disabled to resolve :checkhealth warnings
- };
- #on = {
- # attach = ''
- # function() end
- # '';
- # initial = ''
- # function() end
- # '';
- # render = ''
- # function() end
- # '';
- # clear = ''
- # function() end
- # '';
- #};
- #completions = {
- # blink = {enabled = false;};
- # coq = {enabled = false;};
- # lsp = {enabled = false;};
- # filter = {
- # callout = ''
- # function()
- # return true
- # end
- # '';
- # checkbox = ''
- # function()
- # return true
- # end
- # '';
- # };
- #};
- heading = {
- enabled = true;
- render_modes = false;
- atx = true;
- setext = true;
- sign = true;
- icons = [" " " " " " " " " " " "];
- position = "overlay";
- signs = [" "];
- width = "full";
- left_margin = 0;
- left_pad = 0;
- right_pad = 0;
- min_width = 0;
- border = false;
- border_virtual = false;
- border_prefix = false;
- above = "▄";
- below = "▀";
- backgrounds = [
- "RenderMarkdownH1Bg"
- "RenderMarkdownH2Bg"
- "RenderMarkdownH3Bg"
- "RenderMarkdownH4Bg"
- "RenderMarkdownH5Bg"
- "RenderMarkdownH6Bg"
- ];
- foregrounds = [
- "RenderMarkdownH1"
- "RenderMarkdownH2"
- "RenderMarkdownH3"
- "RenderMarkdownH4"
- "RenderMarkdownH5"
- "RenderMarkdownH6"
- ];
- custom = {};
- };
- paragraph = {
- enabled = true;
- render_modes = false;
- left_margin = 0;
- indent = 0;
- min_width = 0;
- };
- code = {
- enabled = true;
- render_modes = false;
- sign = true;
- conceal_delimiters = true;
- language = true;
- position = "left";
- language_icon = true;
- language_name = true;
- language_info = true;
- language_pad = 0;
- disable_background = ["diff"];
- width = "full";
- left_margin = 0;
- left_pad = 0;
- right_pad = 0;
- min_width = 0;
- border = "hide";
- language_border = "█";
- language_left = "";
- language_right = "";
- above = "▄";
- below = "▀";
- inline = true;
- inline_left = "";
- inline_right = "";
- inline_pad = 0;
- highlight = "RenderMarkdownCode";
- highlight_info = "RenderMarkdownCodeInfo";
- highlight_language = null;
- highlight_border = "RenderMarkdownCodeBorder";
- highlight_fallback = "RenderMarkdownCodeFallback";
- highlight_inline = "RenderMarkdownCodeInline";
- style = "full";
- };
- dash = {
- enabled = true;
- render_modes = false;
- icon = "─";
- width = "full";
- left_margin = 0;
- highlight = "RenderMarkdownDash";
- };
- document = {
- enabled = true;
- render_modes = false;
- conceal = {
- char_patterns = {};
- line_patterns = {};
- };
- };
- bullet = {
- enabled = true;
- render_modes = false;
- icons = ["●" "○" "◆" "◇"];
- # ordered_icons = ''
- # function(ctx)
- # local value = vim.trim(ctx.value)
- # local index = tonumber(value:sub(1, #value - 1))
- # return ('%d.'):format(index > 1 and index or ctx.index)
- # end
- # '';
- left_pad = 0;
- right_pad = 0;
- highlight = "RenderMarkdownBullet";
- scope_highlight = {};
- };
- checkbox = {
- enabled = true;
- render_modes = false;
- bullet = false;
- right_pad = 1;
- unchecked = {
- icon = " ";
- highlight = "RenderMarkdownUnchecked";
- scope_highlight = null;
- };
- checked = {
- icon = " ";
- highlight = "RenderMarkdownChecked";
- scope_highlight = null;
- };
- custom = {
- todo = {
- raw = "[-]";
- rendered = " ";
- highlight = "RenderMarkdownTodo";
- scope_highlight = null;
- };
- };
- };
- quote = {
- enabled = true;
- render_modes = false;
- icon = "▋";
- repeat_linebreak = false;
- highlight = [
- "RenderMarkdownQuote1"
- "RenderMarkdownQuote2"
- "RenderMarkdownQuote3"
- "RenderMarkdownQuote4"
- "RenderMarkdownQuote5"
- "RenderMarkdownQuote6"
- ];
- };
- pipe_table = {
- enabled = true;
- render_modes = false;
- preset = "none";
- cell = "padded";
- #cell_offset = ''
- # function()
- # return 0
- # end
- #'';
- padding = 1;
- min_width = 0;
- border = [
- "┌"
- "┬"
- "┐"
- "├"
- "┼"
- "┤"
- "└"
- "┴"
- "┘"
- "│"
- "─"
- ];
- border_enabled = true;
- border_virtual = false;
- alignment_indicator = "━";
- head = "RenderMarkdownTableHead";
- row = "RenderMarkdownTableRow";
- filler = "RenderMarkdownTableFill";
- style = "full";
- };
- callout = {
- note = {
- raw = "[!NOTE]";
- rendered = " Note";
- highlight = "RenderMarkdownInfo";
- category = "github";
- };
- tip = {
- raw = "[!TIP]";
- rendered = " Tip";
- highlight = "RenderMarkdownSuccess";
- category = "github";
- };
- important = {
- raw = "[!IMPORTANT]";
- rendered = " Important";
- highlight = "RenderMarkdownHint";
- category = "github";
- };
- warning = {
- raw = "[!WARNING]";
- rendered = " Warning";
- highlight = "RenderMarkdownWarn";
- category = "github";
- };
- caution = {
- raw = "[!CAUTION]";
- rendered = " Caution";
- highlight = "RenderMarkdownError";
- category = "github";
- };
- abstract = {
- raw = "[!ABSTRACT]";
- rendered = " Abstract";
- highlight = "RenderMarkdownInfo";
- category = "obsidian";
- };
- summary = {
- raw = "[!SUMMARY]";
- rendered = " Summary";
- highlight = "RenderMarkdownInfo";
- category = "obsidian";
- };
- tldr = {
- raw = "[!TLDR]";
- rendered = " Tldr";
- highlight = "RenderMarkdownInfo";
- category = "obsidian";
- };
- info = {
- raw = "[!INFO]";
- rendered = " Info";
- highlight = "RenderMarkdownInfo";
- category = "obsidian";
- };
- todo = {
- raw = "[!TODO]";
- rendered = " Todo";
- highlight = "RenderMarkdownInfo";
- category = "obsidian";
- };
- hint = {
- raw = "[!HINT]";
- rendered = " Hint";
- highlight = "RenderMarkdownSuccess";
- category = "obsidian";
- };
- success = {
- raw = "[!SUCCESS]";
- rendered = " Success";
- highlight = "RenderMarkdownSuccess";
- category = "obsidian";
- };
- check = {
- raw = "[!CHECK]";
- rendered = " Check";
- highlight = "RenderMarkdownSuccess";
- category = "obsidian";
- };
- done = {
- raw = "[!DONE]";
- rendered = " Done";
- highlight = "RenderMarkdownSuccess";
- category = "obsidian";
- };
- question = {
- raw = "[!QUESTION]";
- rendered = " Question";
- highlight = "RenderMarkdownWarn";
- category = "obsidian";
- };
- help = {
- raw = "[!HELP]";
- rendered = " Help";
- highlight = "RenderMarkdownWarn";
- category = "obsidian";
- };
- faq = {
- raw = "[!FAQ]";
- rendered = " Faq";
- highlight = "RenderMarkdownWarn";
- category = "obsidian";
- };
- attention = {
- raw = "[!ATTENTION]";
- rendered = " Attention";
- highlight = "RenderMarkdownWarn";
- category = "obsidian";
- };
- failure = {
- raw = "[!FAILURE]";
- rendered = " Failure";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- fail = {
- raw = "[!FAIL]";
- rendered = " Fail";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- missing = {
- raw = "[!MISSING]";
- rendered = " Missing";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- danger = {
- raw = "[!DANGER]";
- rendered = " Danger";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- error = {
- raw = "[!ERROR]";
- rendered = " Error";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- bug = {
- raw = "[!BUG]";
- rendered = " Bug";
- highlight = "RenderMarkdownError";
- category = "obsidian";
- };
- example = {
- raw = "[!EXAMPLE]";
- rendered = " Example";
- highlight = "RenderMarkdownHint";
- category = "obsidian";
- };
- quote = {
- raw = "[!QUOTE]";
- rendered = " Quote";
- highlight = "RenderMarkdownQuote";
- category = "obsidian";
- };
- cite = {
- raw = "[!CITE]";
- rendered = " Cite";
- highlight = "RenderMarkdownQuote";
- category = "obsidian";
- };
- };
- link = {
- enabled = true;
- render_modes = false;
- footnote = {
- enabled = true;
- superscript = true;
- prefix = "";
- suffix = "";
- };
- image = " ";
- email = " ";
- hyperlink = " ";
- highlight = "RenderMarkdownLink";
- wiki = {
- icon = " ";
- #body = ''
- # function()
- # return nil
- # end
- #'';
- highlight = "RenderMarkdownWikiLink";
- scope_highlight = null;
- };
- custom = {
- web = {
- pattern = "^http";
- icon = " ";
- };
- discord = {
- pattern = "discord%.com";
- icon = " ";
- };
- github = {
- pattern = "github%.com";
- icon = " ";
- };
- gitlab = {
- pattern = "gitlab%.com";
- icon = " ";
- };
- google = {
- pattern = "google%.com";
- icon = " ";
- };
- neovim = {
- pattern = "neovim%.io";
- icon = " ";
- };
- reddit = {
- pattern = "reddit%.com";
- icon = " ";
- };
- stackoverflow = {
- pattern = "stackoverflow%.com";
- icon = " ";
- };
- wikipedia = {
- pattern = "wikipedia%.org";
- icon = " ";
- };
- youtube = {
- pattern = "youtube%.com";
- icon = " ";
- };
- };
- };
- sign = {
- enabled = true;
- highlight = "RenderMarkdownSign";
- };
- inline_highlight = {
- enabled = true;
- render_modes = false;
- highlight = "RenderMarkdownInlineHighlight";
- };
- indent = {
- enabled = false;
- render_modes = false;
- per_level = 2;
- skip_level = 1;
- skip_heading = false;
- icon = "▎";
- priority = 0;
- highlight = "RenderMarkdownIndent";
- };
- html = {
- enabled = true;
- render_modes = false;
- comment = {
- conceal = true;
- text = null;
- highlight = "RenderMarkdownHtmlComment";
- };
- tag = {};
- };
- win_options = {
- conceallevel = {
- # default = "vim.o.conceallevel";
- rendered = 3;
- };
- concealcursor = {
- #default = "vim.o.concealcursor";
- #rendered = "";
- };
- };
- overrides = {
- buflisted = {};
- buftype = {
- nofile = {
- render_modes = true;
- padding = {highlight = "NormalFloat";};
- sign = {enabled = false;};
- };
- };
- filetype = {};
- };
- custom_handlers = {};
- #yaml = {
- # enabled = true;
- # render_modes = false;
- #};
- };
- };
- };
-
- # Languages that are enabled in the maximal configuration.
- bash.enable = true;
- clang.enable = true;
- css.enable = true;
- html.enable = true;
- sql.enable = true;
- java.enable = true;
- kotlin.enable = true;
- ts.enable = true;
- go.enable = true;
- lua.enable = true;
- zig.enable = true;
- python.enable = true;
- typst.enable = true;
- rust = {
- enable = true;
- crates.enable = true;
- };
-
- # Language modules that are not as common.
- assembly.enable = false;
- astro.enable = false;
- nu.enable = false;
- csharp.enable = false;
- julia.enable = false;
- vala.enable = false;
- scala.enable = false;
- r.enable = false;
- gleam.enable = false;
- dart.enable = false;
- ocaml.enable = false;
- elixir.enable = false;
- haskell.enable = false;
- ruby.enable = false;
- fsharp.enable = false;
-
- tailwind.enable = false;
- svelte.enable = false;
-
- # Nim LSP is broken on Darwin and therefore
- # should be disabled by default. Users may still enable
- # `vim.languages.vim` to enable it, this does not restrict
- # that.
- # See: <https://github.com/PMunch/nimlsp/issues/178#issue-2128106096>
- nim.enable = false;
- };
-
- visuals = {
- nvim-scrollbar.enable = true;
- nvim-web-devicons.enable = true;
- nvim-cursorline.enable = true;
- cinnamon-nvim.enable = true;
- fidget-nvim.enable = true;
-
- highlight-undo.enable = true;
- indent-blankline.enable = true;
-
- # Fun
- cellular-automaton.enable = false;
- };
-
- statusline = {
- lualine = {
- enable = true;
- theme = "catppuccin";
- };
- };
-
- theme = {
- enable = true;
- name = "catppuccin";
- style = "mocha";
- transparent = false;
- };
-
- autopairs.nvim-autopairs.enable = true;
-
- # nvf provides various autocomplete options. The tried and tested nvim-cmp
- # is enabled in default package, because it does not trigger a build. We
- # enable blink-cmp in maximal because it needs to build its rust fuzzy
- # matcher library.
- autocomplete = {
- nvim-cmp.enable = !true;
- blink-cmp.enable = true;
- };
-
- snippets.luasnip.enable = true;
-
- filetree = {
- neo-tree = {
- enable = true;
- };
- };
-
- tabline = {
- nvimBufferline.enable = true;
- };
-
- treesitter.context.enable = true;
-
- binds = {
- whichKey.enable = true;
- cheatsheet.enable = true;
- };
-
- keymaps = [
- {
- mode = "n";
- key = "<leader>?";
- action = ":Cheatsheet<CR>";
- }
- {
- mode = "n";
- key = "<leader>e";
- action = ":Neotree toggle<CR>";
- }
- ];
-
- telescope.enable = true;
-
- git = {
- enable = true;
- gitsigns.enable = true;
- gitsigns.codeActions.enable = false; # throws an annoying debug message
- neogit.enable = true;
- };
-
- minimap = {
- minimap-vim.enable = false;
- codewindow.enable = true; # lighter, faster, and uses lua for configuration
- };
-
- dashboard = {
- dashboard-nvim.enable = false;
- alpha.enable = true;
- };
-
- notify = {
- nvim-notify.enable = true;
- };
-
- projects = {
- project-nvim.enable = true;
- };
-
- utility = {
- ccc.enable = false;
- vim-wakatime.enable = false;
- diffview-nvim.enable = true;
- yanky-nvim.enable = false;
- icon-picker.enable = true;
- surround.enable = true;
- leetcode-nvim.enable = true;
- multicursors.enable = true;
- smart-splits.enable = true;
- undotree.enable = true;
- nvim-biscuits.enable = true;
-
- motion = {
- hop.enable = true;
- leap.enable = true;
- precognition.enable = true;
- };
- images = {
- image-nvim.enable = false;
- img-clip.enable = true;
- };
- };
-
- notes = {
- obsidian.enable = false; # FIXME: neovim fails to build if obsidian is enabled
- neorg.enable = false;
- orgmode.enable = false;
- mind-nvim.enable = true;
- todo-comments.enable = true;
- };
-
- terminal = {
- toggleterm = {
- enable = true;
- lazygit.enable = true;
- };
- };
-
- ui = {
- borders.enable = true;
- noice.enable = true;
- colorizer.enable = true;
- modes-nvim.enable = false; # the theme looks terrible with catppuccin
- illuminate.enable = true;
- breadcrumbs = {
- enable = true;
- navbuddy.enable = true;
- };
- smartcolumn = {
- enable = true;
- setupOpts.custom_colorcolumn = {
- # this is a freeform module, it's `buftype = int;` for configuring column position
- nix = "110";
- ruby = "120";
- java = "130";
- go = ["90" "130"];
- };
- };
- fastaction.enable = true;
- };
-
- assistant = {
- chatgpt.enable = false;
- copilot = {
- enable = false;
- cmp.enable = true;
- };
- codecompanion-nvim.enable = false;
- avante-nvim.enable = true;
- };
-
- session = {
- nvim-session-manager.enable = false;
- };
-
- gestures = {
- gesture-nvim.enable = false;
- };
-
- comments = {
- comment-nvim.enable = true;
- };
-
- presence = {
- neocord.enable = false;
- };
- };
+}: let
+ filePath = "${config.dotfiles.path}/astronvim-config/init.lua";
+ configSrc =
+ if !config.dotfiles.mutable
+ then ./init.lua
+ else config.lib.file.mkOutOfStoreSymlink filePath;
+in {
+ home.packages = [pkgs.neovim];
+ xdg.configFile."neovim/config.conf".source = configSrc;
}
disableConfirmationPrompt = true;
mouse = true;
newSession = true;
+ plugins = with pkgs.tmuxPlugins; [sensible];
extraConfig = ''
- unbind C-b
- set -g prefix M-b
- bind M-b send-prefix
+ unbind %
+ unbind '"'
+ bind -n M-\\ split-window -h -c "#{pane_current_path}"
+ bind -n M-- split-window -v -c "#{pane_current_path}"
- unbind %
- unbind '"'
- bind -n M-\\ split-window -h -c "#{pane_current_path}"
- bind -n M-- split-window -v -c "#{pane_current_path}"
-
- bind -n M-c new-window -c "#{pane_current_path}"
- bind -n M-q kill-window
- bind -n M-w kill-pane
- bind -n M-r command-prompt -I "#W" "rename-window '%%'"
+ bind -n M-c new-window -c "#{pane_current_path}"
+ bind -n M-q kill-window
+ bind -n M-w kill-pane
+ bind -n M-r command-prompt -I "#W" "rename-window '%%'"
bind -n M-Space display-popup -E "\
- tmux list-sessions -F '#{session_name}' 2>/dev/null | \
- fzf --reverse \
- --header='Alt+Space → Switch or Create Session' \
- --border=rounded \
- --height=40% \
- --print-query \
- --preview='tmux capture-pane -p -t {} 2>/dev/null || echo \"(new session)\"' | \
- tail -1 | \
- xargs -I {} sh -c '\
- if tmux has-session -t \"{}\" 2>/dev/null; then \
- tmux switch-client -t \"{}\"; \
- else \
- tmux new-session -d -s \"{}\" && tmux switch-client -t \"{}\"; \
- fi' \
- set -g escape-time 10
- set -s escape-time 10
- bind -n M-1 select-window -t 1
- bind -n M-2 select-window -t 2
- bind -n M-3 select-window -t 3
- bind -n M-4 select-window -t 4
- bind -n M-5 select-window -t 5
- bind -n M-6 select-window -t 6
- bind -n M-7 select-window -t 7
- bind -n M-8 select-window -t 8
- bind -n M-9 select-window -t 9
+ tmux list-sessions -F '#{session_name}' 2>/dev/null | \
+ fzf --reverse \
+ --header='Alt+Space → Switch or Mreate Session' \
+ --border=rounded \
+ --height=40% \
+ --print-query \
+ --preview='tmux capture-pane -p -t {} 2>/dev/null || echo \"(new session)\"' | \
+ tail -1 | \
+ xargs -I {} sh -c '\
+ if tmux has-session -t \"{}\" 2>/dev/null; then \
+ tmux switch-client -t \"{}\"; \
+ else \
+ tmux new-session -d -s \"{}\" && tmux switch-client -t \"{}\"; \
+ fi' \
+ set -g escape-time 0
+ set -sg repeat-time 1000
+ bind r source-file ~/.config/tmux/tmux.conf \; display "Monfig reloaded!"
+
+
+ bind -n M-1 select-window -t 1
+ bind -n M-2 select-window -t 2
+ bind -n M-3 select-window -t 3
+ bind -n M-4 select-window -t 4
+ bind -n M-5 select-window -t 5
+ bind -n M-6 select-window -t 6
+ bind -n M-7 select-window -t 7
+ bind -n M-8 select-window -t 8
+ bind -n M-9 select-window -t 9
- bind -n M-h select-pane -L
- bind -n M-j select-pane -D
- bind -n M-k select-pane -U
- bind -n M-l select-pane -R
+ bind -n M-h select-pane -L
+ bind -n M-j select-pane -D
+ bind -n M-k select-pane -U
+ bind -n M-l select-pane -R
- bind -n M-H swap-pane -U
- bind -n M-J swap-pane -D
- bind -n M-K swap-pane -U
- bind -n M-L swap-pane -D
+ bind -n M-H swap-pane -U
+ bind -n M-J swap-pane -D
+ bind -n M-K swap-pane -U
+ bind -n M-L swap-pane -D
'';
};