manage git with chezmoi

This commit is contained in:
js0ny 2025-10-20 03:44:56 +01:00
parent e3a0205724
commit 52b70819bf
19 changed files with 204 additions and 104 deletions

2
.gitignore vendored
View file

@ -32,8 +32,6 @@ tools/nushell/
.venv/
gitconfig
# Lock files
lazy-lock.json

17
home/.chezmoi.toml.tmpl Normal file
View file

@ -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 }}

View file

@ -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 }}

View file

@ -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/

View file

@ -0,0 +1 @@
{{ includeTemplate "dot_config/git/_gitconfig.shared.tmpl" . }}

View file

@ -20,30 +20,17 @@ source ~/.local/share/intellimacs/which-key.vim
let mapleader = " " " set <leader> to <space>
""" 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<CR>
nnoremap I :bn<CR>
noremap N 5j
noremap E 5k
nnoremap L :bn<CR>
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 <leader>W :write<CR>
nnoremap <leader>wh :action PrevSplitter<CR>
nnoremap <leader>wi :action NextSplitter<CR>
nnoremap <leader>wH :action SplitHorizontally<CR>
nnoremap <leader>wI :action SplitHorizontally<CR>
nnoremap <leader>wN :action SplitVertically<CR>
nnoremap <leader>wE :action SplitVertically<CR>
nnoremap <leader>wL :action SplitHorizontally<CR>
nnoremap <leader>wJ :action SplitVertically<CR>
nnoremap <leader>wK :action SplitVertically<CR>
nnoremap <leader>w- :action SplitHorizontally<CR>
nnoremap <leader>w| :action SplitVertically<CR>
nnoremap <leader>w\ :action SplitVertically<CR>

View file

@ -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

1
home/dot_gitconfig Normal file
View file

@ -0,0 +1 @@
{{ includeTemplate "dot_config/git/_gitconfig.shared.tmpl" . }}

62
nixcfgs/flake.lock generated
View file

@ -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": {

View file

@ -1,6 +1,6 @@
{pkgs, ...}: {
home.packages = with pkgs; [
gcc
llvmPackages_21.clang-tools
llvmPackages_21.clang-tools # clangd
];
}

View file

@ -0,0 +1,9 @@
{pkgs, ...}: {
home.packages = with pkgs; [
go
gopls
];
programs.vscode.profiles.default.extensions = with pkgs.vscode-extensions; [
golang.go
];
}

View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
freerdp
winboat
];
}

View file

@ -7,7 +7,6 @@
}:
{
imports = [
./programs/git.nix
../../modules/home/programs/fzf.nix
../../modules/home/programs/lsd.nix
../../modules/home/programs/zoxide.nix

View file

@ -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

View file

@ -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
];
}

View file

@ -45,8 +45,6 @@
# lua luajit
lua51Packages.luarocks
ghostscript
mermaid-cli
tectonic
# Misc ta-lib ddgr protonvpn-cli
markdown-oxide
nushell

View file

@ -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"
];
};
};
};
}

View file

@ -1,7 +0,0 @@
{pkgs, ...}: {
programs.git = {
enable = true;
userName = "js0ny";
userEmail = "contact@js0ny.net";
};
}

View file

@ -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";