diff --git a/users/richie/home.nix b/users/richie/home.nix index 1fbfde1..ab66375 100644 --- a/users/richie/home.nix +++ b/users/richie/home.nix @@ -4,13 +4,21 @@ imports = [ ./home/sshconfig.nix ./home/git.nix + ./home/vscode ]; + nixpkgs = { + config = { + allowUnfree = true; + }; + }; + programs.zsh.enable = true; home = { username = "richie"; homeDirectory = "/home/richie"; packages = with pkgs; [ + firefox # Rust packages topgrade trunk diff --git a/users/richie/home/vscode/default.nix b/users/richie/home/vscode/default.nix new file mode 100644 index 0000000..3bc1eba --- /dev/null +++ b/users/richie/home/vscode/default.nix @@ -0,0 +1,49 @@ +{ config, pkgs, ... }: +let + vscode_dir = "/home/richie/nix-dotfiles/users/richie/home/vscode"; +in +{ + # mutable symlinks to keybinds and settings + xdg.configFile."Code/User/settings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/settings.json"; + xdg.configFile."Code/User/keybindings.json".source = config.lib.file.mkOutOfStoreSymlink "${vscode_dir}/keybindings.json"; + + home.packages = with pkgs; [ nil ]; + + programs.vscode = { + enable = true; + package = pkgs.vscode-fhs; + mutableExtensionsDir = true; + extensions = with pkgs.vscode-extensions; [ + # MD + yzhang.markdown-all-in-one + # rust + rust-lang.rust-analyzer + # python + ms-python.vscode-pylance + charliermarsh.ruff + # congigs + tamasfe.even-better-toml + redhat.vscode-yaml + # git + eamodio.gitlens + codezombiech.gitignore + # vscode + ms-vscode-remote.remote-ssh + ms-vscode-remote.remote-containers + ms-azuretools.vscode-docker + ms-vsliveshare.vsliveshare + ms-vscode.hexeditor + oderwat.indent-rainbow + usernamehw.errorlens + streetsidesoftware.code-spell-checker + # shell + timonwong.shellcheck + foxundermoon.shell-format + # nix + jnoortheen.nix-ide + # other + esbenp.prettier-vscode + mechatroner.rainbow-csv + ]; + }; +} diff --git a/users/richie/home/vscode/keybindings.json b/users/richie/home/vscode/keybindings.json new file mode 100644 index 0000000..0d4f101 --- /dev/null +++ b/users/richie/home/vscode/keybindings.json @@ -0,0 +1,2 @@ +[ +] diff --git a/users/richie/home/vscode/settings.json b/users/richie/home/vscode/settings.json new file mode 100644 index 0000000..e48dc9b --- /dev/null +++ b/users/richie/home/vscode/settings.json @@ -0,0 +1,30 @@ +{ + "workbench.colorTheme": "Default Dark+", + "explorer.confirmDragAndDrop": false, + "files.autoSave": "afterDelay", + "explorer.confirmDelete": false, + "git.confirmSync": false, + "git.pruneOnFetch": true, + "git.fetchOnPull": true, + "git.autofetch": true, + "keyboard.dispatch": "keyCode", + + "editor.formatOnSave": true, + "editor.fontFamily": "'IntoneMono Nerd Font', 'Droid Sans Mono', 'monospace', monospace", + + "nix.enableLanguageServer": true, + "nix.serverPath": "nil", + + "[jsonc]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + + "python.analysis.typeCheckingMode": "basic", + "update.mode": "none", + "redhat.telemetry.enabled": true, + // force the use of rust-analyzer from dev shell + "rust-analyzer.server.path": "rust-analyzer" +}