some slight changes
This commit is contained in:
parent
be17bb97d2
commit
ff468ca2d7
70 changed files with 245 additions and 2131 deletions
84
hm-modules/cli.nix
Normal file
84
hm-modules/cli.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ inputs, config, lib, pkgs, ... }:
|
||||
{
|
||||
|
||||
home.stateVersion = lib.mkDefault "22.05";
|
||||
home.packages = with pkgs; [
|
||||
my.scripts
|
||||
jq
|
||||
nnn
|
||||
bat
|
||||
htop
|
||||
eza
|
||||
curl
|
||||
fd
|
||||
file
|
||||
git
|
||||
neofetch
|
||||
ripgrep
|
||||
direnv # needed for lorri
|
||||
unzip
|
||||
pv
|
||||
killall
|
||||
yt-dlp
|
||||
aria2
|
||||
];
|
||||
home.shellAliases = {
|
||||
v = "nvim";
|
||||
c = "code";
|
||||
vim = "nvim";
|
||||
gpl = "git pull";
|
||||
gp = "git push";
|
||||
gd = "git diff";
|
||||
lg = "lazygit";
|
||||
gc = "git commit -v";
|
||||
kb = "git commit -m \"\$(curl -s http://whatthecommit.com/index.txt)\"";
|
||||
gs = "git status -v";
|
||||
gfc = "git fetch && git checkout";
|
||||
gl = "git log --graph";
|
||||
l = "eza -la --git";
|
||||
la = "eza -la --git";
|
||||
ls = "eza";
|
||||
ll = "eza -l --git";
|
||||
cat = "bat";
|
||||
p = "cd ~/proj";
|
||||
ytl = ''yt-dlp -f "bv*+mergeall[vcodec=none]" --audio-multistreams'';
|
||||
};
|
||||
|
||||
programs = {
|
||||
bat = {
|
||||
enable = true;
|
||||
config.theme = "gruvbox-dark";
|
||||
};
|
||||
git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
|
||||
# Default configs
|
||||
extraConfig = {
|
||||
commit.gpgSign = true;
|
||||
gpg.format = "ssh";
|
||||
|
||||
user.name = "Lucy Hochkamp";
|
||||
user.email = "git@xyno.systems";
|
||||
user.signingKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIuwQJY0H/fdu1UmGXAut7VfcvAk2Dm78tJpkyyv2in2";
|
||||
|
||||
# Set default "git pull" behaviour so it doesn't try to default to
|
||||
# either "git fetch; git merge" (default) or "git fetch; git rebase".
|
||||
pull.ff = "only";
|
||||
};
|
||||
};
|
||||
# Htop configurations
|
||||
htop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
hide_userland_threads = true;
|
||||
highlight_base_name = true;
|
||||
shadow_other_users = true;
|
||||
show_program_path = false;
|
||||
tree_view = false;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
15
hm-modules/files.nix
Normal file
15
hm-modules/files.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ inputs, config, lib, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
"${inputs.impermanence}/home-manager.nix"
|
||||
];
|
||||
home.file = {
|
||||
# Home nix config.
|
||||
".config/nixpkgs/config.nix".text = "{ allowUnfree = true; }";
|
||||
".local/share/pandoc/templates/default.latex".source = "${inputs.pandoc-latex-template}/eisvogel.tex";
|
||||
|
||||
# empty zshrc to stop zsh-newuser-install from running
|
||||
".zshrc".text = "";
|
||||
|
||||
};
|
||||
}
|
||||
137
hm-modules/nvim/config/lua/.luarc.json
Normal file
137
hm-modules/nvim/config/lua/.luarc.json
Normal file
|
|
@ -0,0 +1,137 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json",
|
||||
"Lua.workspace.checkThirdParty": false,
|
||||
"Lua.workspace.library": [
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-buffer",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-cmdline",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-nvim-lsp",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-path",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp_luasnip",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/gruvbox",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/luasnip",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nnn-nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/noice-nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/notify-nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nui.nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-cmp",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-lspconfig",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-bash-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-beancount-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-bibtex-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-c-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-clojure-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-cmake-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-comment-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-commonlisp-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-cpp-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-css-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-cuda-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-c_sharp-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-dart-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-devicetree-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-dockerfile-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-dot-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-eex-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-elisp-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-elixir-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-elm-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-embedded_template-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-erlang-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-fennel-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-fish-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-fortran-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-gdscript-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-glimmer-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-glsl-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-go-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-godot_resource-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-gomod-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-gowork-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-graphql-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-haskell-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-hcl-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-heex-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-hjson-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-html-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-http-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-janet_simple-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-java-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-javascript-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-jsdoc-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-json-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-json5-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-jsonnet-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-julia-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-kotlin-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-latex-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ledger-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-llvm-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-lua-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-make-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-markdown-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-markdown_inline-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-nickel-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-nix-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-norg-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ocaml-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ocaml_interface-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-org-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-perl-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-pgn-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-php-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-pioasm-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-prisma-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-pug-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-python-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ql-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ql_dbscheme-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-query-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-r-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-regex-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-rego-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-rst-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-ruby-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-rust-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-scala-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-scheme-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-scss-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-smithy-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-sparql-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-sql-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-supercollider-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-surface-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-svelte-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-tiger-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-tlaplus-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-toml-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-tsq-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-tsx-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-turtle-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-typescript-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-verilog-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-vim-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-vue-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-yaml-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-yang-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/nvim-treesitter-zig-grammar",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/plenary.nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/rust-tools.nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/telescope.nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/toggleterm.nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/vim-tmux-navigator",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/vimspector",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/__python3_dependencies",
|
||||
"/Users/ragon/.config/nvim",
|
||||
"/Users/ragon/.local/share/nvim/site",
|
||||
"/nix/store/j5myw4djaj1hmi5r8p5hxaynhingy8k5-neovim-unwrapped-0ecb4d7/share/nvim/runtime",
|
||||
"/nix/store/j5myw4djaj1hmi5r8p5hxaynhingy8k5-neovim-unwrapped-0ecb4d7/lib/nvim",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-buffer/after",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-cmdline/after",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-nvim-lsp/after",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp-path/after",
|
||||
"/nix/store/y7fc4px5ijgv7wpls3r0xiw2hd600q7n-vim-pack-dir/pack/myNeovimPackages/start/cmp_luasnip/after",
|
||||
"${3rd}/love2d/library"
|
||||
]
|
||||
}
|
||||
210
hm-modules/nvim/config/lua/dark_notify.lua
Normal file
210
hm-modules/nvim/config/lua/dark_notify.lua
Normal file
|
|
@ -0,0 +1,210 @@
|
|||
-- http://lua-users.org/wiki/StringTrim
|
||||
function trim6(s)
|
||||
return s:match '^()%s*$' and '' or s:match '^%s*(.*%S)'
|
||||
end
|
||||
|
||||
-- from norcalli/nvim_utils
|
||||
function nvim_create_augroups(definitions)
|
||||
for group_name, definition in pairs(definitions) do
|
||||
vim.api.nvim_command('augroup ' .. group_name)
|
||||
vim.api.nvim_command('autocmd!')
|
||||
for _, def in ipairs(definition) do
|
||||
-- if type(def) == 'table' and type(def[#def]) == 'function' then
|
||||
-- def[#def] = lua_callback(def[#def])
|
||||
-- end
|
||||
local command = table.concat(vim.tbl_flatten { 'autocmd', def }, ' ')
|
||||
vim.api.nvim_command(command)
|
||||
end
|
||||
vim.api.nvim_command('augroup END')
|
||||
end
|
||||
end
|
||||
|
||||
local state = {
|
||||
initialized = false,
|
||||
pid = -1,
|
||||
stdin_handle = nil,
|
||||
config = {},
|
||||
}
|
||||
|
||||
local M = {}
|
||||
|
||||
local function ensure_config()
|
||||
if state.config == nil then
|
||||
state.config = {}
|
||||
end
|
||||
end
|
||||
|
||||
local function get_config()
|
||||
ensure_config()
|
||||
return state.config
|
||||
end
|
||||
|
||||
local function edit_config(fn)
|
||||
ensure_config()
|
||||
fn(state.config)
|
||||
end
|
||||
|
||||
local function apply_mode(mode)
|
||||
local config = get_config()
|
||||
local sel = config.schemes[mode] or {}
|
||||
local colorscheme = sel.colorscheme or nil
|
||||
local bg = sel.background or mode
|
||||
local lualineTheme = sel.lualine or nil
|
||||
|
||||
vim.api.nvim_command('set background=' .. bg)
|
||||
if colorscheme ~= nil then
|
||||
vim.api.nvim_command('colorscheme ' .. colorscheme)
|
||||
end
|
||||
|
||||
require('lualine').setup { options = { theme = lualineTheme } }
|
||||
|
||||
if config.onchange ~= nil then
|
||||
config.onchange(mode)
|
||||
end
|
||||
|
||||
state.current_mode = mode
|
||||
end
|
||||
|
||||
function M.update()
|
||||
local mode = vim.fn.system('dark-notify --exit')
|
||||
mode = trim6(mode)
|
||||
apply_mode(mode)
|
||||
end
|
||||
|
||||
function M.set_mode(mode)
|
||||
mode = trim6(mode)
|
||||
if not (mode == "light" or mode == "dark") then
|
||||
error("mode must be either \"light\" or \"dark\"" .. mode)
|
||||
return
|
||||
end
|
||||
apply_mode(mode)
|
||||
end
|
||||
|
||||
function M.toggle()
|
||||
local mode = state.current_mode
|
||||
if mode == "light" then
|
||||
mode = "dark"
|
||||
elseif mode == "dark" then
|
||||
mode = "light"
|
||||
else
|
||||
M.update()
|
||||
return
|
||||
end
|
||||
apply_mode(mode)
|
||||
end
|
||||
|
||||
local function init_dark_notify()
|
||||
-- Docs on this vim.loop stuff: https://github.com/luvit/luv
|
||||
|
||||
local handle, pid
|
||||
local stdout = vim.loop.new_pipe(false)
|
||||
local stdin = vim.loop.new_pipe(false)
|
||||
|
||||
local function onexit()
|
||||
vim.loop.close(handle, vim.schedule_wrap(function()
|
||||
vim.loop.shutdown(stdout)
|
||||
vim.loop.shutdown(stdin)
|
||||
state.initialized = false
|
||||
state.pid = nil
|
||||
state.stdin_handle = nil
|
||||
end))
|
||||
end
|
||||
|
||||
local function onread(err, chunk)
|
||||
assert(not err, err)
|
||||
if (chunk) then
|
||||
local mode = trim6(chunk)
|
||||
if not (mode == "light" or mode == "dark") then
|
||||
error("dark-notify output not expected: " .. chunk)
|
||||
return
|
||||
end
|
||||
apply_mode(mode)
|
||||
end
|
||||
end
|
||||
|
||||
handle, pid = vim.loop.spawn(
|
||||
"dark-notify",
|
||||
{ stdio = { stdin, stdout, nil } },
|
||||
vim.schedule_wrap(onexit)
|
||||
)
|
||||
|
||||
vim.loop.read_start(stdout, vim.schedule_wrap(onread))
|
||||
|
||||
state.initialized = true
|
||||
state.pid = pid
|
||||
state.stdin_handle = stdin
|
||||
|
||||
-- For whatever reason, nvim isn't killing child processes properly on exit
|
||||
-- So if you don't do this, you get zombie dark-notify processes hanging about.
|
||||
nvim_create_augroups({
|
||||
DarkNotifyKillChildProcess = {
|
||||
{ "VimLeave", "*", "lua require('dark_notify').stop()" },
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-- For whatever reason, killing the child process doesn't work, at all. So we
|
||||
-- send it the line "quit\n", and it kills itself.
|
||||
function M.stop()
|
||||
if state.stdin_handle == nil then
|
||||
return
|
||||
end
|
||||
vim.loop.write(state.stdin_handle, "quit\n")
|
||||
-- process quits itself, calls onexit
|
||||
-- config gets edited from there
|
||||
end
|
||||
|
||||
function M.configure(config)
|
||||
if config == nil then
|
||||
return
|
||||
end
|
||||
local lightline_loaders = config.lightline_loaders or {}
|
||||
local schemes = config.schemes or {}
|
||||
local onchange = config.onchange
|
||||
|
||||
for _, mode in pairs({ "light", "dark" }) do
|
||||
if type(schemes[mode]) == "string" then
|
||||
schemes[mode] = { colorscheme = schemes[mode] }
|
||||
end
|
||||
end
|
||||
|
||||
edit_config(function(conf)
|
||||
conf.lightline_loaders = lightline_loaders
|
||||
conf.schemes = schemes
|
||||
conf.onchange = onchange
|
||||
end)
|
||||
end
|
||||
|
||||
function M.run(config)
|
||||
if config ~= nil or get_config().schemes == nil then
|
||||
-- if it's nil, it's a first run, so configure with no options.
|
||||
config = config or {}
|
||||
M.configure(config)
|
||||
end
|
||||
|
||||
local config = get_config()
|
||||
if not config.initialized then
|
||||
-- first run on startup, also happens to apply current mode
|
||||
init_dark_notify()
|
||||
elseif state.current_mode ~= nil then
|
||||
-- we have run it before, but we're updating the settings
|
||||
-- so don't reset to system, but do apply changed config.
|
||||
local mode = state.current_mode
|
||||
apply_mode(mode)
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
|
||||
-- init.lua or init.vim in a lua <<EOF
|
||||
-- require('dark_notify').run({
|
||||
-- lightline_loaders = {
|
||||
-- my_colorscheme = "path_to_my_colorscheme's lightline autoload file"
|
||||
-- },
|
||||
-- schemes = {
|
||||
-- dark = "dark colorscheme name",
|
||||
-- light = { colorscheme = "light scheme name", background = "optional override, either light or dark" }
|
||||
-- },
|
||||
-- onchange = function(mode)
|
||||
-- end,
|
||||
-- })
|
||||
11
hm-modules/nvim/config/lua/filetypes.lua
Normal file
11
hm-modules/nvim/config/lua/filetypes.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
vim.cmd [[
|
||||
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
|
||||
augroup vimtex_mac
|
||||
autocmd!
|
||||
autocmd FileType tex call SetServerName()
|
||||
augroup END
|
||||
|
||||
function! SetServerName()
|
||||
call system('echo ' . v:servername . ' > /tmp/curvimserver')
|
||||
endfunction
|
||||
]]
|
||||
68
hm-modules/nvim/config/lua/keybindings.lua
Normal file
68
hm-modules/nvim/config/lua/keybindings.lua
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
local map = require('utils').map
|
||||
|
||||
-- split binds
|
||||
map { 'n', '<A-h>', '<cmd>vertical resize -5<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<A-l>', '<cmd>vertical resize +5<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<A-j>', '<cmd>resize -5<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<A-k>', '<cmd>resize +5<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<A-=>', '<C-w> =', noremap = true, silent = true}
|
||||
|
||||
map { 'n', '<A-s>', '<cmd>vsp<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<C-s>', '<cmd>split<CR>', noremap = true, silent = true}
|
||||
|
||||
map { 'n', '<C-h>', '<C-w>h', noremap = true, silent = true}
|
||||
map { 'n', '<C-j>', '<C-w>j', noremap = true, silent = true}
|
||||
map { 'n', '<C-k>', '<C-w>k', noremap = true, silent = true}
|
||||
map { 'n', '<C-l>', '<C-w>l', noremap = true, silent = true}
|
||||
|
||||
-- telescope
|
||||
map { 'n', '<leader>b', '<cmd>Telescope buffers<CR>', noremap = false, silent = true}
|
||||
--map { 'n', '<leader>ff', '<cmd>Telescope find_files<CR>', noremap = false, silent = true}
|
||||
map { 'n', '<leader>s', '<cmd>Telescope live_grep<CR>', noremap = false, silent = true}
|
||||
map { 'n', '<C-p>', '<cmd>Telescope registers<CR>', noremap = false, silent = true}
|
||||
--map { 'n', '<leader>pp', '<cmd>lua require\'telescope\'.extensions.projects.projects{}<cr>', noremap = false, silent = true}
|
||||
-- tab binds
|
||||
map { 'n', '<C-t>', '<cmd>tabnew<CR>', noremap = false, silent = true}
|
||||
map { 'n', '<C-Left>', '<cmd>tabprevious<CR>', noremap = false, silent = true}
|
||||
map { 'n', '<C-Right>', '<cmd>tabnext<CR>', noremap = false, silent = true}
|
||||
|
||||
-- copy paste
|
||||
map { 'v', '<C-c>', '"+y', noremap = true, silent = true}
|
||||
--map { 'n', '<C-b>', '"+P', noremap = false, silent = true}
|
||||
|
||||
-- sudo :w
|
||||
map { 'c', 'w!!', 'w !sudo tee > /dev/null %', noremap = false, silent = false}
|
||||
|
||||
-- vimspector
|
||||
map { 'n', '<leader>di', '<Plug>VimspectorBalloonEval', noremap = false, silent = false }
|
||||
map { 'x', '<leader>di', '<Plug>VimspectorBalloonEval', noremap = false, silent = false }
|
||||
|
||||
-- terminal
|
||||
-- map { 'n', '<leader>t', ':term<CR>', noremap = false, silent = true}
|
||||
-- map { 't', '<C-b>', '<C-\\><C-n>', noremap = true, silent = true}
|
||||
|
||||
-- plugins - nnn
|
||||
map { 'n', '<tab>', '<cmd>:NnnPicker %:p:h<CR>', noremap = true, silent = true}
|
||||
map { 'n', '<s-tab>', '<cmd>:NnnExplorer %:p:h<CR>', noremap = true, silent = true}
|
||||
|
||||
-- plugins - terminal
|
||||
map {"n", "<leader>gg", "<cmd>lua _lazygit_toggle()<CR>", {noremap = true, silent = true}}
|
||||
map {"n", "<leader>gl", "<cmd>lua _glab_toggle()<CR>", {noremap = true, silent = true}}
|
||||
map {"n", "<leader>gh", "<cmd>lua _ghub_toggle()<CR>", {noremap = true, silent = true}}
|
||||
|
||||
-- diagnostic
|
||||
map {"n", "<leader>e", "<cmd>lua require\'telescope.builtin\'.lsp_diagnostics{}<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "<leader>q", "<cmd>lua vim.diagnostic.setloclist()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "]g", "<cmd>lua vim.diagnostic.goto_next()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "[g", "<cmd>lua vim.diagnostic.goto_prev()<CR>", { noremap = true, silent = true}}
|
||||
-- dap
|
||||
map {"n", "<leader>db", "<cmd>lua require'dap'.toggle_breakpoint()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "<leader>du", "<cmd>lua require'dapui'.toggle()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "<leader>dc", "<cmd>lua require'dap'.continue()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "<leader>dr", "<cmd>lua require'dap'.repl.open()<CR>", { noremap = true, silent = true}}
|
||||
map {"n", "<leader>di", "<cmd>lua require'dap'.step_into()<CR>", { noremap = true, silent = true}}
|
||||
-- cp
|
||||
map {"n", "<leader>c", "<cmd>Copilot panel<CR>", { noremap = true, silent = true}}
|
||||
vim.cmd [[
|
||||
imap <silent><script><expr> <C-J> copilot#Accept("\<CR>")
|
||||
]]
|
||||
53
hm-modules/nvim/config/lua/plugin/cmp.lua
Normal file
53
hm-modules/nvim/config/lua/plugin/cmp.lua
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
local cmp = require 'cmp'
|
||||
local lspkind = require 'lspkind'
|
||||
local luasnip = require 'luasnip'
|
||||
local has_words_before = function()
|
||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
||||
end
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require('luasnip').lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
mapping = {
|
||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback() -- The fallback function sends a already mapped key. In this case, it's probably `<Tab>`.
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
["<S-Tab>"] = cmp.mapping(function()
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
},
|
||||
sources = cmp.config.sources({
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = 'nvim_lsp_signature_help' },
|
||||
{ name = "luasnip" },
|
||||
}, { name = "buffer" }),
|
||||
formatting = {
|
||||
format = lspkind.cmp_format({
|
||||
mode = "symbol_text",
|
||||
menu = ({
|
||||
buffer = "[Buffer]",
|
||||
nvim_lsp = "[LSP]",
|
||||
luasnip = "[LuaSnip]",
|
||||
nvim_lua = "[Lua]",
|
||||
latex_symbols = "[Latex]",
|
||||
})
|
||||
}),
|
||||
},
|
||||
})
|
||||
25
hm-modules/nvim/config/lua/plugin/dap.lua
Normal file
25
hm-modules/nvim/config/lua/plugin/dap.lua
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
local dap = require('dap')
|
||||
dap.adapters.coreclr = {
|
||||
type = 'executable',
|
||||
command = '/nix/var/nix/profiles/per-user/ragon/home-manager/home-path/bin/netcoredbg', -- TODO this is a gross hack, please fix
|
||||
args = {'--interpreter=vscode'}
|
||||
}
|
||||
dap.configurations.cs = {
|
||||
{
|
||||
type = "coreclr",
|
||||
name = "launch - netcoredbg",
|
||||
request = "launch",
|
||||
program = function()
|
||||
return vim.fn.input('Path to dll', vim.fn.getcwd() .. '/bin/Debug/', 'file')
|
||||
end,
|
||||
},
|
||||
{
|
||||
type = "coreclr",
|
||||
name = "attach - netcoredbg",
|
||||
mode = "local",
|
||||
request = "attach",
|
||||
processId = require("dap.utils").pick_process,
|
||||
},
|
||||
}
|
||||
|
||||
require'dapui'.setup {}
|
||||
1
hm-modules/nvim/config/lua/plugin/gitsigns.lua
Normal file
1
hm-modules/nvim/config/lua/plugin/gitsigns.lua
Normal file
|
|
@ -0,0 +1 @@
|
|||
require('gitsigns').setup {}
|
||||
114
hm-modules/nvim/config/lua/plugin/lsp.lua
Normal file
114
hm-modules/nvim/config/lua/plugin/lsp.lua
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
local lspconfig = require 'lspconfig'
|
||||
local util = require 'lspconfig.util'
|
||||
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||
-- lsp keymaps
|
||||
local lsp_attach_keymappings = {
|
||||
['gD'] = 'vim.lsp.buf.declaration()',
|
||||
['gd'] = 'require\'telescope.builtin\'.lsp_definitions()',
|
||||
['K'] = 'vim.lsp.buf.hover()',
|
||||
['gi'] = 'require\'telescope.builtin\'.lsp_implementations()',
|
||||
['<localleader>k'] = 'vim.lsp.buf.signature_help()',
|
||||
['<leader>wa'] = 'vim.lsp.buf.add_workspace_folder()',
|
||||
['<leader>wr'] = 'vim.lsp.buf.remove_workspace_folder()',
|
||||
['<leader>ws'] = 'require\'telescope.builtin\'.lsp_workspace_symbols()',
|
||||
['<leader>wl'] = 'print(vim.inspect(vim.lsp.buf.list_workspace_folders()))',
|
||||
['<leader>D'] = 'require\'telescope.builtin\'.lsp_type_definitions()',
|
||||
['<leader>rn'] = 'vim.lsp.buf.rename()',
|
||||
['<leader>ca'] = 'vim.lsp.buf.code_action()',
|
||||
['gr'] = 'require\'telescope.builtin\'.lsp_references()',
|
||||
['<leader>f'] = 'vim.lsp.buf.format()'
|
||||
}
|
||||
local buf_nnoremap_lua = function(bufnr, keys, command)
|
||||
vim.api.nvim_buf_set_keymap(bufnr, 'n', keys, '<cmd>lua ' .. command .. '<CR>', { noremap = true, silent = true })
|
||||
end
|
||||
local on_lsp_attach = function(_, bufnr)
|
||||
-- Enable completion triggered by <c-x><c-o>:
|
||||
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
||||
for key, cmd in pairs(lsp_attach_keymappings) do buf_nnoremap_lua(bufnr, key, cmd) end
|
||||
end
|
||||
|
||||
vim.g.markdown_fenced_languages = {
|
||||
"ts=typescript"
|
||||
}
|
||||
lspconfig.denols.setup { capabilities = capabilities, on_attach = on_lsp_attach, root_dir = util.root_pattern("deno.json", "deno.jsonc") }
|
||||
lspconfig.gopls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.pyright.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.dartls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.nil_ls.setup { capabilities = capabilities, on_attach = on_lsp_attach } -- nix
|
||||
-- lspconfig.rnix.setup { capabilities = capabilities, on_attach = on_lsp_attach } -- nix
|
||||
lspconfig.terraformls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.kotlin_language_server.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.sourcekit.setup { capabilities = capabilities, on_attach = on_lsp_attach, cmd = { "xcrun", "sourcekit-lsp" } } -- swift
|
||||
lspconfig.tsserver.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.vimls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_lsp_attach,
|
||||
isNeovim = true,
|
||||
}
|
||||
|
||||
lspconfig.csharp_ls.setup {
|
||||
capabilities = capabilities,
|
||||
on_attach = on_lsp_attach,
|
||||
cmd = { vim.env.HOME .. "/.dotnet/tools/csharp-ls" },
|
||||
}
|
||||
lspconfig.ltex.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
-- start vscode included language servers
|
||||
lspconfig.eslint.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.html.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.cssls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
lspconfig.jsonls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
-- end vscode included language servers
|
||||
lspconfig.texlab.setup { capabilities = capabilities, on_attach = on_lsp_attach, settings = { texlab = {
|
||||
build = {
|
||||
executable = "tectonic",
|
||||
args = { "%f", "--keep-logs", "--synctex" },
|
||||
onSave = true,
|
||||
forwardSearchAfter = true,
|
||||
},
|
||||
chktex = { onOpenAndSave = true, },
|
||||
forwardSearch = {
|
||||
executable = "/Applications/Skim.app/Contents/SharedSupport/displayline",
|
||||
args = { "-r", "-d", "%l", "%p", "%f" },
|
||||
},
|
||||
} } }
|
||||
lspconfig.sumneko_lua.setup {
|
||||
capabilities = capabilities, on_attach = on_lsp_attach,
|
||||
settings = {
|
||||
Lua = {
|
||||
runtime = {
|
||||
version = 'LuaJIT'
|
||||
},
|
||||
diagnostics = { globals = { 'vim' } },
|
||||
workspace = {
|
||||
-- Make the LSP aware of Neovim runtime files:
|
||||
checkThirdParty = false,
|
||||
library = vim.api.nvim_get_runtime_file('', true)
|
||||
},
|
||||
format = {
|
||||
enable = true,
|
||||
defaultConfig = {
|
||||
indent_style = 'space',
|
||||
indent_size = '2',
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
-- haskell
|
||||
lspconfig.hls.setup { capabilities = capabilities, on_attach = on_lsp_attach }
|
||||
|
||||
|
||||
|
||||
local rt = require("rust-tools")
|
||||
rt.setup({
|
||||
tools = {
|
||||
inlay_hints = {
|
||||
auto = true,
|
||||
},
|
||||
},
|
||||
server = {
|
||||
capabilities = capabilities, on_attach = on_lsp_attach,
|
||||
},
|
||||
})
|
||||
local ft = require('flutter-tools')
|
||||
ft.setup {}
|
||||
215
hm-modules/nvim/config/lua/plugin/lualine.lua
Normal file
215
hm-modules/nvim/config/lua/plugin/lualine.lua
Normal file
|
|
@ -0,0 +1,215 @@
|
|||
-- Eviline config for lualine
|
||||
-- Author: shadmansaleh
|
||||
-- Credit: glepnir
|
||||
local lualine = require('lualine')
|
||||
|
||||
-- Color table for highlights
|
||||
-- stylua: ignore
|
||||
local colors = {
|
||||
bg = '#202328',
|
||||
fg = '#bbc2cf',
|
||||
yellow = '#ECBE7B',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#98be65',
|
||||
orange = '#FF8800',
|
||||
violet = '#a9a1e1',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67',
|
||||
}
|
||||
|
||||
local conditions = {
|
||||
buffer_not_empty = function()
|
||||
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
|
||||
end,
|
||||
hide_in_width = function()
|
||||
return vim.fn.winwidth(0) > 80
|
||||
end,
|
||||
check_git_workspace = function()
|
||||
local filepath = vim.fn.expand('%:p:h')
|
||||
local gitdir = vim.fn.finddir('.git', filepath .. ';')
|
||||
return gitdir and #gitdir > 0 and #gitdir < #filepath
|
||||
end,
|
||||
}
|
||||
|
||||
-- Config
|
||||
local config = {
|
||||
options = {
|
||||
-- Disable sections and component separators
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = 'gruvbox',
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
}
|
||||
|
||||
-- Inserts a component in lualine_c at left section
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
-- Inserts a component in lualine_x at right section
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
color = { fg = colors.blue }, -- Sets highlighting of component
|
||||
padding = { left = 0, right = 1 }, -- We don't need space before this
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- mode component
|
||||
function()
|
||||
return ''
|
||||
end,
|
||||
color = function()
|
||||
-- auto change color according to neovims mode
|
||||
local mode_color = {
|
||||
n = colors.red,
|
||||
i = colors.green,
|
||||
v = colors.blue,
|
||||
[''] = colors.blue,
|
||||
V = colors.blue,
|
||||
c = colors.magenta,
|
||||
no = colors.red,
|
||||
s = colors.orange,
|
||||
S = colors.orange,
|
||||
[''] = colors.orange,
|
||||
ic = colors.yellow,
|
||||
R = colors.violet,
|
||||
Rv = colors.violet,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
return { fg = mode_color[vim.fn.mode()] }
|
||||
end,
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- filesize component
|
||||
'filesize',
|
||||
cond = conditions.buffer_not_empty,
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
cond = conditions.buffer_not_empty,
|
||||
color = { fg = colors.magenta, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_left { 'location' }
|
||||
|
||||
ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
symbols = { error = ' ', warn = ' ', info = ' ' },
|
||||
diagnostics_color = {
|
||||
color_error = { fg = colors.red },
|
||||
color_warn = { fg = colors.yellow },
|
||||
color_info = { fg = colors.cyan },
|
||||
},
|
||||
}
|
||||
|
||||
-- Insert mid section. You can make any number of sections in neovim :)
|
||||
-- for lualine it's any number greater then 2
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
ins_left {
|
||||
-- Lsp server name .
|
||||
function()
|
||||
local msg = 'No Active Lsp'
|
||||
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
if next(clients) == nil then
|
||||
return msg
|
||||
end
|
||||
for _, client in ipairs(clients) do
|
||||
local filetypes = client.config.filetypes
|
||||
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
||||
return client.name
|
||||
end
|
||||
end
|
||||
return msg
|
||||
end,
|
||||
icon = ' LSP:',
|
||||
color = { fg = '#ffffff', gui = 'bold' },
|
||||
}
|
||||
|
||||
-- Add components to right sections
|
||||
ins_right {
|
||||
'o:encoding', -- option component same as &encoding in viml
|
||||
fmt = string.upper, -- I'm not sure why it's upper case either ;)
|
||||
cond = conditions.hide_in_width,
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'fileformat',
|
||||
fmt = string.upper,
|
||||
icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
|
||||
color = { fg = colors.green, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'branch',
|
||||
icon = '',
|
||||
color = { fg = colors.violet, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'diff',
|
||||
-- Is it me or the symbol for modified us really weird
|
||||
symbols = { added = ' ', modified = '柳 ', removed = ' ' },
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
cond = conditions.hide_in_width,
|
||||
}
|
||||
|
||||
ins_right {
|
||||
function()
|
||||
return '▊'
|
||||
end,
|
||||
color = { fg = colors.blue },
|
||||
padding = { left = 1 },
|
||||
}
|
||||
|
||||
-- Now don't forget to initialize lualine
|
||||
lualine.setup(config)
|
||||
11
hm-modules/nvim/config/lua/plugin/nnn.lua
Normal file
11
hm-modules/nvim/config/lua/plugin/nnn.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
require('nnn').setup({
|
||||
set_default_mappings = 0,
|
||||
replace_netrw = 1,
|
||||
layout = {
|
||||
window = {
|
||||
width = 0.9,
|
||||
height = 0.6,
|
||||
highlight = 'Debug'
|
||||
}
|
||||
}
|
||||
})
|
||||
26
hm-modules/nvim/config/lua/plugin/noice.lua
Normal file
26
hm-modules/nvim/config/lua/plugin/noice.lua
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
require("noice").setup({
|
||||
views = {
|
||||
notify = {
|
||||
merge = true,
|
||||
}
|
||||
},
|
||||
lsp = {
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = true,
|
||||
},
|
||||
},
|
||||
-- you can enable a preset for easier configuration
|
||||
presets = {
|
||||
bottom_search = true, -- use a classic bottom cmdline for search
|
||||
command_palette = true, -- position the cmdline and popupmenu together
|
||||
long_message_to_split = true, -- long messages will be sent to a split
|
||||
inc_rename = false, -- enables an input dialog for inc-rename.nvim
|
||||
lsp_doc_border = false, -- add a border to hover docs and signature help
|
||||
},
|
||||
})
|
||||
require("notify").setup({
|
||||
-- stages = "static",
|
||||
-- max_width = 70,
|
||||
})
|
||||
12
hm-modules/nvim/config/lua/plugin/telescope.lua
Normal file
12
hm-modules/nvim/config/lua/plugin/telescope.lua
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
local telescope = require('telescope')
|
||||
telescope.setup {
|
||||
extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown {
|
||||
-- even more opts
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
telescope.load_extension('ui-select')
|
||||
35
hm-modules/nvim/config/lua/plugin/terminal.lua
Normal file
35
hm-modules/nvim/config/lua/plugin/terminal.lua
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
require('toggleterm').setup {
|
||||
direction = 'window',
|
||||
open_mapping = [[<c-n>]],
|
||||
}
|
||||
local Terminal = require('toggleterm.terminal').Terminal
|
||||
|
||||
local lazygit = Terminal:new {
|
||||
cmd = "lazygit",
|
||||
hidden = true,
|
||||
direction = 'float'
|
||||
}
|
||||
|
||||
function _lazygit_toggle()
|
||||
lazygit:toggle()
|
||||
end
|
||||
|
||||
local glab = Terminal:new {
|
||||
cmd = "glab ci view",
|
||||
hidden = true,
|
||||
direction = 'float'
|
||||
}
|
||||
|
||||
function _glab_toggle()
|
||||
glab:toggle()
|
||||
end
|
||||
|
||||
local ghub = Terminal:new {
|
||||
cmd = "gh run view",
|
||||
hidden = true,
|
||||
direction = 'float'
|
||||
}
|
||||
|
||||
function _ghub_toggle()
|
||||
ghub:toggle()
|
||||
end
|
||||
26
hm-modules/nvim/config/lua/plugin/treesitter.lua
Normal file
26
hm-modules/nvim/config/lua/plugin/treesitter.lua
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
local treesitter_parser_install_dir = '/var/tmp/nvim-treesitter/parser'
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
-- use_languagetree = true,
|
||||
},
|
||||
parser_install_dir = treesitter_parser_install_dir,
|
||||
-- indent = {
|
||||
-- enable = true,
|
||||
-- },
|
||||
-- autotag = {
|
||||
-- enable = true,
|
||||
-- },
|
||||
-- context_commentstring = {
|
||||
-- enable = true,
|
||||
-- enable_autocmd = false,
|
||||
-- },
|
||||
-- refactor = {
|
||||
-- highlight_definitions = { enable = true },
|
||||
-- highlight_current_scope = { enable = false },
|
||||
-- },
|
||||
}
|
||||
|
||||
require'treesitter-context'.setup{
|
||||
enable = true, -- Enable this plugin (Can be enabled/disabled later via commands)
|
||||
}
|
||||
21
hm-modules/nvim/config/lua/utils.lua
Normal file
21
hm-modules/nvim/config/lua/utils.lua
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
-- cool map funciton from https://vonheikemen.github.io/devlog/tools/configuring-neovim-using-lua/
|
||||
utils = {}
|
||||
utils.map = function(key)
|
||||
-- get the extra options
|
||||
local opts = {noremap = false}
|
||||
for i, v in pairs(key) do
|
||||
if (i) == 'string' then opts[i] = v end
|
||||
end
|
||||
|
||||
-- basic support for buffer-scoped keybindings
|
||||
local buffer = opts.buffer
|
||||
opts.buffer = nil
|
||||
|
||||
if buffer then
|
||||
vim.api.nvim_buf_set_keymap(0, key[1], key[2], key[3], opts)
|
||||
else
|
||||
vim.api.nvim_set_keymap(key[1], key[2], key[3], opts)
|
||||
end
|
||||
end
|
||||
|
||||
return utils
|
||||
75
hm-modules/nvim/config/nvim.lua
Normal file
75
hm-modules/nvim/config/nvim.lua
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
-- general settings
|
||||
vim.cmd [[
|
||||
filetype plugin on
|
||||
filetype indent plugin on
|
||||
filetype plugin indent on
|
||||
syntax on
|
||||
]]
|
||||
-- mapleader
|
||||
local opt = vim.opt
|
||||
vim.g.mapleader = ' '
|
||||
vim.g.maplocalleader = ','
|
||||
|
||||
-- color stuff
|
||||
opt.termguicolors = true -- 24bit color
|
||||
require('gruvbox').setup({})
|
||||
require('tokyonight').setup({})
|
||||
opt.background = 'dark' -- dark gruvbox
|
||||
vim.cmd ':colorscheme gruvbox'
|
||||
require('dark_notify').run({
|
||||
schemes = {
|
||||
light = {
|
||||
colorscheme = 'tokyonight',
|
||||
background = 'light',
|
||||
lualine = 'tokyonight'
|
||||
},
|
||||
dark = {
|
||||
colorscheme = 'gruvbox',
|
||||
background = 'dark',
|
||||
lualine = 'gruvbox'
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
|
||||
--vimspector
|
||||
vim.g.vimspector_base_dir = vim.env.HOME .. "/.local/share/nvim/vimspector"
|
||||
vim.g.vimspector_enable_mappings = "HUMAN"
|
||||
vim.g.copilot_no_tab_map = true
|
||||
|
||||
|
||||
opt.encoding = 'utf-8'
|
||||
opt.number = true
|
||||
opt.relativenumber = true
|
||||
opt.undofile = true -- save undo chages even after computer restart
|
||||
opt.showcmd = true -- show (partial) command in status line
|
||||
opt.showmatch = true -- show match brackets
|
||||
opt.wildmenu = true -- visual autocomplete for command menu
|
||||
-- Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
|
||||
opt.splitbelow = true
|
||||
opt.splitright = true
|
||||
-- indents
|
||||
opt.expandtab = true
|
||||
opt.shiftwidth = 2
|
||||
opt.softtabstop = 2
|
||||
-- buffers don't get unloaded when hidden
|
||||
opt.hidden = true
|
||||
-- low updatetime so it isnt as slow
|
||||
opt.updatetime = 100
|
||||
|
||||
require('utils')
|
||||
require('keybindings')
|
||||
require('filetypes')
|
||||
|
||||
-- load plugin luas (idk how to do that autmagically)
|
||||
require('plugin.treesitter')
|
||||
require('plugin.nnn')
|
||||
require('plugin.terminal')
|
||||
require('plugin.noice')
|
||||
require('plugin.telescope')
|
||||
require('plugin.cmp')
|
||||
require('plugin.lsp')
|
||||
require('plugin.dap')
|
||||
require('plugin.lualine')
|
||||
require('plugin.gitsigns')
|
||||
127
hm-modules/nvim/default.nix
Normal file
127
hm-modules/nvim/default.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{ pkgs, config, lib, inputs, ... }:
|
||||
let
|
||||
cfg = config.ragon.nvim;
|
||||
in
|
||||
{
|
||||
options.ragon.nvim.enable = lib.mkOption { default = true; };
|
||||
options.ragon.nvim.maximal = lib.mkOption { default = false; };
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
home.packages =
|
||||
(with pkgs;[
|
||||
# telescope
|
||||
ripgrep
|
||||
# embedded terminal
|
||||
lazygit
|
||||
glab
|
||||
gh
|
||||
|
||||
# other stuff
|
||||
neovim-remote
|
||||
]) ++
|
||||
lib.optionals cfg.maximal (with pkgs;[
|
||||
# language servers
|
||||
nil # nix
|
||||
#inputs.rnix-lsp.packages."${pkgs.system}".rnix-lsp
|
||||
gopls # go
|
||||
pyright # python3
|
||||
terraform-ls
|
||||
terraform
|
||||
nodePackages.typescript
|
||||
nodePackages.typescript-language-server
|
||||
haskell-language-server
|
||||
sumneko-lua-language-server
|
||||
pkgs.unstable.ltex-ls # languageTool
|
||||
(hunspellWithDicts [ "de_DE" "en_US" ]) # spellcheck
|
||||
hunspellDicts.de-de
|
||||
nodePackages.vscode-langservers-extracted # eslint, ...
|
||||
texlab # latex
|
||||
tectonic
|
||||
kotlin
|
||||
kotlin-language-server
|
||||
ktlint
|
||||
# rust completion
|
||||
cargo
|
||||
rustc
|
||||
rustfmt
|
||||
unstable.rust-analyzer
|
||||
# c# debugging
|
||||
(pkgs.writeShellScriptBin "netcoredbg" ''exec ${pkgs.unstable.netcoredbg}/bin/netcoredbg "$@"'') # don't fill $path with dlls
|
||||
|
||||
]);
|
||||
home.file.".config/nvim".source = ./config;
|
||||
home.file.".config/nvim".recursive = true;
|
||||
programs.neovim =
|
||||
{
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
set runtimepath^=~/.config/nvim
|
||||
lua dofile('${./config/nvim.lua}')
|
||||
'';
|
||||
vimAlias = true;
|
||||
viAlias = true;
|
||||
plugins =
|
||||
let
|
||||
nnn-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "nnn-nvim";
|
||||
version = "1.0.0";
|
||||
src = inputs.nnn-nvim;
|
||||
};
|
||||
notify-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "notify-nvim";
|
||||
version = "1.0.0";
|
||||
src = inputs.notify-nvim;
|
||||
};
|
||||
noice-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||
pname = "noice-nvim";
|
||||
version = "1.0.0";
|
||||
src = inputs.noice-nvim;
|
||||
};
|
||||
in
|
||||
map (x: { plugin = x; }) (with pkgs.unstable.vimPlugins; [
|
||||
vim-tmux-navigator # tmux
|
||||
nnn-nvim # nnn as filebrowser
|
||||
gruvbox-nvim # theme
|
||||
tokyonight-nvim # light theme
|
||||
# complete ui overhaul
|
||||
notify-nvim
|
||||
nui-nvim
|
||||
noice-nvim
|
||||
telescope-nvim
|
||||
telescope-ui-select-nvim
|
||||
# line
|
||||
lualine-nvim
|
||||
|
||||
# vcs integration
|
||||
gitsigns-nvim
|
||||
|
||||
# completion
|
||||
nvim-lspconfig # lsp
|
||||
nvim-dap # dap
|
||||
nvim-dap-ui # dap stuffzies
|
||||
nvim-dap-go
|
||||
pkgs.unstable.vimPlugins.rust-tools-nvim # rust special sauce
|
||||
pkgs.unstable.vimPlugins.flutter-tools-nvim
|
||||
# completion - nvim-cmp
|
||||
cmp-nvim-lsp
|
||||
cmp-buffer
|
||||
cmp-path
|
||||
cmp-cmdline
|
||||
cmp-nvim-lsp-signature-help
|
||||
nvim-cmp # completion ui
|
||||
lspkind-nvim # icons for completion
|
||||
# completion-snippets
|
||||
luasnip
|
||||
cmp_luasnip
|
||||
friendly-snippets # some premade snippets
|
||||
|
||||
|
||||
toggleterm-nvim # embed terminals (for lazygit,...)
|
||||
|
||||
# treesitter
|
||||
(nvim-treesitter.withAllGrammars)
|
||||
nvim-treesitter-context
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
24
hm-modules/tmux/default.nix
Normal file
24
hm-modules/tmux/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ config, pkgs, ... }: {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
keyMode = "vi";
|
||||
clock24 = true;
|
||||
historyLimit = 10000;
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
vim-tmux-navigator
|
||||
];
|
||||
extraConfig = ''
|
||||
set -sg escape-time 0 # makes vim esc usable
|
||||
new-session -s main
|
||||
bind-key -n C-e send-prefix
|
||||
bind '"' split-window -c "#{pane_current_path}"
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
bind c new-window -c "#{pane_current_path}"
|
||||
set-option -g default-terminal "tmux-256color"
|
||||
set -as terminal-overrides ',xterm*:Tc:sitm=\E[3m'
|
||||
run-shell -b '~/.config/tmux-switch-colors/start_theme_switcher.sh'
|
||||
'';
|
||||
};
|
||||
|
||||
home.file.".config/tmux-switch-colors".source = ./tmux-switch-colors;
|
||||
}
|
||||
50
hm-modules/tmux/tmux-switch-colors/dark.tmux
Normal file
50
hm-modules/tmux/tmux-switch-colors/dark.tmux
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
## COLORSCHEME: gruvbox dark (medium)
|
||||
set-option -g status "on"
|
||||
|
||||
# default statusbar color
|
||||
set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1
|
||||
|
||||
# default window title colors
|
||||
set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1
|
||||
|
||||
# default window with an activity alert
|
||||
set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3
|
||||
|
||||
# active window title colors
|
||||
set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1
|
||||
|
||||
# pane border
|
||||
set-option -g pane-active-border-style fg=colour250 #fg2
|
||||
set-option -g pane-border-style fg=colour237 #bg1
|
||||
|
||||
# message infos
|
||||
set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1
|
||||
|
||||
# writing commands inactive
|
||||
set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1
|
||||
|
||||
# pane number display
|
||||
set-option -g display-panes-active-colour colour250 #fg2
|
||||
set-option -g display-panes-colour colour237 #bg1
|
||||
|
||||
# clock
|
||||
set-window-option -g clock-mode-colour colour109 #blue
|
||||
|
||||
# bell
|
||||
set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg
|
||||
|
||||
## Theme settings mixed with colors (unfortunately, but there is no cleaner way)
|
||||
set-option -g status-justify "left"
|
||||
set-option -g status-left-style none
|
||||
set-option -g status-left-length "80"
|
||||
set-option -g status-right-style none
|
||||
set-option -g status-right-length "80"
|
||||
set-window-option -g window-status-separator ""
|
||||
|
||||
set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=colour237,fg=colour241,nobold,noitalics,nounderscore]"
|
||||
set-option -g status-right "#[bg=colour237,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h "
|
||||
|
||||
set-window-option -g window-status-current-format "#[bg=colour214,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour214,fg=colour239] #I #[bg=colour214,fg=colour239,bold] #W#{?window_zoomed_flag,*Z,} #[bg=colour237,fg=colour214,nobold,noitalics,nounderscore]"
|
||||
set-window-option -g window-status-format "#[bg=colour239,fg=colour237,noitalics]#[bg=colour239,fg=colour223] #I #[bg=colour239,fg=colour223] #W #[bg=colour237,fg=colour239,noitalics]"
|
||||
|
||||
# vim: set ft=tmux tw=0 nowrap:
|
||||
38
hm-modules/tmux/tmux-switch-colors/light.tmux
Normal file
38
hm-modules/tmux/tmux-switch-colors/light.tmux
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# TokyoNight colors for Tmux
|
||||
|
||||
set -g mode-style "fg=#2e7de9,bg=#a8aecb"
|
||||
|
||||
set -g message-style "fg=#2e7de9,bg=#a8aecb"
|
||||
set -g message-command-style "fg=#2e7de9,bg=#a8aecb"
|
||||
|
||||
set -g pane-border-style "fg=#a8aecb"
|
||||
set -g pane-active-border-style "fg=#2e7de9"
|
||||
|
||||
set -g status "on"
|
||||
set -g status-justify "left"
|
||||
|
||||
set -g status-style "fg=#2e7de9,bg=#e9e9ec"
|
||||
|
||||
set -g status-left-length "100"
|
||||
set -g status-right-length "100"
|
||||
|
||||
set -g status-left-style NONE
|
||||
set -g status-right-style NONE
|
||||
|
||||
set -g status-left "#[fg=#e9e9ed,bg=#2e7de9,bold] #S #[fg=#2e7de9,bg=#e9e9ec,nobold,nounderscore,noitalics]"
|
||||
set -g status-right "#[fg=#e9e9ec,bg=#e9e9ec,nobold,nounderscore,noitalics]#[fg=#2e7de9,bg=#e9e9ec] #{prefix_highlight} #[fg=#a8aecb,bg=#e9e9ec,nobold,nounderscore,noitalics]#[fg=#2e7de9,bg=#a8aecb] %Y-%m-%d %I:%M %p #[fg=#2e7de9,bg=#a8aecb,nobold,nounderscore,noitalics]#[fg=#e9e9ed,bg=#2e7de9,bold] #h "
|
||||
if-shell '[ "$(tmux show-option -gqv "clock-mode-style")" == "24" ]' {
|
||||
set -g status-right "#[fg=#e9e9ec,bg=#e9e9ec,nobold,nounderscore,noitalics]#[fg=#2e7de9,bg=#e9e9ec] #{prefix_highlight} #[fg=#a8aecb,bg=#e9e9ec,nobold,nounderscore,noitalics]#[fg=#2e7de9,bg=#a8aecb] %Y-%m-%d %H:%M #[fg=#2e7de9,bg=#a8aecb,nobold,nounderscore,noitalics]#[fg=#e9e9ed,bg=#2e7de9,bold] #h "
|
||||
}
|
||||
|
||||
setw -g window-status-activity-style "underscore,fg=#6172b0,bg=#e9e9ec"
|
||||
setw -g window-status-separator ""
|
||||
setw -g window-status-style "NONE,fg=#6172b0,bg=#e9e9ec"
|
||||
setw -g window-status-format "#[fg=#e9e9ec,bg=#e9e9ec,nobold,nounderscore,noitalics]#[default] #I #W #F #[fg=#e9e9ec,bg=#e9e9ec,nobold,nounderscore,noitalics]"
|
||||
setw -g window-status-current-format "#[fg=#e9e9ec,bg=#a8aecb,nobold,nounderscore,noitalics]#[fg=#2e7de9,bg=#a8aecb,bold] #I #W #F #[fg=#a8aecb,bg=#e9e9ec,nobold,nounderscore,noitalics]"
|
||||
|
||||
# tmux-plugins/tmux-prefix-highlight support
|
||||
set -g @prefix_highlight_output_prefix "#[fg=#8c6c3e]#[bg=#e9e9ec]#[fg=#e9e9ec]#[bg=#8c6c3e]"
|
||||
set -g @prefix_highlight_output_suffix ""
|
||||
9
hm-modules/tmux/tmux-switch-colors/start_theme_switcher.sh
Executable file
9
hm-modules/tmux/tmux-switch-colors/start_theme_switcher.sh
Executable file
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
|
||||
|
||||
DN=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
$DN/theme_switcher.sh
|
||||
9
hm-modules/tmux/tmux-switch-colors/theme_setter.sh
Executable file
9
hm-modules/tmux/tmux-switch-colors/theme_setter.sh
Executable file
|
|
@ -0,0 +1,9 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DN=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
|
||||
if [[ $1 == "dark" ]]; then
|
||||
tmux source-file $DN/dark.tmux
|
||||
else
|
||||
tmux source-file $DN/light.tmux
|
||||
fi
|
||||
21
hm-modules/tmux/tmux-switch-colors/theme_switcher.sh
Executable file
21
hm-modules/tmux/tmux-switch-colors/theme_switcher.sh
Executable file
|
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
[[ "${TRACE-0}" =~ ^1|t|y|true|yes$ ]] && set -o xtrace
|
||||
|
||||
|
||||
[[ ! $(type -P "dark-notify") ]] && echo "dark-notify command not found. Exiting..." && exit 0
|
||||
DN=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
SCRIPT_NAME="$(basename $0)"
|
||||
|
||||
THEME_SETTER="$DN/theme_setter.sh"
|
||||
|
||||
if pgrep -qf "$SCRIPT_NAME"; then
|
||||
dark-notify -e -c "$THEME_SETTER" # run once
|
||||
exit 0
|
||||
fi
|
||||
|
||||
while :; do
|
||||
dark-notify -c "$THEME_SETTER"
|
||||
done
|
||||
0
hm-modules/vscode/PLEASE FORGIVE ME FOR THIS SINFUL ACT
Normal file
0
hm-modules/vscode/PLEASE FORGIVE ME FOR THIS SINFUL ACT
Normal file
236
hm-modules/vscode/default.nix
Normal file
236
hm-modules/vscode/default.nix
Normal file
|
|
@ -0,0 +1,236 @@
|
|||
{ pkgs, config, lib, inputs, ... }:
|
||||
let
|
||||
cfg = config.ragon.vscode;
|
||||
#marketplace = inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace;
|
||||
#marketplace-release = inputs.nix-vscode-extensions.extensions.${pkgs.system}.vscode-marketplace-release;
|
||||
marketplace = (import ./vscode-extensions.nix { inherit pkgs lib; });
|
||||
|
||||
in
|
||||
{
|
||||
options.ragon.vscode.enable = lib.mkOption { default = false; };
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
nixd
|
||||
nixpkgs-fmt
|
||||
(unstable.quarto.overrideAttrs (curr: { meta.platforms = [ pkgs.system ]; }))
|
||||
];
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pkgs.unstable.vscode;
|
||||
#mutableExtensionsDir = false;
|
||||
extensions = with marketplace; [
|
||||
vscodevim.vim # vim mode (hopefully good)
|
||||
fathulfahmy.lunarkeymap
|
||||
vspacecode.whichkey
|
||||
jdinhlife.gruvbox # theme
|
||||
mkhl.direnv # direnv
|
||||
|
||||
|
||||
marketplace.eamodio.gitlens
|
||||
marketplace.ms-vscode-remote.remote-containers
|
||||
|
||||
marketplace.sonarsource.sonarlint-vscode
|
||||
|
||||
|
||||
# tomoki1207.pdf # reenable when latex workshop goes
|
||||
|
||||
marketplace.johnpapa.vscode-peacock # colors per workspace
|
||||
|
||||
|
||||
# Language Support
|
||||
## markdown/latex
|
||||
marketplace.james-yu.latex-workshop # latex, also provides pdf preview
|
||||
marketplace.quarto.quarto
|
||||
# marketplace.pokey.cursorless # too much xe exposure
|
||||
marketplace.valentjn.vscode-ltex # languagetool
|
||||
#valentjn.vscode-ltex
|
||||
#marketplace.gpoore.codebraid-preview
|
||||
marketplace.ms-vscode.hexeditor # a hex editor
|
||||
#ms-vscode-remote.remote-containers # container envs for stuff
|
||||
marketplace.ms-vscode-remote.remote-ssh
|
||||
|
||||
|
||||
|
||||
## others
|
||||
marketplace.vscjava.vscode-java-pack # java schmava
|
||||
marketplace.vscjava.vscode-java-debug
|
||||
marketplace.vscjava.vscode-java-test
|
||||
marketplace.vscjava.vscode-java-dependency
|
||||
marketplace.vscjava.vscode-maven
|
||||
marketplace.redhat.java
|
||||
marketplace.ms-vscode.cpptools-extension-pack # cpp
|
||||
# marketplace.ms-vscode.cmake-tools # broken rn
|
||||
marketplace.ms-vscode.cpptools
|
||||
marketplace.ms-azuretools.vscode-docker # docker
|
||||
jnoortheen.nix-ide # nix
|
||||
golang.go # go
|
||||
marketplace.ms-python.python # python
|
||||
marketplace.ms-python.vscode-pylance # python
|
||||
#marketplace.ms-python.debugpy # python
|
||||
marketplace.donjayamanne.python-environment-manager # python
|
||||
marketplace.denoland.vscode-deno # deno
|
||||
marketplace.bradlc.vscode-tailwindcss
|
||||
#ms-dotnettools.csharp # c# und so
|
||||
#marketplace.ms-dotnettools.csdevkit
|
||||
# marketplace.ms-dotnettools.csharp
|
||||
# marketplace.ms-dotnettools.vscode-dotnet-runtime
|
||||
# (marketplace.ms-dotnettools.csdevkit.overrideAttrs (super: a: { sourceRoot = "."; }))
|
||||
rust-lang.rust-analyzer # rust
|
||||
marketplace.sswg.swift-lang # swift
|
||||
#marketplace.vadimcn.vscode-lldb # swift
|
||||
#marketplace.ms-toolsai.jupyter # jupiter notebooks, broken on 2023-12-19
|
||||
marketplace.ms-toolsai.jupyter-renderers
|
||||
#ms-toolsai.jupyter
|
||||
#marketplace.jakebecker.elixir-ls # elixir
|
||||
marketplace.dart-code.flutter # dart/flutter
|
||||
marketplace.dart-code.dart-code # dart/flutter
|
||||
marketplace.alexisvt.flutter-snippets # flutter snippets
|
||||
marketplace.tauri-apps.tauri-vscode # tauri
|
||||
marketplace.dbaeumer.vscode-eslint # js
|
||||
marketplace.firefox-devtools.vscode-firefox-debug # js debugging
|
||||
marketplace.arcanis.vscode-zipfs # yarn
|
||||
|
||||
marketplace.foam.foam-vscode
|
||||
marketplace."vsls-contrib"."gitdoc"
|
||||
yzhang.markdown-all-in-one # markdown
|
||||
marketplace.davidanson.vscode-markdownlint
|
||||
marketplace.bierner.markdown-mermaid
|
||||
marketplace.bpruitt-goddard.mermaid-markdown-syntax-highlighting
|
||||
marketplace.bierner.markdown-footnotes
|
||||
marketplace.hediet.vscode-drawio
|
||||
] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
];
|
||||
userSettings =
|
||||
let
|
||||
fontFamily = "'JetBrainsMono Nerd Font', monospace";
|
||||
in
|
||||
{
|
||||
"editor.fontFamily" = fontFamily;
|
||||
"terminal.integrated.fontFamily" = fontFamily;
|
||||
"terminal.integrated.scrollback" = 20000;
|
||||
"workbench.colorTheme" = "Gruvbox Dark Soft";
|
||||
"editor.autoClosingBrackets" = "never";
|
||||
"editor.autoClosingQuotes" = "never";
|
||||
"editor.minimap.autohide" = true;
|
||||
|
||||
"editor.tabCompletion" = "onlySnippets";
|
||||
#"editor.snippetSuggestions" = "top";
|
||||
|
||||
# Addon Configuration
|
||||
|
||||
## Vim
|
||||
"vim.leader" = "<space>";
|
||||
# "vim.normalModeKeyBindings" = [
|
||||
# { before = [ "<C-h>" ]; after = [ "<C-w>" "h" ]; }
|
||||
# { before = [ "<C-j>" ]; after = [ "<C-w>" "j" ]; }
|
||||
# { before = [ "<C-k>" ]; after = [ "<C-w>" "k" ]; }
|
||||
# { before = [ "<C-l>" ]; after = [ "<C-w>" "l" ]; }
|
||||
# ];
|
||||
"vim.normalModeKeyBindingsNonRecursive" = [
|
||||
# {
|
||||
# before = [ "<leader>" "s" ];
|
||||
# "commands" = [ "workbench.action.splitEditor" ];
|
||||
# quiet = true;
|
||||
# }
|
||||
# {
|
||||
# before = [ "<leader>" "a" "s" ];
|
||||
# "commands" = [ "workbench.action.splitEditorDown" ];
|
||||
# quiet = true;
|
||||
# }
|
||||
{
|
||||
before = [ "<leader>" "q" ];
|
||||
"commands" = [ "workbench.action.closeActiveEditor" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "<leader>" "c" "a" ];
|
||||
"commands" = [ "editor.action.sourceAction" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "<leader>" "r" "n" ];
|
||||
"commands" = [ "editor.action.rename" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "<leader>" "c" "f" ];
|
||||
"commands" = [ "editor.action.quickFix" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "<leader>" "f" ];
|
||||
"commands" = [ "editor.action.formatDocument" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "]" "g" ];
|
||||
"commands" = [ "editor.action.marker.next" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "[" "g" ];
|
||||
"commands" = [ "editor.action.marker.prev" ];
|
||||
quiet = true;
|
||||
}
|
||||
{
|
||||
before = [ "<leader>" "g" "r" ];
|
||||
"commands" = [ "editor.action.goToReferences" ];
|
||||
quiet = true;
|
||||
}
|
||||
];
|
||||
"vim.useSystemClipboard" = false;
|
||||
"vim.handleKeys" = {
|
||||
"<C-w>" = false;
|
||||
};
|
||||
"vim.camelCaseMotion.enable" = true;
|
||||
## git
|
||||
"git.verboseCommit" = true;
|
||||
"git.allowForcePush" = true;
|
||||
"git.confirmSync" = false;
|
||||
"git.confirmForcePush" = true; # is default but it feels safer to also specify it here
|
||||
"git.useForcePushWithLease" = true; # is default but it feels safer to also specify it here
|
||||
## Nix
|
||||
"nix.serverPath" = "nixd";
|
||||
"nix.enableLanguageServer" = true;
|
||||
"nix.serverSettings" = {
|
||||
"nixd" = {
|
||||
"formatting" = {
|
||||
"command" = "nixpkgs-fmt";
|
||||
};
|
||||
};
|
||||
};
|
||||
## dart/flutter
|
||||
"[dart]" = {
|
||||
"editor.formatOnSave" = true;
|
||||
"editor.formatOnType" = true;
|
||||
"editor.rulers" = [ 80 ];
|
||||
"editor.selectionHighlight" = false;
|
||||
"editor.suggestSelection" = "first";
|
||||
"editor.tabCompletion" = "onlySnippets";
|
||||
"editor.wordBasedSuggestions" = "off";
|
||||
};
|
||||
## md preview
|
||||
#"codebraid.preview.pandoc.build" = {
|
||||
# "*.md" = {
|
||||
# "reader" = "markdown"; # use pandoc markdown and not commonmark
|
||||
# "preview" = { "html" = { defaults = {}; options = []; }; };
|
||||
# };
|
||||
#};
|
||||
# swift
|
||||
"lldb.library" = "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/LLDB";
|
||||
"lldb.launch.expressions" = "native";
|
||||
# ltex-ls
|
||||
#"ltex.language" = "de";
|
||||
#"ltex.ltex-ls.path" = "${pkgs.ltex-ls}";
|
||||
#"ltex.ltex-ls.logLevel" = "finest";
|
||||
#"ltex.trace.server" = "verbose";
|
||||
# idk
|
||||
"hediet.vscode-drawio.resizeImages" = "null";
|
||||
|
||||
};
|
||||
keybindings = [
|
||||
{ "key" = "ctrl+w"; "command" = "whichkey.show"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
196
hm-modules/vscode/extensions.toml
Normal file
196
hm-modules/vscode/extensions.toml
Normal file
|
|
@ -0,0 +1,196 @@
|
|||
vscode_version = "1.86.2"
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "vscodevim"
|
||||
extension_name = "vim"
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "jdinhlife"
|
||||
extension_name = "gruvbox"
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "mkhl"
|
||||
extension_name = "direnv"
|
||||
|
||||
# tomoki1207.pdf # reenable when latex workshop goes
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "eamodio"
|
||||
extension_name = "gitlens"
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode-remote"
|
||||
extension_name = "remote-containers"
|
||||
|
||||
[[extensions]]
|
||||
publisher_name = "johnpapa"
|
||||
extension_name = "vscode-peacock"
|
||||
[[extensions]]
|
||||
publisher_name = "sonarsource"
|
||||
extension_name = "sonarlint-vscode"
|
||||
[[extensions]]
|
||||
publisher_name = "fathulfahmy"
|
||||
extension_name = "lunarkeymap"
|
||||
[[extensions]]
|
||||
publisher_name = "VSpaceCode"
|
||||
extension_name = "whichkey"
|
||||
|
||||
# notetaking
|
||||
[[extensions]]
|
||||
publisher_name = "foam"
|
||||
extension_name = "foam-vscode"
|
||||
[[extensions]]
|
||||
publisher_name = "vsls-contrib"
|
||||
extension_name = "gitdoc"
|
||||
[[extensions]]
|
||||
publisher_name = "bierner"
|
||||
extension_name = "markdown-mermaid"
|
||||
[[extensions]]
|
||||
publisher_name = "bierner"
|
||||
extension_name = "markdown-footnotes"
|
||||
[[extensions]]
|
||||
publisher_name = "bpruitt-goddard"
|
||||
extension_name = "mermaid-markdown-syntax-highlighting"
|
||||
[[extensions]]
|
||||
publisher_name = "hediet"
|
||||
extension_name = "vscode-drawio"
|
||||
|
||||
# Language Support
|
||||
## markdown/latex
|
||||
[[extensions]]
|
||||
publisher_name = "james-yu"
|
||||
extension_name = "latex-workshop" # latex, also provides pdf preview
|
||||
[[extensions]]
|
||||
publisher_name = "yzhang"
|
||||
extension_name = "markdown-all-in-one" # markdown
|
||||
[[extensions]]
|
||||
publisher_name = "davidanson"
|
||||
extension_name = "vscode-markdownlint"
|
||||
[[extensions]]
|
||||
publisher_name = "quarto"
|
||||
extension_name = "quarto"
|
||||
# marketplace.pokey.cursorless # too much xe exposure
|
||||
[[extensions]]
|
||||
publisher_name = "valentjn"
|
||||
extension_name = "vscode-ltex" # languagetool
|
||||
asset_url = '''
|
||||
https://github.com/valentjn/vscode-ltex/releases/download/{{ extension.version }}/vscode-ltex-{{ extension.version }}-offline-mac-x64.vsix
|
||||
'''
|
||||
#marketplace.gpoore.codebraid-preview
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode"
|
||||
extension_name = "hexeditor" # a hex editor
|
||||
#ms-vscode-remote.remote-containers # container envs for stuff
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode-remote"
|
||||
extension_name = "remote-ssh"
|
||||
|
||||
|
||||
|
||||
## others
|
||||
[[extensions]]
|
||||
publisher_name = "vscjava"
|
||||
extension_name = "vscode-java-pack" # java schmava
|
||||
[[extensions]]
|
||||
publisher_name = "vscjava"
|
||||
extension_name = "vscode-java-debug"
|
||||
[[extensions]]
|
||||
publisher_name = "vscjava"
|
||||
extension_name = "vscode-java-test"
|
||||
[[extensions]]
|
||||
publisher_name = "vscjava"
|
||||
extension_name = "vscode-java-dependency"
|
||||
[[extensions]]
|
||||
publisher_name = "vscjava"
|
||||
extension_name = "vscode-maven"
|
||||
[[extensions]]
|
||||
publisher_name = "redhat"
|
||||
extension_name = "java"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode"
|
||||
extension_name = "cpptools-extension-pack" # cpp
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode"
|
||||
extension_name = "cmake-tools"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-vscode"
|
||||
extension_name = "cpptools"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-azuretools"
|
||||
extension_name = "vscode-docker" # docker
|
||||
[[extensions]]
|
||||
publisher_name = "jnoortheen"
|
||||
extension_name = "nix-ide" # nix
|
||||
[[extensions]]
|
||||
publisher_name = "golang"
|
||||
extension_name = "go"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-python"
|
||||
extension_name = "python"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-python"
|
||||
extension_name = "vscode-pylance"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-python"
|
||||
extension_name = "debugpy"
|
||||
[[extensions]]
|
||||
publisher_name = "donjayamanne"
|
||||
extension_name = "python-environment-manager"
|
||||
[[extensions]]
|
||||
publisher_name = "denoland"
|
||||
extension_name = "vscode-deno"
|
||||
[[extensions]]
|
||||
publisher_name = "bradlc"
|
||||
extension_name = "vscode-tailwindcss"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-dotnettools"
|
||||
extension_name = "csharp"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-dotnettools"
|
||||
extension_name = "csdevkit"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-dotnettools"
|
||||
extension_name = "vscode-dotnet-runtime"
|
||||
#(marketplace.ms-dotnettools.csdevkit.overrideAttrs (super: a: { sourceRoot = "."; }))
|
||||
[[extensions]]
|
||||
publisher_name = "rust-lang"
|
||||
extension_name = "rust-analyzer"
|
||||
[[extensions]]
|
||||
publisher_name = "sswg"
|
||||
extension_name = "swift-lang"
|
||||
[[extensions]]
|
||||
publisher_name = "vadimcn"
|
||||
extension_name = "vscode-lldb"
|
||||
asset_url = '''
|
||||
https://github.com/vadimcn/codelldb/releases/download/v{{ extension.version }}/codelldb-{{ system.arch }}-darwin.vsix
|
||||
'''
|
||||
#[[extensions]]
|
||||
#publisher_name = "ms-toolsai"
|
||||
#extension_name = "jupyter"
|
||||
[[extensions]]
|
||||
publisher_name = "ms-toolsai"
|
||||
extension_name = "jupyter-renderers"
|
||||
#marketplace.jakebecker.elixir-ls # elixir
|
||||
[[extensions]]
|
||||
publisher_name = "dart-code"
|
||||
extension_name = "flutter"
|
||||
[[extensions]]
|
||||
publisher_name = "dart-code"
|
||||
extension_name = "dart-code"
|
||||
[[extensions]]
|
||||
publisher_name = "alexisvt"
|
||||
extension_name = "flutter-snippets"
|
||||
[[extensions]]
|
||||
publisher_name = "tauri-apps"
|
||||
extension_name = "tauri-vscode"
|
||||
[[extensions]]
|
||||
publisher_name = "dbaeumer"
|
||||
extension_name = "vscode-eslint"
|
||||
[[extensions]]
|
||||
publisher_name = "firefox-devtools"
|
||||
extension_name = "vscode-firefox-debug"
|
||||
|
||||
# needed for yarn
|
||||
[[extensions]]
|
||||
publisher_name = "arcanis"
|
||||
extension_name = "vscode-zipfs"
|
||||
332
hm-modules/vscode/vscode-extensions.nix
Normal file
332
hm-modules/vscode/vscode-extensions.nix
Normal file
|
|
@ -0,0 +1,332 @@
|
|||
{ pkgs, lib }:
|
||||
|
||||
let
|
||||
vscode-utils = pkgs.vscode-utils;
|
||||
in
|
||||
{
|
||||
"valentjn"."vscode-ltex" = (vscode-utils.buildVscodeExtension {
|
||||
name = "valentjn.vscode-ltex";
|
||||
vscodeExtPublisher = "valentjn";
|
||||
vscodeExtName = "vscode-ltex";
|
||||
src = (pkgs.fetchurl {
|
||||
url = "https://github.com/valentjn/vscode-ltex/releases/download/13.1.0/vscode-ltex-13.1.0-offline-mac-x64.vsix";
|
||||
sha256 = "0s9vkgapzsly3143w04axg71xh52miyzsm7q74wqnzydh29ql3dz";
|
||||
name = "valentjn.vscode-ltex.zip";
|
||||
}).outPath;
|
||||
vscodeExtUniqueId = "valentjn.vscode-ltex";
|
||||
version = "13.1.0";
|
||||
});
|
||||
"ms-python"."python" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "python";
|
||||
publisher = "ms-python";
|
||||
version = "2024.3.10742127";
|
||||
sha256 = "187x6j7300wgvcxh2lcic6ivvavsllzhq0cayqiji943pw3z3k2r";
|
||||
};
|
||||
"ms-python"."vscode-pylance" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-pylance";
|
||||
publisher = "ms-python";
|
||||
version = "2024.3.100";
|
||||
sha256 = "1wgzf4gjrs3lijrgl24bmkbsngyisw8dsyc1370yxspi3npdmj59";
|
||||
};
|
||||
"ms-vscode"."cpptools" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "cpptools";
|
||||
publisher = "ms-vscode";
|
||||
version = "1.19.8";
|
||||
sha256 = "1bwsdpfw692almcr82dgiw4fjp23xrkv58hw664y8lz354ifqa2g";
|
||||
};
|
||||
"ms-toolsai"."jupyter-renderers" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "jupyter-renderers";
|
||||
publisher = "ms-toolsai";
|
||||
version = "1.0.17";
|
||||
sha256 = "1c065s2cllf2x90i174qs2qyzywrlsjkc6agcc9qvdsb426c6r9l";
|
||||
};
|
||||
"dbaeumer"."vscode-eslint" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-eslint";
|
||||
publisher = "dbaeumer";
|
||||
version = "2.4.4";
|
||||
sha256 = "1c10n36a3bxwwjgd4vhrf79wg14dm0hxvz9z23pqdyxzcwrar49l";
|
||||
};
|
||||
"redhat"."java" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "java";
|
||||
publisher = "redhat";
|
||||
version = "1.27.2024011308";
|
||||
sha256 = "134b3ar8qacanp4jxrbdrj97lg7imv93bw6aa1kczppghdi5nhjh";
|
||||
};
|
||||
"ms-azuretools"."vscode-docker" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-docker";
|
||||
publisher = "ms-azuretools";
|
||||
version = "1.29.0";
|
||||
sha256 = "0rz32qwdf7a5hn3nnhxviaf8spwsszfrxmhnbbskspi5r9b6qm4r";
|
||||
};
|
||||
"eamodio"."gitlens" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "gitlens";
|
||||
publisher = "eamodio";
|
||||
version = "2024.3.1605";
|
||||
sha256 = "1bp6jv6y6xl6yykh54cadlr6ip31s796728w5m1akbf5n8wr54yp";
|
||||
};
|
||||
"ms-vscode"."cmake-tools" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "cmake-tools";
|
||||
publisher = "ms-vscode";
|
||||
version = "1.18.10";
|
||||
sha256 = "0mp50k1wvrj6lzrr2g5hp5l20yflyjzwanvpsd2lqynnc2jrhs0s";
|
||||
};
|
||||
"vscjava"."vscode-java-debug" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-java-debug";
|
||||
publisher = "vscjava";
|
||||
version = "0.56.2024022605";
|
||||
sha256 = "1r0xq2qsyd0vmk2vfa6i1vr8hahj74a2kn1sj7ij8pgks3hjv2x7";
|
||||
};
|
||||
"vscjava"."vscode-maven" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-maven";
|
||||
publisher = "vscjava";
|
||||
version = "0.44.2024013105";
|
||||
sha256 = "0fpfr1g6dfrrrdc4i8q19xzx5rqd0irpsba2qhipx08kjr3z57iv";
|
||||
};
|
||||
"ms-vscode"."cpptools-extension-pack" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "cpptools-extension-pack";
|
||||
publisher = "ms-vscode";
|
||||
version = "1.3.0";
|
||||
sha256 = "11fk26siccnfxhbb92z6r20mfbl9b3hhp5zsvpn2jmh24vn96x5c";
|
||||
};
|
||||
"ms-dotnettools"."csharp" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "csharp";
|
||||
publisher = "ms-dotnettools";
|
||||
version = "2.23.2";
|
||||
sha256 = "0ysqwp50z8s2in9mbs401m1a8wjignimm8rj5yz0w7gqh0fzi2bg";
|
||||
};
|
||||
"vscjava"."vscode-java-dependency" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-java-dependency";
|
||||
publisher = "vscjava";
|
||||
version = "0.23.2024022305";
|
||||
sha256 = "18amdhi17fdwhfzip4l14429fcqw9rl6d03kg4yjfxqshj87jwcr";
|
||||
};
|
||||
"vscjava"."vscode-java-test" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-java-test";
|
||||
publisher = "vscjava";
|
||||
version = "0.40.2024030709";
|
||||
sha256 = "1y6kh35spjwxlwja70mzbf1740727fnzi37la86d2x4aashw49q6";
|
||||
};
|
||||
"vscjava"."vscode-java-pack" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-java-pack";
|
||||
publisher = "vscjava";
|
||||
version = "0.25.2023121402";
|
||||
sha256 = "04vv88lmn4fs3gk84nyxcc0r5ay1pmzs59wwfrx78yqrd0mlj596";
|
||||
};
|
||||
"ms-vscode-remote"."remote-containers" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "remote-containers";
|
||||
publisher = "ms-vscode-remote";
|
||||
version = "0.349.0";
|
||||
sha256 = "0krahb8ymnamp20iq4crqjyj37wmvyfrijs4ippxs3620pb9mi6r";
|
||||
};
|
||||
"ms-vscode-remote"."remote-ssh" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "remote-ssh";
|
||||
publisher = "ms-vscode-remote";
|
||||
version = "0.109.2024022215";
|
||||
sha256 = "0bdlqbln7bhlshmi828qkv1l9646rffwaddrikfqiahrz19vm9g4";
|
||||
};
|
||||
"ms-python"."debugpy" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "debugpy";
|
||||
publisher = "ms-python";
|
||||
version = "2024.3.10611007";
|
||||
sha256 = "0bvhv8vxb6l5gyd85imm3p94j8qgfvmcym11v9gvzl0sns38z2bq";
|
||||
};
|
||||
"golang"."go" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "go";
|
||||
publisher = "golang";
|
||||
version = "0.41.2";
|
||||
sha256 = "13fdnwgci87x1rdz1hwq52ling81c3l67cqvmckcjzri2r8gsgvq";
|
||||
};
|
||||
"ms-dotnettools"."vscode-dotnet-runtime" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-dotnet-runtime";
|
||||
publisher = "ms-dotnettools";
|
||||
version = "2.0.2";
|
||||
sha256 = "018fkmx47fa01hwzqqnjsb0b014vash04llifa8pbrn04lx7rp7c";
|
||||
};
|
||||
"dart-code"."dart-code" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "dart-code";
|
||||
publisher = "dart-code";
|
||||
version = "3.85.20240313";
|
||||
sha256 = "19frd9bs4ikz3x1nhy6np6y88jggcp05jvb1frsdgfd80d88ajwr";
|
||||
};
|
||||
"yzhang"."markdown-all-in-one" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "markdown-all-in-one";
|
||||
publisher = "yzhang";
|
||||
version = "3.6.2";
|
||||
sha256 = "1n9d3qh7vypcsfygfr5rif9krhykbmbcgf41mcjwgjrf899f11h4";
|
||||
};
|
||||
"dart-code"."flutter" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "flutter";
|
||||
publisher = "dart-code";
|
||||
version = "3.85.20240301";
|
||||
sha256 = "0wz6bzjjd1z3pg5gv6ywqv5is6qfi1isszqr4dm97nmlph4bh59d";
|
||||
};
|
||||
"donjayamanne"."python-environment-manager" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "python-environment-manager";
|
||||
publisher = "donjayamanne";
|
||||
version = "1.2.4";
|
||||
sha256 = "02pdq9cllnr2ih638cbhfldsw4l8v6091fxk8wp7yvpylfhywfyn";
|
||||
};
|
||||
"davidanson"."vscode-markdownlint" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-markdownlint";
|
||||
publisher = "davidanson";
|
||||
version = "0.54.0";
|
||||
sha256 = "171qw6mymc9hmm8xin3gwr8r2ac8yfr3s8agagsqq9193cawbcq6";
|
||||
};
|
||||
"vscodevim"."vim" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vim";
|
||||
publisher = "vscodevim";
|
||||
version = "1.27.2";
|
||||
sha256 = "0m5gdyvd3yg52d8zxwdw188wqjfvdyyvwnw5dz57pn633g5bi49v";
|
||||
};
|
||||
"bradlc"."vscode-tailwindcss" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-tailwindcss";
|
||||
publisher = "bradlc";
|
||||
version = "0.11.51";
|
||||
sha256 = "1vb3xqvqs2s6zasfh9s943lx481a1ksfh14av59llvbbn5w4w4d6";
|
||||
};
|
||||
"ms-vscode"."hexeditor" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "hexeditor";
|
||||
publisher = "ms-vscode";
|
||||
version = "1.9.14";
|
||||
sha256 = "0fncakv8v8p1rhka5dvh87kc0vsfaxg1s48blwhv7r6fyw70b9jm";
|
||||
};
|
||||
"firefox-devtools"."vscode-firefox-debug" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-firefox-debug";
|
||||
publisher = "firefox-devtools";
|
||||
version = "2.9.10";
|
||||
sha256 = "1w6ncs6f0azi4745zx82pi2z2zxn5vdvyr08y6kk7apzq89ybsy6";
|
||||
};
|
||||
"james-yu"."latex-workshop" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "latex-workshop";
|
||||
publisher = "james-yu";
|
||||
version = "9.19.1";
|
||||
sha256 = "15k0kd12kkgsxgdr8rw3379gbgffdcxw6hb2fzsca9n32bkwym1i";
|
||||
};
|
||||
"rust-lang"."rust-analyzer" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "rust-analyzer";
|
||||
publisher = "rust-lang";
|
||||
version = "0.4.1882";
|
||||
sha256 = "1fg6r73d9zydpi1fwjzrsg3l7v6amzvkh109y9031zsa5hdr6wc5";
|
||||
};
|
||||
"ms-dotnettools"."csdevkit" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "csdevkit";
|
||||
publisher = "ms-dotnettools";
|
||||
version = "1.5.4";
|
||||
sha256 = "0cw42licnkblw90fc1d9jf06y134573w4r6lbmpq61g768gzj2mw";
|
||||
};
|
||||
"johnpapa"."vscode-peacock" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-peacock";
|
||||
publisher = "johnpapa";
|
||||
version = "4.2.3";
|
||||
sha256 = "04a5akgdzwr05snwam7r9m9mgyani48hy4c4xx9hp8nh7ddfwn29";
|
||||
};
|
||||
"sonarsource"."sonarlint-vscode" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "sonarlint-vscode";
|
||||
publisher = "sonarsource";
|
||||
version = "4.4.1";
|
||||
sha256 = "1m31k6d2j3gifh7jplj900a20q2r756ynmwv3p7kwwkpbwpz4wqc";
|
||||
};
|
||||
"vsls-contrib"."gitdoc" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "gitdoc";
|
||||
publisher = "vsls-contrib";
|
||||
version = "0.1.0";
|
||||
sha256 = "0sb5iwsrcqh6gsdngqy1wm6f6kqgqmx2kpqp6hkqri41j2phydjy";
|
||||
};
|
||||
"hediet"."vscode-drawio" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-drawio";
|
||||
publisher = "hediet";
|
||||
version = "1.6.6";
|
||||
sha256 = "0hwvcncl2206p7yjh7flr9qxxpk80mdj32fqh7wi57fb5sfi5xs8";
|
||||
};
|
||||
"bierner"."markdown-mermaid" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "markdown-mermaid";
|
||||
publisher = "bierner";
|
||||
version = "1.22.0";
|
||||
sha256 = "1ii6slnmj5ck40mdnixbybqjqbmqg7wl7yqw66p31wsnpqk71q28";
|
||||
};
|
||||
"alexisvt"."flutter-snippets" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "flutter-snippets";
|
||||
publisher = "alexisvt";
|
||||
version = "3.0.0";
|
||||
sha256 = "1vq4xpzdkk0bima5mx4nzxrfcqf168pm9wj0xi50lpv24vw4db24";
|
||||
};
|
||||
"denoland"."vscode-deno" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-deno";
|
||||
publisher = "denoland";
|
||||
version = "3.35.1";
|
||||
sha256 = "07sm905zjvazp4dfghzc7bcwqaiynaplhfi1k5xdgx09i4f4rgbf";
|
||||
};
|
||||
"jdinhlife"."gruvbox" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "gruvbox";
|
||||
publisher = "jdinhlife";
|
||||
version = "1.18.0";
|
||||
sha256 = "07iy4649vjqif40agvp2ck9695vl1kv4zv69rn4j6hi0jra8dhg2";
|
||||
};
|
||||
"bierner"."markdown-footnotes" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "markdown-footnotes";
|
||||
publisher = "bierner";
|
||||
version = "0.1.1";
|
||||
sha256 = "1pp64x8cn4vmpscmzv2dg6bakjhnwd36rms2wl6bs5laq29k5wl7";
|
||||
};
|
||||
"bpruitt-goddard"."mermaid-markdown-syntax-highlighting" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "mermaid-markdown-syntax-highlighting";
|
||||
publisher = "bpruitt-goddard";
|
||||
version = "1.6.0";
|
||||
sha256 = "14vkkha82pnvvpg4pnzi4d5k9wp272mjmd2m3mrx0jn2kj9r10ax";
|
||||
};
|
||||
"sswg"."swift-lang" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "swift-lang";
|
||||
publisher = "sswg";
|
||||
version = "1.8.1";
|
||||
sha256 = "0bnhp25rgx8g6zgn4jh2vpq4lwbn6cj48v7g37s6rim7xkhzvhdc";
|
||||
};
|
||||
"arcanis"."vscode-zipfs" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "vscode-zipfs";
|
||||
publisher = "arcanis";
|
||||
version = "3.0.0";
|
||||
sha256 = "0wvrqnsiqsxb0a7hyccri85f5pfh9biifq4x2bllpl8mg79l5m68";
|
||||
};
|
||||
"tauri-apps"."tauri-vscode" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "tauri-vscode";
|
||||
publisher = "tauri-apps";
|
||||
version = "0.2.6";
|
||||
sha256 = "03nfyiac562kpndy90j7vc49njmf81rhdyhjk9bxz0llx4ap3lrv";
|
||||
};
|
||||
"foam"."foam-vscode" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "foam-vscode";
|
||||
publisher = "foam";
|
||||
version = "0.25.8";
|
||||
sha256 = "0b3bjiw5s0i1jajc9ybmmri566gr8mp68flbyxpn4mqs4bwdfxdn";
|
||||
};
|
||||
"quarto"."quarto" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "quarto";
|
||||
publisher = "quarto";
|
||||
version = "1.111.0";
|
||||
sha256 = "196axk27vclp3iaxf7230sgxjp592p858ga6idrhw61r7nnsngd8";
|
||||
};
|
||||
"vspacecode"."whichkey" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "whichkey";
|
||||
publisher = "vspacecode";
|
||||
version = "0.11.4";
|
||||
sha256 = "0g80ki2xv2sbzdgqnhvll37hl0bh31syz7bbcqvsr79pqvzwh2ws";
|
||||
};
|
||||
"jnoortheen"."nix-ide" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "nix-ide";
|
||||
publisher = "jnoortheen";
|
||||
version = "0.3.1";
|
||||
sha256 = "1cpfckh6zg8byi6x1llkdls24w9b0fvxx4qybi9zfcy5gc60r6nk";
|
||||
};
|
||||
"mkhl"."direnv" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "direnv";
|
||||
publisher = "mkhl";
|
||||
version = "0.17.0";
|
||||
sha256 = "1n2qdd1rspy6ar03yw7g7zy3yjg9j1xb5xa4v2q12b0y6dymrhgn";
|
||||
};
|
||||
"fathulfahmy"."lunarkeymap" = vscode-utils.extensionFromVscodeMarketplace {
|
||||
name = "lunarkeymap";
|
||||
publisher = "fathulfahmy";
|
||||
version = "1.2.4";
|
||||
sha256 = "0mcrkjl5xl09b7pgqbhm7w27n0wacgghiw9v8m3mmvx8zlmcamln";
|
||||
};
|
||||
}
|
||||
|
||||
68
hm-modules/xonsh/default.nix
Normal file
68
hm-modules/xonsh/default.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{ pkgs, config, lib, inputs, ... }:
|
||||
let
|
||||
cfg = config.ragon.xonsh;
|
||||
xonsh =
|
||||
pkgs.unstable.xonsh.override {
|
||||
extraPackages = ps: [
|
||||
ps.numpy
|
||||
ps.pandas
|
||||
ps.requests
|
||||
(ps.buildPythonPackage {
|
||||
pname = "xonsh-direnv";
|
||||
version = "0.0.0";
|
||||
src = inputs.xonsh-direnv;
|
||||
})
|
||||
(ps.buildPythonPackage {
|
||||
pname = "xonsh-fish-completer";
|
||||
version = "0.0.0";
|
||||
format = "pyproject";
|
||||
src = inputs.xonsh-fish-completer;
|
||||
prePatch = ''
|
||||
pkgs.lib.substituteInPlace pyproject.toml --replace '"xonsh>=0.12.5"' ""
|
||||
'';
|
||||
patchPhase = "sed -i -e 's/^dependencies.*$/dependencies = []/' pyproject.toml";
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = [
|
||||
ps.setuptools
|
||||
];
|
||||
})
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
options.ragon.xonsh.enable = lib.mkOption { default = false; };
|
||||
config = lib.mkIf cfg.enable {
|
||||
home.packages = [
|
||||
xonsh
|
||||
];
|
||||
programs.fish.enable = true; # for completions
|
||||
home.file.".xonshrc".text = ''
|
||||
$PROMPT_FIELDS['rootuser'] = lambda: "{RED}{user}{RESET}" if $USER == "root" else None
|
||||
$PROMPT_FIELDS['sshhostname'] = lambda: "{user}@{hostname}" if "SSH_TTY" in ''${...} else $PROMPT_FIELDS['rootuser']()
|
||||
$PROMPT = '{gitstatus:{RESET}[{}{RESET}] }{sshhostname:{} }{BOLD_GREEN}{short_cwd}{RED}{last_return_code_if_nonzero: [{BOLD_INTENSE_RED}{}{RED}] }{RESET}{BOLD_BLUE}{RESET}> '
|
||||
$VI_MODE = True
|
||||
|
||||
# https://xon.sh/xonshrc.html?highlight=nix#use-the-nix-package-manager-with-xonsh
|
||||
import os.path
|
||||
if os.path.exists(f"{$HOME}/.nix-profile") and not __xonsh__.env.get("NIX_PATH"):
|
||||
$NIX_REMOTE="daemon"
|
||||
$NIX_USER_PROFILE_DIR="/nix/var/nix/profiles/per-user/" + $USER
|
||||
$NIX_PROFILES="/nix/var/nix/profiles/default " + $HOME + "/.nix-profile"
|
||||
$NIX_SSL_CERT_FILE="/etc/ssl/certs/ca-certificates.crt"
|
||||
$NIX_PATH="nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs:/nix/var/nix/profiles/per-user/root/channels"
|
||||
$PATH += [f"{$HOME}/.nix-profile/bin", "/nix/var/nix/profiles/default/bin"]
|
||||
|
||||
xontrib load direnv
|
||||
xontrib load fish_completer
|
||||
'';
|
||||
programs.vscode.userSettings."terminal.integrated.profiles.osx" = {
|
||||
xonsh = {
|
||||
path = "${xonsh}/bin/xonsh";
|
||||
};
|
||||
};
|
||||
programs.vscode.userSettings."terminal.integrated.defaultProfile.osx" = "xonsh";
|
||||
programs.tmux.extraConfig = ''
|
||||
set-option -g default-command "${xonsh}/bin/xonsh"
|
||||
'';
|
||||
};
|
||||
}
|
||||
36
hm-modules/zsh/default.nix
Normal file
36
hm-modules/zsh/default.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ inputs, config, lib, pkgs, ... }:
|
||||
let
|
||||
cfg = config.ragon.cli;
|
||||
in
|
||||
{
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
initExtra =
|
||||
let
|
||||
zshrc = builtins.readFile ./zshrc;
|
||||
p10k = builtins.readFile ./p10k.zsh;
|
||||
|
||||
sources = [
|
||||
"${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
|
||||
# "${inputs.agkozak-zsh-prompt}/agkozak-zsh-prompt.plugin.zsh"
|
||||
"${pkgs.oh-my-zsh}/share/oh-my-zsh/plugins/git/git.plugin.zsh"
|
||||
#"${pkgs.oh-my-zsh}/share/oh-my-zsh/plugins/globalias/globalias.plugin.zsh"
|
||||
"${inputs.zsh-vim-mode}/zsh-vim-mode.plugin.zsh"
|
||||
"${inputs.zsh-syntax-highlighting}/zsh-syntax-highlighting.plugin.zsh"
|
||||
"${inputs.zsh-completions}/zsh-completions.plugin.zsh"
|
||||
];
|
||||
|
||||
source = map (x: "source " + x) sources;
|
||||
|
||||
plugins = builtins.concatStringsSep "\n" (source);
|
||||
|
||||
in
|
||||
''
|
||||
${p10k}
|
||||
${zshrc}
|
||||
${plugins}
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
1644
hm-modules/zsh/p10k.zsh
Normal file
1644
hm-modules/zsh/p10k.zsh
Normal file
File diff suppressed because it is too large
Load diff
45
hm-modules/zsh/zshrc
Normal file
45
hm-modules/zsh/zshrc
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
autoload -Uz history-search-end
|
||||
|
||||
zle -N history-beginning-search-backward-end history-search-end
|
||||
zle -N history-beginning-search-forward-end history-search-end
|
||||
|
||||
bindkey -M vicmd '^[[A' history-beginning-search-backward-end \
|
||||
'^[OA' history-beginning-search-backward-end \
|
||||
'^[[B' history-beginning-search-forward-end \
|
||||
'^[OB' history-beginning-search-forward-end
|
||||
bindkey -M viins '^[[A' history-beginning-search-backward-end \
|
||||
'^[OA' history-beginning-search-backward-end \
|
||||
'^[[B' history-beginning-search-forward-end \
|
||||
'^[OB' history-beginning-search-forward-end
|
||||
|
||||
hash go 2>/dev/null && export PATH=$PATH:$(go env GOPATH)/bin
|
||||
hash yarn 2>/dev/null && export PATH=$PATH:$HOME/.yarn/bin
|
||||
hash dotnet 2>/dev/null && export PATH=$PATH:$HOME/.dotnet/tools
|
||||
hash direnv 2>/dev/null && eval "$(direnv hook zsh)"
|
||||
export NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|rar|rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zip)$"
|
||||
|
||||
n ()
|
||||
{
|
||||
# Block nesting of nnn in subshells
|
||||
if [ -n $NNNLVL ] && [ "${NNNLVL:-0}" -ge 1 ]; then
|
||||
echo "nnn is already running"
|
||||
return
|
||||
fi
|
||||
|
||||
export NNN_TMPFILE="$HOME/.config/nnn/.lastd"
|
||||
|
||||
# Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
|
||||
# stty start undef
|
||||
# stty stop undef
|
||||
# stty lwrap undef
|
||||
# stty lnext undef
|
||||
|
||||
nnn -d "$@"
|
||||
|
||||
if [ -f "$NNN_TMPFILE" ]; then
|
||||
. "$NNN_TMPFILE"
|
||||
rm -f "$NNN_TMPFILE" > /dev/null
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue