Select the types of activity you want to include in your feed.
Personal dotfiles for Linux, mostly for Nixpkgs/NixOS-based and Termux setups. Mirrored using GitLab's push mirroring feature.
gitlab.com/andreijiroh-dev/dotfiles
···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+}
···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+}
···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.
56# TODO: Bump this on every VS Code release here.
7vscode_version = "1.96.0"
···30[[extensions]]
31publisher_name = "vivaxy"
32extension_name = "vscode-conventional-commits"
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003334# programming languages + IntelliSense
35[[extensions]]
···43extension_name = "vscode-yaml"
44[[extensions]]
45publisher_name = "unifiedjs"
46-extension_name = "vscode-mdx"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
···1# `@andreijiroh-dev/dotfiles@nixos` - @ajhalili2006's dotfiles under nixos + nixpkgs!
23-Yup, I'm starting a fresh for my dotfiles, now with [nixpkgs](https://nixos.org)
4-and [home-manager]()
056## Usage
78### Using my Nixpkgs config
90000000000010## Directory + File Map
1112### Essientials
1314-* [`.config/nixos`](./.config/nixos/) - my NixOS configuration as a flake, including system tools
015* [`.config/home-manager`](./.config/home-manager/) - Home-manager configs, mostly CLI and desktop apps go here
0
···1# `@andreijiroh-dev/dotfiles@nixos` - @ajhalili2006's dotfiles under nixos + nixpkgs!
23+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)
67## Usage
89### Using my Nixpkgs config
1011+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+22## Directory + File Map
2324### Essientials
2526+* [`.config/nixos`](./.config/nixos/) - my NixOS configuration as a flake, including system tools,
27+usually in sync
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
···000000000000000
···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