From 52b70819bf68ea48565a54a8db26ea6b87189ce0 Mon Sep 17 00:00:00 2001 From: js0ny Date: Mon, 20 Oct 2025 03:44:56 +0100 Subject: [PATCH] manage git with chezmoi --- .gitignore | 2 - home/.chezmoi.toml.tmpl | 17 +++++ home/.chezmoiignore.tmpl | 9 ++- home/dot_config/git/_gitconfig.shared.tmpl | 75 +++++++++++++++++++++ home/dot_config/git/config.tmpl | 1 + home/dot_config/ideavim/ideavimrc | 31 +++------ home/dot_config/mako/config | 2 + home/dot_gitconfig | 1 + nixcfgs/flake.lock | 62 ++++++++--------- nixcfgs/modules/home/dev/c.nix | 2 +- nixcfgs/modules/home/dev/go.nix | 9 +++ nixcfgs/modules/home/programs/winboat.nix | 8 +++ nixcfgs/users/js0ny/default.nix | 1 - nixcfgs/users/js0ny/nixvirt.nix | 4 +- nixcfgs/users/js0ny/packages/catppuccin.nix | 24 +++++++ nixcfgs/users/js0ny/packages/cli.nix | 2 - nixcfgs/users/js0ny/programs/distrobox.nix | 14 +++- nixcfgs/users/js0ny/programs/git.nix | 7 -- nixcfgs/users/js0ny/zephyrus.nix | 37 ++-------- 19 files changed, 204 insertions(+), 104 deletions(-) create mode 100644 home/.chezmoi.toml.tmpl create mode 100644 home/dot_config/git/_gitconfig.shared.tmpl create mode 100644 home/dot_config/git/config.tmpl create mode 100644 home/dot_gitconfig create mode 100644 nixcfgs/modules/home/dev/go.nix create mode 100644 nixcfgs/modules/home/programs/winboat.nix create mode 100644 nixcfgs/users/js0ny/packages/catppuccin.nix delete mode 100644 nixcfgs/users/js0ny/programs/git.nix diff --git a/.gitignore b/.gitignore index a5e6b50..8f2990d 100644 --- a/.gitignore +++ b/.gitignore @@ -32,8 +32,6 @@ tools/nushell/ .venv/ -gitconfig - # Lock files lazy-lock.json diff --git a/home/.chezmoi.toml.tmpl b/home/.chezmoi.toml.tmpl new file mode 100644 index 0000000..140a8b9 --- /dev/null +++ b/home/.chezmoi.toml.tmpl @@ -0,0 +1,17 @@ +{{/* https://github.com/twpayne/dotfiles/blob/master/home/.chezmoi.toml.tmpl */}} +{{- $headless := false -}} + +{{/* darwin hostname hack */}} +{{- $hostname := .chezmoi.hostname -}} +{{- if eq .chezmoi.os "darwin" -}} +{{- $hostname := output "scutil" "--get" "LocalHostName" | trim -}} +{{- end -}} + +sourceDir = "~/.dotfiles" + +{{ $email := promptStringOnce . "email" "What is your email address" -}} +{{ $username := promptStringOnce . "username" "What is your username" -}} + +[data] + email = {{ $email | quote }} + username = {{ $username | quote }} \ No newline at end of file diff --git a/home/.chezmoiignore.tmpl b/home/.chezmoiignore.tmpl index eae36a7..18fe9a2 100644 --- a/home/.chezmoiignore.tmpl +++ b/home/.chezmoiignore.tmpl @@ -27,14 +27,17 @@ scripts {{ end }} {{ if eq .chezmoi.osRelease.id "nixos" }} .config/bash -.config/fcitx5 .config/bat .config/doom +.config/dunst +.config/fastfetch +.config/fcitx5 .config/fish .config/zsh .config/lsd .config/keyd .config/readline +.config/krunnerrc .bashrc {{ end }} {{ end }} @@ -47,3 +50,7 @@ Library .config/yabai .config/powershell {{ end }} + +{{ if ne .chezmoi.os "windows" }} +.gitconfig +{{ end }} diff --git a/home/dot_config/git/_gitconfig.shared.tmpl b/home/dot_config/git/_gitconfig.shared.tmpl new file mode 100644 index 0000000..aefb356 --- /dev/null +++ b/home/dot_config/git/_gitconfig.shared.tmpl @@ -0,0 +1,75 @@ +# $DOTFILES/common/gitconfig.example +# Date: 2024-12-22 +# Author: js0ny + +# Location: +# Windows: %USERPROFILE%\.gitconfig +# *nix: ~/.config/git/config +# Linking: (Note that this file is an example, only copy this then edit) +# cp $DOTFILES/common/gitconfig.example ~/.config/git/config +[user] + name = {{ .username }} + email = {{ .email }} +[alias] + cl = clone + clnh = clone --depth 1 # Clone with no history + cma = commit -am # Add and commit + logs = log --oneline --graph --decorate --all # Show logs + last = log -1 HEAD # Show last commit + undo = reset --hard HEAD # Undo the last commit +[core] + editor = nvim + pager = delta + # autocrlf: + # true: Keep crlf in Windows, lf in *nix + # input: Keep lf in all platforms + autocrlf = input + safecrlf = true + excludesfile = $XDG_CONFIG_HOME/git/ignore + quotePath = false # zh-CN: 解决中文路径问题 + eol = lf +[core] +{{- if eq .chezmoi.os "windows" }} + editor = vim +{{- else }} + editor = nvim +{{- end }} + pager = delta + autocrlf = input # Force End of Line in different platforms +[interactive] + diffFilter = delta --color-only +[delta] + navigate = true + dark = true + features = catppuccin-mocha # Colorscheme +[diff] + tool = nvimdiff +[difftool] + prompt = false +[difftool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$REMOTE\"" +[merge] + tool = nvimdiff +[mergetool] + prompt = false +[mergetool "nvimdiff"] + cmd = "nvim -d \"$LOCAL\" \"$MERGED\" \"$REMOTE\"" +[color] + ui = auto +[pull] + ff = only +[init] + defaultBranch = master +[filter "lfs"] + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f + process = git-lfs filter-process + required = true +# Force ssh +# Don't use ssh in GitHub since ssh-agent doesn't work in non-interactive environment +# While GitHub holds many plugins, it's better to use https +# This prevents from Neovide `publickey` error when installing plugins +# [url "git@github.com:"] +# insteadOf = https://github.com/ +[url "git@codeberg.org:"] + insteadOf = https://codeberg.org/ diff --git a/home/dot_config/git/config.tmpl b/home/dot_config/git/config.tmpl new file mode 100644 index 0000000..c26854a --- /dev/null +++ b/home/dot_config/git/config.tmpl @@ -0,0 +1 @@ +{{ includeTemplate "dot_config/git/_gitconfig.shared.tmpl" . }} diff --git a/home/dot_config/ideavim/ideavimrc b/home/dot_config/ideavim/ideavimrc index 04fb390..e011456 100644 --- a/home/dot_config/ideavim/ideavimrc +++ b/home/dot_config/ideavim/ideavimrc @@ -20,30 +20,17 @@ source ~/.local/share/intellimacs/which-key.vim let mapleader = " " " set to """ Colemak """ -noremap n j -noremap e k -noremap i l - -" Similar position to i -noremap l i -noremap L I -" ne[k]st -noremap k n -noremap K N -" [j]ump -noremap j e -noremap J E nnoremap H :bp -nnoremap I :bn -noremap N 5j -noremap E 5k +nnoremap L :bn +noremap J 5j +noremap K 5k vnoremap H ^ xnoremap H ^ onoremap H ^ -vnoremap I $ -xnoremap I $ -onoremap I $ +vnoremap L $ +xnoremap L $ +onoremap L $ @@ -221,9 +208,9 @@ nnoremap W :write nnoremap wh :action PrevSplitter nnoremap wi :action NextSplitter nnoremap wH :action SplitHorizontally -nnoremap wI :action SplitHorizontally -nnoremap wN :action SplitVertically -nnoremap wE :action SplitVertically +nnoremap wL :action SplitHorizontally +nnoremap wJ :action SplitVertically +nnoremap wK :action SplitVertically nnoremap w- :action SplitHorizontally nnoremap w| :action SplitVertically nnoremap w\ :action SplitVertically diff --git a/home/dot_config/mako/config b/home/dot_config/mako/config index 717e84a..792d35e 100644 --- a/home/dot_config/mako/config +++ b/home/dot_config/mako/config @@ -1,9 +1,11 @@ # Colors +default-timeout=5000 background-color=#1e1e2e text-color=#cdd6f4 border-color=#b4befe progress-color=over #313244 +max-visible=10 [urgency=high] border-color=#fab387 diff --git a/home/dot_gitconfig b/home/dot_gitconfig new file mode 100644 index 0000000..4729650 --- /dev/null +++ b/home/dot_gitconfig @@ -0,0 +1 @@ +{{ includeTemplate "dot_config/git/_gitconfig.shared.tmpl" . }} \ No newline at end of file diff --git a/nixcfgs/flake.lock b/nixcfgs/flake.lock index 406fc48..2a621bf 100644 --- a/nixcfgs/flake.lock +++ b/nixcfgs/flake.lock @@ -11,11 +11,11 @@ ] }, "locked": { - "lastModified": 1760147156, - "narHash": "sha256-ad+1gnp7Lm7jVSzqvGjMiwnA0P61dFZmp6HcRMXicWY=", + "lastModified": 1760637553, + "narHash": "sha256-I3fN6TsYfOtKFc1iVy/vXYR7Ck3JRTPncnQaZC6eLJ8=", "owner": "caelestia-dots", "repo": "cli", - "rev": "e9668d58f51e935094e50090b99301df8344f590", + "rev": "4593b823d730f46168d2eccd061467adb1754a57", "type": "github" }, "original": { @@ -33,11 +33,11 @@ "quickshell": "quickshell" }, "locked": { - "lastModified": 1760497394, - "narHash": "sha256-/4Hf/irgPh+gRQAcCNjXyXFcUGOrXMX8+OtOwbscbXk=", + "lastModified": 1760837100, + "narHash": "sha256-B4iL67pRKARIPnZGnlV19axKjjW+UfNP1wnlPbxUM6M=", "owner": "caelestia-dots", "repo": "shell", - "rev": "4cb1048fdd6fa281baa0efa36c8c82ddd2cc43a3", + "rev": "84343dde62f99590cd9e21694065cf70d96d9869", "type": "github" }, "original": { @@ -92,11 +92,11 @@ ] }, "locked": { - "lastModified": 1760130406, - "narHash": "sha256-GKMwBaFRw/C1p1VtjDz4DyhyzjKUWyi1K50bh8lgA2E=", + "lastModified": 1760887455, + "narHash": "sha256-/xU8iYZjolWbMUNBQF6af5zgGs73Qw21WMgz1tLs3Yw=", "owner": "nix-community", "repo": "home-manager", - "rev": "d305eece827a3fe317a2d70138f53feccaf890a1", + "rev": "aeabc1ac63e6ebb8ba4714c4abdfe0556f2de765", "type": "github" }, "original": { @@ -112,11 +112,11 @@ ] }, "locked": { - "lastModified": 1751313918, - "narHash": "sha256-HsJM3XLa43WpG+665aGEh8iS8AfEwOIQWk3Mke3e7nk=", + "lastModified": 1760721282, + "narHash": "sha256-aAHphQbU9t/b2RRy2Eb8oMv+I08isXv2KUGFAFn7nCo=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "e04a388232d9a6ba56967ce5b53a8a6f713cdfcf", + "rev": "c3211fcd0c56c11ff110d346d4487b18f7365168", "type": "github" }, "original": { @@ -128,11 +128,11 @@ }, "nix-flatpak": { "locked": { - "lastModified": 1751276396, - "narHash": "sha256-oOYrnKStMsOXST+wKnzuSZ49h8Dr1Q3mIn2f5Kb5GAw=", + "lastModified": 1754777568, + "narHash": "sha256-0bBqT+3XncgF8F03RFAamw9vdf0VmaDoIJLTGkjfQZs=", "owner": "gmodena", "repo": "nix-flatpak", - "rev": "59adb9ad1cbd915494fc35cd0e0a9d582ca9de74", + "rev": "62f636b87ef6050760a8cb325cadb90674d1e23e", "type": "github" }, "original": { @@ -143,11 +143,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754182383, - "narHash": "sha256-hON5G3ENyUGUpqImXT+Ag7TWbBsfthwqxMcAw8EiKw8=", + "lastModified": 1760872779, + "narHash": "sha256-c5C907Raf9eY8f1NUXYeju9aUDlm227s/V0OptEbypA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e960e6e1dc689e2b5fe9e3ee824fc12860d9f27c", + "rev": "63bdb5d90fa2fa11c42f9716ad1e23565613b07c", "type": "github" }, "original": { @@ -159,11 +159,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1760038930, - "narHash": "sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw=", + "lastModified": 1760878510, + "narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0b4defa2584313f3b781240b29d61f6f9f7e0df3", + "rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67", "type": "github" }, "original": { @@ -195,11 +195,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1760244049, - "narHash": "sha256-NTF95tGxmhrBQiREvxLK928ovkzJloEsuHLhwN2GDCY=", + "lastModified": 1760925195, + "narHash": "sha256-IXpoYD3wXa4oOjf/01e8GT0NZa4wCZnh1GpgfByyCvY=", "owner": "nix-community", "repo": "NUR", - "rev": "5fbc6ffa12c03d608618fc1986cf9fdab44fc5d5", + "rev": "107b1714e76f67a3ae65a966c2e9937eacad5467", "type": "github" }, "original": { @@ -239,11 +239,11 @@ ] }, "locked": { - "lastModified": 1760228179, - "narHash": "sha256-4Z6k7lv3Zcgk3K+4h60LpqB9wCkR+utkYERU735U068=", + "lastModified": 1760822546, + "narHash": "sha256-cy3wJQQzQbZ/EYUfTDuMiP/haPOjkqGgWOPPl7K9oiM=", "ref": "refs/heads/master", - "rev": "c9d3ffb6043c5bf3f3009202bad7e0e5132c4a25", - "revCount": 693, + "rev": "3e2ce40b18af943f9ba370ed73565e9f487663ef", + "revCount": 697, "type": "git", "url": "https://git.outfoxxed.me/outfoxxed/quickshell" }, @@ -285,11 +285,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1760625716, - "narHash": "sha256-Lf8kR10j/VDlNBfLJENA7jDUPOYfAd0ZUqPwyMncO2M=", + "lastModified": 1760827883, + "narHash": "sha256-6Cvg9YE8wqpkdjnw0HwJH+HOWY9inO/slXf48w+84RM=", "owner": "TibixDev", "repo": "winboat", - "rev": "dab50fb60487f7d47d82c6857c7be9582314c481", + "rev": "a1b1105a30b1f5210ce29077e19f21b53083469a", "type": "github" }, "original": { diff --git a/nixcfgs/modules/home/dev/c.nix b/nixcfgs/modules/home/dev/c.nix index 2628cf4..2deac84 100644 --- a/nixcfgs/modules/home/dev/c.nix +++ b/nixcfgs/modules/home/dev/c.nix @@ -1,6 +1,6 @@ {pkgs, ...}: { home.packages = with pkgs; [ gcc - llvmPackages_21.clang-tools + llvmPackages_21.clang-tools # clangd ]; } diff --git a/nixcfgs/modules/home/dev/go.nix b/nixcfgs/modules/home/dev/go.nix new file mode 100644 index 0000000..df36afa --- /dev/null +++ b/nixcfgs/modules/home/dev/go.nix @@ -0,0 +1,9 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + go + gopls + ]; + programs.vscode.profiles.default.extensions = with pkgs.vscode-extensions; [ + golang.go + ]; +} diff --git a/nixcfgs/modules/home/programs/winboat.nix b/nixcfgs/modules/home/programs/winboat.nix new file mode 100644 index 0000000..8903db6 --- /dev/null +++ b/nixcfgs/modules/home/programs/winboat.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +{ + + home.packages = with pkgs; [ + freerdp + winboat + ]; +} diff --git a/nixcfgs/users/js0ny/default.nix b/nixcfgs/users/js0ny/default.nix index 2d9127e..8ff6193 100644 --- a/nixcfgs/users/js0ny/default.nix +++ b/nixcfgs/users/js0ny/default.nix @@ -7,7 +7,6 @@ }: { imports = [ - ./programs/git.nix ../../modules/home/programs/fzf.nix ../../modules/home/programs/lsd.nix ../../modules/home/programs/zoxide.nix diff --git a/nixcfgs/users/js0ny/nixvirt.nix b/nixcfgs/users/js0ny/nixvirt.nix index 51da47d..d1cf93c 100644 --- a/nixcfgs/users/js0ny/nixvirt.nix +++ b/nixcfgs/users/js0ny/nixvirt.nix @@ -4,13 +4,11 @@ nix-flatpak, plasma-manager, ... -}: -{ +}: { imports = [ ./default.nix ./programs/gnome.nix ./programs/shell.nix - ./programs/git.nix ./programs/firefox.nix # ./programs/floorp.nix ../../modules/home/gnome-keyrings.nix diff --git a/nixcfgs/users/js0ny/packages/catppuccin.nix b/nixcfgs/users/js0ny/packages/catppuccin.nix new file mode 100644 index 0000000..67bee4e --- /dev/null +++ b/nixcfgs/users/js0ny/packages/catppuccin.nix @@ -0,0 +1,24 @@ +{ pkgs, ... }: +let + my-catppuccin-kde = pkgs.catppuccin-kde.override { + flavour = [ + "mocha" + "latte" + ]; + accents = [ "pink" ]; + winDecStyles = [ "classic" ]; + }; + my-catppuccin-gtk = pkgs.catppuccin-gtk.override { + accents = [ "pink" ]; + variant = "mocha"; + }; +in +{ + + home.packages = with pkgs; [ + catppuccin + my-catppuccin-gtk + my-catppuccin-kde + catppuccin-fcitx5 + ]; +} diff --git a/nixcfgs/users/js0ny/packages/cli.nix b/nixcfgs/users/js0ny/packages/cli.nix index 4520e1d..df68a1c 100644 --- a/nixcfgs/users/js0ny/packages/cli.nix +++ b/nixcfgs/users/js0ny/packages/cli.nix @@ -45,8 +45,6 @@ # lua luajit lua51Packages.luarocks ghostscript - mermaid-cli - tectonic # Misc ta-lib ddgr protonvpn-cli markdown-oxide nushell diff --git a/nixcfgs/users/js0ny/programs/distrobox.nix b/nixcfgs/users/js0ny/programs/distrobox.nix index a8396e4..a12dea2 100644 --- a/nixcfgs/users/js0ny/programs/distrobox.nix +++ b/nixcfgs/users/js0ny/programs/distrobox.nix @@ -1,6 +1,18 @@ -{ ... }: +{ config, ... }: { programs.distrobox = { enable = true; + containers = { + Xilinx = { + # Container to run Xilinx Vivado Toolchain 2022.2 + image = "ubuntu:22.04"; + additional_packages = "libncurses5-dev libtinfo5 ncurses-compat-libs lsb-release graphviz openssl xscreensaver gcc c++ xvfb xorg-dev libwebkit2gtk-4.0-37 libgtk-3-dev libgtk-4-dev libgvfsdbus gvfs libwayland-client0 libwayland-cursor0"; + home = "${config.home.homeDirectory}/.local/distrobox/Xilinx"; + init_hooks = [ + "sudo chown $USER:$USER /opt" + "sudo mkdir -p /opt/Xilinx" + ]; + }; + }; }; } diff --git a/nixcfgs/users/js0ny/programs/git.nix b/nixcfgs/users/js0ny/programs/git.nix deleted file mode 100644 index b8185cc..0000000 --- a/nixcfgs/users/js0ny/programs/git.nix +++ /dev/null @@ -1,7 +0,0 @@ -{pkgs, ...}: { - programs.git = { - enable = true; - userName = "js0ny"; - userEmail = "contact@js0ny.net"; - }; -} diff --git a/nixcfgs/users/js0ny/zephyrus.nix b/nixcfgs/users/js0ny/zephyrus.nix index 81846c8..fabb2c4 100644 --- a/nixcfgs/users/js0ny/zephyrus.nix +++ b/nixcfgs/users/js0ny/zephyrus.nix @@ -1,65 +1,36 @@ # ~/.config/nixcfgs/users/js0ny/default.nix -{ - pkgs, - nix-flatpak, - plasma-manager, - ... -}: -let - my-catppuccin-kde = pkgs.catppuccin-kde.override { - flavour = [ - "mocha" - "latte" - ]; - accents = [ "pink" ]; - winDecStyles = [ "classic" ]; - }; - my-catppuccin-gtk = pkgs.catppuccin-gtk.override { - accents = [ "pink" ]; - variant = "mocha"; - }; -in -{ +{...}: { imports = [ ./default.nix ./packages/cli.nix ./packages/gui.nix ./packages/flatpak.nix ./packages/fonts.nix + ./packages/catppuccin.nix ./programs/chromium.nix ./programs/gnome.nix ./programs/plasma.nix ./programs/shell.nix ./programs/vscode.nix - ./programs/git.nix ./programs/firefox.nix ./programs/distrobox.nix ./programs/mime.nix ./programs/zed-editor.nix ./programs/rime.nix - # ./programs/floorp.nix ../../modules/home/gnome-keyrings.nix ../../modules/home/dev/c.nix + ../../modules/home/dev/go.nix ../../modules/home/dev/java.nix ../../modules/home/dev/lua.nix ../../modules/home/dev/nix.nix ../../modules/home/dev/python.nix ../../modules/home/programs/eza.nix + ../../modules/home/programs/winboat.nix ../../modules/home/programs/fzf.nix ../../modules/home/programs/lsd.nix ../../modules/home/programs/nvim.nix ../../modules/home/programs/starship.nix ../../modules/home/programs/zoxide.nix - # ./flatpak.nix - ]; - - home.packages = with pkgs; [ - catppuccin - my-catppuccin-gtk - my-catppuccin-kde - catppuccin-fcitx5 - freerdp - winboat ]; home.stateVersion = "25.05";