Compare changes

Choose any two refs to compare.

Changed files
+217 -19
fish
ghostty
git
jj
nix
zsh
+2 -2
fish/config.fish
··· 60 60 61 61 # ghcup-env 62 62 set -q GHCUP_INSTALL_BASE_PREFIX[1]; or set GHCUP_INSTALL_BASE_PREFIX $HOME 63 - set -gx PATH $HOME/.cabal/bin $PATH /Users/boltless/.ghcup/bin 63 + set -gx PATH $HOME/.cabal/bin $PATH $HOME/.ghcup/bin 64 64 65 65 # pnpm 66 - set -gx PNPM_HOME "/Users/boltless/Library/pnpm" 66 + set -gx PNPM_HOME "$HOME/Library/pnpm" 67 67 if not string match -q -- $PNPM_HOME $PATH 68 68 set -gx PATH "$PNPM_HOME" $PATH 69 69 end
+1 -1
ghostty/config
··· 1 - theme = Github Dark 1 + theme = GitHub-Dark-Default 2 2 font-family = "Fira Code" 3 3 window-padding-color = extend-always
+4 -4
git/config
··· 2 2 defaultBranch = main 3 3 [user] 4 4 name = Seongmin Lee 5 - email = boltlessengineer@proton.me 5 + email = git@boltless.me 6 6 signingkey = ~/.ssh/git-sign-key.pub 7 7 [commit] 8 8 gpgsign = true 9 9 [core] 10 - excludesFile = ~/.config/git/ignore 10 + excludesFile = ~/.config/git/ignore 11 11 [gpg] 12 12 format = ssh 13 13 [gpg "ssh"] ··· 15 15 [url "git@github.com:"] 16 16 insteadOf = https://github.com/ 17 17 [url "git@github.com:boltlessengineer/"] 18 - insteadOf = self: 18 + insteadOf = self: 19 19 [rerere] 20 20 enabled = true 21 21 [alias] 22 - st = status 22 + st = status 23 23 lg = log --branches --remotes --tags --graph --decorate 24 24 ll = log --branches --remotes --tags --graph --decorate --oneline 25 25 find = !sh -c 'git-repo-search \"$@\" | fzf | awk \"{print \\$NF}\" --
+14 -2
jj/config.toml
··· 3 3 [aliases] 4 4 su = ["squash"] 5 5 tug = ["bookmark", "move", "--from", "heads(::@- & bookmarks())", "--to", "@-"] 6 + # mega-merge pull 7 + mp = ["rebase", "-b", "MM", "-d", "heads(MM- | trunk())"] 6 8 7 9 [ui] 8 - default-command = ["log", "--no-pager"] 10 + default-command = ["log", "--no-pager", "-r", "@ | coalesce(mega_merge(), default()) | trunk()"] 9 11 should-sign-off = true 12 + diff-formatter = ["difft", "--color=always", "--syntax-highlight=off", "$left", "$right"] 10 13 # diff-editor = ["nvim", "-c", "DiffEditor $left $right $output"] 11 14 # merge-editor = "vimdiff" 12 15 # conflict-marker-style = "git" 13 16 14 17 [user] 15 18 name = "Seongmin Lee" 16 - email = "boltlessengineer@proton.me" 19 + email = "git@boltless.me" 17 20 18 21 [signing] 19 22 behavior = "own" ··· 22 25 23 26 [git] 24 27 write-change-id-header = true 28 + private-commits = "description(glob:'wip:*') | description(glob:'private:*')" 29 + 30 + [revset-aliases] 31 + 'MM' = "description('[mega-merge]')" 32 + 'FP' = "fork_point(MM-)" 33 + 'wip' = "description(glob:'wip:*')" 34 + 'default()' = "@ | ancestors(immutable_heads().., 2) | trunk()" 35 + 'show(x)' = "@ | ancestors(..(x::) ~ immutable(), 2) | trunk()" 36 + 'mega_merge()' = "ancestors(..(MM::) ~ immutable(), 2)" 25 37 26 38 [templates] 27 39 draft_commit_description = '''
+15
nix/darwin.nix
··· 9 9 pkgs.vim 10 10 pkgs.git 11 11 pkgs.ollama 12 + # used for remote linux deployment 13 + pkgs.nixos-rebuild 12 14 # I don't want to touch this due to current neovim settings. 13 15 # remove it when lux.nvim is out 14 16 (pkgs-unstable.lua5_1.withPackages (ps: with ps; [luarocks])) ··· 41 43 # Enable rosetta binaries 42 44 nix.settings.extra-platforms = "x86_64-darwin aarch64-darwin"; 43 45 46 + nix.settings.trusted-users = [ "@admin" ]; 47 + nix.settings.extra-trusted-users = [ "boltless" ]; 48 + 49 + nix.linux-builder = { 50 + enable = true; 51 + maxJobs = 4; 52 + config.virtualisation = { 53 + cores = 6; 54 + }; 55 + }; 56 + 44 57 # Enable alternative shell support in nix-darwin. 45 58 # programs.fish.enable = true; 46 59 ··· 68 81 autohide-time-modifier = 0.6; 69 82 mru-spaces = false; 70 83 show-recents = false; 84 + orientation = "left"; 71 85 # Disable bottom-right corner action 72 86 wvous-br-corner = 1; 73 87 # persistent-apps = []; ··· 206 220 Pages = 409201541; 207 221 Tampermonkey = 6738342400; 208 222 Things3 = 904280696; 223 + # Xcode = 497799835; 209 224 }; 210 225 }; 211 226 }
+9 -9
nix/flake.lock
··· 7 7 ] 8 8 }, 9 9 "locked": { 10 - "lastModified": 1748373722, 11 - "narHash": "sha256-qi6aDGP2W6GyAUNEhg+slQWEpUiJ8LNIrQkmxHpzadI=", 10 + "lastModified": 1749744770, 11 + "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=", 12 12 "owner": "nix-darwin", 13 13 "repo": "nix-darwin", 14 - "rev": "75b99daa12b1fffd646d6c3cf13b06f1fa5cef63", 14 + "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb", 15 15 "type": "github" 16 16 }, 17 17 "original": { ··· 23 23 }, 24 24 "nixpkgs": { 25 25 "locked": { 26 - "lastModified": 1748784767, 27 - "narHash": "sha256-XDFqk5jdf//OwpbftRK/8tmJHVjTFhjoHOPoIS9n9Gg=", 26 + "lastModified": 1756659129, 27 + "narHash": "sha256-ZFCE+pWMvOUoqMSWXyFZIjsaIH53mkGMtY9RHrAQhJw=", 28 28 "owner": "NixOS", 29 29 "repo": "nixpkgs", 30 - "rev": "e8c6caf5a492a7757d161c29d80c308462e896d3", 30 + "rev": "11e13914dbd6715d20bbe0637e32f3feefb5ce0e", 31 31 "type": "github" 32 32 }, 33 33 "original": { ··· 39 39 }, 40 40 "nixpkgs-unstable": { 41 41 "locked": { 42 - "lastModified": 1749369410, 43 - "narHash": "sha256-P1eYm8bewiyWg3QaPCHrOp6iWg/7ESi/aGHT4yilyNo=", 42 + "lastModified": 1756696532, 43 + "narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=", 44 44 "owner": "NixOS", 45 45 "repo": "nixpkgs", 46 - "rev": "8207ad0d501dd3590e0e81a7c56b386a5c4342c9", 46 + "rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f", 47 47 "type": "github" 48 48 }, 49 49 "original": {
+39
nix/flake.nix
··· 19 19 system = "aarch64-darwin"; 20 20 pkgs = import nixpkgs { 21 21 inherit system; 22 + config.allowUnfree = true; 22 23 overlays = [ 23 24 (import ./overlays/jpm.nix) 24 25 (import ./overlays/bleve.nix) 26 + (final: prev: { 27 + kotlin-lsp = final.callPackage ./overlays/kotlin-lsp.nix {}; 28 + }) 25 29 ]; 26 30 }; 27 31 pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; ··· 55 59 pkgs.bacon 56 60 pkgs.bleve-cli 57 61 pkgs.btop 62 + pkgs.difftastic 63 + pkgs.direnv 58 64 pkgs.dust 59 65 pkgs.eza 60 66 pkgs.fd 67 + pkgs.fzf 61 68 pkgs.gh 69 + pkgs.git 70 + pkgs.go 71 + pkgs.gopls 62 72 pkgs.hello 63 73 pkgs.janet 74 + pkgs.yarn 64 75 pkgs.jpm 76 + pkgs.kotlin-lsp 77 + pkgs.ktfmt 65 78 pkgs.meld 66 79 pkgs.mprocs 80 + pkgs.nil 81 + pkgs.nixfmt-classic 67 82 pkgs.nodejs_24 83 + pkgs.pandoc 68 84 pkgs.qmk 69 85 pkgs.ripgrep 86 + pkgs.stack 70 87 pkgs.sumneko-lua-language-server 88 + pkgs.tmux 89 + pkgs.tree 90 + pkgs.typescript-language-server 91 + pkgs.typst 71 92 pkgs.unixtools.watch 93 + pkgs.vim 94 + pkgs.zellij 72 95 pkgs-unstable.jujutsu 73 96 pkgs-unstable.neovim 97 + (pkgs-unstable.lua5_1.withPackages (ps: with ps; [luarocks])) 98 + (pkgs.buildEnv { 99 + name = "mailing"; 100 + paths = [ 101 + pkgs.neomutt 102 + # pkgs.mutt-wizard 103 + # pkgs.isync 104 + # pkgs.msmtp 105 + # pkgs.pass 106 + # pkgs.cacert 107 + # pkgs.gettext 108 + ]; 109 + }) 74 110 ] ++ (if pkgs.stdenv.isDarwin then [ 75 111 # TODO: automate this with nix: 76 112 # $ ln -sfn ~/.nix-profile/Applications ~/Applications/Nix\ User\ Apps ··· 79 115 pkgs.iina 80 116 pkgs.macmon 81 117 pkgs.docker 118 + pkgs.slack 82 119 ] else []); 83 120 }; 121 + # This can be just `imports = [ ./templates/templates.nix ]` when using flake-parts 122 + templates = ((import ./templates/templates.nix) { inherit inputs; }).flake.templates; 84 123 }; 85 124 } 86 125 # vim: et:ts=2
+56
nix/overlays/kotlin-lsp.nix
··· 1 + { 2 + lib, 3 + stdenv, 4 + fetchzip, 5 + openjdk, 6 + makeWrapper, 7 + }: 8 + 9 + stdenv.mkDerivation rec { 10 + pname = "kotlin-lsp"; 11 + version = "0.253.10629"; 12 + src = fetchzip { 13 + stripRoot = false; 14 + url = "https://download-cdn.jetbrains.com/kotlin-lsp/${version}/kotlin-${version}.zip"; 15 + hash = "sha256-LCLGo3Q8/4TYI7z50UdXAbtPNgzFYtmUY/kzo2JCln0="; 16 + }; 17 + 18 + dontBuild = true; 19 + 20 + installPhase = '' 21 + runHook preInstall 22 + 23 + mkdir -p $out/lib 24 + mkdir -p $out/native 25 + mkdir -p $out/bin 26 + cp -r lib/* $out/lib 27 + cp -r native/* $out/native 28 + chmod +x kotlin-lsp.sh 29 + cp "kotlin-lsp.sh" "$out/kotlin-lsp.sh" 30 + ln -s $out/kotlin-lsp.sh $out/bin/kotlin-lsp 31 + 32 + runHook postInstall 33 + ''; 34 + 35 + nativeBuildInputs = [ 36 + makeWrapper 37 + ]; 38 + 39 + postFixup = '' 40 + wrapProgram "$out/bin/kotlin-lsp" --set JAVA_HOME ${openjdk} --prefix PATH : ${ 41 + lib.strings.makeBinPath [ 42 + openjdk 43 + ] 44 + } 45 + ''; 46 + 47 + meta = { 48 + description = "LSP implementation for Kotlin code completion, linting"; 49 + homepage = "https://github.com/Kotlin/kotlin-lsp"; 50 + changelog = "https://github.com/Kotlin/kotlin-lsp/blob/kotlin-lsp/v${version}/RELEASES.md"; 51 + license = lib.licenses.asl20; 52 + platforms = lib.platforms.unix; 53 + sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; 54 + mainProgram = "kotlin-lsp"; 55 + }; 56 + }
+48
nix/templates/python/flake.nix
··· 1 + { 2 + description = "python flake"; 3 + inputs = { 4 + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; 5 + flake-parts.url = "github:hercules-ci/flake-parts"; 6 + }; 7 + outputs = inputs @ { flake-parts, ... }: 8 + flake-parts.lib.mkFlake { inherit inputs; } { 9 + systems = [ 10 + "x86_64-linux" 11 + "aarch64-linux" 12 + "aarch64-darwin" 13 + ]; 14 + perSystem = { pkgs, system, ... }: let 15 + commonPackages = [ 16 + pkgs.python313Full 17 + pkgs.pyright 18 + pkgs.uv 19 + pkgs.curl 20 + pkgs.wget 21 + pkgs.cmake 22 + ] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ 23 + pkgs.gcc 24 + pkgs.stdenv.cc.cc.lib 25 + ]; 26 + in { 27 + devShells.default = pkgs.mkShell { 28 + buildInputs = commonPackages; 29 + shellHook = '' 30 + # Set up the Python virtual environment with uv 31 + test -d .venv || ${pkgs.uv}/bin/uv venv .venv 32 + export VIRTUAL_ENV="$(pwd)/.venv" 33 + export PATH="$VIRTUAL_ENV/bin:$PATH" 34 + export LD_LIBRARY_PATH=${pkgs.lib.makeLibraryPath commonPackages}:$LD_LIBRARY_PATH 35 + 36 + source "$VIRTUAL_ENV/bin/activate" 37 + 38 + if uv sync --frozen; then 39 + package_count=$(uv pip list --format=freeze | wc -l) 40 + echo "Done. $package_count pip packages installed." 41 + else 42 + echo "Warning: An error occurred during uv sync." 43 + fi 44 + ''; 45 + }; 46 + }; 47 + }; 48 + }
+18
nix/templates/templates.nix
··· 1 + { inputs, ... }: 2 + let templatesDir = ./.; 3 + in { 4 + flake.templates = let 5 + mkTemplate = name: val: 6 + let 7 + path = templatesDir + "/${name}"; 8 + flake = import (path + "/flake.nix"); 9 + in { 10 + inherit path; 11 + description = flake.description; 12 + }; 13 + templateEntities = let 14 + op = _: val: val == "directory"; 15 + as = builtins.readDir templatesDir; 16 + in inputs.nixpkgs.lib.filterAttrs op as; 17 + in builtins.mapAttrs mkTemplate templateEntities; 18 + }
+5 -1
zsh/.zprofile
··· 29 29 30 30 export PATH="$HOME/dot/bin:$PATH" 31 31 32 + # android development setup 33 + # https://developer.android.com/tools/variables 34 + export ANDROID_HOME=$HOME/Library/Android/sdk 35 + export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools" 32 36 33 37 34 38 ################ BOTTOM ################ 35 39 # load .zshrc when interactive (ssh) 36 - [[ -o interactive ]] && source ~/.zshrc 40 + # [[ -o interactive ]] && source ~/.zshrc
+6
zsh/.zshrc
··· 8 8 alias ta="tmux attach" 9 9 alias nn="NVIM_APPNAME=nativevim nvim" 10 10 alias nd="nix develop -c zsh -l" 11 + alias zj="zellij" 11 12 12 13 ## Custom prompt 13 14 setopt prompt_subst ··· 27 28 if [[ -n "$IN_NIX_SHELL" ]]; then 28 29 export SHELL=$(which zsh) 29 30 fi 31 + 32 + eval "$(direnv hook zsh)" 33 + 34 + # https://github.com/nix-community/home-manager/issues/2562 35 + # TODO: load nix profile shell functions 30 36 31 37 # Added by LM Studio CLI (lms) 32 38 export PATH="$PATH:$HOME/.lmstudio/bin"