Personal dotfiles for Linux, mostly for Nixpkgs/NixOS-based and Termux setups. Mirrored using GitLab's push mirroring feature. gitlab.com/andreijiroh-dev/dotfiles
linux dotfiles

Update nix files and stuff

+17
.config/home-manager/home.nix
··· 1 + { config, ... }: 2 + 3 + { 4 + imports = [ 5 + ./meta.nix 6 + ]; 7 + 8 + # Home Manager needs a bit of information about you and the paths it should 9 + # manage. Also don't ask how we got here on the roleplaying part on the main 10 + # nixpkgs branch of the dotfiles. 11 + # TODO: Update the username and homeDirectory when switching between host-specific 12 + # branches. 13 + home = { 14 + username = "gildedguy"; 15 + homeDirectory = "/home/gildedguy"; 16 + }; 17 + }
+193
.config/home-manager/meta.nix
··· 1 + # This is the meta configuration for my dotfiles with home-manager, except 2 + # some home.{username,userDirectory} configs to ensure portability between 3 + # hosts 4 + 5 + { config, pkgs, lib, ... }: 6 + 7 + { 8 + # https://fnordig.de/til/nix/home-manager-allow-unfree.html 9 + nixpkgs = { 10 + config = { 11 + allowUnfree = true; 12 + # https://github.com/nix-community/home-manager/issues/2942 13 + allowUnfreePredicate = (_: true); 14 + }; 15 + }; 16 + 17 + # This value determines the Home Manager release that your configuration is 18 + # compatible with. This helps avoid breakage when a new Home Manager release 19 + # introduces backwards incompatible changes. 20 + # 21 + # You should not change this value, even if you update Home Manager. If you do 22 + # want to update the value, then make sure to first check the Home Manager 23 + # release notes. 24 + home.stateVersion = "24.11"; # Please read the comment before changing. 25 + 26 + # The home.packages option allows you to install Nix packages into your 27 + # environment. 28 + home.packages = with pkgs; [ 29 + # # Adds the 'hello' command to your environment. It prints a friendly 30 + # # "Hello, world!" when run. 31 + # pkgs.hello 32 + 33 + # # It is sometimes useful to fine-tune packages, for example, by applying 34 + # # overrides. You can do that directly here, just don't forget the 35 + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of 36 + # # fonts? 37 + # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) 38 + 39 + # # You can also create simple shell scripts directly inside your 40 + # # configuration. For example, this adds a command 'my-hello' to your 41 + # # environment: 42 + # (pkgs.writeShellScriptBin "my-hello" '' 43 + # echo "Hello, ${config.home.username}!" 44 + # '') 45 + 46 + ## devtools ## 47 + # https://httpie.io 48 + httpie 49 + # https://devenv.sh 50 + devenv 51 + # https://cli.github.com 52 + gh 53 + # bet we'll going to have a field day since Copilot is now available for free 54 + # (this is seperate from the gh copilot extension for those asking) 55 + # context: https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/ 56 + github-copilot-cli 57 + # markdownlint 58 + markdownlint-cli 59 + # https://doppler.com 60 + doppler 61 + direnv 62 + shellcheck 63 + hadolint 64 + 65 + ## programming languages 66 + deno 67 + nodejs_22 68 + python313 69 + pipx 70 + pipenv 71 + 72 + ## language servers ## 73 + # nix language server - https://github.com/oxalica/nil 74 + nil 75 + # https://github.com/alesbrelih/gitlab-ci-ls 76 + gitlab-ci-ls 77 + ]; 78 + 79 + home.sessionPath = [ 80 + "${config.home.homeDirectory}/bin" 81 + ]; 82 + 83 + # Home Manager is pretty good at managing dotfiles. The primary way to manage 84 + # plain files is through 'home.file'. 85 + home.file = { 86 + # # Building this configuration will create a copy of 'dotfiles/screenrc' in 87 + # # the Nix store. Activating the configuration will then make '~/.screenrc' a 88 + # # symlink to the Nix store copy. 89 + # ".screenrc".source = dotfiles/screenrc; 90 + 91 + # # You can also set the file content immediately. 92 + # ".gradle/gradle.properties".text = '' 93 + # org.gradle.console=verbose 94 + # org.gradle.daemon.idletimeout=3600000 95 + # ''; 96 + }; 97 + 98 + # Home Manager can also manage your environment variables through 99 + # 'home.sessionVariables'. These will be explicitly sourced when using a 100 + # shell provided by Home Manager. If you don't want to manage your shell 101 + # through Home Manager then you have to manually source 'hm-session-vars.sh' 102 + # located at either 103 + # 104 + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh 105 + # 106 + # or 107 + # 108 + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh 109 + # 110 + # or 111 + # 112 + # /etc/profiles/per-user/gildedguy/etc/profile.d/hm-session-vars.sh 113 + # 114 + home.sessionVariables = { 115 + EDITOR = "nano"; 116 + NIXOS_ALLOW_UNFREE = "1"; # for impure builds 117 + GIT_EDITOR = "code --wait"; 118 + VISUAL = "code --wait"; 119 + DOCKER_BUILDKIT = "1"; 120 + }; 121 + 122 + # Let Home Manager install and manage itself. 123 + programs.home-manager.enable = true; 124 + 125 + # let me cook with the configs, starting with git 126 + programs.git = { 127 + enable = true; 128 + package = pkgs.gitAndTools.gitFull; 129 + lfs = { 130 + enable = true; 131 + }; 132 + userName = "Andrei Jiroh Halili"; 133 + userEmail = "ajhalili2006@andreijiroh.dev"; 134 + aliases = { 135 + signoff = "commit --signoff"; 136 + amend = "commit -a --amend"; 137 + remotes = "remote -v"; 138 + root = "rev-parse --show-toplevel"; 139 + unstage = "restore --staged"; 140 + stats = "status"; 141 + }; 142 + extraConfig = { 143 + format = { 144 + signOff = true; 145 + }; 146 + init = { 147 + defaultBranch = "main"; 148 + }; 149 + 150 + # https://groups.google.com/g/binary-transparency/c/f-BI4o8HZW0 151 + transfer = { 152 + fsckobjects = true; 153 + }; 154 + fetch = { 155 + fsckobjects = true; 156 + }; 157 + receive = { 158 + fsckobjects = true; 159 + }; 160 + push = { 161 + autoSetupRemote = true; 162 + }; 163 + 164 + 165 + }; 166 + }; 167 + 168 + programs.vscode = { 169 + enable = true; 170 + package = pkgs.vscode; 171 + enableExtensionUpdateCheck = true; 172 + mutableExtensionsDir = true; 173 + # userSettings = { 174 + # "nix.enableLanguageServer" = true; 175 + # "nix.serverPath" = "nil"; 176 + # "window.customTitleBarVisibility" = "auto"; 177 + # "window.titleBarStyle" = "custom"; 178 + # "window.menuBarVisibility" = "classic"; 179 + # "redhat.telemetry.enabled" = true; 180 + # "github.copilot.editor.enableAutoCompletions" = false; 181 + # "github.copilot.chat.followUps" = "always"; 182 + # "github.copilot.chat.terminalChatLocation" = "terminal"; 183 + # "git.confirmSync" = false; 184 + # "microsoft-authentication.implementation" = "msal"; 185 + # "workbench.colorTheme" = "GitHub Dark Colorblind (Beta)"; 186 + # "workbench.iconTheme" = "material-icon-theme"; 187 + # "workbench.productIconTheme" = "material-product-icons"; 188 + # }; 189 + # We're importing what's generated from nix4vscode here as a workaround 190 + # for now. 191 + #extensions = lib.attrsets.mapAttrsToList (_: v: v) vscExts; 192 + }; 193 + }
+371 -5
.config/nixos/shared/vscode-extensions.nix
··· 1 - { pkgs, lib, ... }: 1 + { pkgs, lib }: 2 2 3 3 let 4 4 inherit (pkgs.stdenv) isDarwin isLinux isi686 isx86_64 isAarch32 isAarch64; ··· 10 10 (merge 11 11 (merge 12 12 { 13 + "ms-python"."vscode-pylance" = vscode-utils.extensionFromVscodeMarketplace { 14 + name = "vscode-pylance"; 15 + publisher = "ms-python"; 16 + version = "2024.12.100"; 17 + sha256 = "167cj9r476whfjg474s4nf7zi8v7cj58vrqiw86y4vcgl57v4h50"; 18 + }; 19 + "esbenp"."prettier-vscode" = vscode-utils.extensionFromVscodeMarketplace { 20 + name = "prettier-vscode"; 21 + publisher = "esbenp"; 22 + version = "11.0.0"; 23 + sha256 = "1fcz8f4jgnf24kblf8m8nwgzd5pxs2gmrv235cpdgmqz38kf9n54"; 24 + }; 25 + "ms-azuretools"."vscode-docker" = vscode-utils.extensionFromVscodeMarketplace { 26 + name = "vscode-docker"; 27 + publisher = "ms-azuretools"; 28 + version = "1.29.3"; 29 + sha256 = "1j35yr8f0bqzv6qryw0krbfigfna94b519gnfy46sr1licb6li6g"; 30 + }; 31 + "dbaeumer"."vscode-eslint" = vscode-utils.extensionFromVscodeMarketplace { 32 + name = "vscode-eslint"; 33 + publisher = "dbaeumer"; 34 + version = "3.0.13"; 35 + sha256 = "0yjrylvkw5q9w7kjigndm5m66qn8nranrm0m7qna8ggi0f2nz5cp"; 36 + }; 13 37 "eamodio"."gitlens" = vscode-utils.extensionFromVscodeMarketplace { 14 38 name = "gitlens"; 15 39 publisher = "eamodio"; ··· 22 46 version = "5.16.0"; 23 47 sha256 = "0ggwj2y84dyqhzl9kisddx64559bkhnfv94zxz6zcqyfq0vpycng"; 24 48 }; 49 + "github"."vscode-pull-request-github" = vscode-utils.extensionFromVscodeMarketplace { 50 + name = "vscode-pull-request-github"; 51 + publisher = "github"; 52 + version = "0.103.2024121117"; 53 + sha256 = "0k90870ra85np0dg19mx2blr1yg9i2sk25mx08bblqh0hh0s5941"; 54 + }; 55 + "github"."copilot" = vscode-utils.extensionFromVscodeMarketplace { 56 + name = "copilot"; 57 + publisher = "github"; 58 + version = "1.254.1278"; 59 + sha256 = "0n55apya8q87l4ijfvj3qqwg6sij1k9is99zc2wffgmghqb9fv7l"; 60 + }; 25 61 "wakatime"."vscode-wakatime" = vscode-utils.extensionFromVscodeMarketplace { 26 62 name = "vscode-wakatime"; 27 63 publisher = "wakatime"; 28 64 version = "25.0.0"; 29 65 sha256 = "1c5ilsj8zvcrhvh3gb9wbgz8llfkjgxnv39r12a3iyy3fvdg5zlz"; 30 66 }; 67 + "github"."copilot-chat" = vscode-utils.extensionFromVscodeMarketplace { 68 + name = "copilot-chat"; 69 + publisher = "github"; 70 + version = "0.24.2024121201"; 71 + sha256 = "14cs1ncbv0fib65m1iv6njl892p09fmamjkfyxrsjqgks2hisz5z"; 72 + }; 73 + "xabikos"."javascriptsnippets" = vscode-utils.extensionFromVscodeMarketplace { 74 + name = "javascriptsnippets"; 75 + publisher = "xabikos"; 76 + version = "1.8.0"; 77 + sha256 = "19xg24alxsvq8pvafprshg7qxzx8p37bzk7qz6kjgkpvandrdpl6"; 78 + }; 31 79 "github"."github-vscode-theme" = vscode-utils.extensionFromVscodeMarketplace { 32 80 name = "github-vscode-theme"; 33 81 publisher = "github"; 34 82 version = "6.3.5"; 35 83 sha256 = "0jj7bp5iadrm2h75pdn96z0wzygv0sfa93karvlqlwagh2hrvrkl"; 36 84 }; 85 + "golang"."go" = vscode-utils.extensionFromVscodeMarketplace { 86 + name = "go"; 87 + publisher = "golang"; 88 + version = "0.45.0"; 89 + sha256 = "1ihy5pd5ymxarcgnq8ky7nfa9kk9x3hdazajirrh5f1m4cwgizn3"; 90 + }; 91 + "donjayamanne"."githistory" = vscode-utils.extensionFromVscodeMarketplace { 92 + name = "githistory"; 93 + publisher = "donjayamanne"; 94 + version = "0.6.20"; 95 + sha256 = "0x9q7sh5l1frpvfss32ypxk03d73v9npnqxif4fjwcfwvx5mhiww"; 96 + }; 97 + "streetsidesoftware"."code-spell-checker" = vscode-utils.extensionFromVscodeMarketplace { 98 + name = "code-spell-checker"; 99 + publisher = "streetsidesoftware"; 100 + version = "4.0.29"; 101 + sha256 = "1vx7qs66vbkshig029qgxmcx1shg5hkjkj7bd693hzfhz8702krs"; 102 + }; 103 + "editorconfig"."editorconfig" = vscode-utils.extensionFromVscodeMarketplace { 104 + name = "editorconfig"; 105 + publisher = "editorconfig"; 106 + version = "0.16.4"; 107 + sha256 = "0fa4h9hk1xq6j3zfxvf483sbb4bd17fjl5cdm3rll7z9kaigdqwg"; 108 + }; 109 + "bradlc"."vscode-tailwindcss" = vscode-utils.extensionFromVscodeMarketplace { 110 + name = "vscode-tailwindcss"; 111 + publisher = "bradlc"; 112 + version = "0.13.64"; 113 + sha256 = "14962pavlbdmqki6m7y7k9nvz1pcicrn3dw10lrcq8vxbj2bc416"; 114 + }; 115 + "davidanson"."vscode-markdownlint" = vscode-utils.extensionFromVscodeMarketplace { 116 + name = "vscode-markdownlint"; 117 + publisher = "davidanson"; 118 + version = "0.57.0"; 119 + sha256 = "1gsc3xsvy4qbz75frk6jjf2f95b0frmbclhgxi1j49zbh16y2b76"; 120 + }; 121 + "mikestead"."dotenv" = vscode-utils.extensionFromVscodeMarketplace { 122 + name = "dotenv"; 123 + publisher = "mikestead"; 124 + version = "1.0.1"; 125 + sha256 = "0rs57csczwx6wrs99c442qpf6vllv2fby37f3a9rhwc8sg6849vn"; 126 + }; 127 + "github"."codespaces" = vscode-utils.extensionFromVscodeMarketplace { 128 + name = "codespaces"; 129 + publisher = "github"; 130 + version = "1.17.3"; 131 + sha256 = "1g4b7gd24cifmh62v1dj1b79yp5z6jbffmwh2nlymjbqf9h4bll9"; 132 + }; 133 + "mtxr"."sqltools" = vscode-utils.extensionFromVscodeMarketplace { 134 + name = "sqltools"; 135 + publisher = "mtxr"; 136 + version = "0.28.3"; 137 + sha256 = "0zs8gdfar6g7j1mybdrpx7rmydlb1smqicw9438hrfzw301cffkd"; 138 + }; 139 + "codezombiech"."gitignore" = vscode-utils.extensionFromVscodeMarketplace { 140 + name = "gitignore"; 141 + publisher = "codezombiech"; 142 + version = "0.9.0"; 143 + sha256 = "0ww0x28m83fv5zdqkmz108rsxb60fyy5y0ksknb2xchirzwhayi0"; 144 + }; 145 + "github"."remotehub" = vscode-utils.extensionFromVscodeMarketplace { 146 + name = "remotehub"; 147 + publisher = "github"; 148 + version = "0.65.2024112101"; 149 + sha256 = "0mbw1nzvf8ch55vq0lsf0qpfl1dgyk5y80pca81j9dplyz4vrgax"; 150 + }; 151 + "ms-vscode"."remote-repositories" = vscode-utils.extensionFromVscodeMarketplace { 152 + name = "remote-repositories"; 153 + publisher = "ms-vscode"; 154 + version = "0.43.2024112101"; 155 + sha256 = "1mss2fkpx21dm5rlnbhqw7japxz4k22grrv66ja34fl9fbqli9zw"; 156 + }; 157 + "github"."vscode-github-actions" = vscode-utils.extensionFromVscodeMarketplace { 158 + name = "vscode-github-actions"; 159 + publisher = "github"; 160 + version = "0.27.0"; 161 + sha256 = "0sk8cgnk4pyjxwfi3hr3qrajffvdncvq3xbjn73g3jz0ygakg7xi"; 162 + }; 163 + "ms-vscode"."azure-repos" = vscode-utils.extensionFromVscodeMarketplace { 164 + name = "azure-repos"; 165 + publisher = "ms-vscode"; 166 + version = "0.41.2024112101"; 167 + sha256 = "1dgyr1zmrl1aihlsfn0grrysmzf4g47m968zdn7fyc17hl857r59"; 168 + }; 169 + "orta"."vscode-jest" = vscode-utils.extensionFromVscodeMarketplace { 170 + name = "vscode-jest"; 171 + publisher = "orta"; 172 + version = "6.4.0"; 173 + sha256 = "0asjg2ycq20qg2zyxybnmas2br08mjwhsw03y0qz24g8rkn9a7s4"; 174 + }; 175 + "tamasfe"."even-better-toml" = vscode-utils.extensionFromVscodeMarketplace { 176 + name = "even-better-toml"; 177 + publisher = "tamasfe"; 178 + version = "0.21.2"; 179 + sha256 = "0208cms054yj2l8pz9jrv3ydydmb47wr4i0sw8qywpi8yimddf11"; 180 + }; 181 + "bierner"."markdown-mermaid" = vscode-utils.extensionFromVscodeMarketplace { 182 + name = "markdown-mermaid"; 183 + publisher = "bierner"; 184 + version = "1.27.0"; 185 + sha256 = "1c9nvi2r3frbyi2ygff2zh3ylvr4df585mb6b5r8n6g5aa9kzp6k"; 186 + }; 187 + "prisma"."prisma" = vscode-utils.extensionFromVscodeMarketplace { 188 + name = "prisma"; 189 + publisher = "prisma"; 190 + version = "6.1.0"; 191 + sha256 = "1m4i60hm62m1bl6nn4pk0l54ph7zf0c3ppvx4qc4bwpqv82k7xv1"; 192 + }; 193 + "bierner"."markdown-preview-github-styles" = vscode-utils.extensionFromVscodeMarketplace { 194 + name = "markdown-preview-github-styles"; 195 + publisher = "bierner"; 196 + version = "2.1.0"; 197 + sha256 = "1fn9gdf3xj1drch4djn6c9lg94i2r9yjpfrf1a0y4v8q2zjk8sz8"; 198 + }; 199 + "gitlab"."gitlab-workflow" = vscode-utils.extensionFromVscodeMarketplace { 200 + name = "gitlab-workflow"; 201 + publisher = "gitlab"; 202 + version = "5.26.0"; 203 + sha256 = "1xb8a834bgblc4zcrdc9v3by3wv3fls3bz3bm7rxaqyvszlpb42d"; 204 + }; 205 + "bierner"."markdown-emoji" = vscode-utils.extensionFromVscodeMarketplace { 206 + name = "markdown-emoji"; 207 + publisher = "bierner"; 208 + version = "0.3.1"; 209 + sha256 = "0409sks7zz0lp1a0x6nxsh11yfnnb36s802q6dwfwjnblp049xw1"; 210 + }; 37 211 "denoland"."vscode-deno" = vscode-utils.extensionFromVscodeMarketplace { 38 212 name = "vscode-deno"; 39 213 publisher = "denoland"; 40 214 version = "3.43.1"; 41 215 sha256 = "0lna1znrbsdggzp6mx079461p21ngwgqz6mb7i3d0bnpxb844x3a"; 42 216 }; 217 + "bierner"."markdown-checkbox" = vscode-utils.extensionFromVscodeMarketplace { 218 + name = "markdown-checkbox"; 219 + publisher = "bierner"; 220 + version = "0.4.0"; 221 + sha256 = "0jbfi0av84ixwhcpysh9gyrsfxpy65igiidrdarn7vgsvxsdr0q2"; 222 + }; 43 223 "unifiedjs"."vscode-mdx" = vscode-utils.extensionFromVscodeMarketplace { 44 224 name = "vscode-mdx"; 45 225 publisher = "unifiedjs"; 46 226 version = "1.8.12"; 47 227 sha256 = "0afzx5i6bw7hmm4f8vdvx6a6mx053gmvc0gn78fz94b6fyaijsl7"; 48 228 }; 229 + "bierner"."emojisense" = vscode-utils.extensionFromVscodeMarketplace { 230 + name = "emojisense"; 231 + publisher = "bierner"; 232 + version = "0.10.0"; 233 + sha256 = "14rb8licb32rh04g7lq73lmfx4pk2p4x63427l3s9fw9idsiwgrw"; 234 + }; 235 + "bierner"."markdown-yaml-preamble" = vscode-utils.extensionFromVscodeMarketplace { 236 + name = "markdown-yaml-preamble"; 237 + publisher = "bierner"; 238 + version = "0.1.0"; 239 + sha256 = "1xlb6dvrsy2sp92lax1nq01xcrax1nm256ns9b4vvkq7p4njpqp5"; 240 + }; 241 + "bierner"."markdown-footnotes" = vscode-utils.extensionFromVscodeMarketplace { 242 + name = "markdown-footnotes"; 243 + publisher = "bierner"; 244 + version = "0.1.1"; 245 + sha256 = "1pp64x8cn4vmpscmzv2dg6bakjhnwd36rms2wl6bs5laq29k5wl7"; 246 + }; 247 + "bierner"."github-markdown-preview" = vscode-utils.extensionFromVscodeMarketplace { 248 + name = "github-markdown-preview"; 249 + publisher = "bierner"; 250 + version = "0.3.0"; 251 + sha256 = "124vsg5jxa90j3mssxi18nb3wn6fji6b0mnnkasa89rgx3jfb5pf"; 252 + }; 49 253 "pkief"."material-product-icons" = vscode-utils.extensionFromVscodeMarketplace { 50 254 name = "material-product-icons"; 51 255 publisher = "pkief"; ··· 58 262 version = "1.26.0"; 59 263 sha256 = "1n414wwd6my4xjmh55b6l0s8bqadnq35ya1isxvdi6yabapbwg9f"; 60 264 }; 265 + "coolbear"."systemd-unit-file" = vscode-utils.extensionFromVscodeMarketplace { 266 + name = "systemd-unit-file"; 267 + publisher = "coolbear"; 268 + version = "1.0.6"; 269 + sha256 = "0sc0zsdnxi4wfdlmaqwb6k2qc21dgwx6ipvri36x7agk7m8m4736"; 270 + }; 271 + "ms-vscode"."wordcount" = vscode-utils.extensionFromVscodeMarketplace { 272 + name = "wordcount"; 273 + publisher = "ms-vscode"; 274 + version = "0.1.0"; 275 + sha256 = "164s721bqbw2lh770vli9vij8q79033nd5k1acxwadmlf99hmgj1"; 276 + }; 277 + "ms-vscode"."vscode-github-issue-notebooks" = vscode-utils.extensionFromVscodeMarketplace { 278 + name = "vscode-github-issue-notebooks"; 279 + publisher = "ms-vscode"; 280 + version = "0.0.130"; 281 + sha256 = "0g82z1qpj1abfykflk0yq0j40mqwfkxk7sx0ms9q7wa2yblwj1fk"; 282 + }; 283 + "exiasr"."hadolint" = vscode-utils.extensionFromVscodeMarketplace { 284 + name = "hadolint"; 285 + publisher = "exiasr"; 286 + version = "1.1.2"; 287 + sha256 = "00x6bnjm0yk0fcw91c47g8c5shgbcvxyyz49r4y23q4gqizvaqz8"; 288 + }; 289 + "drknoxy"."eslint-disable-snippets" = vscode-utils.extensionFromVscodeMarketplace { 290 + name = "eslint-disable-snippets"; 291 + publisher = "drknoxy"; 292 + version = "1.4.1"; 293 + sha256 = "1djjknfg81cjbn4bcalc7gg9fha5lzwmpmmrzm68n87qvld58hs4"; 294 + }; 295 + "leighlondon"."eml" = vscode-utils.extensionFromVscodeMarketplace { 296 + name = "eml"; 297 + publisher = "leighlondon"; 298 + version = "0.4.0"; 299 + sha256 = "180gis04nisccr9l4ibks5fn2gp327b9bmwjiap81lir859kkrzv"; 300 + }; 61 301 "jnoortheen"."nix-ide" = vscode-utils.extensionFromVscodeMarketplace { 62 302 name = "nix-ide"; 63 303 publisher = "jnoortheen"; 64 304 version = "0.3.5"; 65 305 sha256 = "12sg67mn3c8mjayh9d6y8qaky00vrlnwwx58v1f1m4qrbdjqab46"; 66 306 }; 307 + "matthewpi"."caddyfile-support" = vscode-utils.extensionFromVscodeMarketplace { 308 + name = "caddyfile-support"; 309 + publisher = "matthewpi"; 310 + version = "0.4.0"; 311 + sha256 = "1fjhirybvb92frqj1ssh49a73q497ny69z9drdjlkpaccpbvb0r7"; 312 + }; 313 + "ultram4rine"."vscode-choosealicense" = vscode-utils.extensionFromVscodeMarketplace { 314 + name = "vscode-choosealicense"; 315 + publisher = "ultram4rine"; 316 + version = "0.9.4"; 317 + sha256 = "1hs8sjbq9rvs8wkaxx9nh9swbdca9rfkamf2mcvp3gyw7d5park2"; 318 + }; 319 + "tailscale"."vscode-tailscale" = vscode-utils.extensionFromVscodeMarketplace { 320 + name = "vscode-tailscale"; 321 + publisher = "tailscale"; 322 + version = "1.0.0"; 323 + sha256 = "0j41xbz6zangq7i4mj4xgdpsswss3jnznyd9v3943yvfhmkq5a1h"; 324 + }; 325 + "wdhongtw"."gpg-indicator" = vscode-utils.extensionFromVscodeMarketplace { 326 + name = "gpg-indicator"; 327 + publisher = "wdhongtw"; 328 + version = "0.7.2"; 329 + sha256 = "0sfn2lvj2a7kwkbjpswbl9hwhpcv053gnxny5x5rhsqcsq2nx8yk"; 330 + }; 331 + "r3inbowari"."gomodexplorer" = vscode-utils.extensionFromVscodeMarketplace { 332 + name = "gomodexplorer"; 333 + publisher = "r3inbowari"; 334 + version = "0.3.18"; 335 + sha256 = "1k0assbxwakbsxfp5d2kcq1pfg3rzdmzc96d7qgrhrp9lx22n8p9"; 336 + }; 67 337 "doppler"."doppler-vscode" = vscode-utils.extensionFromVscodeMarketplace { 68 338 name = "doppler-vscode"; 69 339 publisher = "doppler"; 70 340 version = "0.0.10"; 71 341 sha256 = "1cqaxnf45in44i4za36diirgh1q5rkmk27is9h6zgnmgl2i9awa7"; 72 342 }; 343 + "yahyabatulu"."vscode-markdown-alert" = vscode-utils.extensionFromVscodeMarketplace { 344 + name = "vscode-markdown-alert"; 345 + publisher = "yahyabatulu"; 346 + version = "0.0.4"; 347 + sha256 = "1b4ngq3hn362ngdybjazr0x73whr7p5sbxms80s8mdd7yhq949kl"; 348 + }; 349 + "martellaj"."license-injector" = vscode-utils.extensionFromVscodeMarketplace { 350 + name = "license-injector"; 351 + publisher = "martellaj"; 352 + version = "0.0.2"; 353 + sha256 = "09d9bbd5drp3krla2q37dp4rrz4mb20mnsrkjpb00n1mvf7q1fps"; 354 + }; 355 + "codiium"."wrangler" = vscode-utils.extensionFromVscodeMarketplace { 356 + name = "wrangler"; 357 + publisher = "codiium"; 358 + version = "0.0.1"; 359 + sha256 = "1g2wx6ln2kym2daqgc3nxw995rb1c1n7j3gqj0vfbk520qp4vhfx"; 360 + }; 361 + "joel-harkes"."emlviewer" = vscode-utils.extensionFromVscodeMarketplace { 362 + name = "emlviewer"; 363 + publisher = "joel-harkes"; 364 + version = "0.0.4"; 365 + sha256 = "08rh5j50jkhcywkngf493cdim15f6vbj08av6m1cvp0v3ha21vdq"; 366 + }; 367 + "aikebang"."mkdocs-syntax-highlight" = vscode-utils.extensionFromVscodeMarketplace { 368 + name = "mkdocs-syntax-highlight"; 369 + publisher = "aikebang"; 370 + version = "0.2.1"; 371 + sha256 = "1gpcjdcf9yr263cql14wwyw2f5fsq06i2bsr8nja0izyw76g8wvm"; 372 + }; 373 + "devfile"."vscode-devfile" = vscode-utils.extensionFromVscodeMarketplace { 374 + name = "vscode-devfile"; 375 + publisher = "devfile"; 376 + version = "0.0.2"; 377 + sha256 = "156vq1gr7x94nrjlgv1a5qz0r8k5vh9y9hz1f0jaxcjcynjp4ijs"; 378 + }; 73 379 } 74 - (lib.attrsets.optionalAttrs (isLinux && (isi686 || isx86_64)) { })) 75 - (lib.attrsets.optionalAttrs (isLinux && (isAarch32 || isAarch64)) { })) 76 - (lib.attrsets.optionalAttrs (isDarwin && (isi686 || isx86_64)) { })) 77 - (lib.attrsets.optionalAttrs (isDarwin && (isAarch32 || isAarch64)) { }) 380 + (lib.attrsets.optionalAttrs (isLinux && (isi686 || isx86_64)) { 381 + "ms-python"."python" = vscode-utils.extensionFromVscodeMarketplace { 382 + name = "python"; 383 + publisher = "ms-python"; 384 + version = "2024.23.2024121901"; 385 + sha256 = "01wfhbaq9v2wvnndh6dphq1f6c04dg0yx9p7637v9bl124zm0qw7"; 386 + arch = "linux-x64"; 387 + }; 388 + "timonwong"."shellcheck" = vscode-utils.extensionFromVscodeMarketplace { 389 + name = "shellcheck"; 390 + publisher = "timonwong"; 391 + version = "0.37.1"; 392 + sha256 = "13gdyiafqla7dra17q842d8a7vrgmf0im4z6qm6xzgim71qzcqhy"; 393 + arch = "linux-x64"; 394 + }; 395 + })) 396 + (lib.attrsets.optionalAttrs (isLinux && (isAarch32 || isAarch64)) { 397 + "ms-python"."python" = vscode-utils.extensionFromVscodeMarketplace { 398 + name = "python"; 399 + publisher = "ms-python"; 400 + version = "2024.23.2024121901"; 401 + sha256 = "1qs14aca323yqc93rrnwvp7v40k9z2500lj9pkh5sa2pfm9cl68x"; 402 + arch = "linux-arm64"; 403 + }; 404 + "timonwong"."shellcheck" = vscode-utils.extensionFromVscodeMarketplace { 405 + name = "shellcheck"; 406 + publisher = "timonwong"; 407 + version = "0.37.1"; 408 + sha256 = "1xp4qyrs8rcaba94nm26da0lf0qjbchp218jm4iyczg5dpgvp6hk"; 409 + arch = "linux-arm64"; 410 + }; 411 + })) 412 + (lib.attrsets.optionalAttrs (isDarwin && (isi686 || isx86_64)) { 413 + "ms-python"."python" = vscode-utils.extensionFromVscodeMarketplace { 414 + name = "python"; 415 + publisher = "ms-python"; 416 + version = "2024.23.2024121901"; 417 + sha256 = "0jh7rkh5j2l8irb2d43hy9n5kw59czyijsiq5f9641rfl6yvakzh"; 418 + arch = "darwin-x64"; 419 + }; 420 + "timonwong"."shellcheck" = vscode-utils.extensionFromVscodeMarketplace { 421 + name = "shellcheck"; 422 + publisher = "timonwong"; 423 + version = "0.37.1"; 424 + sha256 = "0jvi9pzw80ga47p9zy92wy43prci5dj8lfa5syxl5cvchd3848v1"; 425 + arch = "darwin-x64"; 426 + }; 427 + })) 428 + (lib.attrsets.optionalAttrs (isDarwin && (isAarch32 || isAarch64)) { 429 + "ms-python"."python" = vscode-utils.extensionFromVscodeMarketplace { 430 + name = "python"; 431 + publisher = "ms-python"; 432 + version = "2024.23.2024121901"; 433 + sha256 = "1d0w7ih58bg1smmjp3i798qbf08maqa3m263ygvllyawy3kl03qr"; 434 + arch = "darwin-arm64"; 435 + }; 436 + "timonwong"."shellcheck" = vscode-utils.extensionFromVscodeMarketplace { 437 + name = "shellcheck"; 438 + publisher = "timonwong"; 439 + version = "0.37.1"; 440 + sha256 = "0l72fmphy7v86jdlbk4xclaxm6g2mc2cd3jcydwrnwyfagh2n9di"; 441 + arch = "darwin-arm64"; 442 + }; 443 + })
+188 -4
.nix4vscode.toml
··· 1 1 # SPDX-License-Identifier: MPL-2.0 2 - # To use thhis configuration, you must have nix4vscode installed, either 3 - # via "cargo build" or good old "nix develop" from a local clone of the 4 - # tooling's sources. 2 + # To use thhis configuration, you must have nix4vscode installed, either via "cargo build" 3 + # or good old "nix develop" from a local clone of the tooling's sources. This is currently 4 + # manually managed to be in sync with code --list-extensions while Settings Sync is enabled. 5 5 6 6 # TODO: Bump this on every VS Code release here. 7 7 vscode_version = "1.96.0" ··· 30 30 [[extensions]] 31 31 publisher_name = "vivaxy" 32 32 extension_name = "vscode-conventional-commits" 33 + [[extensions]] 34 + publisher_name = "gitlab" 35 + extension_name = "gitlab-workflow" 36 + [[extensions]] 37 + publisher_name = "exiasr" 38 + extension_name = "hadolint" 39 + [[extensions]] 40 + publisher_name = "editorconfig" 41 + extension_name = "editorconfig" 42 + [[extensions]] 43 + publisher_name = "donjayamanne" 44 + extension_name = "githistory" 45 + [[extensions]] 46 + publisher_name = "devfile" 47 + extension_name = "vscode-devfile" 48 + [[extensions]] 49 + publisher_name = "tailscale" 50 + extension_name = "vscode-tailscale" 51 + [[extensions]] 52 + publisher_name = "timonwong" 53 + extension_name = "shellcheck" 54 + 55 + # github 56 + [[extensions]] 57 + publisher_name = "github" 58 + extension_name = "copilot" 59 + [[extensions]] 60 + publisher_name = "github" 61 + extension_name = "vscode-github-actions" 62 + [[extensions]] 63 + publisher_name = "github" 64 + extension_name = "remotehub" 65 + [[extensions]] 66 + publisher_name = "github" 67 + extension_name = "copilot-chat" 68 + [[extensions]] 69 + publisher_name = "github" 70 + extension_name = "codespaces" 71 + [[extensions]] 72 + publisher_name = "github" 73 + extension_name = "vscode-pull-request-github" 74 + 75 + # markdown 76 + [[extensions]] 77 + publisher_name = "aikebang" 78 + extension_name = "mkdocs-syntax-highlight" 79 + [[extensions]] 80 + publisher_name = "bierner" 81 + extension_name = "emojisense" 82 + [[extensions]] 83 + publisher_name = "bierner" 84 + extension_name = "markdown-checkbox" 85 + [[extensions]] 86 + publisher_name = "bierner" 87 + extension_name = "github-markdown-preview" 88 + [[extensions]] 89 + publisher_name = "bierner" 90 + extension_name = "markdown-emoji" 91 + [[extensions]] 92 + publisher_name = "bierner" 93 + extension_name = "markdown-footnotes" 94 + [[extensions]] 95 + publisher_name = "bierner" 96 + extension_name = "markdown-mermaid" 97 + [[extensions]] 98 + publisher_name = "bierner" 99 + extension_name = "markdown-preview-github-styles" 100 + [[extensions]] 101 + publisher_name = "bierner" 102 + extension_name = "markdown-yaml-preamble" 103 + 104 + # microsoft 105 + [[extensions]] 106 + publisher_name = "ms-azuretools" 107 + extension_name = "vscode-docker" 108 + # temporarily commented out per https://github.com/nix-community/nix4vscode/issues/135 109 + #[[extensions]] 110 + #publisher_name = "ms-python" 111 + #extension_name = "debugpy" 112 + [[extensions]] 113 + publisher_name = "ms-python" 114 + extension_name = "python" 115 + [[extensions]] 116 + publisher_name = "ms-python" 117 + extension_name = "vscode-pylance" 118 + [[extensions]] 119 + publisher_name = "ms-vscode" 120 + extension_name = "azure-repos" 121 + [[extensions]] 122 + publisher_name = "ms-vscode" 123 + extension_name = "remote-repositories" 124 + [[extensions]] 125 + publisher_name = "ms-vscode" 126 + extension_name = "vscode-github-issue-notebooks" 127 + [[extensions]] 128 + publisher_name = "ms-vscode" 129 + extension_name = "wordcount" 33 130 34 131 # programming languages + IntelliSense 35 132 [[extensions]] ··· 43 140 extension_name = "vscode-yaml" 44 141 [[extensions]] 45 142 publisher_name = "unifiedjs" 46 - extension_name = "vscode-mdx" 143 + extension_name = "vscode-mdx" 144 + [[extensions]] 145 + publisher_name = "davidanson" 146 + extension_name = "vscode-markdownlint" 147 + [[extensions]] 148 + publisher_name = "golang" 149 + extension_name = "go" 150 + [[extensions]] 151 + publisher_name = "mikestead" 152 + extension_name = "dotenv" 153 + [[extensions]] 154 + publisher_name = "joel-harkes" 155 + extension_name = "emlviewer" 156 + [[extensions]] 157 + publisher_name = "leighlondon" 158 + extension_name = "eml" 159 + [[extensions]] 160 + publisher_name = "matthewpi" 161 + extension_name = "caddyfile-support" 162 + [[extensions]] 163 + publisher_name = "bradlc" 164 + extension_name = "vscode-tailwindcss" 165 + [[extensions]] 166 + publisher_name = "christan-kohler" 167 + extension_name = "npm-intellisense" 168 + [[extensions]] 169 + publisher_name = "codezombiech" 170 + extension_name = "gitignore" 171 + [[extensions]] 172 + publisher_name = "codiium" 173 + extension_name = "wrangler" 174 + [[extensions]] 175 + publisher_name = "coolbear" 176 + extension_name = "systemd-unit-file" 177 + [[extensions]] 178 + publisher_name = "dbaeumer" 179 + extension_name = "vscode-eslint" 180 + [[extensions]] 181 + publisher_name = "drknoxy" 182 + extension_name = "eslint-disable-snippets" 183 + [[extensions]] 184 + publisher_name = "esbenp" 185 + extension_name = "prettier-vscode" 186 + [[extensions]] 187 + publisher_name = "martellaj" 188 + extension_name = "license-injector" 189 + [[extensions]] 190 + publisher_name = "mtxr" 191 + extension_name = "sqltools" 192 + [[extensions]] 193 + publisher_name = "mtxr" 194 + extension_name = "sqltools-mysql" 195 + [[extensions]] 196 + publisher_name = "mtxr" 197 + extension_name = "sqltools-pg" 198 + [[extensions]] 199 + publisher_name = "mtxr" 200 + extension_name = "sqltools-sqlite" 201 + [[extensions]] 202 + publisher_name = "orta" 203 + extension_name = "vscode-jest" 204 + [[extensions]] 205 + publisher_name = "prisma" 206 + extension_name = "prisma" 207 + [[extensions]] 208 + publisher_name = "r3inbowari" 209 + extension_name = "gomodexplorer" 210 + [[extensions]] 211 + publisher_name = "socheatsok78" 212 + extension_name = "dotenv-vscode-stripped" 213 + [[extensions]] 214 + publisher_name = "streetsidesoftware" 215 + extension_name = "code-spell-checker" 216 + [[extensions]] 217 + publisher_name = "tamasfe" 218 + extension_name = "even-better-toml" 219 + [[extensions]] 220 + publisher_name = "ultram4rine" 221 + extension_name = "vscode-choosealicense" 222 + [[extensions]] 223 + publisher_name = "wdhongtw" 224 + extension_name = "gpg-indicator" 225 + [[extensions]] 226 + publisher_name = "xabikos" 227 + extension_name = "javascriptsnippets" 228 + [[extensions]] 229 + publisher_name = "yahyabatulu" 230 + extension_name = "vscode-markdown-alert"
+17 -3
README.md
··· 1 1 # `@andreijiroh-dev/dotfiles@nixos` - @ajhalili2006's dotfiles under nixos + nixpkgs! 2 2 3 - Yup, I'm starting a fresh for my dotfiles, now with [nixpkgs](https://nixos.org) 4 - and [home-manager]() 3 + Yup, I'm starting a fresh for my dotfiles for 2025 and beyond, now with 4 + [nixpkgs](https://nixos.org) and [home-manager](https://nix-community.github.io/home-manager). 5 + (Don't worry, I'll be maintaining the yadm-era setup for non-Nix setups seperately) 5 6 6 7 ## Usage 7 8 8 9 ### Using my Nixpkgs config 9 10 11 + Make sure Git is installed in your NixOS/nixpkgs setup (via `/etc/nixos/configuration.nix` or 12 + the usual `nix-env -iA nixpkgs.gitFull` or `nix profile install nixpkgs#gitFull` if using 13 + Flakes) for the setup to work. 14 + 15 + ```bash 16 + cd ~ 17 + git init 18 + git remote add origin https://mau.dev/andreijiroh-dev/dotfiles 19 + # TODO: add the rest 20 + ``` 21 + 10 22 ## Directory + File Map 11 23 12 24 ### Essientials 13 25 14 - * [`.config/nixos`](./.config/nixos/) - my NixOS configuration as a flake, including system tools 26 + * [`.config/nixos`](./.config/nixos/) - my NixOS configuration as a flake, including system tools, 27 + usually in sync 15 28 * [`.config/home-manager`](./.config/home-manager/) - Home-manager configs, mostly CLI and desktop apps go here 29 + * [`bin`](./bin) - Shell scripts! (because Nix looks like Haskell to me)
+15
bin/nix4vscode-config-builder
··· 1 + #!/usr/bin/env bash 2 + 3 + # Output the VSCode version 4 + echo 'vscode_version = "'$(code --version | head -n1)'"' 5 + echo 6 + 7 + # Loop through each installed extension 8 + code --list-extensions | while read extension; do 9 + publisher_name=$(echo "$extension" | cut -d '.' -f 1) 10 + extension_name=$(echo "$extension" | cut -d '.' -f 2-) 11 + echo '[[extensions]]' 12 + echo 'publisher_name = "'$publisher_name'"' 13 + echo 'extension_name = "'$extension_name'"' 14 + echo 15 + done
+12
bin/nix4vscode-generator
··· 1 + #!/usr/bin/env bash 2 + set -o pipefail 3 + 4 + if [[ $DEBUG != "" ]]; then 5 + set -x 6 + fi 7 + 8 + NIX4VSCODE_PATH=$(command -v nix4vscode) 9 + NIX4VSCODE=${NIX4VSCODE:-"$HOME/bin/nix4vscode"} 10 + 11 + "$NIX4VSCODE" --output "$HOME/.config/nixos/shared/vscode-extensions.nix" "$HOME/.nix4vscode.toml" 12 + "$NIX4VSCODE" --openvsx --output "$HOME/.config/nixos/shared/openvsx-extensions.nix" "$HOME/.nix4vscode.toml" || true