some slight changes

This commit is contained in:
Lucy Hochkamp 2024-03-17 09:07:28 +01:00
parent be17bb97d2
commit ff468ca2d7
No known key found for this signature in database
70 changed files with 245 additions and 2131 deletions

84
hm-modules/cli.nix Normal file
View 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
View 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 = "";
};
}

View 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"
]
}

View 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,
-- })

View 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
]]

View 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>")
]]

View 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]",
})
}),
},
})

View 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 {}

View file

@ -0,0 +1 @@
require('gitsigns').setup {}

View 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 {}

View 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)

View 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'
}
}
})

View 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,
})

View 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')

View 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

View 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)
}

View 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

View 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
View 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
]);
};
};
}

View 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;
}

View 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:

View 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 ""

View 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

View 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

View 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

View 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"; }
];
};
};
}

View 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"

View 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";
};
}

View 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"
'';
};
}

View 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

File diff suppressed because it is too large Load diff

45
hm-modules/zsh/zshrc Normal file
View 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
}