Compare commits
	
		
			12 commits
		
	
	
		
			main
			...
			nvim-rewri
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | c313ef0f39 | ||
|  | b096dcc502 | ||
|  | 0c331b8db8 | ||
|  | 622e381157 | ||
|  | ac06734c3b | ||
|  | 17e51c791d | ||
|  | f7d7d75bb3 | ||
|  | 10f6614348 | ||
|  | 0709b64a71 | ||
|  | 7fab1f798c | ||
|  | d623b21234 | ||
|  | 0f34a00a4e | 
							
								
								
									
										8
									
								
								.direnv/bin/nix-direnv-reload
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								.direnv/bin/nix-direnv-reload
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| #!/usr/bin/env bash | ||||
| dir="$(realpath $(dirname ${BASH_SOURCE[0]})/../..)" | ||||
| _nix_direnv_force_reload=1 direnv exec "$dir" true | ||||
| direnv reload | ||||
| # direnv reload updates the mtime of .envrc. Also update the timestamp of the | ||||
| # profile_rc file to keep track that we actually are up to date. | ||||
| touch $dir/.direnv/{nix,flake}-profile-*.rc | ||||
| 
 | ||||
|  | @ -7,15 +7,15 @@ AR='ar' | |||
| export AR | ||||
| AS='as' | ||||
| export AS | ||||
| BASH='/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash' | ||||
| BASH='/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin/bash' | ||||
| CC='gcc' | ||||
| export CC | ||||
| CONFIG_SHELL='/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash' | ||||
| CONFIG_SHELL='/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin/bash' | ||||
| export CONFIG_SHELL | ||||
| CXX='g++' | ||||
| export CXX | ||||
| HOSTTYPE='x86_64' | ||||
| HOST_PATH='/nix/store/rry6qingvsrqmc7ll7jgaqpybcbdgf5v-coreutils-9.7/bin:/nix/store/392hs9nhm6wfw4imjllbvb1wil1n39qx-findutils-4.10.0/bin:/nix/store/xw0mf3shymq3k7zlncf09rm8917sdi4h-diffutils-3.12/bin:/nix/store/4rpiqv9yr2pw5094v4wc33ijkqjpm9sa-gnused-4.9/bin:/nix/store/l2wvwyg680h0v2la18hz3yiznxy2naqw-gnugrep-3.11/bin:/nix/store/c1z5j28ndxljf1ihqzag57bwpfpzms0g-gawk-5.3.2/bin:/nix/store/w60s4xh1pjg6dwbw7j0b4xzlpp88q5qg-gnutar-1.35/bin:/nix/store/xd9m9jkvrs8pbxvmkzkwviql33rd090j-gzip-1.14/bin:/nix/store/w1pxx760yidi7n9vbi5bhpii9xxl5vdj-bzip2-1.0.8-bin/bin:/nix/store/xk0d14zpm0njxzdm182dd722aqhav2cc-gnumake-4.4.1/bin:/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin:/nix/store/gj54zvf7vxll1mzzmqhqi1p4jiws3mfb-patch-2.7.6/bin:/nix/store/22rpb6790f346c55iqi6s9drr5qgmyjf-xz-5.8.1-bin/bin:/nix/store/xlmpcglsq8l09qh03rf0virz0331pjdc-file-5.45/bin' | ||||
| HOST_PATH='/nix/store/m38gwq0w8w7qyjn9s00balyp7cv3m5p9-coreutils-9.3/bin:/nix/store/01znf87kiw5xx1dj0f7djrnrbg84ij28-findutils-4.9.0/bin:/nix/store/vq4vmndw555m7ld2bi6pq8kr348qvb6a-diffutils-3.10/bin:/nix/store/rwa7qyds01qzxvq7zq3kgnkrzzpw4s66-gnused-4.9/bin:/nix/store/n062zcsmfl9gfp6vfkcg0asb8jjwmy5i-gnugrep-3.11/bin:/nix/store/4v7m4yx07b3anmbznfhihjc8xiizyna9-gawk-5.2.2/bin:/nix/store/mi3pm67ps7c7k11aqki9182ygzg8j503-gnutar-1.35/bin:/nix/store/5c0ancqnpi0cf1h49mv13w68a950s9z0-gzip-1.13/bin:/nix/store/q5cv7r1sh3s4niyq7vm6h1j74394naxs-bzip2-1.0.8-bin/bin:/nix/store/bh7sbl99ygfvw9w96936nrhw46jmcmqq-gnumake-4.4.1/bin:/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin:/nix/store/mbh9gx43gsc5av019vsdkazbyiic3f0f-patch-2.7.6/bin:/nix/store/3q6fnwcm677l1q60vkhcf9m1gxhv83jm-xz-5.4.4-bin/bin:/nix/store/a5s2dmba16pw8l52f496gw0b7nli7mbn-file-5.45/bin' | ||||
| export HOST_PATH | ||||
| IFS=' 	 | ||||
| ' | ||||
|  | @ -25,25 +25,25 @@ LD='ld' | |||
| export LD | ||||
| LINENO='76' | ||||
| MACHTYPE='x86_64-pc-linux-gnu' | ||||
| NIX_BINTOOLS='/nix/store/87zpmcmwvn48z4lbrfba74b312h22s6c-binutils-wrapper-2.44' | ||||
| NIX_BINTOOLS='/nix/store/qcg3rpl1l103zb1xfsw40wm9j5hzrp7y-binutils-wrapper-2.40' | ||||
| export NIX_BINTOOLS | ||||
| NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' | ||||
| export NIX_BINTOOLS_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu | ||||
| NIX_BUILD_CORES='4' | ||||
| export NIX_BUILD_CORES | ||||
| NIX_CC='/nix/store/kaj8d1zcn149m40s9h0xi0khakibiphz-gcc-wrapper-14.3.0' | ||||
| NIX_CC='/nix/store/vylmp73qymnv4siaqn1kl2hghj07hrj8-gcc-wrapper-12.3.0' | ||||
| export NIX_CC | ||||
| NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu='1' | ||||
| export NIX_CC_WRAPPER_TARGET_HOST_x86_64_unknown_linux_gnu | ||||
| NIX_CFLAGS_COMPILE=' -frandom-seed=5s10b8rs3j -isystem /nix/store/8znh07lsz9q2fdp6fgcdwwv035xxfrl1-nix-2.28.4-dev/include -isystem /nix/store/qwnz3z0hf5pdhwsn92dc9lhlq4a3lsqk-boehm-gc-8.2.8-dev/include -isystem /nix/store/235hvgzcbl06fxy53515q8sr6lljvf68-nlohmann_json-3.11.3/include -isystem /nix/store/a5b9czim7vrihag71f8dy1c467qh3mph-libarchive-3.8.0-dev/include -isystem /nix/store/0vy272ral6dwzx96wkvd90l37v0gdrk7-attr-2.5.2-dev/include -isystem /nix/store/ra69jxg2pnnjymvkn83mfr7cnhllmwnj-acl-2.3.2-dev/include -isystem /nix/store/8znh07lsz9q2fdp6fgcdwwv035xxfrl1-nix-2.28.4-dev/include -isystem /nix/store/qwnz3z0hf5pdhwsn92dc9lhlq4a3lsqk-boehm-gc-8.2.8-dev/include -isystem /nix/store/235hvgzcbl06fxy53515q8sr6lljvf68-nlohmann_json-3.11.3/include -isystem /nix/store/a5b9czim7vrihag71f8dy1c467qh3mph-libarchive-3.8.0-dev/include -isystem /nix/store/0vy272ral6dwzx96wkvd90l37v0gdrk7-attr-2.5.2-dev/include -isystem /nix/store/ra69jxg2pnnjymvkn83mfr7cnhllmwnj-acl-2.3.2-dev/include' | ||||
| NIX_CFLAGS_COMPILE=' -frandom-seed=q6hnwi6rdy -isystem /nix/store/hsv5438lvzq106llix5xi0f7cdvqk95q-nix-2.18.1-dev/include -isystem /nix/store/gdz3j02p6mfzmxs9zsssszwpppigb70g-boehm-gc-8.2.2-dev/include -isystem /nix/store/d7jspi1ws93ya34zriyrdxz5v5z6lijj-nlohmann_json-3.11.2/include -isystem /nix/store/hsv5438lvzq106llix5xi0f7cdvqk95q-nix-2.18.1-dev/include -isystem /nix/store/gdz3j02p6mfzmxs9zsssszwpppigb70g-boehm-gc-8.2.2-dev/include -isystem /nix/store/d7jspi1ws93ya34zriyrdxz5v5z6lijj-nlohmann_json-3.11.2/include' | ||||
| export NIX_CFLAGS_COMPILE | ||||
| NIX_CONFIG='experimental-features = nix-command flakes' | ||||
| export NIX_CONFIG | ||||
| NIX_ENFORCE_NO_NATIVE='1' | ||||
| export NIX_ENFORCE_NO_NATIVE | ||||
| NIX_HARDENING_ENABLE='bindnow format fortify fortify3 pic relro stackclashprotection stackprotector strictoverflow zerocallusedregs' | ||||
| NIX_HARDENING_ENABLE='fortify fortify3 stackprotector pic strictoverflow format relro bindnow' | ||||
| export NIX_HARDENING_ENABLE | ||||
| NIX_LDFLAGS='-rpath /home/anish/usr/helm/outputs/out/lib  -L/nix/store/mrbslgynzhg5jfc05x2rlnsykzcxp2v0-boehm-gc-8.2.8/lib -L/nix/store/ik62z14lxr205b5gzfh4cjcla6gh9l6z-attr-2.5.2/lib -L/nix/store/8smmj5gbhnnqaf28qxak4xv57ccgm96p-acl-2.3.2/lib -L/nix/store/y130gnbp2qkfq6svqdv0s61b3m4043yp-libarchive-3.8.0-lib/lib -L/nix/store/7q9ll9pjrdfdb3qyfza2bzrk829izk9s-nix-2.28.4/lib -L/nix/store/mrbslgynzhg5jfc05x2rlnsykzcxp2v0-boehm-gc-8.2.8/lib -L/nix/store/ik62z14lxr205b5gzfh4cjcla6gh9l6z-attr-2.5.2/lib -L/nix/store/8smmj5gbhnnqaf28qxak4xv57ccgm96p-acl-2.3.2/lib -L/nix/store/y130gnbp2qkfq6svqdv0s61b3m4043yp-libarchive-3.8.0-lib/lib -L/nix/store/7q9ll9pjrdfdb3qyfza2bzrk829izk9s-nix-2.28.4/lib' | ||||
| NIX_LDFLAGS='-rpath /home/anish/usr/helm/outputs/out/lib  -L/nix/store/gfmmah5rc4vl8mhli495lh5savq842p0-boehm-gc-8.2.2/lib -L/nix/store/j7nl2pj606d8ld5818hw3z3fbz00sdc5-nix-2.18.1/lib -L/nix/store/gfmmah5rc4vl8mhli495lh5savq842p0-boehm-gc-8.2.2/lib -L/nix/store/j7nl2pj606d8ld5818hw3z3fbz00sdc5-nix-2.18.1/lib' | ||||
| export NIX_LDFLAGS | ||||
| NIX_NO_SELF_RPATH='1' | ||||
| NIX_STORE='/nix/store' | ||||
|  | @ -58,15 +58,13 @@ OLDPWD='' | |||
| export OLDPWD | ||||
| OPTERR='1' | ||||
| OSTYPE='linux-gnu' | ||||
| PATH='/nix/store/53cx9nd6i328f9zqsgx6sh1krsngy5jl-attr-2.5.2-bin/bin:/nix/store/61066bhvr54xkl2ssippfa5qylwgafqf-acl-2.3.2-bin/bin:/nix/store/8fq8mhb1dlwzgq7xfaxwgn0x623yjb43-libarchive-3.8.0/bin:/nix/store/7q9ll9pjrdfdb3qyfza2bzrk829izk9s-nix-2.28.4/bin:/nix/store/hr950wkqix97b759inrbxvljkqxj5113-home-manager-0-unstable-2025-05-13/bin:/nix/store/3kwbkj8xnzw5787gbannr741bczjkrq6-git-2.50.1/bin:/nix/store/s801pmgfwy4nifm72s638v0m4f32pnc5-agenix-0.15.0/bin:/nix/store/vlc65hzrqq9a29m7j0sb4hpqlwn0ny56-deploy-rs-0-unstable-2025-06-05/bin:/nix/store/dgqa38y4hxyw30g6bvrgd18750h364vr-dnscontrol-4.20.0/bin:/nix/store/g7i75czfbw9sy5f8v7rjbama6lr3ya3s-patchelf-0.15.0/bin:/nix/store/kaj8d1zcn149m40s9h0xi0khakibiphz-gcc-wrapper-14.3.0/bin:/nix/store/8adzgnxs3s0pbj22qhk9zjxi1fqmz3xv-gcc-14.3.0/bin:/nix/store/p2ixvjsas4qw58dcwk01d22skwq4fyka-glibc-2.40-66-bin/bin:/nix/store/rry6qingvsrqmc7ll7jgaqpybcbdgf5v-coreutils-9.7/bin:/nix/store/87zpmcmwvn48z4lbrfba74b312h22s6c-binutils-wrapper-2.44/bin:/nix/store/ap35np2bkwaba3rxs3qlxpma57n2awyb-binutils-2.44/bin:/nix/store/rry6qingvsrqmc7ll7jgaqpybcbdgf5v-coreutils-9.7/bin:/nix/store/392hs9nhm6wfw4imjllbvb1wil1n39qx-findutils-4.10.0/bin:/nix/store/xw0mf3shymq3k7zlncf09rm8917sdi4h-diffutils-3.12/bin:/nix/store/4rpiqv9yr2pw5094v4wc33ijkqjpm9sa-gnused-4.9/bin:/nix/store/l2wvwyg680h0v2la18hz3yiznxy2naqw-gnugrep-3.11/bin:/nix/store/c1z5j28ndxljf1ihqzag57bwpfpzms0g-gawk-5.3.2/bin:/nix/store/w60s4xh1pjg6dwbw7j0b4xzlpp88q5qg-gnutar-1.35/bin:/nix/store/xd9m9jkvrs8pbxvmkzkwviql33rd090j-gzip-1.14/bin:/nix/store/w1pxx760yidi7n9vbi5bhpii9xxl5vdj-bzip2-1.0.8-bin/bin:/nix/store/xk0d14zpm0njxzdm182dd722aqhav2cc-gnumake-4.4.1/bin:/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin:/nix/store/gj54zvf7vxll1mzzmqhqi1p4jiws3mfb-patch-2.7.6/bin:/nix/store/22rpb6790f346c55iqi6s9drr5qgmyjf-xz-5.8.1-bin/bin:/nix/store/xlmpcglsq8l09qh03rf0virz0331pjdc-file-5.45/bin' | ||||
| PATH='/nix/store/j7nl2pj606d8ld5818hw3z3fbz00sdc5-nix-2.18.1/bin:/nix/store/p3s38kgwd16d2dimspckp5f1rri43mnq-home-manager-unstable-2023-12-31/bin:/nix/store/pz4jng8kb4iv9x67r730las2mdkv8s8q-git-2.42.0/bin:/nix/store/p8p72q6anyf0whaf9i75jynzk2z4ml36-agenix-0.13.0/bin:/nix/store/lfx4in7iqbbx5b6b85cndw268ria5512-deploy-rs-unstable-2023-12-20/bin:/nix/store/8nwmr2kmkrl1mnggka7fjibcglk68rc0-dnscontrol-4.6.0/bin:/nix/store/h3ayxf5dk1gdf3s5716fh1ys815qxxag-patchelf-0.15.0/bin:/nix/store/vylmp73qymnv4siaqn1kl2hghj07hrj8-gcc-wrapper-12.3.0/bin:/nix/store/f94yr35af3xdiscbj6cp6kafvmn55gv9-gcc-12.3.0/bin:/nix/store/vksrk76p5cfbjxb0n95vdkxy7fl2cbcm-glibc-2.38-27-bin/bin:/nix/store/m38gwq0w8w7qyjn9s00balyp7cv3m5p9-coreutils-9.3/bin:/nix/store/qcg3rpl1l103zb1xfsw40wm9j5hzrp7y-binutils-wrapper-2.40/bin:/nix/store/idiaraknw071d20nlqp49s18gbvw4wa0-binutils-2.40/bin:/nix/store/m38gwq0w8w7qyjn9s00balyp7cv3m5p9-coreutils-9.3/bin:/nix/store/01znf87kiw5xx1dj0f7djrnrbg84ij28-findutils-4.9.0/bin:/nix/store/vq4vmndw555m7ld2bi6pq8kr348qvb6a-diffutils-3.10/bin:/nix/store/rwa7qyds01qzxvq7zq3kgnkrzzpw4s66-gnused-4.9/bin:/nix/store/n062zcsmfl9gfp6vfkcg0asb8jjwmy5i-gnugrep-3.11/bin:/nix/store/4v7m4yx07b3anmbznfhihjc8xiizyna9-gawk-5.2.2/bin:/nix/store/mi3pm67ps7c7k11aqki9182ygzg8j503-gnutar-1.35/bin:/nix/store/5c0ancqnpi0cf1h49mv13w68a950s9z0-gzip-1.13/bin:/nix/store/q5cv7r1sh3s4niyq7vm6h1j74394naxs-bzip2-1.0.8-bin/bin:/nix/store/bh7sbl99ygfvw9w96936nrhw46jmcmqq-gnumake-4.4.1/bin:/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin:/nix/store/mbh9gx43gsc5av019vsdkazbyiic3f0f-patch-2.7.6/bin:/nix/store/3q6fnwcm677l1q60vkhcf9m1gxhv83jm-xz-5.4.4-bin/bin:/nix/store/a5s2dmba16pw8l52f496gw0b7nli7mbn-file-5.45/bin' | ||||
| export PATH | ||||
| PS4='+ ' | ||||
| RANLIB='ranlib' | ||||
| export RANLIB | ||||
| READELF='readelf' | ||||
| export READELF | ||||
| SHELL='/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash' | ||||
| export SHELL | ||||
| SIZE='size' | ||||
| export SIZE | ||||
| SOURCE_DATE_EPOCH='315532800' | ||||
|  | @ -75,11 +73,10 @@ STRINGS='strings' | |||
| export STRINGS | ||||
| STRIP='strip' | ||||
| export STRIP | ||||
| XDG_DATA_DIRS='/nix/store/mrbslgynzhg5jfc05x2rlnsykzcxp2v0-boehm-gc-8.2.8/share:/nix/store/235hvgzcbl06fxy53515q8sr6lljvf68-nlohmann_json-3.11.3/share:/nix/store/ik62z14lxr205b5gzfh4cjcla6gh9l6z-attr-2.5.2/share:/nix/store/8smmj5gbhnnqaf28qxak4xv57ccgm96p-acl-2.3.2/share:/nix/store/8fq8mhb1dlwzgq7xfaxwgn0x623yjb43-libarchive-3.8.0/share:/nix/store/7q9ll9pjrdfdb3qyfza2bzrk829izk9s-nix-2.28.4/share:/nix/store/hr950wkqix97b759inrbxvljkqxj5113-home-manager-0-unstable-2025-05-13/share:/nix/store/3kwbkj8xnzw5787gbannr741bczjkrq6-git-2.50.1/share:/nix/store/dgqa38y4hxyw30g6bvrgd18750h364vr-dnscontrol-4.20.0/share:/nix/store/g7i75czfbw9sy5f8v7rjbama6lr3ya3s-patchelf-0.15.0/share' | ||||
| XDG_DATA_DIRS='/nix/store/gfmmah5rc4vl8mhli495lh5savq842p0-boehm-gc-8.2.2/share:/nix/store/d7jspi1ws93ya34zriyrdxz5v5z6lijj-nlohmann_json-3.11.2/share:/nix/store/j7nl2pj606d8ld5818hw3z3fbz00sdc5-nix-2.18.1/share:/nix/store/p3s38kgwd16d2dimspckp5f1rri43mnq-home-manager-unstable-2023-12-31/share:/nix/store/pz4jng8kb4iv9x67r730las2mdkv8s8q-git-2.42.0/share:/nix/store/h3ayxf5dk1gdf3s5716fh1ys815qxxag-patchelf-0.15.0/share' | ||||
| export XDG_DATA_DIRS | ||||
| __structuredAttrs='' | ||||
| export __structuredAttrs | ||||
| _substituteStream_has_warned_replace_deprecation='false' | ||||
| buildInputs='' | ||||
| export buildInputs | ||||
| buildPhase='{ echo "------------------------------------------------------------"; | ||||
|  | @ -92,14 +89,14 @@ buildPhase='{ echo "------------------------------------------------------------ | |||
| } >> "$out" | ||||
| ' | ||||
| export buildPhase | ||||
| builder='/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash' | ||||
| builder='/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin/bash' | ||||
| export builder | ||||
| cmakeFlags='' | ||||
| export cmakeFlags | ||||
| configureFlags='' | ||||
| export configureFlags | ||||
| defaultBuildInputs='' | ||||
| defaultNativeBuildInputs='/nix/store/g7i75czfbw9sy5f8v7rjbama6lr3ya3s-patchelf-0.15.0 /nix/store/gi6g289i9ydm3z896x67q210y0qq29zg-update-autotools-gnu-config-scripts-hook /nix/store/jjhw2phnaip4kg0qjas3x3fsaifi8y0w-no-broken-symlinks.sh /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh /nix/store/hxv896faph0rqxjq2ycxpcrbnngc95sz-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh /nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh /nix/store/kaj8d1zcn149m40s9h0xi0khakibiphz-gcc-wrapper-14.3.0' | ||||
| defaultNativeBuildInputs='/nix/store/h3ayxf5dk1gdf3s5716fh1ys815qxxag-patchelf-0.15.0 /nix/store/v5qyd49a256y44pz75qnsp9741mg336k-update-autotools-gnu-config-scripts-hook /nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh /nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh /nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh /nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh /nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh /nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh /nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh /nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh /nix/store/wzdsbnv2ba3nj91aql8jjdddfmkkdh7h-patch-shebangs.sh /nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh /nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh /nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh /nix/store/wmknncrif06fqxa16hpdldhixk95nds0-strip.sh /nix/store/vylmp73qymnv4siaqn1kl2hghj07hrj8-gcc-wrapper-12.3.0' | ||||
| depsBuildBuild='' | ||||
| export depsBuildBuild | ||||
| depsBuildBuildPropagated='' | ||||
|  | @ -130,12 +127,12 @@ declare -a envHostTargetHooks=('ccWrapper_addCVars' 'bintoolsWrapper_addLDVars' | |||
| declare -a envTargetTargetHooks=() | ||||
| declare -a fixupOutputHooks=('if [ -z "${dontPatchELF-}" ]; then patchELF "$prefix"; fi' 'if [[ -z "${noAuditTmpdir-}" && -e "$prefix" ]]; then auditTmpdir "$prefix"; fi' 'if [ -z "${dontGzipMan-}" ]; then compressManPages "$prefix"; fi' '_moveLib64' '_moveSbin' '_moveSystemdUserUnits' 'patchShebangsAuto' '_pruneLibtoolFiles' '_doStrip' ) | ||||
| guess='4' | ||||
| initialPath='/nix/store/rry6qingvsrqmc7ll7jgaqpybcbdgf5v-coreutils-9.7 /nix/store/392hs9nhm6wfw4imjllbvb1wil1n39qx-findutils-4.10.0 /nix/store/xw0mf3shymq3k7zlncf09rm8917sdi4h-diffutils-3.12 /nix/store/4rpiqv9yr2pw5094v4wc33ijkqjpm9sa-gnused-4.9 /nix/store/l2wvwyg680h0v2la18hz3yiznxy2naqw-gnugrep-3.11 /nix/store/c1z5j28ndxljf1ihqzag57bwpfpzms0g-gawk-5.3.2 /nix/store/w60s4xh1pjg6dwbw7j0b4xzlpp88q5qg-gnutar-1.35 /nix/store/xd9m9jkvrs8pbxvmkzkwviql33rd090j-gzip-1.14 /nix/store/w1pxx760yidi7n9vbi5bhpii9xxl5vdj-bzip2-1.0.8-bin /nix/store/xk0d14zpm0njxzdm182dd722aqhav2cc-gnumake-4.4.1 /nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37 /nix/store/gj54zvf7vxll1mzzmqhqi1p4jiws3mfb-patch-2.7.6 /nix/store/22rpb6790f346c55iqi6s9drr5qgmyjf-xz-5.8.1-bin /nix/store/xlmpcglsq8l09qh03rf0virz0331pjdc-file-5.45' | ||||
| initialPath='/nix/store/m38gwq0w8w7qyjn9s00balyp7cv3m5p9-coreutils-9.3 /nix/store/01znf87kiw5xx1dj0f7djrnrbg84ij28-findutils-4.9.0 /nix/store/vq4vmndw555m7ld2bi6pq8kr348qvb6a-diffutils-3.10 /nix/store/rwa7qyds01qzxvq7zq3kgnkrzzpw4s66-gnused-4.9 /nix/store/n062zcsmfl9gfp6vfkcg0asb8jjwmy5i-gnugrep-3.11 /nix/store/4v7m4yx07b3anmbznfhihjc8xiizyna9-gawk-5.2.2 /nix/store/mi3pm67ps7c7k11aqki9182ygzg8j503-gnutar-1.35 /nix/store/5c0ancqnpi0cf1h49mv13w68a950s9z0-gzip-1.13 /nix/store/q5cv7r1sh3s4niyq7vm6h1j74394naxs-bzip2-1.0.8-bin /nix/store/bh7sbl99ygfvw9w96936nrhw46jmcmqq-gnumake-4.4.1 /nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15 /nix/store/mbh9gx43gsc5av019vsdkazbyiic3f0f-patch-2.7.6 /nix/store/3q6fnwcm677l1q60vkhcf9m1gxhv83jm-xz-5.4.4-bin /nix/store/a5s2dmba16pw8l52f496gw0b7nli7mbn-file-5.45' | ||||
| mesonFlags='' | ||||
| export mesonFlags | ||||
| name='nix-shell-env' | ||||
| export name | ||||
| nativeBuildInputs='/nix/store/8znh07lsz9q2fdp6fgcdwwv035xxfrl1-nix-2.28.4-dev /nix/store/hr950wkqix97b759inrbxvljkqxj5113-home-manager-0-unstable-2025-05-13 /nix/store/3kwbkj8xnzw5787gbannr741bczjkrq6-git-2.50.1 /nix/store/s801pmgfwy4nifm72s638v0m4f32pnc5-agenix-0.15.0 /nix/store/vlc65hzrqq9a29m7j0sb4hpqlwn0ny56-deploy-rs-0-unstable-2025-06-05 /nix/store/dgqa38y4hxyw30g6bvrgd18750h364vr-dnscontrol-4.20.0' | ||||
| nativeBuildInputs='/nix/store/hsv5438lvzq106llix5xi0f7cdvqk95q-nix-2.18.1-dev /nix/store/p3s38kgwd16d2dimspckp5f1rri43mnq-home-manager-unstable-2023-12-31 /nix/store/pz4jng8kb4iv9x67r730las2mdkv8s8q-git-2.42.0 /nix/store/p8p72q6anyf0whaf9i75jynzk2z4ml36-agenix-0.13.0 /nix/store/lfx4in7iqbbx5b6b85cndw268ria5512-deploy-rs-unstable-2023-12-20 /nix/store/8nwmr2kmkrl1mnggka7fjibcglk68rc0-dnscontrol-4.6.0' | ||||
| export nativeBuildInputs | ||||
| out='/home/anish/usr/helm/outputs/out' | ||||
| export out | ||||
|  | @ -154,14 +151,14 @@ patches='' | |||
| export patches | ||||
| phases='buildPhase' | ||||
| export phases | ||||
| pkg='/nix/store/kaj8d1zcn149m40s9h0xi0khakibiphz-gcc-wrapper-14.3.0' | ||||
| pkg='/nix/store/vylmp73qymnv4siaqn1kl2hghj07hrj8-gcc-wrapper-12.3.0' | ||||
| declare -a pkgsBuildBuild=() | ||||
| declare -a pkgsBuildHost=('/nix/store/8znh07lsz9q2fdp6fgcdwwv035xxfrl1-nix-2.28.4-dev' '/nix/store/qwnz3z0hf5pdhwsn92dc9lhlq4a3lsqk-boehm-gc-8.2.8-dev' '/nix/store/mrbslgynzhg5jfc05x2rlnsykzcxp2v0-boehm-gc-8.2.8' '/nix/store/235hvgzcbl06fxy53515q8sr6lljvf68-nlohmann_json-3.11.3' '/nix/store/a5b9czim7vrihag71f8dy1c467qh3mph-libarchive-3.8.0-dev' '/nix/store/0vy272ral6dwzx96wkvd90l37v0gdrk7-attr-2.5.2-dev' '/nix/store/53cx9nd6i328f9zqsgx6sh1krsngy5jl-attr-2.5.2-bin' '/nix/store/ik62z14lxr205b5gzfh4cjcla6gh9l6z-attr-2.5.2' '/nix/store/ra69jxg2pnnjymvkn83mfr7cnhllmwnj-acl-2.3.2-dev' '/nix/store/61066bhvr54xkl2ssippfa5qylwgafqf-acl-2.3.2-bin' '/nix/store/8smmj5gbhnnqaf28qxak4xv57ccgm96p-acl-2.3.2' '/nix/store/y130gnbp2qkfq6svqdv0s61b3m4043yp-libarchive-3.8.0-lib' '/nix/store/8fq8mhb1dlwzgq7xfaxwgn0x623yjb43-libarchive-3.8.0' '/nix/store/7q9ll9pjrdfdb3qyfza2bzrk829izk9s-nix-2.28.4' '/nix/store/hr950wkqix97b759inrbxvljkqxj5113-home-manager-0-unstable-2025-05-13' '/nix/store/3kwbkj8xnzw5787gbannr741bczjkrq6-git-2.50.1' '/nix/store/s801pmgfwy4nifm72s638v0m4f32pnc5-agenix-0.15.0' '/nix/store/vlc65hzrqq9a29m7j0sb4hpqlwn0ny56-deploy-rs-0-unstable-2025-06-05' '/nix/store/dgqa38y4hxyw30g6bvrgd18750h364vr-dnscontrol-4.20.0' '/nix/store/g7i75czfbw9sy5f8v7rjbama6lr3ya3s-patchelf-0.15.0' '/nix/store/gi6g289i9ydm3z896x67q210y0qq29zg-update-autotools-gnu-config-scripts-hook' '/nix/store/jjhw2phnaip4kg0qjas3x3fsaifi8y0w-no-broken-symlinks.sh' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/cmzya9irvxzlkh7lfy6i82gbp0saxqj3-multiple-outputs.sh' '/nix/store/hxv896faph0rqxjq2ycxpcrbnngc95sz-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/z7k98578dfzi6l3hsvbivzm7hfqlk0zc-set-source-date-epoch-to-latest.sh' '/nix/store/pilsssjjdxvdphlg2h19p0bfx5q0jzkn-strip.sh' '/nix/store/kaj8d1zcn149m40s9h0xi0khakibiphz-gcc-wrapper-14.3.0' '/nix/store/87zpmcmwvn48z4lbrfba74b312h22s6c-binutils-wrapper-2.44' ) | ||||
| declare -a pkgsBuildHost=('/nix/store/hsv5438lvzq106llix5xi0f7cdvqk95q-nix-2.18.1-dev' '/nix/store/gdz3j02p6mfzmxs9zsssszwpppigb70g-boehm-gc-8.2.2-dev' '/nix/store/gfmmah5rc4vl8mhli495lh5savq842p0-boehm-gc-8.2.2' '/nix/store/d7jspi1ws93ya34zriyrdxz5v5z6lijj-nlohmann_json-3.11.2' '/nix/store/j7nl2pj606d8ld5818hw3z3fbz00sdc5-nix-2.18.1' '/nix/store/p3s38kgwd16d2dimspckp5f1rri43mnq-home-manager-unstable-2023-12-31' '/nix/store/pz4jng8kb4iv9x67r730las2mdkv8s8q-git-2.42.0' '/nix/store/p8p72q6anyf0whaf9i75jynzk2z4ml36-agenix-0.13.0' '/nix/store/lfx4in7iqbbx5b6b85cndw268ria5512-deploy-rs-unstable-2023-12-20' '/nix/store/8nwmr2kmkrl1mnggka7fjibcglk68rc0-dnscontrol-4.6.0' '/nix/store/h3ayxf5dk1gdf3s5716fh1ys815qxxag-patchelf-0.15.0' '/nix/store/v5qyd49a256y44pz75qnsp9741mg336k-update-autotools-gnu-config-scripts-hook' '/nix/store/h9lc1dpi14z7is86ffhl3ld569138595-audit-tmpdir.sh' '/nix/store/m54bmrhj6fqz8nds5zcj97w9s9bckc9v-compress-man-pages.sh' '/nix/store/wgrbkkaldkrlrni33ccvm3b6vbxzb656-make-symlinks-relative.sh' '/nix/store/5yzw0vhkyszf2d179m0qfkgxmp5wjjx4-move-docs.sh' '/nix/store/fyaryjvghbkpfnsyw97hb3lyb37s1pd6-move-lib64.sh' '/nix/store/kd4xwxjpjxi71jkm6ka0np72if9rm3y0-move-sbin.sh' '/nix/store/pag6l61paj1dc9sv15l7bm5c17xn5kyk-move-systemd-user-units.sh' '/nix/store/jivxp510zxakaaic7qkrb7v1dd2rdbw9-multiple-outputs.sh' '/nix/store/wzdsbnv2ba3nj91aql8jjdddfmkkdh7h-patch-shebangs.sh' '/nix/store/cickvswrvann041nqxb0rxilc46svw1n-prune-libtool-files.sh' '/nix/store/xyff06pkhki3qy1ls77w10s0v79c9il0-reproducible-builds.sh' '/nix/store/ngg1cv31c8c7bcm2n8ww4g06nq7s4zhm-set-source-date-epoch-to-latest.sh' '/nix/store/wmknncrif06fqxa16hpdldhixk95nds0-strip.sh' '/nix/store/vylmp73qymnv4siaqn1kl2hghj07hrj8-gcc-wrapper-12.3.0' '/nix/store/qcg3rpl1l103zb1xfsw40wm9j5hzrp7y-binutils-wrapper-2.40' ) | ||||
| declare -a pkgsBuildTarget=() | ||||
| declare -a pkgsHostHost=() | ||||
| declare -a pkgsHostTarget=() | ||||
| declare -a pkgsTargetTarget=() | ||||
| declare -a postFixupHooks=('noBrokenSymlinksInAllOutputs' '_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' ) | ||||
| declare -a postFixupHooks=('_makeSymlinksRelativeInAllOutputs' '_multioutPropagateDev' ) | ||||
| declare -a postUnpackHooks=('_updateSourceDateEpochFromSourceRoot' ) | ||||
| declare -a preConfigureHooks=('_multioutConfig' ) | ||||
| preConfigurePhases=' updateAutotoolsGnuConfigScriptsPhase' | ||||
|  | @ -176,17 +173,42 @@ declare -a propagatedHostDepFiles=('propagated-host-host-deps' 'propagated-build | |||
| propagatedNativeBuildInputs='' | ||||
| export propagatedNativeBuildInputs | ||||
| declare -a propagatedTargetDepFiles=('propagated-target-target-deps' ) | ||||
| shell='/nix/store/cfqbabpc7xwg8akbcchqbq3cai6qq2vs-bash-5.2p37/bin/bash' | ||||
| shell='/nix/store/7dpxg7ki7g8ynkdwcqf493p2x8divb4i-bash-5.2-p15/bin/bash' | ||||
| export shell | ||||
| shellHook='' | ||||
| export shellHook | ||||
| stdenv='/nix/store/p2mnji2cdxgf6h27hlqzqf7g8f9bqfsi-stdenv-linux' | ||||
| stdenv='/nix/store/kv5wkk7xgc8paw9azshzlmxraffqcg0i-stdenv-linux' | ||||
| export stdenv | ||||
| strictDeps='' | ||||
| export strictDeps | ||||
| system='x86_64-linux' | ||||
| export system | ||||
| declare -a unpackCmdHooks=('_defaultUnpack' ) | ||||
| _accumFlagsArray () | ||||
| { | ||||
|   | ||||
|     local name; | ||||
|     if [ -n "$__structuredAttrs" ]; then | ||||
|         for name in "$@"; | ||||
|         do | ||||
|             local -n nameref="$name"; | ||||
|             flagsArray+=(${nameref+"${nameref[@]}"}); | ||||
|         done; | ||||
|     else | ||||
|         for name in "$@"; | ||||
|         do | ||||
|             local -n nameref="$name"; | ||||
|             case "$name" in  | ||||
|                 *Array) | ||||
|                     flagsArray+=(${nameref+"${nameref[@]}"}) | ||||
|                 ;; | ||||
|                 *) | ||||
|                     flagsArray+=(${nameref-}) | ||||
|                 ;; | ||||
|             esac; | ||||
|         done; | ||||
|     fi | ||||
| } | ||||
| _activatePkgs () | ||||
| { | ||||
|   | ||||
|  | @ -252,10 +274,13 @@ _allFlags () | |||
| { | ||||
|   | ||||
|     export system pname name version; | ||||
|     while IFS='' read -r varName; do | ||||
|         nixTalkativeLog "@${varName}@ -> ${!varName}"; | ||||
|     for varName in $(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }'); | ||||
|     do | ||||
|         if (( "${NIX_DEBUG:-0}" >= 1 )); then | ||||
|             printf "@%s@ -> %q\n" "${varName}" "${!varName}" 1>&2; | ||||
|         fi; | ||||
|         args+=("--subst-var" "$varName"); | ||||
|     done < <(awk 'BEGIN { for (v in ENVIRON) if (v ~ /^[a-z][a-zA-Z0-9_]*$/) print v }') | ||||
|     done | ||||
| } | ||||
| _assignFirst () | ||||
| { | ||||
|  | @ -291,15 +316,12 @@ _callImplicitHook () | |||
|     local def="$1"; | ||||
|     local hookName="$2"; | ||||
|     if declare -F "$hookName" > /dev/null; then | ||||
|         nixTalkativeLog "calling implicit '$hookName' function hook"; | ||||
|         "$hookName"; | ||||
|     else | ||||
|         if type -p "$hookName" > /dev/null; then | ||||
|             nixTalkativeLog "sourcing implicit '$hookName' script hook"; | ||||
|             source "$hookName"; | ||||
|         else | ||||
|             if [ -n "${!hookName:-}" ]; then | ||||
|                 nixTalkativeLog "evaling implicit '$hookName' string hook"; | ||||
|                 eval "${!hookName}"; | ||||
|             else | ||||
|                 return "$def"; | ||||
|  | @ -319,15 +341,14 @@ _defaultUnpack () | |||
|             echo "Did you specify two \"srcs\" with the same \"name\"?"; | ||||
|             return 1; | ||||
|         fi; | ||||
|         cp -r --preserve=mode,timestamps --reflink=auto -- "$fn" "$destination"; | ||||
|         cp -pr --reflink=auto -- "$fn" "$destination"; | ||||
|     else | ||||
|         case "$fn" in  | ||||
|             *.tar.xz | *.tar.lzma | *.txz) | ||||
|                 ( XZ_OPT="--threads=$NIX_BUILD_CORES" xz -d < "$fn"; | ||||
|                 true ) | tar xf - --mode=+w --warning=no-timestamp | ||||
|                 xz -d < "$fn" | tar xf - --warning=no-timestamp | ||||
|             ;; | ||||
|             *.tar | *.tar.* | *.tgz | *.tbz2 | *.tbz) | ||||
|                 tar xf "$fn" --mode=+w --warning=no-timestamp | ||||
|                 tar xf "$fn" --warning=no-timestamp | ||||
|             ;; | ||||
|             *) | ||||
|                 return 1 | ||||
|  | @ -343,7 +364,7 @@ _doStrip () | |||
|     local -ra allDirs=(stripAllList stripAllListTarget); | ||||
|     local -ra stripCmds=(STRIP STRIP_FOR_TARGET); | ||||
|     local -ra ranlibCmds=(RANLIB RANLIB_FOR_TARGET); | ||||
|     stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin Applications Library/Frameworks}; | ||||
|     stripDebugList=${stripDebugList[*]:-lib lib32 lib64 libexec bin sbin}; | ||||
|     stripDebugListTarget=${stripDebugListTarget[*]:-}; | ||||
|     stripAllList=${stripAllList[*]:-}; | ||||
|     stripAllListTarget=${stripAllListTarget[*]:-}; | ||||
|  | @ -371,40 +392,6 @@ _eval () | |||
|         eval "$1"; | ||||
|     fi | ||||
| } | ||||
| _logHook () | ||||
| { | ||||
|   | ||||
|     if [[ -z ${NIX_LOG_FD-} ]]; then | ||||
|         return; | ||||
|     fi; | ||||
|     local hookKind="$1"; | ||||
|     local hookExpr="$2"; | ||||
|     shift 2; | ||||
|     if declare -F "$hookExpr" > /dev/null 2>&1; then | ||||
|         nixTalkativeLog "calling '$hookKind' function hook '$hookExpr'" "$@"; | ||||
|     else | ||||
|         if type -p "$hookExpr" > /dev/null; then | ||||
|             nixTalkativeLog "sourcing '$hookKind' script hook '$hookExpr'"; | ||||
|         else | ||||
|             if [[ "$hookExpr" != "_callImplicitHook"* ]]; then | ||||
|                 local exprToOutput; | ||||
|                 if [[ ${NIX_DEBUG:-0} -ge 5 ]]; then | ||||
|                     exprToOutput="$hookExpr"; | ||||
|                 else | ||||
|                     local hookExprLine; | ||||
|                     while IFS= read -r hookExprLine; do | ||||
|                         hookExprLine="${hookExprLine#"${hookExprLine%%[![:space:]]*}"}"; | ||||
|                         if [[ -n "$hookExprLine" ]]; then | ||||
|                             exprToOutput+="$hookExprLine\\n "; | ||||
|                         fi; | ||||
|                     done <<< "$hookExpr"; | ||||
|                     exprToOutput="${exprToOutput%%\\n }"; | ||||
|                 fi; | ||||
|                 nixTalkativeLog "evaling '$hookKind' string hook '$exprToOutput'"; | ||||
|             fi; | ||||
|         fi; | ||||
|     fi | ||||
| } | ||||
| _makeSymlinksRelative () | ||||
| { | ||||
|   | ||||
|  | @ -538,7 +525,7 @@ _multioutConfig () | |||
|             shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"; | ||||
|         fi; | ||||
|     fi; | ||||
|     prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; | ||||
|     prependToVar configureFlags --bindir="${!outputBin}"/bin --sbindir="${!outputBin}"/sbin --includedir="${!outputInclude}"/include --oldincludedir="${!outputInclude}"/include --mandir="${!outputMan}"/share/man --infodir="${!outputInfo}"/share/info --docdir="${!outputDoc}"/share/doc/"${shareDocName}" --libdir="${!outputLib}"/lib --libexecdir="${!outputLib}"/libexec --localedir="${!outputLib}"/share/locale; | ||||
|     prependToVar installFlags pkgconfigdir="${!outputDev}"/lib/pkgconfig m4datadir="${!outputDev}"/share/aclocal aclocaldir="${!outputDev}"/share/aclocal | ||||
| } | ||||
| _multioutDevs () | ||||
|  | @ -599,47 +586,6 @@ _multioutPropagateDev () | |||
|         echo -n " ${!output}" >> "${!propagaterOutput}"/nix-support/propagated-build-inputs; | ||||
|     done | ||||
| } | ||||
| _nixLogWithLevel () | ||||
| { | ||||
|   | ||||
|     [[ -z ${NIX_LOG_FD-} || ${NIX_DEBUG:-0} -lt ${1:?} ]] && return 0; | ||||
|     local logLevel; | ||||
|     case "${1:?}" in  | ||||
|         0) | ||||
|             logLevel=ERROR | ||||
|         ;; | ||||
|         1) | ||||
|             logLevel=WARN | ||||
|         ;; | ||||
|         2) | ||||
|             logLevel=NOTICE | ||||
|         ;; | ||||
|         3) | ||||
|             logLevel=INFO | ||||
|         ;; | ||||
|         4) | ||||
|             logLevel=TALKATIVE | ||||
|         ;; | ||||
|         5) | ||||
|             logLevel=CHATTY | ||||
|         ;; | ||||
|         6) | ||||
|             logLevel=DEBUG | ||||
|         ;; | ||||
|         7) | ||||
|             logLevel=VOMIT | ||||
|         ;; | ||||
|         *) | ||||
|             echo "_nixLogWithLevel: called with invalid log level: ${1:?}" >&"$NIX_LOG_FD"; | ||||
|             return 1 | ||||
|         ;; | ||||
|     esac; | ||||
|     local callerName="${FUNCNAME[2]}"; | ||||
|     if [[ $callerName == "_callImplicitHook" ]]; then | ||||
|         callerName="${hookName:?}"; | ||||
|     fi; | ||||
|     printf "%s: %s: %s\n" "$logLevel" "$callerName" "${2:?}" >&"$NIX_LOG_FD" | ||||
| } | ||||
| _overrideFirst () | ||||
| { | ||||
|   | ||||
|  | @ -670,7 +616,6 @@ activatePackage () | |||
|     local -r targetOffset="$3"; | ||||
|     (( hostOffset <= targetOffset )) || exit 1; | ||||
|     if [ -f "$pkg" ]; then | ||||
|         nixTalkativeLog "sourcing setup hook '$pkg'"; | ||||
|         source "$pkg"; | ||||
|     fi; | ||||
|     if [[ -z "${strictDeps-}" || "$hostOffset" -le -1 ]]; then | ||||
|  | @ -683,7 +628,6 @@ activatePackage () | |||
|         addToSearchPath _HOST_PATH "$pkg/bin"; | ||||
|     fi; | ||||
|     if [[ -f "$pkg/nix-support/setup-hook" ]]; then | ||||
|         nixTalkativeLog "sourcing setup hook '$pkg/nix-support/setup-hook'"; | ||||
|         source "$pkg/nix-support/setup-hook"; | ||||
|     fi | ||||
| } | ||||
|  | @ -724,19 +668,18 @@ appendToVar () | |||
|     else | ||||
|         useArray=false; | ||||
|     fi; | ||||
|     if type=$(declare -p "$1" 2> /dev/null); then | ||||
|         case "${type#* }" in  | ||||
|             -A*) | ||||
|     if declare -p "$1" 2> /dev/null | grep -q '^'; then | ||||
|         type="$(declare -p "$1")"; | ||||
|         if [[ "$type" =~ "declare -A" ]]; then | ||||
|             echo "appendToVar(): ERROR: trying to use appendToVar on an associative array, use variable+=([\"X\"]=\"Y\") instead." 1>&2; | ||||
|                 return 1 | ||||
|             ;; | ||||
|             -a*) | ||||
|                 useArray=true | ||||
|             ;; | ||||
|             *) | ||||
|                 useArray=false | ||||
|             ;; | ||||
|         esac; | ||||
|             return 1; | ||||
|         else | ||||
|             if [[ "$type" =~ "declare -a" ]]; then | ||||
|                 useArray=true; | ||||
|             else | ||||
|                 useArray=false; | ||||
|             fi; | ||||
|         fi; | ||||
|     fi; | ||||
|     shift; | ||||
|     if $useArray; then | ||||
|  | @ -798,8 +741,8 @@ buildPhase () | |||
|         echo "no Makefile or custom buildPhase, doing nothing"; | ||||
|     else | ||||
|         foundMakefile=1; | ||||
|         local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); | ||||
|         concatTo flagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; | ||||
|         local flagsArray=(${enableParallelBuilding:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); | ||||
|         _accumFlagsArray makeFlags makeFlagsArray buildFlags buildFlagsArray; | ||||
|         echoCmd 'build flags' "${flagsArray[@]}"; | ||||
|         make ${makefile:+-f $makefile} "${flagsArray[@]}"; | ||||
|         unset flagsArray; | ||||
|  | @ -829,18 +772,25 @@ checkPhase () | |||
|     fi; | ||||
|     if [[ -z "${checkTarget:-}" ]]; then | ||||
|         if make -n ${makefile:+-f $makefile} check > /dev/null 2>&1; then | ||||
|             checkTarget="check"; | ||||
|             checkTarget=check; | ||||
|         else | ||||
|             if make -n ${makefile:+-f $makefile} test > /dev/null 2>&1; then | ||||
|                 checkTarget="test"; | ||||
|                 checkTarget=test; | ||||
|             fi; | ||||
|         fi; | ||||
|     fi; | ||||
|     if [[ -z "${checkTarget:-}" ]]; then | ||||
|         echo "no check/test target in ${makefile:-Makefile}, doing nothing"; | ||||
|     else | ||||
|         local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); | ||||
|         concatTo flagsArray makeFlags makeFlagsArray checkFlags=VERBOSE=y checkFlagsArray checkTarget; | ||||
|         local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); | ||||
|         _accumFlagsArray makeFlags makeFlagsArray; | ||||
|         if [ -n "$__structuredAttrs" ]; then | ||||
|             flagsArray+=("${checkFlags[@]:-VERBOSE=y}"); | ||||
|         else | ||||
|             flagsArray+=(${checkFlags:-VERBOSE=y}); | ||||
|         fi; | ||||
|         _accumFlagsArray checkFlagsArray; | ||||
|         flagsArray+=(${checkTarget}); | ||||
|         echoCmd 'check flags' "${flagsArray[@]}"; | ||||
|         make ${makefile:+-f $makefile} "${flagsArray[@]}"; | ||||
|         unset flagsArray; | ||||
|  | @ -870,67 +820,6 @@ compressManPages () | |||
|         fi; | ||||
|     done | ||||
| } | ||||
| concatStringsSep () | ||||
| { | ||||
|   | ||||
|     local sep="$1"; | ||||
|     local name="$2"; | ||||
|     local type oldifs; | ||||
|     if type=$(declare -p "$name" 2> /dev/null); then | ||||
|         local -n nameref="$name"; | ||||
|         case "${type#* }" in  | ||||
|             -A*) | ||||
|                 echo "concatStringsSep(): ERROR: trying to use concatStringsSep on an associative array." 1>&2; | ||||
|                 return 1 | ||||
|             ;; | ||||
|             -a*) | ||||
|                 local IFS="$(printf '\036')" | ||||
|             ;; | ||||
|             *) | ||||
|                 local IFS=" " | ||||
|             ;; | ||||
|         esac; | ||||
|         local ifs_separated="${nameref[*]}"; | ||||
|         echo -n "${ifs_separated//"$IFS"/"$sep"}"; | ||||
|     fi | ||||
| } | ||||
| concatTo () | ||||
| { | ||||
|   | ||||
|     local -; | ||||
|     set -o noglob; | ||||
|     local -n targetref="$1"; | ||||
|     shift; | ||||
|     local arg default name type; | ||||
|     for arg in "$@"; | ||||
|     do | ||||
|         IFS="=" read -r name default <<< "$arg"; | ||||
|         local -n nameref="$name"; | ||||
|         if [[ -z "${nameref[*]}" && -n "$default" ]]; then | ||||
|             targetref+=("$default"); | ||||
|         else | ||||
|             if type=$(declare -p "$name" 2> /dev/null); then | ||||
|                 case "${type#* }" in  | ||||
|                     -A*) | ||||
|                         echo "concatTo(): ERROR: trying to use concatTo on an associative array." 1>&2; | ||||
|                         return 1 | ||||
|                     ;; | ||||
|                     -a*) | ||||
|                         targetref+=("${nameref[@]}") | ||||
|                     ;; | ||||
|                     *) | ||||
|                         if [[ "$name" = *"Array" ]]; then | ||||
|                             nixErrorLog "concatTo(): $name is not declared as array, treating as a singleton. This will become an error in future"; | ||||
|                             targetref+=(${nameref+"${nameref[@]}"}); | ||||
|                         else | ||||
|                             targetref+=(${nameref-}); | ||||
|                         fi | ||||
|                     ;; | ||||
|                 esac; | ||||
|             fi; | ||||
|         fi; | ||||
|     done | ||||
| } | ||||
| configurePhase () | ||||
| { | ||||
|   | ||||
|  | @ -964,13 +853,10 @@ configurePhase () | |||
|                 prependToVar configureFlags --disable-static; | ||||
|             fi; | ||||
|         fi; | ||||
|         if [ -z "${dontPatchShebangsInConfigure:-}" ]; then | ||||
|             patchShebangs --build "$configureScript"; | ||||
|         fi; | ||||
|     fi; | ||||
|     if [ -n "$configureScript" ]; then | ||||
|         local -a flagsArray; | ||||
|         concatTo flagsArray configureFlags configureFlagsArray; | ||||
|         _accumFlagsArray configureFlags configureFlagsArray; | ||||
|         echoCmd 'configure flags' "${flagsArray[@]}"; | ||||
|         $configureScript "${flagsArray[@]}"; | ||||
|         unset flagsArray; | ||||
|  | @ -992,7 +878,8 @@ distPhase () | |||
|   | ||||
|     runHook preDist; | ||||
|     local flagsArray=(); | ||||
|     concatTo flagsArray distFlags distFlagsArray distTarget=dist; | ||||
|     _accumFlagsArray distFlags distFlagsArray; | ||||
|     flagsArray+=(${distTarget:-dist}); | ||||
|     echo 'dist flags: %q' "${flagsArray[@]}"; | ||||
|     make ${makefile:+-f $makefile} "${flagsArray[@]}"; | ||||
|     if [ "${dontCopyDist:-0}" != 1 ]; then | ||||
|  | @ -1005,9 +892,7 @@ dumpVars () | |||
| { | ||||
|   | ||||
|     if [ "${noDumpEnvVars:-0}" != 1 ]; then | ||||
|         {  | ||||
|             install -m 0600 /dev/null "$NIX_BUILD_TOP/env-vars" && export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" | ||||
|         } || true; | ||||
|         export 2> /dev/null >| "$NIX_BUILD_TOP/env-vars" || true; | ||||
|     fi | ||||
| } | ||||
| echoCmd () | ||||
|  | @ -1056,7 +941,7 @@ findInputs () | |||
|     local var="${!varRef}"; | ||||
|     unset -v varVar varRef; | ||||
|     local varSlice="$var[*]"; | ||||
|     case " ${!varSlice-} " in  | ||||
|     case "${!varSlice-}" in  | ||||
|         *" $pkg "*) | ||||
|             return 0 | ||||
|         ;; | ||||
|  | @ -1125,7 +1010,7 @@ fixupPhase () | |||
|     for output in $(getAllOutputNames); | ||||
|     do | ||||
|         if [ -e "${!output}" ]; then | ||||
|             chmod -R u+w,u-s,g-s "${!output}"; | ||||
|             chmod -R u+w "${!output}"; | ||||
|         fi; | ||||
|     done; | ||||
|     runHook preFixup; | ||||
|  | @ -1151,9 +1036,9 @@ fixupPhase () | |||
|         done; | ||||
|         unset -v hook; | ||||
|     fi; | ||||
|     if [ -n "${propagatedUserEnvPkgs[*]:-}" ]; then | ||||
|     if [ -n "${propagatedUserEnvPkgs:-}" ]; then | ||||
|         mkdir -p "${!outputBin}/nix-support"; | ||||
|         printWords "${propagatedUserEnvPkgs[@]}" > "${!outputBin}/nix-support/propagated-user-env-packages"; | ||||
|         printWords $propagatedUserEnvPkgs > "${!outputBin}/nix-support/propagated-user-env-packages"; | ||||
|     fi; | ||||
|     runHook postFixup | ||||
| } | ||||
|  | @ -1210,7 +1095,7 @@ getRole () | |||
|             role_post='_FOR_TARGET' | ||||
|         ;; | ||||
|         *) | ||||
|             echo "binutils-wrapper-2.44: used as improper sort of dependency" 1>&2; | ||||
|             echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; | ||||
|             return 1 | ||||
|         ;; | ||||
|     esac | ||||
|  | @ -1239,7 +1124,7 @@ getTargetRoleWrapper () | |||
|             export NIX_BINTOOLS_WRAPPER_TARGET_TARGET_x86_64_unknown_linux_gnu=1 | ||||
|         ;; | ||||
|         *) | ||||
|             echo "binutils-wrapper-2.44: used as improper sort of dependency" 1>&2; | ||||
|             echo "binutils-wrapper-2.40: used as improper sort of dependency" 1>&2; | ||||
|             return 1 | ||||
|         ;; | ||||
|     esac | ||||
|  | @ -1254,8 +1139,9 @@ installCheckPhase () | |||
|         if [[ -z "${installCheckTarget:-}" ]] && ! make -n ${makefile:+-f $makefile} "${installCheckTarget:-installcheck}" > /dev/null 2>&1; then | ||||
|             echo "no installcheck target in ${makefile:-Makefile}, doing nothing"; | ||||
|         else | ||||
|             local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); | ||||
|             concatTo flagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray installCheckTarget=installcheck; | ||||
|             local flagsArray=(${enableParallelChecking:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); | ||||
|             _accumFlagsArray makeFlags makeFlagsArray installCheckFlags installCheckFlagsArray; | ||||
|             flagsArray+=(${installCheckTarget:-installcheck}); | ||||
|             echoCmd 'installcheck flags' "${flagsArray[@]}"; | ||||
|             make ${makefile:+-f $makefile} "${flagsArray[@]}"; | ||||
|             unset flagsArray; | ||||
|  | @ -1277,8 +1163,13 @@ installPhase () | |||
|     if [ -n "$prefix" ]; then | ||||
|         mkdir -p "$prefix"; | ||||
|     fi; | ||||
|     local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL="$SHELL"); | ||||
|     concatTo flagsArray makeFlags makeFlagsArray installFlags installFlagsArray installTargets=install; | ||||
|     local flagsArray=(${enableParallelInstalling:+-j${NIX_BUILD_CORES}} SHELL=$SHELL); | ||||
|     _accumFlagsArray makeFlags makeFlagsArray installFlags installFlagsArray; | ||||
|     if [ -n "$__structuredAttrs" ]; then | ||||
|         flagsArray+=("${installTargets[@]:-install}"); | ||||
|     else | ||||
|         flagsArray+=(${installTargets:-install}); | ||||
|     fi; | ||||
|     echoCmd 'install flags' "${flagsArray[@]}"; | ||||
|     make ${makefile:+-f $makefile} "${flagsArray[@]}"; | ||||
|     unset flagsArray; | ||||
|  | @ -1390,116 +1281,6 @@ moveToOutput () | |||
|         done; | ||||
|     done | ||||
| } | ||||
| nixChattyLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 5 "$*" | ||||
| } | ||||
| nixDebugLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 6 "$*" | ||||
| } | ||||
| nixErrorLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 0 "$*" | ||||
| } | ||||
| nixInfoLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 3 "$*" | ||||
| } | ||||
| nixLog () | ||||
| { | ||||
|   | ||||
|     [[ -z ${NIX_LOG_FD-} ]] && return 0; | ||||
|     local callerName="${FUNCNAME[1]}"; | ||||
|     if [[ $callerName == "_callImplicitHook" ]]; then | ||||
|         callerName="${hookName:?}"; | ||||
|     fi; | ||||
|     printf "%s: %s\n" "$callerName" "$*" >&"$NIX_LOG_FD" | ||||
| } | ||||
| nixNoticeLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 2 "$*" | ||||
| } | ||||
| nixTalkativeLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 4 "$*" | ||||
| } | ||||
| nixVomitLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 7 "$*" | ||||
| } | ||||
| nixWarnLog () | ||||
| { | ||||
|   | ||||
|     _nixLogWithLevel 1 "$*" | ||||
| } | ||||
| noBrokenSymlinks () | ||||
| { | ||||
|   | ||||
|     local -r output="${1:?}"; | ||||
|     local path; | ||||
|     local pathParent; | ||||
|     local symlinkTarget; | ||||
|     local -i numDanglingSymlinks=0; | ||||
|     local -i numReflexiveSymlinks=0; | ||||
|     local -i numUnreadableSymlinks=0; | ||||
|     if [[ ! -e $output ]]; then | ||||
|         nixWarnLog "skipping non-existent output $output"; | ||||
|         return 0; | ||||
|     fi; | ||||
|     nixInfoLog "running on $output"; | ||||
|     while IFS= read -r -d '' path; do | ||||
|         pathParent="$(dirname "$path")"; | ||||
|         if ! symlinkTarget="$(readlink "$path")"; then | ||||
|             nixErrorLog "the symlink $path is unreadable"; | ||||
|             numUnreadableSymlinks+=1; | ||||
|             continue; | ||||
|         fi; | ||||
|         if [[ $symlinkTarget == /* ]]; then | ||||
|             nixInfoLog "symlink $path points to absolute target $symlinkTarget"; | ||||
|         else | ||||
|             nixInfoLog "symlink $path points to relative target $symlinkTarget"; | ||||
|             symlinkTarget="$(realpath --no-symlinks --canonicalize-missing "$pathParent/$symlinkTarget")"; | ||||
|         fi; | ||||
|         if [[ $symlinkTarget != "$NIX_STORE"/* ]]; then | ||||
|             nixInfoLog "symlink $path points outside the Nix store; ignoring"; | ||||
|             continue; | ||||
|         fi; | ||||
|         if [[ $path == "$symlinkTarget" ]]; then | ||||
|             nixErrorLog "the symlink $path is reflexive"; | ||||
|             numReflexiveSymlinks+=1; | ||||
|         else | ||||
|             if [[ ! -e $symlinkTarget ]]; then | ||||
|                 nixErrorLog "the symlink $path points to a missing target: $symlinkTarget"; | ||||
|                 numDanglingSymlinks+=1; | ||||
|             else | ||||
|                 nixDebugLog "the symlink $path is irreflexive and points to a target which exists"; | ||||
|             fi; | ||||
|         fi; | ||||
|     done < <(find "$output" -type l -print0); | ||||
|     if ((numDanglingSymlinks > 0 || numReflexiveSymlinks > 0 || numUnreadableSymlinks > 0)); then | ||||
|         nixErrorLog "found $numDanglingSymlinks dangling symlinks, $numReflexiveSymlinks reflexive symlinks and $numUnreadableSymlinks unreadable symlinks"; | ||||
|         exit 1; | ||||
|     fi; | ||||
|     return 0 | ||||
| } | ||||
| noBrokenSymlinksInAllOutputs () | ||||
| { | ||||
|   | ||||
|     if [[ -z ${dontCheckForBrokenSymlinks-} ]]; then | ||||
|         for output in $(getAllOutputNames); | ||||
|         do | ||||
|             noBrokenSymlinks "${!output}"; | ||||
|         done; | ||||
|     fi | ||||
| } | ||||
| patchELF () | ||||
| { | ||||
|   | ||||
|  | @ -1523,9 +1304,11 @@ patchPhase () | |||
|   | ||||
|     runHook prePatch; | ||||
|     local -a patchesArray; | ||||
|     concatTo patchesArray patches; | ||||
|     local -a flagsArray; | ||||
|     concatTo flagsArray patchFlags=-p1; | ||||
|     if [ -n "$__structuredAttrs" ]; then | ||||
|         patchesArray=(${patches:+"${patches[@]}"}); | ||||
|     else | ||||
|         patchesArray=(${patches:-}); | ||||
|     fi; | ||||
|     for i in "${patchesArray[@]}"; | ||||
|     do | ||||
|         echo "applying patch $i"; | ||||
|  | @ -1544,6 +1327,12 @@ patchPhase () | |||
|                 uncompress="lzma -d" | ||||
|             ;; | ||||
|         esac; | ||||
|         local -a flagsArray; | ||||
|         if [ -n "$__structuredAttrs" ]; then | ||||
|             flagsArray=("${patchFlags[@]:--p1}"); | ||||
|         else | ||||
|             flagsArray=(${patchFlags:--p1}); | ||||
|         fi; | ||||
|         $uncompress < "$i" 2>&1 | patch "${flagsArray[@]}"; | ||||
|     done; | ||||
|     runHook postPatch | ||||
|  | @ -1552,7 +1341,7 @@ patchShebangs () | |||
| { | ||||
|   | ||||
|     local pathName; | ||||
|     local update=false; | ||||
|     local update; | ||||
|     while [[ $# -gt 0 ]]; do | ||||
|         case "$1" in  | ||||
|             --host) | ||||
|  | @ -1595,7 +1384,7 @@ patchShebangs () | |||
|     local f; | ||||
|     while IFS= read -r -d '' f; do | ||||
|         isScript "$f" || continue; | ||||
|         read -r oldInterpreterLine < "$f" || [ "$oldInterpreterLine" ]; | ||||
|         read -r oldInterpreterLine < "$f"; | ||||
|         read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"; | ||||
|         if [[ -z "${pathName:-}" ]]; then | ||||
|             if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then | ||||
|  | @ -1607,22 +1396,22 @@ patchShebangs () | |||
|         if [[ "$oldPath" == *"/bin/env" ]]; then | ||||
|             if [[ $arg0 == "-S" ]]; then | ||||
|                 arg0=${args%% *}; | ||||
|                 [[ "$args" == *" "* ]] && args=${args#* } || args=; | ||||
|                 newPath="$(PATH="${!pathName}" type -P "env" || true)"; | ||||
|                 args="-S $(PATH="${!pathName}" type -P "$arg0" || true) $args"; | ||||
|                 args=${args#* }; | ||||
|                 newPath="$(PATH="${!pathName}" command -v "env" || true)"; | ||||
|                 args="-S $(PATH="${!pathName}" command -v "$arg0" || true) $args"; | ||||
|             else | ||||
|                 if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then | ||||
|                     echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" 1>&2; | ||||
|                     exit 1; | ||||
|                 else | ||||
|                     newPath="$(PATH="${!pathName}" type -P "$arg0" || true)"; | ||||
|                     newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"; | ||||
|                 fi; | ||||
|             fi; | ||||
|         else | ||||
|             if [[ -z $oldPath ]]; then | ||||
|                 oldPath="/bin/sh"; | ||||
|             fi; | ||||
|             newPath="$(PATH="${!pathName}" type -P "$(basename "$oldPath")" || true)"; | ||||
|             newPath="$(PATH="${!pathName}" command -v "$(basename "$oldPath")" || true)"; | ||||
|             args="$arg0 $args"; | ||||
|         fi; | ||||
|         newInterpreterLine="$newPath $args"; | ||||
|  | @ -1659,19 +1448,18 @@ prependToVar () | |||
|     else | ||||
|         useArray=false; | ||||
|     fi; | ||||
|     if type=$(declare -p "$1" 2> /dev/null); then | ||||
|         case "${type#* }" in  | ||||
|             -A*) | ||||
|     if declare -p "$1" 2> /dev/null | grep -q '^'; then | ||||
|         type="$(declare -p "$1")"; | ||||
|         if [[ "$type" =~ "declare -A" ]]; then | ||||
|             echo "prependToVar(): ERROR: trying to use prependToVar on an associative array." 1>&2; | ||||
|                 return 1 | ||||
|             ;; | ||||
|             -a*) | ||||
|                 useArray=true | ||||
|             ;; | ||||
|             *) | ||||
|                 useArray=false | ||||
|             ;; | ||||
|         esac; | ||||
|             return 1; | ||||
|         else | ||||
|             if [[ "$type" =~ "declare -a" ]]; then | ||||
|                 useArray=true; | ||||
|             else | ||||
|                 useArray=false; | ||||
|             fi; | ||||
|         fi; | ||||
|     fi; | ||||
|     shift; | ||||
|     if $useArray; then | ||||
|  | @ -1716,7 +1504,6 @@ runHook () | |||
|     local hook; | ||||
|     for hook in "_callImplicitHook 0 $hookName" ${!hooksSlice+"${!hooksSlice}"}; | ||||
|     do | ||||
|         _logHook "$hookName" "$hook" "$@"; | ||||
|         _eval "$hook" "$@"; | ||||
|     done; | ||||
|     return 0 | ||||
|  | @ -1730,7 +1517,6 @@ runOneHook () | |||
|     local hook ret=1; | ||||
|     for hook in "_callImplicitHook 1 $hookName" ${!hooksSlice+"${!hooksSlice}"}; | ||||
|     do | ||||
|         _logHook "$hookName" "$hook" "$@"; | ||||
|         if _eval "$hook" "$@"; then | ||||
|             ret=0; | ||||
|             break; | ||||
|  | @ -1769,16 +1555,18 @@ runPhase () | |||
|     if [[ "$curPhase" = distPhase && -z "${doDist:-}" ]]; then | ||||
|         return; | ||||
|     fi; | ||||
|     if [[ -n $NIX_LOG_FD ]]; then | ||||
|         echo "@nix { \"action\": \"setPhase\", \"phase\": \"$curPhase\" }" >&"$NIX_LOG_FD"; | ||||
|     fi; | ||||
|     showPhaseHeader "$curPhase"; | ||||
|     dumpVars; | ||||
|     local startTime endTime; | ||||
|     startTime=$(date +"%s"); | ||||
|     local startTime=$(date +"%s"); | ||||
|     eval "${!curPhase:-$curPhase}"; | ||||
|     endTime=$(date +"%s"); | ||||
|     local endTime=$(date +"%s"); | ||||
|     showPhaseFooter "$curPhase" "$startTime" "$endTime"; | ||||
|     if [ "$curPhase" = unpackPhase ]; then | ||||
|         [ -n "${sourceRoot:-}" ] && chmod +x -- "${sourceRoot}"; | ||||
|         cd -- "${sourceRoot:-.}"; | ||||
|         [ -n "${sourceRoot:-}" ] && chmod +x "${sourceRoot}"; | ||||
|         cd "${sourceRoot:-.}"; | ||||
|     fi | ||||
| } | ||||
| showPhaseFooter () | ||||
|  | @ -1801,11 +1589,7 @@ showPhaseHeader () | |||
| { | ||||
|   | ||||
|     local phase="$1"; | ||||
|     echo "Running phase: $phase"; | ||||
|     if [[ -z ${NIX_LOG_FD-} ]]; then | ||||
|         return; | ||||
|     fi; | ||||
|     printf "@nix { \"action\": \"setPhase\", \"phase\": \"%s\" }\n" "$phase" >&"$NIX_LOG_FD" | ||||
|     echo "Running phase: $phase" | ||||
| } | ||||
| stripDirs () | ||||
| { | ||||
|  | @ -1837,7 +1621,7 @@ stripDirs () | |||
|         echo "stripping (with command $cmd and flags $stripFlags) in $paths"; | ||||
|         local striperr; | ||||
|         striperr="$(mktemp --tmpdir="$TMPDIR" 'striperr.XXXXXX')"; | ||||
|         find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -printf '%D-%i,%p\0' | sort -t, -k1,1 -u -z | cut -d, -f2- -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?; | ||||
|         find $paths -type f "${excludeFlags[@]}" -a '!' -path "$prefix/lib/debug/*" -print0 | xargs -r -0 -n1 -- realpath -z | sort -u -z | xargs -r -0 -n1 -P "$NIX_BUILD_CORES" -- $cmd $stripFlags 2> "$striperr" || exit_code=$?; | ||||
|         [[ "$exit_code" = 123 || -z "$exit_code" ]] || ( cat "$striperr" 1>&2 && exit 1 ); | ||||
|         rm "$striperr"; | ||||
|         find $paths -name '*.a' -type f -exec $ranlibCmd '{}' \; 2> /dev/null; | ||||
|  | @ -1911,10 +1695,6 @@ substituteInPlace () | |||
|         fileNames+=("$arg"); | ||||
|         shift; | ||||
|     done; | ||||
|     if ! [[ "${#fileNames[@]}" -gt 0 ]]; then | ||||
|         echo "substituteInPlace called without any files to operate on (files must come before options!)" 1>&2; | ||||
|         return 1; | ||||
|     fi; | ||||
|     for file in "${fileNames[@]}"; | ||||
|     do | ||||
|         substitute "$file" "$file" "$@"; | ||||
|  | @ -1927,40 +1707,29 @@ substituteStream () | |||
|     local description=$2; | ||||
|     shift 2; | ||||
|     while (( "$#" )); do | ||||
|         local replace_mode="$1"; | ||||
|         case "$1" in  | ||||
|             --replace) | ||||
|                 if ! "$_substituteStream_has_warned_replace_deprecation"; then | ||||
|                     echo "substituteStream() in derivation $name: WARNING: '--replace' is deprecated, use --replace-{fail,warn,quiet}. ($description)" 1>&2; | ||||
|                     _substituteStream_has_warned_replace_deprecation=true; | ||||
|                 fi; | ||||
|                 replace_mode='--replace-warn' | ||||
|             ;& | ||||
|             --replace-quiet | --replace-warn | --replace-fail) | ||||
|                 pattern="$2"; | ||||
|                 replacement="$3"; | ||||
|                 shift 3; | ||||
|                 if ! [[ "${!var}" == *"$pattern"* ]]; then | ||||
|                     if [ "$replace_mode" == --replace-warn ]; then | ||||
|                         printf "substituteStream() in derivation $name: WARNING: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; | ||||
|                     else | ||||
|                         if [ "$replace_mode" == --replace-fail ]; then | ||||
|                             printf "substituteStream() in derivation $name: ERROR: pattern %q doesn't match anything in %s\n" "$pattern" "$description" 1>&2; | ||||
|                             return 1; | ||||
|                 local savedvar; | ||||
|                 savedvar="${!var}"; | ||||
|                 eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}'; | ||||
|                 if [ "$pattern" != "$replacement" ]; then | ||||
|                     if [ "${!var}" == "$savedvar" ]; then | ||||
|                         echo "substituteStream(): WARNING: pattern '$pattern' doesn't match anything in $description" 1>&2; | ||||
|                     fi; | ||||
|                     fi; | ||||
|                 fi; | ||||
|                 eval "$var"'=${'"$var"'//"$pattern"/"$replacement"}' | ||||
|                 fi | ||||
|             ;; | ||||
|             --subst-var) | ||||
|                 local varName="$2"; | ||||
|                 shift 2; | ||||
|                 if ! [[ "$varName" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then | ||||
|                     echo "substituteStream() in derivation $name: ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; | ||||
|                     echo "substituteStream(): ERROR: substitution variables must be valid Bash names, \"$varName\" isn't." 1>&2; | ||||
|                     return 1; | ||||
|                 fi; | ||||
|                 if [ -z ${!varName+x} ]; then | ||||
|                     echo "substituteStream() in derivation $name: ERROR: variable \$$varName is unset" 1>&2; | ||||
|                     echo "substituteStream(): ERROR: variable \$$varName is unset" 1>&2; | ||||
|                     return 1; | ||||
|                 fi; | ||||
|                 pattern="@$varName@"; | ||||
|  | @ -1974,7 +1743,7 @@ substituteStream () | |||
|                 shift 3 | ||||
|             ;; | ||||
|             *) | ||||
|                 echo "substituteStream() in derivation $name: ERROR: Invalid command line argument: $1" 1>&2; | ||||
|                 echo "substituteStream(): ERROR: Invalid command line argument: $1" 1>&2; | ||||
|                 return 1 | ||||
|             ;; | ||||
|         esac; | ||||
|  | @ -2003,7 +1772,11 @@ unpackPhase () | |||
|         srcs="$src"; | ||||
|     fi; | ||||
|     local -a srcsArray; | ||||
|     concatTo srcsArray srcs; | ||||
|     if [ -n "$__structuredAttrs" ]; then | ||||
|         srcsArray=("${srcs[@]}"); | ||||
|     else | ||||
|         srcsArray=($srcs); | ||||
|     fi; | ||||
|     local dirsBefore=""; | ||||
|     for i in *; | ||||
|     do | ||||
|  | @ -2060,7 +1833,7 @@ updateAutotoolsGnuConfigScriptsPhase () | |||
|         for f in $(find . -type f -name "$script"); | ||||
|         do | ||||
|             echo "Updating Autotools / GNU config script to a newer upstream version: $f"; | ||||
|             cp -f "/nix/store/khmqxw6b9q7rgkv6hf3gcqf2igk03z1g-gnu-config-2024-01-01/$script" "$f"; | ||||
|             cp -f "/nix/store/7lk76vdawbx478qq9lvi3mgf73rvcyhd-gnu-config-2023-09-19/$script" "$f"; | ||||
|         done; | ||||
|     done | ||||
| } | ||||
|  | @ -2068,8 +1841,7 @@ updateSourceDateEpoch () | |||
| { | ||||
|   | ||||
|     local path="$1"; | ||||
|     [[ $path == -* ]] && path="./$path"; | ||||
|     local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ "%p"\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); | ||||
|     local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated | head -c -1)); | ||||
|     local time="${res[0]//\.[0-9]*/}"; | ||||
|     local newestFile="${res[1]}"; | ||||
|     if [ "${time:-0}" -gt "$SOURCE_DATE_EPOCH" ]; then | ||||
|  | @ -2088,4 +1860,4 @@ export TMP="$NIX_BUILD_TOP" | |||
| export TMPDIR="$NIX_BUILD_TOP" | ||||
| export TEMP="$NIX_BUILD_TOP" | ||||
| export TEMPDIR="$NIX_BUILD_TOP" | ||||
| eval "${shellHook:-}" | ||||
| eval "$shellHook" | ||||
|  |  | |||
							
								
								
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -1,4 +1 @@ | |||
| .direnv/ | ||||
| .direnv/** | ||||
| .worktrees/** | ||||
| .envrc | ||||
|  |  | |||
|  | @ -40,8 +40,7 @@ D('sealight.xyz', REG_NONE, DnsProvider(DNS_HEDNS), | |||
| 	A('bin', '69.61.2.203', TTL(300)), | ||||
| 	A('ci', '69.61.2.203', TTL(300)), | ||||
| 	A('write', '69.61.2.203', TTL(300)), | ||||
| 	A('photos', '69.61.2.203', TTL(300)), | ||||
| 	// vultr: lituus
 | ||||
| 	// vultr -> nulled: lituus
 | ||||
| 	A('@', '45.77.48.108', TTL(300)), | ||||
| 	A('jitsi', '45.77.48.108', TTL(300)), | ||||
| 	A('chat', '45.77.48.108', TTL(300)), | ||||
|  |  | |||
							
								
								
									
										937
									
								
								flake.lock
									
									
									
									
									
								
							
							
						
						
									
										937
									
								
								flake.lock
									
									
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										223
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								flake.nix
									
									
									
									
									
								
							|  | @ -3,7 +3,7 @@ | |||
| 
 | ||||
|   inputs = { | ||||
|     # Nixpkgs | ||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; | ||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; | ||||
|     unstable.url = "github:nixos/nixpkgs/nixos-unstable"; | ||||
|     nixos-hardware.url = "github:NixOS/nixos-hardware/master"; | ||||
| 
 | ||||
|  | @ -11,7 +11,7 @@ | |||
|     # ngipkgs-local.url = "path:/home/anish/usr/ngipkgs"; | ||||
| 
 | ||||
|     # Home manager | ||||
|     home-manager.url = "github:nix-community/home-manager/release-25.05"; | ||||
|     home-manager.url = "github:nix-community/home-manager/release-24.05"; | ||||
|     home-manager.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     hardware.url = "github:nixos/nixos-hardware"; | ||||
| 
 | ||||
|  | @ -27,8 +27,7 @@ | |||
|     poonam.url = "git+ssh://gitea@git.sealight.xyz/aynish/kitaab?ref=main"; | ||||
|     poonam.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     basant.url = "git+ssh://gitea@git.sealight.xyz/aynish/basant?ref=main"; | ||||
|     vimwikicli.url = | ||||
|       "git+ssh://gitea@git.sealight.xyz/aynish/vimwiki-cli?ref=main"; | ||||
|     vimwikicli.url = "git+ssh://gitea@git.sealight.xyz/aynish/vimwiki-cli?ref=main"; | ||||
|     basant.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     basant.inputs.poonam.follows = "poonam"; | ||||
|     vimwikicli.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|  | @ -38,39 +37,6 @@ | |||
|     # Matrix | ||||
|     nix-matrix-appservices.url = "gitlab:coffeetables/nix-matrix-appservices"; | ||||
| 
 | ||||
|     # Darwin | ||||
|     darwin = { | ||||
|       url = "github:LnL7/nix-darwin/nix-darwin-25.05"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|     nix-homebrew = { | ||||
|       url = "github:zhaofengli-wip/nix-homebrew"; | ||||
|     }; | ||||
|     homebrew-bundle = { | ||||
|       url = "github:homebrew/homebrew-bundle"; | ||||
|       flake = false; | ||||
|     }; | ||||
|     homebrew-core = { | ||||
|       url = "github:homebrew/homebrew-core"; | ||||
|       flake = false; | ||||
|     }; | ||||
|     homebrew-cask = { | ||||
|       url = "github:homebrew/homebrew-cask"; | ||||
|       flake = false; | ||||
|     }; | ||||
| 
 | ||||
|     # Steam Deck / Gaming | ||||
|     jovian = { | ||||
|       url = "github:Jovian-Experiments/Jovian-NixOS"; | ||||
|       inputs.nixpkgs.follows = "unstable"; | ||||
|     }; | ||||
| 
 | ||||
|     # Tangled (atproto tools) | ||||
|     tangled = { | ||||
|       url = "git+https://tangled.org/@tangled.org/core"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
| 
 | ||||
|     # Others | ||||
|     nur.url = "github:nix-community/NUR"; | ||||
|     rust-overlay = { | ||||
|  | @ -79,10 +45,6 @@ | |||
|     }; | ||||
|     tidalcycles.url = "github:mitchmindtree/tidalcycles.nix"; | ||||
|     tidalcycles.inputs.nixpkgs.follows = "unstable"; | ||||
|     autohide-tdrop = { | ||||
|       url = "github:I-Want-ToBelieve/autohide-tdrop"; | ||||
|       inputs.nixpkgs.follows = "nixpkgs"; | ||||
|     }; | ||||
|     # TODO hundred rabbits software | ||||
|     # TODO needs secrets | ||||
|     # dhyan.url = "git+ssh://gitea@git.sealight.xyz/aynish/dhyan?ref=main"; | ||||
|  | @ -92,10 +54,24 @@ | |||
|     # muneem.inputs.nixpkgs.follows = "nixpkgs"; | ||||
|   }; | ||||
| 
 | ||||
|   outputs = { self, nixpkgs, unstable, nixos-hardware, home-manager, deploy-rs | ||||
|     , agenix, disko, basant, grasp, nix-matrix-appservices, nur, tidalcycles | ||||
|     , rust-overlay, vimwikicli, autohide-tdrop, darwin, nix-homebrew, homebrew-bundle | ||||
|     , homebrew-core, homebrew-cask, jovian, tangled, ... }@inputs: | ||||
|   outputs = | ||||
|     { self | ||||
|     , nixpkgs | ||||
|     , unstable | ||||
|     , nixos-hardware | ||||
|     , home-manager | ||||
|     , deploy-rs | ||||
|     , agenix | ||||
|     , disko | ||||
|     , basant | ||||
|     , grasp | ||||
|     , nix-matrix-appservices | ||||
|     , nur | ||||
|     , tidalcycles | ||||
|     , rust-overlay | ||||
|     , vimwikicli | ||||
|     , ... | ||||
|     }@inputs: | ||||
|     let | ||||
|       forAllSystems = nixpkgs.lib.genAttrs [ | ||||
|         "aarch64-linux" | ||||
|  | @ -111,31 +87,26 @@ | |||
|       }; | ||||
|       vimwikiOverlay = final: prev: { | ||||
|         vimwiki-cli = vimwikicli.packages.${prev.system}.vimwiki-cli; | ||||
|         autohide-tdrop = autohide-tdrop.packages.${prev.system}.default; | ||||
|       }; | ||||
| 
 | ||||
|       nixpkgsFor = forAllSystems (system: | ||||
|         import nixpkgs { | ||||
|       nixpkgsFor = forAllSystems (system: import nixpkgs { | ||||
|         inherit system; | ||||
|           config = { | ||||
|             permittedInsecurePackages = [ | ||||
|               "olm-3.2.16"  | ||||
|             ]; | ||||
|             allowUnfreePredicate = pkg: | ||||
|               builtins.elem (nixpkgs.lib.getName pkg) [ | ||||
|         config.allowUnfreePredicate = pkg: builtins.elem (nixpkgs.lib.getName pkg) [ | ||||
|           "ripcord" | ||||
|           "vcv-rack" | ||||
|           "SunVox" | ||||
|           "renoise" | ||||
|                 "bitwig-studio-unwrapped" | ||||
|         ]; | ||||
|           }; | ||||
|         # config.permittedInsecurePackages = [ | ||||
|         #   "python3.10-django-3.1.14" # Needed for archivebox deployments on curve | ||||
|         #   # Check when archive box updates it's dependeny | ||||
|         # ]; | ||||
|         overlays = [ | ||||
|           rust-overlay.overlays.default | ||||
|           tidalcycles.overlays.default | ||||
|           agenix.overlays.default | ||||
|           nur.overlay | ||||
|             # nix-matrix-appservices.overlay # nixpkgs has these packages and newer ones at that | ||||
|           nix-matrix-appservices.overlay | ||||
|           unstableOverlay | ||||
|           vimwikiOverlay | ||||
|           self.overlays.additions | ||||
|  | @ -144,8 +115,7 @@ | |||
|       }); | ||||
| 
 | ||||
|       # for when space matters | ||||
|       litePkgsFor = forAllSystems (system: | ||||
|         import nixpkgs { | ||||
|       litePkgsFor = forAllSystems (system: import nixpkgs { | ||||
|         inherit system; | ||||
|         # config.permittedInsecurePackages = [ | ||||
|         #   "forgejo-1.19.4-0" # Needed for archivebox deployments on curve | ||||
|  | @ -153,82 +123,25 @@ | |||
|         # ]; | ||||
|         overlays = [ | ||||
|           agenix.overlays.default | ||||
|             tangled.overlays.default # atproto tools only on lite deployments | ||||
|           self.overlays.additions | ||||
|           self.overlays.modifications | ||||
|           tidalcycles.overlays.default # needed for nvim which comes pre-installed lol | ||||
|         ]; | ||||
|       }); | ||||
| 
 | ||||
|       # Package set for Darwin systems   | ||||
|       darwinPkgsFor = forAllSystems (system: | ||||
|         import nixpkgs { | ||||
|           inherit system; | ||||
|           config = { | ||||
|             permittedInsecurePackages = [ | ||||
|               "olm-3.2.16"  | ||||
|             ]; | ||||
|             allowUnfreePredicate = pkg: | ||||
|               builtins.elem (nixpkgs.lib.getName pkg) [ | ||||
|                 "ripcord" | ||||
|                 "vcv-rack" | ||||
|                 "SunVox" | ||||
|                 "renoise" | ||||
|               ]; | ||||
|           }; | ||||
|           overlays = [ | ||||
|             rust-overlay.overlays.default | ||||
|             tidalcycles.overlays.default | ||||
|             agenix.overlays.default | ||||
|             nur.overlay | ||||
|             unstableOverlay | ||||
|             vimwikiOverlay | ||||
|             self.overlays.additions | ||||
|             self.overlays.modifications | ||||
|           ]; | ||||
|         }); | ||||
| 
 | ||||
|       # Package set for Steam Deck (gaming-focused) | ||||
|       deckPkgsFor = forAllSystems (system: | ||||
|         import unstable { | ||||
|           inherit system; | ||||
|           config = { | ||||
|             permittedInsecurePackages = [ | ||||
|               "olm-3.2.16"  | ||||
|             ]; | ||||
|             allowUnfreePredicate = pkg: | ||||
|               builtins.elem (nixpkgs.lib.getName pkg) [ | ||||
|                 "ripcord" | ||||
|                 "vcv-rack" | ||||
|                 "SunVox" | ||||
|                 "renoise" | ||||
|                 "steam" | ||||
|                 "steam-original" | ||||
|                 "steam-runtime" | ||||
|               ]; | ||||
|           }; | ||||
|           overlays = [ | ||||
|             rust-overlay.overlays.default | ||||
|             tidalcycles.overlays.default | ||||
|             agenix.overlays.default | ||||
|             nur.overlay | ||||
|             unstableOverlay | ||||
|             vimwikiOverlay | ||||
|             self.overlays.additions | ||||
|             self.overlays.modifications | ||||
|           ]; | ||||
|         }); | ||||
|     in { | ||||
|     in | ||||
|     { | ||||
|       # Your custom packages | ||||
|       # Acessible through 'nix build', 'nix shell', etc | ||||
|       packages = forAllSystems (system: | ||||
|         let pkgs = nixpkgsFor.${system}; | ||||
|         in import ./pkgs { pkgs = pkgs; }); | ||||
|         in import ./pkgs { pkgs = pkgs; } | ||||
|       ); | ||||
|       # Devshell for bootstrapping | ||||
|       # Acessible through 'nix develop' or 'nix-shell' (legacy) | ||||
|       devShells = forAllSystems (system: | ||||
|         let pkgs = nixpkgsFor.${system}; | ||||
|         in import ./shell.nix { pkgs = pkgs; }); | ||||
|         in import ./shell.nix { pkgs = pkgs; } | ||||
|       ); | ||||
| 
 | ||||
|       # Your custom packages and modifications, exported as overlays | ||||
|       overlays = import ./overlays; | ||||
|  | @ -320,49 +233,7 @@ | |||
|               nix.registry.nixpkgs.flake = nixpkgs; | ||||
|               home-manager.useGlobalPkgs = true; | ||||
|               home-manager.useUserPackages = true; | ||||
|               home-manager.users.anish = import ./home/dev; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
| 
 | ||||
|         deck = unstable.lib.nixosSystem rec { | ||||
|           specialArgs = { inherit inputs self; }; | ||||
|           system = "x86_64-linux"; | ||||
|           pkgs = deckPkgsFor.${system}; | ||||
|           modules = [ | ||||
|             ./hosts/deck | ||||
|             jovian.nixosModules.default | ||||
|             self.nixosModules.wireguard | ||||
|             agenix.nixosModules.age | ||||
|             self.nixosModules.backup | ||||
|             home-manager.nixosModules.home-manager | ||||
|             { | ||||
|               nix.registry.nixpkgs.flake = unstable; | ||||
|               home-manager.useGlobalPkgs = true; | ||||
|               home-manager.useUserPackages = true; | ||||
|               home-manager.users.anish = import ./home/gui; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|       # Darwin configuration entrypoint   | ||||
|       darwinConfigurations = { | ||||
|         "Anishs-MacBook-Pro" = darwin.lib.darwinSystem rec { | ||||
|           system = "aarch64-darwin"; | ||||
|           pkgs = darwinPkgsFor.${system}; | ||||
|           specialArgs = { inherit inputs self; }; | ||||
|           modules = [ | ||||
|             ./hosts/darwin | ||||
|             home-manager.darwinModules.home-manager | ||||
|             agenix.darwinModules.default | ||||
|             { | ||||
|               users.users.anishlakhwara.home = "/Users/anishlakhwara"; | ||||
|               home-manager = { | ||||
|                 users.anishlakhwara = import ./home/darwin; | ||||
|                 useGlobalPkgs = true; | ||||
|                 useUserPackages = true; | ||||
|               }; | ||||
|               home-manager.users.anish = import ./home/core; | ||||
|             } | ||||
|           ]; | ||||
|         }; | ||||
|  | @ -372,10 +243,12 @@ | |||
|       # Available through 'home-manager --flake .#your-username@your-hostname' | ||||
|       homeConfigurations = { | ||||
|         "anish@work" = home-manager.lib.homeManagerConfiguration { | ||||
|           pkgs = | ||||
|             nixpkgsFor."x86_64-linux"; # Home-manager requires 'pkgs' instance | ||||
|           pkgs = nixpkgsFor."x86_64-linux"; # Home-manager requires 'pkgs' instance | ||||
|           extraSpecialArgs = { inherit inputs; }; | ||||
|           modules = [ ./home/core.nix ./home/profiles/firefox ]; | ||||
|           modules = [ | ||||
|             ./home/core.nix | ||||
|             ./home/profiles/firefox | ||||
|           ]; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|  | @ -387,17 +260,15 @@ | |||
|           remoteBuild = true; | ||||
|           profiles.system = { | ||||
|             user = "root"; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos | ||||
|               self.nixosConfigurations.box; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.box; | ||||
|           }; | ||||
|         }; | ||||
|         lituus = { | ||||
|           hostname = "sealight.xyz"; | ||||
|           autoRollback = false; | ||||
|           # autoRollback = false; | ||||
|           profiles.system = { | ||||
|             user = "root"; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos | ||||
|               self.nixosConfigurations.lituus; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.lituus; | ||||
|           }; | ||||
|         }; | ||||
|         helix = { | ||||
|  | @ -406,13 +277,11 @@ | |||
|           magicRollback = false; | ||||
|           profiles.system = { | ||||
|             user = "root"; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos | ||||
|               self.nixosConfigurations.helix; | ||||
|             path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.helix; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
| 
 | ||||
|      # checks = builtins.mapAttrs | ||||
|      #   (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; | ||||
|       checks = builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) deploy-rs.lib; | ||||
|     }; | ||||
| } | ||||
|  |  | |||
|  | @ -4,7 +4,6 @@ | |||
|     ../profiles/cli | ||||
|     ../profiles/direnv | ||||
|     ../profiles/git | ||||
|     ../profiles/tmux | ||||
|   ]; | ||||
|   home.stateVersion = "22.05"; | ||||
| } | ||||
|  |  | |||
|  | @ -1,156 +0,0 @@ | |||
| # You can use it to add commands that run after login to macOS user session. | ||||
| # 'start-at-login' needs to be 'true' for 'after-login-command' to work | ||||
| # Available commands: https://nikitabobko.github.io/AeroSpace/commands | ||||
| after-login-command = [] | ||||
| 
 | ||||
| # You can use it to add commands that run after AeroSpace startup. | ||||
| # 'after-startup-command' is run after 'after-login-command' | ||||
| # Available commands : https://nikitabobko.github.io/AeroSpace/commands | ||||
| after-startup-command = [] | ||||
| 
 | ||||
| # Start AeroSpace at login | ||||
| start-at-login = true | ||||
| 
 | ||||
| # Normalizations. See: https://nikitabobko.github.io/AeroSpace/guide#normalization | ||||
| enable-normalization-flatten-containers = true | ||||
| enable-normalization-opposite-orientation-for-nested-containers = true | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/guide#layouts | ||||
| # The 'accordion-padding' specifies the size of accordion padding | ||||
| # You can set 0 to disable the padding feature | ||||
| accordion-padding = 10  | ||||
| 
 | ||||
| # Possible values: tiles|accordion | ||||
| default-root-container-layout = 'tiles' | ||||
| 
 | ||||
| # Possible values: horizontal|vertical|auto | ||||
| # 'auto' means: wide monitor (anything wider than high) gets horizontal orientation, | ||||
| #               tall monitor (anything higher than wide) gets vertical orientation | ||||
| default-root-container-orientation = 'auto' | ||||
| 
 | ||||
| # Mouse follows focus when focused monitor changes | ||||
| # Drop it from your config, if you don't like this behavior | ||||
| # See https://nikitabobko.github.io/AeroSpace/guide#on-focus-changed-callbacks | ||||
| # See https://nikitabobko.github.io/AeroSpace/commands#move-mouse | ||||
| # Fallback value (if you omit the key): on-focused-monitor-changed = [] | ||||
| on-focused-monitor-changed = ['move-mouse monitor-lazy-center'] | ||||
| 
 | ||||
| # You can effectively turn off macOS "Hide application" (cmd-h) feature by toggling this flag | ||||
| # Useful if you don't use this macOS feature, but accidentally hit cmd-h or cmd-alt-h key | ||||
| # Also see: https://nikitabobko.github.io/AeroSpace/goodies#disable-hide-app | ||||
| automatically-unhide-macos-hidden-apps = true | ||||
| 
 | ||||
| # Possible values: (qwerty|dvorak) | ||||
| # See https://nikitabobko.github.io/AeroSpace/guide#key-mapping | ||||
| [key-mapping] | ||||
| preset = 'dvorak' | ||||
| 
 | ||||
| # Gaps between windows (inner-*) and between monitor edges (outer-*). | ||||
| # Possible values: | ||||
| # - Constant:     gaps.outer.top = 8 | ||||
| # - Per monitor:  gaps.outer.top = [{ monitor.main = 16 }, { monitor."some-pattern" = 32 }, 24] | ||||
| #                 In this example, 24 is a default value when there is no match. | ||||
| #                 Monitor pattern is the same as for 'workspace-to-monitor-force-assignment'. | ||||
| #                 See: https://nikitabobko.github.io/AeroSpace/guide#assign-workspaces-to-monitors | ||||
| [gaps] | ||||
| inner.horizontal = 0 | ||||
| inner.vertical =   0 | ||||
| outer.left =       0 | ||||
| outer.bottom =     0 | ||||
| outer.top =        0 | ||||
| outer.right =      0 | ||||
| 
 | ||||
| # 'main' binding mode declaration | ||||
| # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes | ||||
| # 'main' binding mode must be always presented | ||||
| # Fallback value (if you omit the key): mode.main.binding = {} | ||||
| [mode.main.binding] | ||||
| 
 | ||||
| # All possible keys: | ||||
| # - Letters.        a, b, c, ..., z | ||||
| # - Numbers.        0, 1, 2, ..., 9 | ||||
| # - Keypad numbers. keypad0, keypad1, keypad2, ..., keypad9 | ||||
| # - F-keys.         f1, f2, ..., f20 | ||||
| # - Special keys.   minus, equal, period, comma, slash, backslash, quote, semicolon, backtick, | ||||
| #                   leftSquareBracket, rightSquareBracket, space, enter, esc, backspace, tab | ||||
| # - Keypad special. keypadClear, keypadDecimalMark, keypadDivide, keypadEnter, keypadEqual, | ||||
| #                   keypadMinus, keypadMultiply, keypadPlus | ||||
| # - Arrows.         left, down, up, right | ||||
| 
 | ||||
| # All possible modifiers: cmd, alt, ctrl, shift | ||||
| 
 | ||||
| # All possible commands: https://nikitabobko.github.io/AeroSpace/commands | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#exec-and-forget | ||||
| # You can uncomment the following lines to open up terminal with alt + enter shortcut (like in i3) | ||||
| alt-enter = 'exec-and-forget open -n /System/Applications/Utilities/Kitty.app' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#layout | ||||
| alt-slash = 'layout tiles horizontal vertical' | ||||
| alt-comma = 'layout accordion horizontal vertical' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#focus | ||||
| # alt-h = 'focus left' | ||||
| # alt-j = 'focus down' | ||||
| # alt-k = 'focus up' | ||||
| # alt-l = 'focus right' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#move | ||||
| alt-shift-h = 'move left' | ||||
| alt-shift-j = 'move down' | ||||
| alt-shift-k = 'move up' | ||||
| alt-shift-l = 'move right' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#resize | ||||
| alt-shift-minus = 'resize smart -50' | ||||
| alt-shift-equal = 'resize smart +50' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#workspace | ||||
| alt-1 = 'workspace 1' | ||||
| alt-2 = 'workspace 2' | ||||
| alt-3 = 'workspace 3' | ||||
| alt-4 = 'workspace 4' | ||||
| alt-5 = 'workspace 5' | ||||
| alt-6 = 'workspace 6' | ||||
| alt-7 = 'workspace 7' | ||||
| alt-8 = 'workspace 8' | ||||
| alt-9 = 'workspace 9' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#move-node-to-workspace | ||||
| alt-shift-1 = 'move-node-to-workspace 1' | ||||
| alt-shift-2 = 'move-node-to-workspace 2' | ||||
| alt-shift-3 = 'move-node-to-workspace 3' | ||||
| alt-shift-4 = 'move-node-to-workspace 4' | ||||
| alt-shift-5 = 'move-node-to-workspace 5' | ||||
| alt-shift-6 = 'move-node-to-workspace 6' | ||||
| alt-shift-7 = 'move-node-to-workspace 7' | ||||
| alt-shift-8 = 'move-node-to-workspace 8' | ||||
| alt-shift-9 = 'move-node-to-workspace 9' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#workspace-back-and-forth | ||||
| alt-tab = 'workspace-back-and-forth' | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#move-workspace-to-monitor | ||||
| alt-shift-tab = 'move-workspace-to-monitor --wrap-around next' | ||||
| 
 | ||||
| # See: https://nikitabobko.github.io/AeroSpace/commands#mode | ||||
| alt-shift-semicolon = 'mode service' | ||||
| 
 | ||||
| # 'service' binding mode declaration. | ||||
| # See: https://nikitabobko.github.io/AeroSpace/guide#binding-modes | ||||
| [mode.service.binding] | ||||
| esc = ['reload-config', 'mode main'] | ||||
| r = ['flatten-workspace-tree', 'mode main'] # reset layout | ||||
| f = ['layout floating tiling', 'mode main'] # Toggle between floating and tiling layout | ||||
| backspace = ['close-all-windows-but-current', 'mode main'] | ||||
| 
 | ||||
| # sticky is not yet supported https://github.com/nikitabobko/AeroSpace/issues/2 | ||||
| #s = ['layout sticky tiling', 'mode main'] | ||||
| 
 | ||||
| alt-shift-h = ['join-with left', 'mode main'] | ||||
| alt-shift-j = ['join-with down', 'mode main'] | ||||
| alt-shift-k = ['join-with up', 'mode main'] | ||||
| alt-shift-l = ['join-with right', 'mode main'] | ||||
| 
 | ||||
| down = 'volume down' | ||||
| up = 'volume up' | ||||
| shift-down = ['volume set 0', 'mode main'] | ||||
|  | @ -1,32 +0,0 @@ | |||
| { self, pkgs, ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ../profiles/nvim | ||||
|     ../profiles/cli | ||||
|     ../profiles/direnv | ||||
|     ../profiles/git | ||||
|     ../profiles/task | ||||
|     ../profiles/kitty | ||||
|     ../profiles/tmux | ||||
|     # ../profiles/firefox | ||||
|   ]; | ||||
| 
 | ||||
|   home.username = "anishlakhwara"; | ||||
|   home.homeDirectory = "/Users/anishlakhwara"; | ||||
|   home.stateVersion = "22.05"; | ||||
| 
 | ||||
|   programs.zsh.initContent = '' | ||||
|     PATH=/Users/anishlakhwara/.sourcegraph/bin:/Users/anishlakhwara/.sourcegraph/sg.zsh_autocomplete:/Users/anishlakhwara/google-cloud-sdk/bin:/Users/anishlakhwara/google-cloud-sdk/completion.zsh.inc:/Users/anishlakhwara/google-cloud-sdk/path.zsh.inc:/Users/anishlakhwara/.sg:/opt/homebrew/bin:$PATH | ||||
|     ''; | ||||
| 
 | ||||
|   # Managing sketchybar plugins from home-manager | ||||
|   home.file = { | ||||
|     ".config/sketchybar" = { | ||||
|         source = ./sketchybar; | ||||
|         recursive = true; | ||||
|     }; | ||||
|     ".config/aerospace" = { | ||||
|       source = ./aerospace; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$CYAN" | ||||
| 
 | ||||
| sketchybar --add item battery right \ | ||||
| 	--set battery \ | ||||
| 	update_freq=60 \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	label.padding_right=10 \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=5 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/power.sh" \ | ||||
| 	--subscribe battery power_source_change | ||||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$CYAN" | ||||
| 
 | ||||
| sketchybar --add item battery right \ | ||||
| 	--set battery \ | ||||
| 	update_freq=60 \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	label.padding_right=10 \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=5 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/power.sh" \ | ||||
| 	--subscribe battery power_source_change | ||||
|  | @ -1,18 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$BLUE" | ||||
| 
 | ||||
| sketchybar --add item calendar right \ | ||||
| 	--set calendar update_freq=15 \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	label.padding_right=10 \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=5 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/calendar.sh" | ||||
|  | @ -1,21 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$MAGENTA" | ||||
| 
 | ||||
| sketchybar --add item clock right \ | ||||
| 	--set clock update_freq=60 \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon=" " \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	label.padding_right=5 \ | ||||
| 	label.width=43 \ | ||||
| 	align=center \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=2 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/clock.sh" | ||||
|  | @ -1,19 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$YELLOW" | ||||
| 
 | ||||
| sketchybar --add item cpu right \ | ||||
| 	--set cpu \ | ||||
| 	update_freq=3 \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	label.padding_right=10 \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=5 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/cpu.sh" | ||||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$WHITE" | ||||
| 
 | ||||
| sketchybar \ | ||||
| 	--add item front_app left \ | ||||
| 	--set front_app script="$PLUGIN_DIR/front_app.sh" \ | ||||
| 	icon.drawing=off \ | ||||
| 	background.height=26 \ | ||||
| 	background.padding_left=0 \ | ||||
| 	background.padding_right=10 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	label.padding_left=10 \ | ||||
| 	label.padding_right=10 \ | ||||
| 	associated_display=active \ | ||||
| 	--subscribe front_app front_app_switched | ||||
|  | @ -1,44 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10") | ||||
| 
 | ||||
| sketchybar --add item spacer.1 left \ | ||||
| 	--set spacer.1 background.drawing=off \ | ||||
| 	label.drawing=off \ | ||||
| 	icon.drawing=off \ | ||||
| 	width=10 | ||||
| 
 | ||||
| for i in {0..9}; do | ||||
| 	sid=$((i + 1)) | ||||
| 	sketchybar --add space space.$sid left \ | ||||
| 		--set space.$sid associated_space=$sid \ | ||||
| 		label.drawing=off \ | ||||
| 		icon.padding_left=10 \ | ||||
| 		icon.padding_right=10 \ | ||||
| 		background.padding_left=-5 \ | ||||
| 		background.padding_right=-5 \ | ||||
| 		script="$PLUGIN_DIR/space.sh" | ||||
| done | ||||
| 
 | ||||
| sketchybar --add item spacer.2 left \ | ||||
| 	--set spacer.2 background.drawing=off \ | ||||
| 	label.drawing=off \ | ||||
| 	icon.drawing=off \ | ||||
| 	width=5 | ||||
| 
 | ||||
| sketchybar --add bracket spaces '/space.*/' \ | ||||
| 	--set spaces background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$RED" \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.height=26 \ | ||||
| 	background.drawing=on | ||||
| 
 | ||||
| sketchybar --add item separator left \ | ||||
| 	--set separator icon= \ | ||||
| 	icon.font="$FONT:Regular:16.0" \ | ||||
| 	background.padding_left=26 \ | ||||
| 	background.padding_right=15 \ | ||||
| 	label.drawing=off \ | ||||
| 	associated_display=active \ | ||||
| 	icon.color="$YELLOW" | ||||
|  | @ -1,23 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$ORANGE" | ||||
| 
 | ||||
| sketchybar --add item spotify q \ | ||||
| 	--set spotify \ | ||||
| 	scroll_texts=on \ | ||||
| 	icon= \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.padding_right=-5 \ | ||||
| 	background.drawing=on \ | ||||
| 	label.padding_right=10 \ | ||||
| 	label.max_chars=20 \ | ||||
| 	associated_display=active \ | ||||
| 	updates=on \ | ||||
| 	script="$PLUGIN_DIR/spotify.sh" \ | ||||
| 	--subscribe spotify media_change | ||||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| COLOR="$GREEN" | ||||
| 
 | ||||
| sketchybar \ | ||||
| 	--add item sound right \ | ||||
| 	--set sound \ | ||||
| 	icon.color="$COLOR" \ | ||||
| 	icon.padding_left=10 \ | ||||
| 	label.color="$COLOR" \ | ||||
| 	label.padding_right=10 \ | ||||
| 	background.height=26 \ | ||||
| 	background.corner_radius="$CORNER_RADIUS" \ | ||||
| 	background.padding_right=5 \ | ||||
| 	background.border_width="$BORDER_WIDTH" \ | ||||
| 	background.border_color="$COLOR" \ | ||||
| 	background.color="$BAR_COLOR" \ | ||||
| 	background.drawing=on \ | ||||
| 	script="$PLUGIN_DIR/sound.sh" \ | ||||
| 	--subscribe sound volume_change | ||||
|  | @ -1,4 +0,0 @@ | |||
| sketchybar -m --add item vpn right \ | ||||
|   --set vpn icon= \ | ||||
|   update_freq=5 \ | ||||
|   script="~/.config/sketchybar/plugins/vpn.sh" | ||||
|  | @ -1,3 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| sketchybar --set "$NAME" icon=" " label="$(date '+%a %d. %b')" | ||||
|  | @ -1,4 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| LABEL=$(date '+%H:%M') | ||||
| sketchybar --set "$NAME" icon=" " label="$LABEL" | ||||
|  | @ -1,3 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| sketchybar --set "$NAME" icon="" label="$(ps -A -o %cpu | awk '{s+=$1} END {s /= 8} END {printf "%.1f%%\n", s}')" | ||||
|  | @ -1,7 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| case "$SENDER" in | ||||
| "front_app_switched") | ||||
| 	sketchybar --set "$NAME" label="$INFO" | ||||
| 	;; | ||||
| esac | ||||
|  | @ -1,30 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| PERCENTAGE=$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1) | ||||
| CHARGING=$(pmset -g batt | grep 'AC Power') | ||||
| 
 | ||||
| if [ "$PERCENTAGE" = "" ]; then | ||||
| 	exit 0 | ||||
| fi | ||||
| 
 | ||||
| case ${PERCENTAGE} in | ||||
| 9[0-9] | 100) | ||||
| 	ICON=" " | ||||
| 	;; | ||||
| [6-8][0-9]) | ||||
| 	ICON=" " | ||||
| 	;; | ||||
| [3-5][0-9]) | ||||
| 	ICON=" " | ||||
| 	;; | ||||
| [1-2][0-9]) | ||||
| 	ICON=" " | ||||
| 	;; | ||||
| *) ICON=" " ;; | ||||
| esac | ||||
| 
 | ||||
| if [ "$CHARGING" != "" ]; then | ||||
| 	ICON="" | ||||
| fi | ||||
| 
 | ||||
| sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}% " | ||||
|  | @ -1,20 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| VOLUME=$(osascript -e "output volume of (get volume settings)") | ||||
| MUTED=$(osascript -e "output muted of (get volume settings)") | ||||
| 
 | ||||
| if [ "$MUTED" != "false" ]; then | ||||
| 	ICON=" " | ||||
| 	VOLUME=0 | ||||
| else | ||||
| 	case ${VOLUME} in | ||||
| 	100) ICON=" " ;; | ||||
| 	[5-9]*) ICON=" " ;; | ||||
| 	[0-9]*) ICON=" " ;; | ||||
| 	*) ICON=" " ;; | ||||
| 	esac | ||||
| fi | ||||
| 
 | ||||
| sketchybar -m \ | ||||
| 	--set "$NAME" icon=$ICON \ | ||||
| 	--set "$NAME" label="$VOLUME%" | ||||
|  | @ -1,19 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| source "$HOME/.config/sketchybar/variables.sh" # Loads all defined colors | ||||
| 
 | ||||
| SPACE_ICONS=(" " " " " " " " " " "6" "7" "8" "9" "10") | ||||
| 
 | ||||
| SPACE_CLICK_SCRIPT="yabai -m space --focus $SID 2>/dev/null" | ||||
| 
 | ||||
| if [ "$SELECTED" = "true" ]; then | ||||
| 	sketchybar --animate tanh 5 --set "$NAME" \ | ||||
| 		icon.color="$RED" \ | ||||
| 		icon="${SPACE_ICONS[$SID - 1]}" \ | ||||
| 		click_script="$SPACE_CLICK_SCRIPT" | ||||
| else | ||||
| 	sketchybar --animate tanh 5 --set "$NAME" \ | ||||
| 		icon.color="$COMMENT" \ | ||||
| 		icon="${SPACE_ICONS[$SID - 1]}" \ | ||||
| 		click_script="$SPACE_CLICK_SCRIPT" | ||||
| fi | ||||
|  | @ -1,11 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| STATE="$(echo "$INFO" | jq -r '.state')" | ||||
| APP="$(echo "$INFO" | jq -r '.app')" | ||||
| 
 | ||||
| if [ "$STATE" = "playing" ] && [ "$APP" == "Spotify" ]; then | ||||
| 	MEDIA="$(echo "$INFO" | jq -r '.title + " - " + .artist')" | ||||
| 	sketchybar --set "$NAME" label="$MEDIA" drawing=on | ||||
| else | ||||
| 	sketchybar --set "$NAME" drawing=off | ||||
| fi | ||||
|  | @ -1,16 +0,0 @@ | |||
| #!/bin/bash | ||||
| 
 | ||||
| ### You need to edit sudoers file to run wg-quick without password | ||||
| 
 | ||||
| # %admin		ALL = (ALL) NOPASSWD: /nix/store/s2qw0sxax8pckbzmyw6wrarahmx65bq9-wireguard-tools-1.0.20210914/bin/wg-quick | ||||
| 
 | ||||
| WG_PIDFILE="/var/run/wireguard/wg0.name" | ||||
| 
 | ||||
| if [ -f $WG_PIDFILE ]; then | ||||
|   sketchybar -m --set vpn icon= \ | ||||
|     label="$VPN" \ | ||||
|     drawing=on \ | ||||
|     click_script="~/.config/sketchybar/plugins/wg_off.sh" | ||||
| else | ||||
|   sketchybar -m --set vpn drawing=off click_script="~/.config/sketchybar/plugins/wg_on.sh" | ||||
| fi | ||||
|  | @ -1,5 +0,0 @@ | |||
| ### You need to edit sudoers file to run wg-quick without password | ||||
| 
 | ||||
| # %admin		ALL = (ALL) NOPASSWD: /nix/store/s2qw0sxax8pckbzmyw6wrarahmx65bq9-wireguard-tools-1.0.20210914/bin/wg-quick | ||||
| 
 | ||||
| sudo wg-quick down wg0 | ||||
|  | @ -1,5 +0,0 @@ | |||
| ### You need to edit sudoers file to run wg-quick without password | ||||
| 
 | ||||
| # %admin		ALL = (ALL) NOPASSWD: /nix/store/s2qw0sxax8pckbzmyw6wrarahmx65bq9-wireguard-tools-1.0.20210914/bin/wg-quick | ||||
| 
 | ||||
| sudo wg-quick up wg0 | ||||
|  | @ -1,50 +0,0 @@ | |||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| # Color Palette | ||||
| # Tokyonight Night | ||||
| BLACK=0xff24283b | ||||
| WHITE=0xffa9b1d6 | ||||
| MAGENTA=0xffbb9af7 | ||||
| BLUE=0xff7aa2f7 | ||||
| CYAN=0xff7dcfff | ||||
| GREEN=0xff9ece6a | ||||
| YELLOW=0xffe0af68 | ||||
| ORANGE=0xffff9e64 | ||||
| RED=0xfff7768e | ||||
| BAR_COLOR=0xff1a1b26 | ||||
| COMMENT=0xff565f89 | ||||
| 
 | ||||
| # Tokyonight Day | ||||
| # BLACK=0xffe9e9ed | ||||
| # WHITE=0xff3760bf | ||||
| # MAGENTA=0xff9854f1 | ||||
| # BLUE=0xff2e7de9 | ||||
| # CYAN=0xff007197 | ||||
| # GREEN=0xff587539 | ||||
| # YELLOW=0xff8c6c3e | ||||
| # ORANGE=0xffb15c00 | ||||
| # RED=0xfff52a65 | ||||
| # BAR_COLOR=0xffe1e2e7 | ||||
| 
 | ||||
| TRANSPARENT=0x00000000 | ||||
| 
 | ||||
| # General bar colors | ||||
| ICON_COLOR=$WHITE  # Color of all icons | ||||
| LABEL_COLOR=$WHITE # Color of all labels | ||||
| 
 | ||||
| ITEM_DIR="$HOME/.config/sketchybar/items" | ||||
| PLUGIN_DIR="$HOME/.config/sketchybar/plugins" | ||||
| 
 | ||||
| FONT="Iosevka Nerd Font" | ||||
| 
 | ||||
| PADDINGS=3 | ||||
| 
 | ||||
| POPUP_BORDER_WIDTH=2 | ||||
| POPUP_CORNER_RADIUS=11 | ||||
| POPUP_BACKGROUND_COLOR=$BLACK | ||||
| POPUP_BORDER_COLOR=$COMMENT | ||||
| 
 | ||||
| CORNER_RADIUS=15 | ||||
| BORDER_WIDTH=2 | ||||
| 
 | ||||
| SHADOW=on | ||||
|  | @ -1,5 +0,0 @@ | |||
| { self, pkgs, ... }: { | ||||
|   imports = | ||||
|     [ ../profiles/cli ../profiles/nvim ../profiles/direnv ../profiles/git ]; | ||||
|   home.stateVersion = "22.05"; | ||||
| } | ||||
|  | @ -11,22 +11,4 @@ | |||
|     ../profiles/ssh | ||||
|     ../profiles/task | ||||
|   ]; | ||||
| 
 | ||||
|   # GPG configuration for user session | ||||
|   services.gpg-agent = { | ||||
|     enable = true; | ||||
|     pinentry.package = pkgs.pinentry-rofi;  # Use rofi for consistency with desktop theme | ||||
|     enableSshSupport = true; | ||||
|     defaultCacheTtl = 28800;  # 8 hours | ||||
|     maxCacheTtl = 86400;      # 24 hours | ||||
|     extraConfig = '' | ||||
|       pinentry-program ${pkgs.writeShellScript "pinentry-rofi-themed" '' | ||||
|         exec ${pkgs.pinentry-rofi}/bin/pinentry-rofi -theme ~/.config/rofi/theme/passmenu.rasi "$@" | ||||
|       ''} | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   programs.gpg = { | ||||
|     enable = true; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ | |||
|     bottom | ||||
|     gptfdisk | ||||
|     starship | ||||
|     iputils | ||||
|     jq | ||||
|     manix | ||||
|     moreutils | ||||
|  | @ -41,6 +42,7 @@ | |||
|     file | ||||
|     lsof | ||||
|     atool | ||||
|     strace | ||||
|     zip | ||||
|     unzip | ||||
|     rsync | ||||
|  | @ -51,7 +53,7 @@ | |||
|     less | ||||
|     gdb | ||||
|     xxd | ||||
|     taskwarrior2 | ||||
|     taskwarrior | ||||
|     gnupg | ||||
|     syncthing | ||||
|     dijo | ||||
|  | @ -59,8 +61,8 @@ | |||
|     fontconfig | ||||
|     pandoc | ||||
|     taskwarrior-tui | ||||
|     # vimwiki-cli | ||||
|     zk | ||||
|     python3Packages.howdoi | ||||
|     vimwiki-cli | ||||
| 
 | ||||
|     (pkgs.writeScriptBin "jq-repl" '' | ||||
|       #!/usr/bin/env bash | ||||
|  | @ -90,33 +92,11 @@ | |||
|       manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | fzf --preview="manix '{}'" | xargs manix | ||||
|     '') | ||||
|     (pkgs.writeScriptBin "monitor" '' | ||||
|       # hotplug | ||||
|       connect() { | ||||
|           # Turn it on if it was off | ||||
|           xrandr --output HDMI-2 --auto | ||||
|           xrandr --output HDMI-2 --same-as eDP-1 | ||||
|           xrandr --output eDP-1 --off | ||||
|           pkill -9 polybar | ||||
|           feh --bg-scale ~/Downloads/stephen-walker-onIXxjH56AA-unsplash.jpg | ||||
|           polybar mybar > $XDG_DATA_HOME/polybar.log 2>&1 & | ||||
|       } | ||||
| 
 | ||||
|       disconnect() { | ||||
|           xrandr --output HDMI-2 --off | ||||
|           xrandr --output eDP-1 --auto | ||||
|       } | ||||
| 
 | ||||
|       xrandr | grep "HDMI-2 connected" &>>/dev/null && connect || disconnect | ||||
|     '') | ||||
|     (pkgs.writeScriptBin "big-monitor" '' | ||||
|       connect() { | ||||
|           # Turn it on if it was off | ||||
|           xrandr --output HDMI-2 --auto --primary | ||||
|           # Disable normal display | ||||
|           xrandr --output eDP-1 --off | ||||
|           # Use a nice background | ||||
|           feh --bg-scale ~/Downloads/stephen-walker-onIXxjH56AA-unsplash.jpg | ||||
|           # Reload Polybar | ||||
|           ~/.config/bspwm/rc.d/polybar | ||||
|       } | ||||
| 
 | ||||
|       disconnect() { | ||||
|  | @ -145,10 +125,6 @@ | |||
| 
 | ||||
|       disconnect_keyboard | ||||
|     '') | ||||
|   ] ++ lib.optionals pkgs.stdenv.isLinux [ | ||||
|     # Linux-only packages | ||||
|     iputils | ||||
|     strace | ||||
|   ]; | ||||
| 
 | ||||
|   programs.zsh = { | ||||
|  | @ -156,8 +132,7 @@ | |||
|     enableCompletion = true; | ||||
|     autosuggestion.enable = false; | ||||
| 
 | ||||
|     initContent = '' | ||||
|       bindkey -v | ||||
|     initExtra = '' | ||||
|       autopair-init | ||||
|     ''; | ||||
|     sessionVariables = { | ||||
|  | @ -229,7 +204,7 @@ | |||
|     enableZshIntegration = true; | ||||
|   }; | ||||
| 
 | ||||
|   services.kdeconnect.enable = pkgs.stdenv.isLinux; | ||||
|   services.kdeconnect.enable = true; | ||||
| 
 | ||||
|   home.shellAliases = { | ||||
|     # quick cd | ||||
|  | @ -249,8 +224,8 @@ | |||
|     tree = "ls --tree --icons"; | ||||
|     cat = "bat"; | ||||
|     unzip = "aunpack"; | ||||
|     copy = if pkgs.stdenv.isDarwin then "pbcopy" else "xclip -selection clipboard"; | ||||
|     paste = if pkgs.stdenv.isDarwin then "pbpaste" else "xclip -selection clipboard -o"; | ||||
|     copy = "xclip -selection clipboard"; | ||||
|     paste = "xclip -selection clipboard -o"; | ||||
|     rm = "echo USE TRASH, FOOL: trash "; | ||||
|     trash = "trash-put"; | ||||
|     make-secret = "< /dev/urandom \\tr -dc _A-Za-z0-9 | head -c \${1:-32};echo;"; | ||||
|  | @ -301,14 +276,7 @@ | |||
|     nepl = "n repl '<nixpkgs>'"; | ||||
|     srch = "ns nixpkgs"; | ||||
|     orch = "ns override"; | ||||
|     # Impure for bitwig on linux, not sure what it's for in darwin | ||||
|     nrb = '' | ||||
|       if [[ "$OSTYPE" == "darwin"* ]]; then | ||||
|         cd ~/usr/helm && sudo darwin-rebuild switch --impure --flake ".#Anishs-MacBook-Pro" && cd $OLDPWD | ||||
|       else | ||||
|         cd /tmp && sudo nixos-rebuild switch --flake  --impure '/home/anish/usr/helm#curve' && cd $OLDPWD | ||||
|       fi | ||||
|     ''; | ||||
|     nrb = "cd /tmp; sudo nixos-rebuild switch --flake '/home/anish/usr/helm#curve'; cd $OLDPWD"; | ||||
|     nrt = "cd /tmp; sudo nixos-rebuild test --flake '/home/anish/usr/helm#curve'; cd $OLDPWD"; | ||||
|     ned = "cd /home/anish/usr/helm; vim; cd $OLDPWD"; | ||||
|     ncd = "cd /home/anish/usr/helm"; | ||||
|  |  | |||
|  | @ -29,8 +29,8 @@ bspc config presel_feedback_color "#bd93f9" | |||
| bspc config split_ratio         0.71 | ||||
| 
 | ||||
| # Extra padding for polybar | ||||
| bspc config top_padding 34 | ||||
| bspc config bottom_padding 0 | ||||
| bspc config -m primary top_padding 34 | ||||
| bspc config -m primary bottom_padding 0 | ||||
| 
 | ||||
| # Rules | ||||
| bspc rule -r '*' | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ in | |||
|     paper-icon-theme | ||||
|     papirus-icon-theme | ||||
|     libsForQt5.qtstyleplugin-kvantum | ||||
|     libsForQt5.qt5ct | ||||
|     qt5ct | ||||
|     gtk-engine-murrine | ||||
|     gtk_engines | ||||
|     maim | ||||
|  | @ -31,9 +31,8 @@ in | |||
|     inotify-tools | ||||
|     offpunk | ||||
|     termpdfpy | ||||
|     # libsForQt5.kontact | ||||
|     libsForQt5.kontact | ||||
|     thunderbird | ||||
|     libsecret  # For secret-tool to manage keyring | ||||
|   ]; | ||||
| 
 | ||||
|   # GTK4 color scheme? | ||||
|  | @ -74,7 +73,7 @@ in | |||
|     #gtk4 theme | ||||
|     ".config/gtk-4.0/settings.ini".text = '' | ||||
|       [Settings] | ||||
|       gtk-application-prefer-dark-theme=true | ||||
|       gtk-application-prefer-dark-theme=1 | ||||
|     ''; | ||||
|     # gtk3 theme | ||||
|     ".config/gtk-3.0/settings.ini".text = '' | ||||
|  |  | |||
|  | @ -8,9 +8,6 @@ open_url_with default | |||
| mouse_map left click ungrabbed mouse_click_url_or_select | ||||
| confirm_os_window_close 0 | ||||
| enable_audio_bell no | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| # Ctrl+V for paste | ||||
| map ctrl+v paste_from_clipboard | ||||
| mouse_map middle release ungrabbed paste_from_clipboard | ||||
| -- Allows zen-mode.nvim to increase font size | ||||
| -- allow_remote_control socket-only | ||||
| -- listen_on unix:/tmp/kitty | ||||
|  |  | |||
|  | @ -2,35 +2,12 @@ | |||
| 
 | ||||
| @import "config.rasi" | ||||
| 
 | ||||
| textbox { | ||||
|   vertical-align:   0.5; | ||||
|   horizontal-align: 0.5; | ||||
| } | ||||
| 
 | ||||
| listview { | ||||
|   columns:       9; | ||||
|   lines:         7; | ||||
|   cycle:         true; | ||||
|   dynamic:       true; | ||||
|   layout:        vertical; | ||||
|   flow:          horizontal; | ||||
|   reverse:       false; | ||||
|   fixed-height:  true; | ||||
|   fixed-columns: true; | ||||
| } | ||||
| 
 | ||||
| element { | ||||
|   orientation: vertical; | ||||
| } | ||||
| 
 | ||||
| element-text { | ||||
|   vertical-align:   0.5; | ||||
|   horizontal-align: 0.5; | ||||
|   font:            "FiraCode Nerd Font 24"; | ||||
|   columns: 4; | ||||
| } | ||||
| 
 | ||||
| textbox-icon { | ||||
|   str: "❇️ "; | ||||
|   str: "🎑"; | ||||
| } | ||||
| 
 | ||||
| prompt { | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ super + Return | |||
| 	kitty | ||||
| 
 | ||||
| ctrl + super + Return | ||||
| 	tdrop -n tdrop_kitty --post-create-hook "autohide-tdrop &" -ma -h 60% -w 70% -x 15% -y 32 kitty --class=tdrop_kitty | ||||
| 	xst -e bash -c "(tmux ls | grep -qEv 'attached|scratch' && tmux at) || tmux" | ||||
| 
 | ||||
| super + space | ||||
| 	rofi -show drun -modi drun,run -show-icons -theme theme/appmenu.rasi | ||||
|  | @ -25,7 +25,7 @@ super + Tab | |||
| 	rofi -show window -show-icons -theme theme/windowmenu.rasi | ||||
| 
 | ||||
| super + e | ||||
| 	rofimoji --selector-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy --hidden-descriptions | ||||
| 	rofimoji --selector-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy  | ||||
| 
 | ||||
| super + a | ||||
| 	paste | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
|       isDefault = true; | ||||
|       name = "anish"; | ||||
|       userChrome = (builtins.readFile ./userChrome.css); | ||||
|       extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ | ||||
|       extensions = with pkgs.nur.repos.rycee.firefox-addons; [ | ||||
|         # Find extensions: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix | ||||
|         ublock-origin | ||||
|         # wallabagger | ||||
|  |  | |||
|  | @ -8,29 +8,13 @@ | |||
| /*** NAV BAR ***/ | ||||
| /* Hide urlbar */ | ||||
| #nav-bar { | ||||
|   /* customize this value. */ | ||||
|   --navbar-margin: -55px; | ||||
| 
 | ||||
|   margin-top: var(--navbar-margin); | ||||
|   margin-bottom: 0; | ||||
|   z-index: -100; | ||||
|   transition: all 0.3s ease !important; | ||||
|   opacity: 0; | ||||
| } | ||||
| 
 | ||||
| #navigator-toolbox:focus-within > #nav-bar, | ||||
| #navigator-toolbox:hover > #nav-bar | ||||
| { | ||||
|   margin-top: 0; | ||||
|   margin-bottom: var(--navbar-margin); | ||||
|   z-index: 100; | ||||
|   opacity: 1; | ||||
| } | ||||
| 
 | ||||
| #main-window[chromehidden*="toolbar"] { | ||||
| 	  visibility: collapse; | ||||
| 		height: -55px !important; | ||||
| 		min-height: -55px !important; | ||||
| 	position: relative !important; | ||||
| 	z-index: 2 !important; | ||||
| 	height: 2px !important; | ||||
| 	min-height: 2px !important; | ||||
| 	margin-bottom: -2px !important; | ||||
| 	opacity: 0 !important; | ||||
| 	border: none !important; | ||||
| } | ||||
| 
 | ||||
| /* But unfocus it when we invoke it with ctrl+L */ | ||||
|  | @ -53,11 +37,10 @@ | |||
| 	height: 28px !important; | ||||
| } | ||||
| 
 | ||||
| /* hides the sidebar header  | ||||
| /* hides the sidebar header */ | ||||
| #sidebar-header { | ||||
| 	display: none !important; | ||||
| } | ||||
| */ | ||||
| 
 | ||||
| .tab[selected="true"] { | ||||
| 	visibility: collapse; | ||||
|  | @ -70,153 +53,73 @@ | |||
| .tabbrowser-tab[visuallyselected="true"] { | ||||
| 	visibility: collapse; | ||||
| } | ||||
| 
 | ||||
| /* Credits to https://github.com/MrOtherGuy for hthe following snippet*/ | ||||
| 
 | ||||
| /* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 | ||||
| See the above repository for updates as well as full license text. */ | ||||
| 
 | ||||
| /* Show sidebar only when the cursor is over it. | ||||
|    The border controlling sidebar width will be removed so you'll need to modify | ||||
|    these values to change width.  | ||||
|    By default the internal layout of sidebar changes when hovered, but this can | ||||
|    be changed by setting pref "userchrome.autohide-sidebar.static-layout.enabled" to true | ||||
|  */ | ||||
| /* Show sidebar only when the cursor is over it */ | ||||
| /* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ | ||||
| 
 | ||||
| /* Note: If you want only *some* sidebar to be auto-hidden, then you can use [sidebarcommand] attribute selector. | ||||
|    For example, to only affect Sidebery's sidebar replace all instances of #sidebar-box with | ||||
|    #sidebar-box[sidebarcommand="_3c078156-979c-498b-8990-85f7987dd929_-sidebar-action"]. | ||||
|    To find the sidebarcommand value for any other sidebar, open that sidebar and use Browser Toolbox to inspect it. | ||||
|    See: https://firefox-source-docs.mozilla.org/devtools-user/browser_toolbox/index.html | ||||
| */ | ||||
| /* The whole thing | ||||
| :where(#main-window) #browser{ | ||||
|   --uc-sidebar-width: 240px; | ||||
|   --uc-sidebar-hover-width: 210px; | ||||
| } | ||||
| #main-window[sizemode="fullscreen"] #browser{ | ||||
|   --uc-sidebar-width: 1px; | ||||
| } | ||||
| #sidebar-box{ | ||||
|   --uc-sidebar-width: 44px; /* Only thing I (gale) changed */ | ||||
|   --uc-sidebar-hover-width: 210px; | ||||
|   --uc-autohide-sidebar-delay: 600ms; /* Wait 0.6s before hiding sidebar */ | ||||
|   --uc-autohide-transition-duration: 115ms; | ||||
|   --uc-autohide-transition-type: linear; | ||||
|   --browser-area-z-index-sidebar: 3; | ||||
|   position: relative; | ||||
|   min-width: var(--uc-sidebar-width) !important; | ||||
|   width: var(--uc-sidebar-width) !important; | ||||
|   max-width: var(--uc-sidebar-width) !important; | ||||
|   z-index: var(--browser-area-z-index-sidebar,3); | ||||
|   background-color: inherit; | ||||
|   /* This directionality flipper is played so that sidebar "grows" into the right direction */ | ||||
|   direction: ltr; | ||||
|   &:is([positionend],[sidebar-positionend]):not(:-moz-locale-dir(rtl)){ | ||||
|     direction: rtl; | ||||
|   } | ||||
|   z-index:1; | ||||
| } | ||||
| .sidebar-browser-stack{ | ||||
|   background: inherit; | ||||
| } | ||||
| #main-window[sizemode="fullscreen"] #browser{ --uc-sidebar-width: 1px; } | ||||
| 
 | ||||
| #sidebar-box[positionend]{ direction: rtl } | ||||
| #sidebar-box[positionend] > *{ direction: ltr } | ||||
| 
 | ||||
| #sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } | ||||
| #sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } | ||||
| 
 | ||||
| #main-window[sizemode="fullscreen"] #sidebar-box{ --uc-sidebar-width: 1px; } | ||||
| 
 | ||||
| #sidebar-splitter{ display: none } | ||||
| 
 | ||||
| #sidebar-header{ | ||||
|   overflow: hidden; | ||||
|   color: var(--chrome-color, inherit) !important; | ||||
|   padding-inline: 0 !important; | ||||
| } | ||||
| #sidebar-header{ overflow: hidden; /*color: var(--chrome-color, inherit) !important*/} | ||||
| 
 | ||||
| #sidebar-header::before, | ||||
| #sidebar-header::after{ | ||||
|   content: ""; | ||||
|   display: flex; | ||||
|   padding-left: 8px; | ||||
| } | ||||
| 
 | ||||
| #sidebar-header, | ||||
| #sidebar{ | ||||
|   transition: min-width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay) !important; | ||||
|   transition: min-width 115ms linear var(--uc-autohide-sidebar-delay) !important; | ||||
|   min-width: var(--uc-sidebar-width) !important; | ||||
|   will-change: min-width; | ||||
|   direction: ltr; | ||||
|   &:-moz-locale-dir(rtl){ | ||||
|     direction: rtl; | ||||
|   } | ||||
| } | ||||
| #sidebar-box:hover > #sidebar-header, | ||||
| #sidebar-box:hover > #sidebar, | ||||
| #sidebar-box:hover > .sidebar-browser-stack > #sidebar{ | ||||
|   min-width: var(--uc-sidebar-hover-width) !important; | ||||
|   transition-delay: 0ms !important; | ||||
| } | ||||
| 
 | ||||
| #sidebar-box:hover > #sidebar{ min-width: var(--uc-sidebar-hover-width) !important; transition-delay: 0ms !important } | ||||
| 
 | ||||
| .sidebar-panel{ | ||||
|   background-color: transparent !important; | ||||
|   color: var(--newtab-text-primary-color) !important; | ||||
|   /*background-color: transparent !important; | ||||
|   color: var(--newtab-text-primary-color) !important;*/ | ||||
| } | ||||
| 
 | ||||
| .sidebar-panel #search-box{ | ||||
|   -moz-appearance: none !important; | ||||
|   background-color: rgba(249,249,250,0.1) !important;  | ||||
|   /*background-color: rgba(249,249,250,0.1) !important;  | ||||
|   color: inherit !important; | ||||
| 	*/ | ||||
| } | ||||
| 
 | ||||
| /* Add sidebar divider and give it background */ | ||||
| 
 | ||||
| #sidebar, | ||||
| #sidebar-header{ | ||||
|   background-color: inherit !important; | ||||
|   /*background-color: inherit !important;*/ | ||||
|   border-inline: 1px solid rgb(80,80,80); | ||||
|   border-inline-width: 0px 1px; | ||||
| } | ||||
| 
 | ||||
| #sidebar-box:not([positionend],[sidebar-positionend]) > :-moz-locale-dir(rtl), | ||||
| #sidebar-box:is([positionend],[sidebar-positionend]) > *{ | ||||
| #sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), | ||||
| #sidebar-box[positionend] > *{ | ||||
|   border-inline-width: 1px 0px; | ||||
| } | ||||
| @media -moz-pref("sidebar.revamp") { | ||||
|   #sidebar, #sidebar-header{ border-style: none } | ||||
|   #sidebar-box{ padding: 0 !important; } | ||||
| } | ||||
| 
 | ||||
| /* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ | ||||
| 
 | ||||
| #sidebar-box:not([positionend],[sidebar-positionend]):hover ~ #appcontent #statuspanel{ | ||||
|   inset-inline: auto 0px !important; | ||||
| } | ||||
| #sidebar-box:not([positionend],[sidebar-positionend]):hover ~ #appcontent #statuspanel-label{ | ||||
|   margin-inline: 0px !important; | ||||
|   border-left-style: solid !important;  | ||||
| } | ||||
| @media -moz-pref("userchrome.autohide-sidebar.static-layout.enabled"){ | ||||
|   #sidebar-box{ | ||||
|     min-width: var(--uc-sidebar-width) !important; | ||||
|     contain: size; | ||||
|     box-shadow: var(--content-area-shadow); | ||||
|   } | ||||
|   #sidebar{ | ||||
|     min-width: var(--uc-sidebar-hover-width) !important; | ||||
|   } | ||||
|   .sidebar-browser-stack{ | ||||
|     overflow: hidden; | ||||
|     width: 100%; | ||||
|     transition: width var(--uc-autohide-transition-duration) var(--uc-autohide-transition-type) var(--uc-autohide-sidebar-delay); | ||||
|     direction: ltr; | ||||
|     &:hover{ | ||||
|       transition-delay: 0ms; | ||||
|       width: var(--uc-sidebar-hover-width); | ||||
|     } | ||||
|     &:-moz-locale-dir(rtl){ | ||||
|       transition-property: transform,width !important; | ||||
|     } | ||||
|   } | ||||
|   #sidebar-box[sidebar-positionend]:hover :is(#sidebar-header,#sidebar):-moz-locale-dir(ltr){ | ||||
|     transform: translateX(0); | ||||
|     transition-delay: 0ms !important; | ||||
|   } | ||||
|   #sidebar-box:not([sidebar-positionend]):hover .sidebar-browser-stack:-moz-locale-dir(rtl){ | ||||
|     transform: translateX(calc(-1 * var(--uc-sidebar-hover-width) + var(--uc-sidebar-width))); | ||||
|   } | ||||
|   #sidebar-box[sidebar-positionend]:hover > .sidebar-browser-stack:-moz-locale-dir(rtl){ | ||||
|     transform: translateX(calc(var(--uc-sidebar-hover-width) - var(--uc-sidebar-width))); | ||||
|     transition-delay: 0ms !important; | ||||
|   } | ||||
| } | ||||
| */ | ||||
| #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ inset-inline: auto 0px !important; } | ||||
| #sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ margin-inline: 0px !important; border-left-style: solid !important; } | ||||
|  |  | |||
|  | @ -12,10 +12,7 @@ | |||
|     userName = "Anish Lakhwara"; | ||||
|     userEmail = "anish+git@lakhwara.com"; | ||||
|     delta.enable = true; | ||||
|     signing = { | ||||
|       signByDefault = true; | ||||
|       key = "7FC5DF072EF7B716"; | ||||
|     }; | ||||
|     # TODO enable signing | ||||
| 
 | ||||
|     ignores = [ | ||||
|       "*~" | ||||
|  | @ -59,7 +56,6 @@ | |||
|       pull.rebase = false; | ||||
|       push.autoSetupRemote = true; | ||||
|       init.defaultBranch = "main"; | ||||
|       "url \"git@github.com:\"" = { insteadOf = "https://github.com/"; }; | ||||
|     }; | ||||
| 
 | ||||
|     aliases = { | ||||
|  | @ -98,8 +94,6 @@ | |||
| 
 | ||||
|       # delete merged branches | ||||
|       bdm = "!git branch --merged | grep -v '*' | xargs -n 1 git branch -d"; | ||||
|       undo = "!git reset HEAD~1 --mixed"; | ||||
|       blm = "blame -w -C -C -C"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
|  | @ -1,23 +0,0 @@ | |||
| 
 | ||||
| background #0A0E14 | ||||
| foreground #B3B1AD | ||||
| cursor #E6B450 | ||||
| selection_background #273747 | ||||
| color0 #000000 | ||||
| color8 #4D5566 | ||||
| color1 #FF3333 | ||||
| color9 #D96C75 | ||||
| color2 #C2D94C | ||||
| color10 #91B362 | ||||
| color3 #FF8F40 | ||||
| color11 #F29668 | ||||
| color4 #59C2FF | ||||
| color12 #6994BF | ||||
| color5 #D4BFFF | ||||
| color13 #A37ACC | ||||
| color6 #95E6CB | ||||
| color14 #4CBF99 | ||||
| color7 #ffffff | ||||
| color15 #F0F0F0 | ||||
| selection_foreground #B3B1AD | ||||
| 
 | ||||
|  | @ -1,25 +0,0 @@ | |||
| #: This is a port of ayu Mirage color scheme | ||||
| #: based on : | ||||
| #: https://github.com/ayu-theme/ayu-colors | ||||
| 
 | ||||
| background #1F2430 | ||||
| foreground #CBCCC6 | ||||
| cursor #FFCC66 | ||||
| selection_background #33415E | ||||
| color0 #000000 | ||||
| color8 #4D5566 | ||||
| color1 #FF3333 | ||||
| color9 #F27983 | ||||
| color2 #BAE67E | ||||
| color10 #A6CC70 | ||||
| color3 #FFA759 | ||||
| color11 #F29E74 | ||||
| color4 #73D0FF | ||||
| color12 #77A8D9 | ||||
| color5 #D4BFFF | ||||
| color13 #A37ACC | ||||
| color6 #95E6CB | ||||
| color14 #4CBF99 | ||||
| color7 #ffffff | ||||
| color15 #F0F0F0 | ||||
| selection_foreground #CBCCC6 | ||||
|  | @ -1,11 +0,0 @@ | |||
| { pkgs, config, lib, ... }: | ||||
| 
 | ||||
| { | ||||
|   home.packages = with pkgs; [ | ||||
|     kitty | ||||
|   ]; | ||||
|   home.file = { | ||||
|     ".config/kitty/kitty.conf".source = ./kitty.conf; | ||||
|     ".config/kitty/ayu.conf".source = ./ayu-kitty.conf; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,15 +0,0 @@ | |||
| include ayu.conf | ||||
| font_family      Hermit | ||||
| font_size        13 | ||||
| bold_font        auto | ||||
| italic_font      auto | ||||
| bold_italic_font auto | ||||
| open_url_with default | ||||
| mouse_map left click ungrabbed mouse_click_url_or_select | ||||
| confirm_os_window_close 0 | ||||
| enable_audio_bell no | ||||
| hide_window_decorations titlebar-only | ||||
| macos_option_as_alt left | ||||
| -- Allows zen-mode.nvim to increase font size | ||||
| -- allow_remote_control socket-only | ||||
| -- listen_on unix:/tmp/kitty | ||||
							
								
								
									
										4
									
								
								home/profiles/nvim/config/after/syntax/vimwiki.vim
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								home/profiles/nvim/config/after/syntax/vimwiki.vim
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | |||
| " match with %update | ||||
| syntax match VimwikiPlaceholder /^\s*%update\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite | ||||
| " match with %link | ||||
| syntax match VimwikiPlaceholder /^\s*%link\ze\%(\s.*\)\?$/ nextgroup=VimwikiPlaceholderParam skipwhite | ||||
							
								
								
									
										11
									
								
								home/profiles/nvim/config/fnl/conf/formatting.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								home/profiles/nvim/config/fnl/conf/formatting.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| (import-macros {: do-req } :lib/macros) | ||||
| 
 | ||||
| (do-req :conform :setup  | ||||
|         {:formatters_by_ft {:lua ["stylua"] | ||||
|                             :nix ["nixfmt"] | ||||
|                             ; :go ["goimports" "gofmt"] ; Go handled in special case | ||||
|                             :terraform ["terraform_fmt"] | ||||
|                             :sh ["shfmt"] | ||||
|                             :bazel ["buildifier"]} | ||||
|          :format_on_save {:lsp_format "fallback" | ||||
|                           :timeout_ms 500}}) | ||||
							
								
								
									
										47
									
								
								home/profiles/nvim/config/fnl/conf/init.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								home/profiles/nvim/config/fnl/conf/init.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,47 @@ | |||
| (local nvim (require :lib/nvim)) | ||||
| 
 | ||||
| (nvim.g :mapleader " ") | ||||
| 
 | ||||
| ; (nvim.opt :runtimepath (.. vim.opt.runtimepath "/home/anish/.config/nvim/,")) | ||||
| (nvim.opt :tabstop 2) | ||||
| (nvim.opt :showmatch true) | ||||
| (nvim.opt :shiftwidth 2) | ||||
| (nvim.opt :autoindent true) | ||||
| (nvim.opt :undofile true) | ||||
| (nvim.opt :signcolumn "auto:4") | ||||
| (nvim.opt :title true) | ||||
| (nvim.opt :number true) | ||||
| ; (nvim.opt :nocompatible) | ||||
| (nvim.opt :relativenumber true) | ||||
| (nvim.opt :showtabline 2) | ||||
| (nvim.opt :expandtab true) | ||||
| (nvim.opt :autowriteall true) | ||||
| (nvim.opt :cmdheight 2) | ||||
| (nvim.opt :spelllang "en_gb") | ||||
| (nvim.opt :ignorecase true) | ||||
| (nvim.opt :smartcase true) | ||||
| (nvim.opt :incsearch true) | ||||
| (nvim.opt :updatetime 300) ; Diagnostics response time | ||||
| (nvim.opt :signcolumn "yes") | ||||
| (nvim.opt :cursorline true) | ||||
| 
 | ||||
| (nvim.opt :lisp true) ; include - in word to move better in snake-case) | ||||
| (nvim.g :sexp_filetypes "clojure,scheme,lisp,janet,fennel,yuck") ; include the lisps I use | ||||
| 
 | ||||
| (nvim.opt :termguicolors) | ||||
| (nvim.colorscheme "ayu-mirage") | ||||
| 
 | ||||
| (require :conf.plugins) | ||||
| (require :conf.mappings) | ||||
| (require :conf.lsp) | ||||
| (require :conf.plugins.cmp) | ||||
| (require :conf.formatting) | ||||
| ; (require :conf.kitaab) | ||||
| 
 | ||||
| ; Spelling | ||||
| (vim.api.nvim_create_autocmd ["BufRead" "BufNewFile"]  | ||||
|                              {:pattern ["*.wiki" "*.txt" "*.md" "*.tex"] | ||||
|                               :command "setlocal spell"}) | ||||
| (vim.api.nvim_create_autocmd ["FileType"] | ||||
|                              {:pattern ["mail"] | ||||
|                               :command "setlocal spell"}) | ||||
							
								
								
									
										99
									
								
								home/profiles/nvim/config/fnl/conf/lsp.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								home/profiles/nvim/config/fnl/conf/lsp.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,99 @@ | |||
| (import-macros {: do-req } :lib/macros) | ||||
| (local lspkind (require :lspkind)) | ||||
| (local lspconfig (require :lspconfig)) | ||||
| ; (local lspsaga (require :lspsaga)) | ||||
| (local cmp (require :cmp)) | ||||
| (local nvim (require :lib/nvim)) | ||||
| ; (local lspfuzzy (require :lspfuzzy)) ; Not available on Nix | ||||
| ; (local sg (require :sg)) | ||||
| ; (local lsputil (require :lspconfig/util)) | ||||
| 
 | ||||
| ;(lspsaga.setup {:border_style "rounded" | ||||
| ;                :code_action_icon "" | ||||
| ;                :code_action_num_shortcut false | ||||
| ;                :ui {:code_action ""} | ||||
| ;                :show_outline {:enable false})) | ||||
| ; | ||||
| ;(nvim.opt :winbar nil) | ||||
| 
 | ||||
| (local signs {:Error " "  | ||||
|               :Warn " "  | ||||
|               :Hint " "  | ||||
|               :Info " "}) | ||||
| (each [t icon (pairs signs)] | ||||
|   (let [hl (.. "DiagnosticSign" t)] | ||||
|     (vim.fn.sign_define hl {:text icon | ||||
|                             :texthl hl | ||||
|                             :numhl hl}))) | ||||
| 
 | ||||
| (tset vim.lsp.handlers  | ||||
|       :textDocument/hover  | ||||
|       (vim.lsp.with vim.lsp.handlers.hover  | ||||
|                     {:focusable false :border "rounded"})) | ||||
| (tset vim.lsp.handlers | ||||
|       :textDocument/signatureHelp | ||||
|       (vim.lsp.with vim.lsp.handlers.signature_help | ||||
|                     {:focusable false :border "rounded"})) | ||||
| 
 | ||||
| (local capabilities (let [cmp_nvim_lsp (require :cmp_nvim_lsp)] | ||||
|                       (cmp_nvim_lsp.default_capabilities))) | ||||
| 
 | ||||
| (local formatting-augroup (nvim.augroup :LspFormatting)) | ||||
| 
 | ||||
| (fn goimports [wait-ms] | ||||
|   (let [params (vim.lsp.util.make_range_params)  | ||||
|          result (do | ||||
|                  (tset params :context {:only [:source.organizeImports]}) | ||||
|                  (vim.lsp.buf_request_sync 0 :textDocument/codeAction params wait-ms))] | ||||
|        (each [_ res (pairs (or result {}))] | ||||
|          (each [_ r (pairs (or res.result {}))] | ||||
|            (if r.edit | ||||
|                (vim.lsp.util.apply_workspace_edit r.edit "utf-16") | ||||
|                (vim.lsp.buf.execute_command r.command)))) | ||||
|    (vim.lsp.buf.format))) | ||||
| 
 | ||||
| (fn on-attach [client bufnr] | ||||
|               (let [filetype (vim.api.nvim_buf_get_option 0 "filetype")] | ||||
|                 (if (client.supports_method "textDocument/formatting") | ||||
|                     (do (nvim.autocmd "BufWritePre" | ||||
|                                       {:group formatting-augroup | ||||
|                                        :buffer bufnr | ||||
|                                        :callback (fn [_] (if (= filetype "go") | ||||
|                                                              (goimports 2000) | ||||
|                                                              (vim.lsp.buf.format {:bufnr bufnr})))}))))) | ||||
| 
 | ||||
| (lspconfig.gopls.setup  | ||||
|   {:capabilities capabilities | ||||
|    :codelens {:generate true :gc_details true} | ||||
|    :semanticTokens true | ||||
|    :flags {:debounce_text_changes 200} | ||||
|    :analyses {:unusedparams true | ||||
|               :unusedvariables true | ||||
|               :unusedwrite true | ||||
|               :nilness true | ||||
|               :unusedwrite true | ||||
|               :useany true} | ||||
|    :completeUnimported true | ||||
|    :staticcheck true | ||||
|    :experimentalPostfixCompletions true | ||||
|    :hints {:constantValues true | ||||
|            :functionTypeParameters true    | ||||
|            :assignVariablesTypes true | ||||
|            :compositeLiteralTypes true | ||||
|            :compositeLiteralFields true | ||||
|            :parameterNames true | ||||
|            :rangeVariableTypes true} | ||||
|    :on_attach on-attach}) | ||||
| 
 | ||||
| (local lsps [:nil_ls :terraform_lsp :fennel_ls :tsserver :starbin]) | ||||
| (each [index lsp (ipairs lsps)] | ||||
|   ((. (. lspconfig lsp) :setup) {})) | ||||
| 
 | ||||
| ; null-ls | ||||
| (let [null-ls (require :null-ls)] | ||||
|   (null-ls.setup {:sources [; TODO fix these | ||||
|                             ;null-ls.builtins.diagnostics.shellcheck | ||||
|                             null-ls.builtins.diagnostics.commitlint]})) | ||||
|                             ;null-ls.builtins.diagnostics.jsonlint]})) | ||||
|                             ;(null-ls.builtins.diagnostics.proselint.with {:filetypes ["vimwiki" "mail"]})]})) | ||||
| 
 | ||||
							
								
								
									
										135
									
								
								home/profiles/nvim/config/fnl/conf/mappings.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								home/profiles/nvim/config/fnl/conf/mappings.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,135 @@ | |||
| (local nvim (require :lib/nvim)) | ||||
| (import-macros {: do-req } :lib/macros) | ||||
| 
 | ||||
| (local wk (require :which-key)) | ||||
| 
 | ||||
| ;; Convenient way to indent stuff in visual mode | ||||
| (nvim.keymap [:v] "<" "<gv" {:noremap true}) | ||||
| (nvim.keymap [:v] ">" ">gv" {:noremap true}) | ||||
| (nvim.keymap [:n] "<space>" "<NOP>" {:noremap true :silent true}) | ||||
| ;; Convenient way to move stuff in visual mode | ||||
| (nvim.keymap [:v] "J" ":m '>+1<CR>gv=gv" {:noremap true}) | ||||
| (nvim.keymap [:v] "K" ":m '>-2<CR>gv=gv" {:noremap true}) | ||||
| ;; Convientent screen shifting  | ||||
| (nvim.keymap [:n] "n" "nzzzv" {:noremap true}) | ||||
| (nvim.keymap [:n] "N" "Nzzzv" {:noremap true}) | ||||
| (nvim.keymap [:n] "J" "mzJ'z" {:noremap true}) | ||||
| ; Fix Y | ||||
| (nvim.keymap [:n] "Y" "y$") | ||||
| ; Unmap Q | ||||
| (nvim.keymap [] "Q" "<Nop>") | ||||
| 
 | ||||
| ; FTerm | ||||
| (vim.api.nvim_create_user_command "FTermToggle" (fn [_]  | ||||
|                                                   ((-> (require :FTerm)  | ||||
|                                                       (. :toggle))))  | ||||
|                                   {:bang true}) | ||||
| (nvim.keymap [:t] "<TAB>" "<cmd>:FTermToggle<CR>") | ||||
| (nvim.keymap [:n] "<TAB>" "<cmd>:FTermToggle<CR>" {:noremap true}) | ||||
| 
 | ||||
| ; Buffer Movement | ||||
| (nvim.keymap [:n] "gT" ":BufferPrevious<CR>" {:silent true :noremap true})  | ||||
| (nvim.keymap [:n] "gt" ":BufferNext<CR>" {:silent true :noremap true})  | ||||
| (nvim.keymap [:n] "gj" ":BufferPick<CR>" {:silent true :noremap true})  | ||||
| (nvim.keymap [:n] "gb" ":Telescope buffers<CR>" {:silent true :noremap true})  | ||||
| (nvim.keymap [:n] "gq" ":BufferClose<CR>" {:silent true :noremap true})  | ||||
| 
 | ||||
| ; Flash | ||||
| (vim.api.nvim_create_user_command "Flash" (fn [_] (do-req :flash :jump)) {}) | ||||
| (vim.api.nvim_create_user_command "FlashTreesitter" (fn [] (do-req :flash :treesitter)) {}) | ||||
| (nvim.keymap [:n] "f" "<cmd>Flash<CR>")  | ||||
| (nvim.keymap [:n] "s" "<cmd>FlashTreesitter<CR>")  | ||||
| 
 | ||||
| (local | ||||
|   normal-map-leader | ||||
|   {"t" [":Neotree toggle<CR>" | ||||
|         "Toggle neo-tree"] | ||||
|    "w" ["<cmd>:w<cr>" | ||||
|         "Write file"] | ||||
|    "q" ["<cmd>:q<cr>" | ||||
|         "Quit"] | ||||
|    "r" [":RainbowParenthesesToggleAll<CR>" | ||||
|         "Toggle Rainbow Parens"] | ||||
|    "u" [":UndotreeToggle<CR>" | ||||
|         "Toggle Undo Tree"] | ||||
|    ; Telescope  | ||||
|    "f" {:name "Files" | ||||
|         :f ["<cmd>Telescope find_files<cr>" | ||||
|              "Find Files (in Telescope)"] | ||||
|         :g ["<cmd>Telescope live_grep<cr>" | ||||
|              "Find Grep (in Telescope)"] | ||||
|         :b ["<cmd>Telescope buffers<cr>" | ||||
|              "Find Buffers"] | ||||
|         :h ["<cmd>Telescope help_tags<cr>" | ||||
|              "Find Help"] | ||||
|         :t ["<cmd>Telescope tags<cr>" | ||||
|             "Find Tags"] | ||||
|         :r ["<cmd>Telescope oldfiles<CR>" | ||||
|             "Recent files"]} | ||||
|    ; Git | ||||
|    "g" {:name "Git" | ||||
|          "s" [":G<CR>" | ||||
|               "Git Status"] | ||||
|          "f" [":G fetch --all<cr>" | ||||
|               "Git Fetch"] | ||||
|          "b" [":GBranches<cr>" | ||||
|               "Git Branch"] | ||||
|          "p" [":Git! push<cr>" | ||||
|               "Git Push"] | ||||
|          "d" [":GDiff<cr>" | ||||
|               "Git Diff"] | ||||
|          "h" ["" | ||||
|               "Commit Hunk under Cursor"]} | ||||
|          ; For handling merges | ||||
|          ;     nmap <leader>gl :diffget //3<CR> | ||||
|          ;     nmap <leader>gh :diffget //2<CR> | ||||
|          ;     nnoremap <leader>gc :G commit -v -q %:p<CR> | ||||
|    ; Buffers | ||||
|    "b" {:name "Buffer" | ||||
|         :b ["<cmd>:Telescope buffers<CR>" | ||||
|             "Buffer List"] | ||||
|         :q ["<cmd>:BufferClose<CR>" | ||||
|              "Buffer Quit"] | ||||
|         :n ["<cmd>:BufferNext<CR>" | ||||
|             "Buffer Next"] | ||||
|         :N ["<cmd>:tabp<CR>" | ||||
|             "Buffer Previous"] | ||||
|         :p ["<cmd>:tabp<CR>" | ||||
|             "Buffer Previous"]} | ||||
|    ; Search | ||||
|    "s" {:name "Search" | ||||
|         :b ["<cmd>Telescope current_buffer_fuzzy_find<CR>" | ||||
|             "Search in current buffer"] | ||||
|         :s ["<cmd>Telescope live_grep<CR>" | ||||
|             "Search in project"] | ||||
|         :t ["<cmd>TodoTelescope<CR>" | ||||
|             "Search TODOs in project"] | ||||
|         :c ["<cmd>let @/ = \"\"<CR>:echo 'Search highlight cleared'<CR>" | ||||
|             "Clear search"]} | ||||
|    ; Code | ||||
|    "c" {:name "Code" | ||||
|         :d [":lua vim.lsp.buf.definition()<CR>" | ||||
|             "Go to Definition"] | ||||
|         :i [":lua require('telescope.builtin').lsp_implementation()<CR>" | ||||
|             "Implementation"] | ||||
|         :s [":lua vim.lsp.buf.signature_help()<CR>" | ||||
|             "Signature Help"] | ||||
|         :r [":Lspsaga rename<CR>" | ||||
|             "Rename Symbol"] | ||||
|         :h [":Lspsaga hover_doc<CR>" | ||||
|             "Hover doc"] | ||||
|         :o ["<cmd>AerialToggle!<CR>" | ||||
|             "Outline"] | ||||
|         :t [":LspDiagnostics 0" | ||||
|             "Find Errors in Buffer"]} | ||||
|    ; Kitaab | ||||
|    "z" {:name "Kitaab" | ||||
|         :n [":ZettelNew<CR>" | ||||
|             "Zettel New"]} | ||||
|    "v" {:name "Tabs" | ||||
|         :v [":vnew<CR>" | ||||
|             "Vertical Split"] | ||||
|         :h [":new<CR>" | ||||
|             "Horizontal Split"]}}) | ||||
| 
 | ||||
| (wk.register normal-map-leader {:prefix "<leader>"}) | ||||
							
								
								
									
										30
									
								
								home/profiles/nvim/config/fnl/conf/music.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								home/profiles/nvim/config/fnl/conf/music.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | |||
| (local nvim (require :lib/nvim)) | ||||
| 
 | ||||
| (nvim.g :tidal_target "terminal") | ||||
| (nvim.g :scnvim_snippet_format "luasnip") | ||||
| 
 | ||||
| ; -- supercollider | ||||
| ; local scnvim = require 'scnvim' | ||||
| ; local map = scnvim.map | ||||
| ; local map_expr = scnvim.map_expr | ||||
| ; scnvim.setup { | ||||
| ;   keymaps = { | ||||
| ;     ['<localleader>e'] = map('editor.send_line', {'i', 'n'}), | ||||
| ;     ['<localleader>s'] = map_expr('CmdPeriod.run', {'i', 'n'}), | ||||
| ;     ['<localleader>t'] = { | ||||
| ;       map('editor.send_block', {'i', 'n'}), | ||||
| ;       map('editor.send_selection', 'x'), | ||||
| ;     }, | ||||
| ;     ['<CR>'] = map('postwin.toggle'), | ||||
| ;     ['<M-CR>'] = map('postwin.toggle', 'i'), | ||||
| ;     ['<M-L>'] = map('postwin.clear', {'n', 'i'}), | ||||
| ;     ['<C-k>'] = map('signature.show', {'n', 'i'}), | ||||
| ;     ['<F12>'] = map('sclang.hard_stop', {'n', 'x', 'i'}), | ||||
| ;     ['<leader>st'] = map('sclang.start'), | ||||
| ;     ['<leader>sk'] = map('sclang.recompile'), | ||||
| ;     ['<F1>'] = map_expr('s.boot'), | ||||
| ;     ['<F2>'] = map_expr('s.meter'), | ||||
| ;   } | ||||
| ; }  | ||||
| ; -- You gotta run :SCNvimGenerateAssets for this first | ||||
| ; -- require("luasnip").add_snippets("supercollider", require("scnvim/utils").get_snippets()) | ||||
							
								
								
									
										45
									
								
								home/profiles/nvim/config/fnl/conf/plugins.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								home/profiles/nvim/config/fnl/conf/plugins.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| (local nvim (require :lib/nvim)) | ||||
| (local navic (require :nvim-navic)) | ||||
| 
 | ||||
| (import-macros {: do-req } :lib/macros) | ||||
| 
 | ||||
| (let  [lualine (require :lualine)] | ||||
|   (lualine.setup {:options {:theme "ayu"} | ||||
|                   :sections {; :lualine_c [:filename (fn [] | ||||
|                              ;                         (let [lspsaga (require :lspsaga.symbol.winbar)] | ||||
|                              ;                           (lspsaga.get_bar)) | ||||
|                              :lualine_y [(fn [] | ||||
|                                            (var msg "No Active LSP") | ||||
|                                            (let [buf_ft (vim.api.nvim_buf_get_option 0 "filetype") | ||||
|                                                  clients (vim.lsp.get_active_clients)] | ||||
|                                              (each [_ client (ipairs clients)] | ||||
|                                                (let [filetypes (. client :config :filetypes)] | ||||
|                                                  (if (and filetypes (vim.fn.index filetypes buf_ft)) (set msg client.name)))) | ||||
|                                              msg))] | ||||
|                              :lualine_x [:filetype]}})) | ||||
| 
 | ||||
| (require :neo-tree) | ||||
| (do-req :gitsigns :setup) | ||||
| (do-req :marks :setup) | ||||
| ; (do-req :mini.pairs :setup) | ||||
| (do-req :mini.diff :setup) | ||||
| (do-req :mini.ai :setup) | ||||
| (do-req :mini.surround :setup {:mappings {:add "ys" | ||||
|                                           :delete "ds" | ||||
|                                           :replace "cs"}}) | ||||
| (do-req :todo-comments :setup) | ||||
| (do-req :ibl :setup {:scope {:exclude {:language ["fennel" "clojure" "janet"]}}}) | ||||
| 
 | ||||
| (do-req :nvim-treesitter.configs :setup {:highlight {:enable true} | ||||
|                                          :textobjects {:enable true} | ||||
|                                          :indent {:enable true}}) | ||||
| (do-req :treesitter-context :setup {:max_lines 5}) | ||||
| 
 | ||||
| (do-req :auto-session :setup {:log_level "info" | ||||
|                               :auto_session_suppress_dirs ["~/"]}) | ||||
| (nvim.opt :sessionoptions "blank,buffers,curdir,folds,help,tabpages,winsize,winpos,terminal") | ||||
| 
 | ||||
| (do-req :aerial :setup {}) ;{:on_attach (fn [bufnr]  | ||||
|                        ;              (do  | ||||
|                        ;                (vim.keymap.set "n" "{" "<cmd>AerialPrev<CR>" { :buffer bufnr}) | ||||
|                        ;                (vim.keymap.set "n" "}" "<cmd>AerialNext<CR>" { :buffer bufnr})) | ||||
							
								
								
									
										35
									
								
								home/profiles/nvim/config/fnl/conf/plugins/cmp.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								home/profiles/nvim/config/fnl/conf/plugins/cmp.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | |||
| (local cmp (require :cmp)) | ||||
| 
 | ||||
| (fn has-words-before [] | ||||
|   (let [(line col) (unpack (vim.api.nvim_win_get_cursor 0)) | ||||
|         cur-line (. (vim.api.nvim_buf_get_lines 0 | ||||
|                                           (- line 1) | ||||
|                                           line | ||||
|                                           true | ||||
|                       1))] | ||||
|     (and (not= col 0) | ||||
|          (= (: (: cur-line :sub col col) :match "%s") | ||||
|             nil)))) | ||||
| 
 | ||||
| (let [lspkind (require :lspkind)] | ||||
|   (cmp.setup {:formatting {:format (lspkind.cmp_format {:mode "symbol_text" | ||||
|                                                         :maxwidth 50}) | ||||
|                            :show_labelDetails true} | ||||
|               :snippet {:expand (fn [args] (vim.snippet.expand args.body))} | ||||
|               :sources [{:name "buffer"}      {:name "nvim_lsp"}  | ||||
|                         {:name "look"}        {:name "path"} | ||||
|                         {:name "calc"}        {:name "spell"} | ||||
|                         {:name "tags"}] | ||||
|               :mapping {"<C-d>" (cmp.mapping.scroll_docs -4) | ||||
|                         "<C-u>" (cmp.mapping.scroll_docs 4) | ||||
|                         "<C-g>" (cmp.mapping.close) | ||||
|                         "<CR>" (cmp.mapping.confirm {:select true}) | ||||
|                         "<Tab>" (cmp.mapping (fn [fallback] | ||||
|                                                (if (cmp.visible) (cmp.select_next_item) | ||||
|                                                    (has-words-before) (cmp.complete) | ||||
|                                                    (fallback)))  | ||||
|                                              [:i :s]) | ||||
|                         "<S-Tab>" (cmp.mapping (fn [fallback] | ||||
|                                                  (if (cmp.visible) (cmp.select_prev_item) | ||||
|                                                      (fallback)))  | ||||
|                                                [:i :s])}})) | ||||
							
								
								
									
										35
									
								
								home/profiles/nvim/config/fnl/conf/plugins/kitaab.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								home/profiles/nvim/config/fnl/conf/plugins/kitaab.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,35 @@ | |||
| ; Kitaab is why I'm so tied to vim.  | ||||
| ; If only I could find a nice notes editor...  | ||||
| 
 | ||||
| (local nvim (require :lib/nvim)) | ||||
| 
 | ||||
| (import-macros {: do-req } :lib/macros) | ||||
| 
 | ||||
| (nvim.g :vimwiki_list [{:path "~/kitaab/vimwiki"  | ||||
|                         :auto_tags 1  | ||||
|                         :auto_diary_index 1  | ||||
|                         :auto_generate_links 0  | ||||
|                         :nested_syntaxes {:python "python"  | ||||
|                                           :c++ "cpp"  | ||||
|                                           :nix "nix"  | ||||
|                                           :bash "sh"}}]) | ||||
| (nvim.g :zettel_format "%y%m%d-%H%M") | ||||
| 
 | ||||
| ;  Custom functions | ||||
| (fn update_date [] | ||||
|   (var written false) | ||||
|   (let [time (os.date "%Y-%m-%d %H:%M") | ||||
|         message (.. "%update " time) | ||||
|         lines (vim.api.nvim_buf_get_lines 0 0 4 false)] | ||||
|     (each [index line (ipairs lines)] | ||||
|       (if (and (= (length line) 0) (not written)) | ||||
|         (do  | ||||
|           (vim.api.nvim_buf_set_lines 0 (- index 1) index false [message ""]) | ||||
|           (set written true))) | ||||
|       (if (and (= index 4) (not written)) | ||||
|         (vim.api.nvim_buf_set_lines 0 3 index false [message]))))) | ||||
| 
 | ||||
| (vim.api.nvim_create_autocmd "BufWritePre" {:pattern ["*.wiki"] | ||||
|                                             :callback update_date}) | ||||
| 
 | ||||
| (do-req :hologram :setup {:auto_display false}) | ||||
							
								
								
									
										6
									
								
								home/profiles/nvim/config/fnl/lib/macros.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								home/profiles/nvim/config/fnl/lib/macros.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,6 @@ | |||
| (fn do-req [mod key ...] | ||||
|   `(let [name# (require ,mod) | ||||
|          fun# (. name# ,key)] | ||||
|      (fun# ,...))) | ||||
| 
 | ||||
| {: do-req} | ||||
							
								
								
									
										37
									
								
								home/profiles/nvim/config/fnl/lib/nvim.fnl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								home/profiles/nvim/config/fnl/lib/nvim.fnl
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | |||
| (fn autocmd [events opts] | ||||
|   "Create autocommand" | ||||
|   (vim.api.nvim_create_autocmd events opts)) | ||||
| 
 | ||||
| (fn clear-autocmds [opts] | ||||
|   "Clear autocommands" | ||||
|   (vim.api.nvim_clear_autocmds opts)) | ||||
| 
 | ||||
| (fn augroup [name ?opts] | ||||
|   "Create autocommand group" | ||||
|   (vim.api.nvim_create_augroup name (or ?opts {}))) | ||||
| 
 | ||||
| (fn keymap [mode lhs rhs ?opts] | ||||
|   "Sets a global mapping for the given mode. | ||||
|   Ex: `(keymap [:n :i] ...)`" | ||||
|   (let [string-mode (table.concat mode)] | ||||
|     (vim.api.nvim_set_keymap string-mode lhs rhs (or ?opts {})))) | ||||
| 
 | ||||
| (fn opt [key value] | ||||
|   "Set a vim option" | ||||
|   (tset vim.opt key value)) | ||||
| 
 | ||||
| (fn g [key value] | ||||
|   "Set a vim global" | ||||
|   (tset vim.g key value)) | ||||
| 
 | ||||
| (fn colorscheme [name] | ||||
|   "Set the current colorscheme" | ||||
|   (vim.cmd (.. "colorscheme " name))) | ||||
| 
 | ||||
| {: autocmd | ||||
|  : clear-autocmds | ||||
|  : augroup | ||||
|  : keymap | ||||
|  : opt | ||||
|  : g | ||||
|  : colorscheme} | ||||
							
								
								
									
										26
									
								
								home/profiles/nvim/config/init.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								home/profiles/nvim/config/init.lua
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,26 @@ | |||
| if pcall(require, "hotpot") then | ||||
|   -- Setup hotpot.nvim | ||||
|   require("hotpot").setup({ | ||||
|     provide_require_fennel = true, | ||||
|     -- show fennel compiler results in when editing fennel files | ||||
|     enable_hotpot_diagnostics = true, | ||||
|     compiler = { | ||||
|       -- options passed to fennel.compile for modules, defaults to {} | ||||
|       modules = { | ||||
|         -- not default but recommended, align lua lines with fnl source | ||||
|         -- for more debuggable errors, but less readable lua. | ||||
|         correlate = true | ||||
|       }, | ||||
|       macros = { | ||||
|         -- allow macros to access vim global, needed for nyoom modules | ||||
|         env = "_COMPILER", | ||||
|         compilerEnv = _G, | ||||
|         allowGlobals = true, | ||||
|       }, | ||||
|     } | ||||
|   }) | ||||
|   -- Import neovim configuration | ||||
|   require("conf") | ||||
| else | ||||
|   print("Unable to require hotpot") | ||||
| end | ||||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1,8 +0,0 @@ | |||
| tt.* | ||||
| .tests | ||||
| doc/tags | ||||
| debug | ||||
| .repro | ||||
| foo.* | ||||
| *.log | ||||
| data | ||||
|  | @ -1,15 +0,0 @@ | |||
| { | ||||
|   "neodev": { | ||||
|     "library": { | ||||
|       "enabled": true, | ||||
|       "plugins": true | ||||
|     } | ||||
|   }, | ||||
|   "neoconf": { | ||||
|     "plugins": { | ||||
|       "lua_ls": { | ||||
|         "enabled": true | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | @ -1,201 +0,0 @@ | |||
|                                  Apache License | ||||
|                            Version 2.0, January 2004 | ||||
|                         http://www.apache.org/licenses/ | ||||
| 
 | ||||
|    TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION | ||||
| 
 | ||||
|    1. Definitions. | ||||
| 
 | ||||
|       "License" shall mean the terms and conditions for use, reproduction, | ||||
|       and distribution as defined by Sections 1 through 9 of this document. | ||||
| 
 | ||||
|       "Licensor" shall mean the copyright owner or entity authorized by | ||||
|       the copyright owner that is granting the License. | ||||
| 
 | ||||
|       "Legal Entity" shall mean the union of the acting entity and all | ||||
|       other entities that control, are controlled by, or are under common | ||||
|       control with that entity. For the purposes of this definition, | ||||
|       "control" means (i) the power, direct or indirect, to cause the | ||||
|       direction or management of such entity, whether by contract or | ||||
|       otherwise, or (ii) ownership of fifty percent (50%) or more of the | ||||
|       outstanding shares, or (iii) beneficial ownership of such entity. | ||||
| 
 | ||||
|       "You" (or "Your") shall mean an individual or Legal Entity | ||||
|       exercising permissions granted by this License. | ||||
| 
 | ||||
|       "Source" form shall mean the preferred form for making modifications, | ||||
|       including but not limited to software source code, documentation | ||||
|       source, and configuration files. | ||||
| 
 | ||||
|       "Object" form shall mean any form resulting from mechanical | ||||
|       transformation or translation of a Source form, including but | ||||
|       not limited to compiled object code, generated documentation, | ||||
|       and conversions to other media types. | ||||
| 
 | ||||
|       "Work" shall mean the work of authorship, whether in Source or | ||||
|       Object form, made available under the License, as indicated by a | ||||
|       copyright notice that is included in or attached to the work | ||||
|       (an example is provided in the Appendix below). | ||||
| 
 | ||||
|       "Derivative Works" shall mean any work, whether in Source or Object | ||||
|       form, that is based on (or derived from) the Work and for which the | ||||
|       editorial revisions, annotations, elaborations, or other modifications | ||||
|       represent, as a whole, an original work of authorship. For the purposes | ||||
|       of this License, Derivative Works shall not include works that remain | ||||
|       separable from, or merely link (or bind by name) to the interfaces of, | ||||
|       the Work and Derivative Works thereof. | ||||
| 
 | ||||
|       "Contribution" shall mean any work of authorship, including | ||||
|       the original version of the Work and any modifications or additions | ||||
|       to that Work or Derivative Works thereof, that is intentionally | ||||
|       submitted to Licensor for inclusion in the Work by the copyright owner | ||||
|       or by an individual or Legal Entity authorized to submit on behalf of | ||||
|       the copyright owner. For the purposes of this definition, "submitted" | ||||
|       means any form of electronic, verbal, or written communication sent | ||||
|       to the Licensor or its representatives, including but not limited to | ||||
|       communication on electronic mailing lists, source code control systems, | ||||
|       and issue tracking systems that are managed by, or on behalf of, the | ||||
|       Licensor for the purpose of discussing and improving the Work, but | ||||
|       excluding communication that is conspicuously marked or otherwise | ||||
|       designated in writing by the copyright owner as "Not a Contribution." | ||||
| 
 | ||||
|       "Contributor" shall mean Licensor and any individual or Legal Entity | ||||
|       on behalf of whom a Contribution has been received by Licensor and | ||||
|       subsequently incorporated within the Work. | ||||
| 
 | ||||
|    2. Grant of Copyright License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       copyright license to reproduce, prepare Derivative Works of, | ||||
|       publicly display, publicly perform, sublicense, and distribute the | ||||
|       Work and such Derivative Works in Source or Object form. | ||||
| 
 | ||||
|    3. Grant of Patent License. Subject to the terms and conditions of | ||||
|       this License, each Contributor hereby grants to You a perpetual, | ||||
|       worldwide, non-exclusive, no-charge, royalty-free, irrevocable | ||||
|       (except as stated in this section) patent license to make, have made, | ||||
|       use, offer to sell, sell, import, and otherwise transfer the Work, | ||||
|       where such license applies only to those patent claims licensable | ||||
|       by such Contributor that are necessarily infringed by their | ||||
|       Contribution(s) alone or by combination of their Contribution(s) | ||||
|       with the Work to which such Contribution(s) was submitted. If You | ||||
|       institute patent litigation against any entity (including a | ||||
|       cross-claim or counterclaim in a lawsuit) alleging that the Work | ||||
|       or a Contribution incorporated within the Work constitutes direct | ||||
|       or contributory patent infringement, then any patent licenses | ||||
|       granted to You under this License for that Work shall terminate | ||||
|       as of the date such litigation is filed. | ||||
| 
 | ||||
|    4. Redistribution. You may reproduce and distribute copies of the | ||||
|       Work or Derivative Works thereof in any medium, with or without | ||||
|       modifications, and in Source or Object form, provided that You | ||||
|       meet the following conditions: | ||||
| 
 | ||||
|       (a) You must give any other recipients of the Work or | ||||
|           Derivative Works a copy of this License; and | ||||
| 
 | ||||
|       (b) You must cause any modified files to carry prominent notices | ||||
|           stating that You changed the files; and | ||||
| 
 | ||||
|       (c) You must retain, in the Source form of any Derivative Works | ||||
|           that You distribute, all copyright, patent, trademark, and | ||||
|           attribution notices from the Source form of the Work, | ||||
|           excluding those notices that do not pertain to any part of | ||||
|           the Derivative Works; and | ||||
| 
 | ||||
|       (d) If the Work includes a "NOTICE" text file as part of its | ||||
|           distribution, then any Derivative Works that You distribute must | ||||
|           include a readable copy of the attribution notices contained | ||||
|           within such NOTICE file, excluding those notices that do not | ||||
|           pertain to any part of the Derivative Works, in at least one | ||||
|           of the following places: within a NOTICE text file distributed | ||||
|           as part of the Derivative Works; within the Source form or | ||||
|           documentation, if provided along with the Derivative Works; or, | ||||
|           within a display generated by the Derivative Works, if and | ||||
|           wherever such third-party notices normally appear. The contents | ||||
|           of the NOTICE file are for informational purposes only and | ||||
|           do not modify the License. You may add Your own attribution | ||||
|           notices within Derivative Works that You distribute, alongside | ||||
|           or as an addendum to the NOTICE text from the Work, provided | ||||
|           that such additional attribution notices cannot be construed | ||||
|           as modifying the License. | ||||
| 
 | ||||
|       You may add Your own copyright statement to Your modifications and | ||||
|       may provide additional or different license terms and conditions | ||||
|       for use, reproduction, or distribution of Your modifications, or | ||||
|       for any such Derivative Works as a whole, provided Your use, | ||||
|       reproduction, and distribution of the Work otherwise complies with | ||||
|       the conditions stated in this License. | ||||
| 
 | ||||
|    5. Submission of Contributions. Unless You explicitly state otherwise, | ||||
|       any Contribution intentionally submitted for inclusion in the Work | ||||
|       by You to the Licensor shall be under the terms and conditions of | ||||
|       this License, without any additional terms or conditions. | ||||
|       Notwithstanding the above, nothing herein shall supersede or modify | ||||
|       the terms of any separate license agreement you may have executed | ||||
|       with Licensor regarding such Contributions. | ||||
| 
 | ||||
|    6. Trademarks. This License does not grant permission to use the trade | ||||
|       names, trademarks, service marks, or product names of the Licensor, | ||||
|       except as required for reasonable and customary use in describing the | ||||
|       origin of the Work and reproducing the content of the NOTICE file. | ||||
| 
 | ||||
|    7. Disclaimer of Warranty. Unless required by applicable law or | ||||
|       agreed to in writing, Licensor provides the Work (and each | ||||
|       Contributor provides its Contributions) on an "AS IS" BASIS, | ||||
|       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or | ||||
|       implied, including, without limitation, any warranties or conditions | ||||
|       of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A | ||||
|       PARTICULAR PURPOSE. You are solely responsible for determining the | ||||
|       appropriateness of using or redistributing the Work and assume any | ||||
|       risks associated with Your exercise of permissions under this License. | ||||
| 
 | ||||
|    8. Limitation of Liability. In no event and under no legal theory, | ||||
|       whether in tort (including negligence), contract, or otherwise, | ||||
|       unless required by applicable law (such as deliberate and grossly | ||||
|       negligent acts) or agreed to in writing, shall any Contributor be | ||||
|       liable to You for damages, including any direct, indirect, special, | ||||
|       incidental, or consequential damages of any character arising as a | ||||
|       result of this License or out of the use or inability to use the | ||||
|       Work (including but not limited to damages for loss of goodwill, | ||||
|       work stoppage, computer failure or malfunction, or any and all | ||||
|       other commercial damages or losses), even if such Contributor | ||||
|       has been advised of the possibility of such damages. | ||||
| 
 | ||||
|    9. Accepting Warranty or Additional Liability. While redistributing | ||||
|       the Work or Derivative Works thereof, You may choose to offer, | ||||
|       and charge a fee for, acceptance of support, warranty, indemnity, | ||||
|       or other liability obligations and/or rights consistent with this | ||||
|       License. However, in accepting such obligations, You may act only | ||||
|       on Your own behalf and on Your sole responsibility, not on behalf | ||||
|       of any other Contributor, and only if You agree to indemnify, | ||||
|       defend, and hold each Contributor harmless for any liability | ||||
|       incurred by, or claims asserted against, such Contributor by reason | ||||
|       of your accepting any such warranty or additional liability. | ||||
| 
 | ||||
|    END OF TERMS AND CONDITIONS | ||||
| 
 | ||||
|    APPENDIX: How to apply the Apache License to your work. | ||||
| 
 | ||||
|       To apply the Apache License to your work, attach the following | ||||
|       boilerplate notice, with the fields enclosed by brackets "[]" | ||||
|       replaced with your own identifying information. (Don't include | ||||
|       the brackets!)  The text should be enclosed in the appropriate | ||||
|       comment syntax for the file format. We also recommend that a | ||||
|       file or class name and description of purpose be included on the | ||||
|       same "printed page" as the copyright notice for easier | ||||
|       identification within third-party archives. | ||||
| 
 | ||||
|    Copyright [yyyy] [name of copyright owner] | ||||
| 
 | ||||
|    Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|    you may not use this file except in compliance with the License. | ||||
|    You may obtain a copy of the License at | ||||
| 
 | ||||
|        http://www.apache.org/licenses/LICENSE-2.0 | ||||
| 
 | ||||
|    Unless required by applicable law or agreed to in writing, software | ||||
|    distributed under the License is distributed on an "AS IS" BASIS, | ||||
|    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|    See the License for the specific language governing permissions and | ||||
|    limitations under the License. | ||||
|  | @ -1,4 +0,0 @@ | |||
| # 💤 LazyVim | ||||
| 
 | ||||
| A starter template for [LazyVim](https://github.com/LazyVim/LazyVim). | ||||
| Refer to the [documentation](https://lazyvim.github.io/installation) to get started. | ||||
|  | @ -1,2 +0,0 @@ | |||
| -- bootstrap lazy.nvim, LazyVim and your plugins | ||||
| require("config.lazy") | ||||
|  | @ -1,60 +0,0 @@ | |||
| { | ||||
|   "LazyVim": { "branch": "main", "commit": "12818a6cb499456f4903c5d8e68af43753ebc869" }, | ||||
|   "SchemaStore.nvim": { "branch": "main", "commit": "54a2cf0105166d5a48172e81f12a2bf10cfc8b2c" }, | ||||
|   "aerial.nvim": { "branch": "master", "commit": "e585934fef8d253dbc5655cff3deb3444e064e6c" }, | ||||
|   "bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" }, | ||||
|   "catppuccin": { "branch": "main", "commit": "4fd72a9ab64b393c2c22b168508fd244877fec96" }, | ||||
|   "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, | ||||
|   "cmp-emoji": { "branch": "main", "commit": "e8398e2adf512a03bb4e1728ca017ffeac670a9f" }, | ||||
|   "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, | ||||
|   "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, | ||||
|   "conform.nvim": { "branch": "master", "commit": "62eba813b7501b39612146cbf29cd07f1d4ac29c" }, | ||||
|   "dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" }, | ||||
|   "dressing.nvim": { "branch": "master", "commit": "c5775a888adbc50652cb370073fcfec963eca93e" }, | ||||
|   "flash.nvim": { "branch": "main", "commit": "34c7be146a91fec3555c33fe89c7d643f6ef5cf1" }, | ||||
|   "friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" }, | ||||
|   "gitsigns.nvim": { "branch": "main", "commit": "562dc47189ad3c8696dbf460d38603a74d544849" }, | ||||
|   "grug-far.nvim": { "branch": "main", "commit": "ebab68b2150079732ae8074eefb261a124824139" }, | ||||
|   "indent-blankline.nvim": { "branch": "master", "commit": "db926997af951da38e5004ec7b9fbdc480b48f5d" }, | ||||
|   "lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" }, | ||||
|   "lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" }, | ||||
|   "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" }, | ||||
|   "luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" }, | ||||
|   "mason-lspconfig.nvim": { "branch": "main", "commit": "482350b050bd413931c2cdd4857443c3da7d57cb" }, | ||||
|   "mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" }, | ||||
|   "mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" }, | ||||
|   "mini.icons": { "branch": "main", "commit": "12e7b5d47bfc1b4c5ba4278fb49ec9100138df14" }, | ||||
|   "mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" }, | ||||
|   "mini.surround": { "branch": "main", "commit": "d8913ed23be0a1a4585ae34414821cc343a46174" }, | ||||
|   "neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" }, | ||||
|   "neovim-ayu": { "branch": "master", "commit": "6993189dd0ee38299879a1a0064718a8392e8713" }, | ||||
|   "noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" }, | ||||
|   "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, | ||||
|   "nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" }, | ||||
|   "nvim-lint": { "branch": "master", "commit": "debabca63c0905b59ce596a55a8e33eafdf66342" }, | ||||
|   "nvim-lspconfig": { "branch": "master", "commit": "911167921d49cd5c1c9b2436031d0da3945e787f" }, | ||||
|   "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, | ||||
|   "nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" }, | ||||
|   "nvim-treesitter": { "branch": "master", "commit": "04401b5dd17c3419dae5141677bd256f52d54733" }, | ||||
|   "nvim-treesitter-textobjects": { "branch": "master", "commit": "41e3abf6bfd9a9a681eb1f788bdeba91c9004b2b" }, | ||||
|   "nvim-ts-autotag": { "branch": "main", "commit": "0cb76eea80e9c73b88880f0ca78fbd04c5bdcac7" }, | ||||
|   "outline.nvim": { "branch": "main", "commit": "02a18194b3d2adfb537dd1a9f21d1fc29dd31382" }, | ||||
|   "persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" }, | ||||
|   "plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" }, | ||||
|   "sg.nvim": { "branch": "master", "commit": "8bdd4d19da2268072708d5fe18fda9c23e16509d" }, | ||||
|   "tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" }, | ||||
|   "telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" }, | ||||
|   "telescope-terraform-doc.nvim": { "branch": "main", "commit": "7ac642765615e6ff164ecfc82eb278aa68d06840" }, | ||||
|   "telescope-terraform.nvim": { "branch": "main", "commit": "072c97023797ca1a874668aaa6ae0b74425335df" }, | ||||
|   "telescope.nvim": { "branch": "master", "commit": "5972437de807c3bc101565175da66a1aa4f8707a" }, | ||||
|   "todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" }, | ||||
|   "tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" }, | ||||
|   "trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" }, | ||||
|   "ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" }, | ||||
|   "vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" }, | ||||
|   "vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" }, | ||||
|   "vim-dadbod-ui": { "branch": "master", "commit": "0f51d8de368c8c6220973e8acd156d17da746f4c" }, | ||||
|   "vim-fugitive": { "branch": "master", "commit": "0444df68cd1cdabc7453d6bd84099458327e5513" }, | ||||
|   "vim-helm": { "branch": "master", "commit": "ae1ebc160d2b9b90108477ab10df7a4fc501e358" }, | ||||
|   "which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" } | ||||
| } | ||||
|  | @ -1,19 +0,0 @@ | |||
| { | ||||
|   "extras": [ | ||||
|     "lazyvim.plugins.extras.editor.aerial", | ||||
|     "lazyvim.plugins.extras.editor.outline", | ||||
|     "lazyvim.plugins.extras.lang.go", | ||||
|     "lazyvim.plugins.extras.lang.helm", | ||||
|     "lazyvim.plugins.extras.lang.json", | ||||
|     "lazyvim.plugins.extras.lang.nix", | ||||
|     "lazyvim.plugins.extras.lang.sql", | ||||
|     "lazyvim.plugins.extras.lang.svelte", | ||||
|     "lazyvim.plugins.extras.lang.tailwind", | ||||
|     "lazyvim.plugins.extras.lang.terraform", | ||||
|     "lazyvim.plugins.extras.lang.typescript" | ||||
|   ], | ||||
|   "news": { | ||||
|     "NEWS.md": "6520" | ||||
|   }, | ||||
|   "version": 6 | ||||
| } | ||||
|  | @ -1,68 +0,0 @@ | |||
| -- Autocmds are automatically loaded on the VeryLazy event | ||||
| -- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua | ||||
| -- Add any additional autocmds here | ||||
| 
 | ||||
| -- Aggressive fugitive auto-reload with polling | ||||
| local function setup_fugitive_aggressive_reload() | ||||
|   local timer = nil | ||||
|    | ||||
|   local function refresh_fugitive() | ||||
|     -- Check all files for changes | ||||
|     vim.cmd("silent! checktime") | ||||
|      | ||||
|     -- Force refresh any open fugitive buffers | ||||
|     for _, win in ipairs(vim.api.nvim_list_wins()) do | ||||
|       local buf = vim.api.nvim_win_get_buf(win) | ||||
|       if vim.api.nvim_buf_get_option(buf, "filetype") == "fugitive" then | ||||
|         vim.api.nvim_buf_call(buf, function() | ||||
|           pcall(vim.cmd, "silent! edit") | ||||
|         end) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   local function start_polling() | ||||
|     if timer then vim.fn.timer_stop(timer) end | ||||
|     -- Poll every 2 seconds | ||||
|     timer = vim.fn.timer_start(2000, function()  | ||||
|       refresh_fugitive()  | ||||
|     end, { ["repeat"] = -1 }) | ||||
|   end | ||||
|    | ||||
|   local function stop_polling() | ||||
|     if timer then  | ||||
|       vim.fn.timer_stop(timer) | ||||
|       timer = nil | ||||
|     end | ||||
|   end | ||||
|    | ||||
|   local augroup = vim.api.nvim_create_augroup("FugitiveAggressiveReload", { clear = true }) | ||||
|    | ||||
|   -- Start polling when fugitive buffer opens | ||||
|   vim.api.nvim_create_autocmd("FileType", { | ||||
|     group = augroup, | ||||
|     pattern = "fugitive", | ||||
|     callback = start_polling, | ||||
|   }) | ||||
|    | ||||
|   -- Stop polling when no fugitive buffers are open | ||||
|   vim.api.nvim_create_autocmd("BufDelete", { | ||||
|     group = augroup, | ||||
|     callback = function() | ||||
|       -- Check if any fugitive buffers remain | ||||
|       local has_fugitive = false | ||||
|       for _, buf in ipairs(vim.api.nvim_list_bufs()) do | ||||
|         if vim.api.nvim_buf_is_valid(buf) and vim.api.nvim_buf_get_option(buf, "filetype") == "fugitive" then | ||||
|           has_fugitive = true | ||||
|           break | ||||
|         end | ||||
|       end | ||||
|       if not has_fugitive then | ||||
|         stop_polling() | ||||
|       end | ||||
|     end, | ||||
|   }) | ||||
| end | ||||
| 
 | ||||
| -- Set up aggressive reload | ||||
| setup_fugitive_aggressive_reload() | ||||
|  | @ -1,21 +0,0 @@ | |||
| -- Keymaps are automatically loaded on the VeryLazy event | ||||
| -- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua | ||||
| -- Add any additional keymaps here | ||||
| local map = vim.keymap.set | ||||
| 
 | ||||
| -- Navigation | ||||
| map("n", "gt", "<cmd>bnext<cr>", { desc = "Next Buffer" }) | ||||
| map("n", "gT", "<cmd>bprevious<cr>", { desc = "Prev Buffer" }) | ||||
| map("n", "gq", "<cmd>bdelete<cr>", { desc = "Prev Buffer" }) | ||||
| map("n", "<leader>q", "<cmd>q<cr>", { desc = "Quit" }) | ||||
| 
 | ||||
| -- Git | ||||
| map("n", "<leader>gs", "<cmd>:G<cr>", { desc = "Git Status" }) | ||||
| map("n", "<leader>gb", "<cmd>Telescope git_branches<cr>", { desc = "Git Status" }) | ||||
| map("n", "<leader>gp", "<cmd>:G! push<cr>", { desc = "Git Status" }) | ||||
| 
 | ||||
| -- Telescope | ||||
| map("n", "<leader>fs", "<cmd>Telescope live_grep<cr>", { desc = "Telescop Live Grep" }) | ||||
| 
 | ||||
| -- Cody | ||||
| map("n", "<leader>co", "<cmd>CodyChat<cr>", { desc = "Cody Chat" }) | ||||
|  | @ -1,57 +0,0 @@ | |||
| local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" | ||||
| if not (vim.uv or vim.loop).fs_stat(lazypath) then | ||||
|   local lazyrepo = "https://github.com/folke/lazy.nvim.git" | ||||
|   local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) | ||||
|   if vim.v.shell_error ~= 0 then | ||||
|     vim.api.nvim_echo({ | ||||
|       { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, | ||||
|       { out, "WarningMsg" }, | ||||
|       { "\nPress any key to exit..." }, | ||||
|     }, true, {}) | ||||
|     vim.fn.getchar() | ||||
|     os.exit(1) | ||||
|   end | ||||
| end | ||||
| vim.opt.rtp:prepend(lazypath) | ||||
| 
 | ||||
| require("lazy").setup({ | ||||
|   spec = { | ||||
|     -- add LazyVim and import its plugins | ||||
|     { "LazyVim/LazyVim", import = "lazyvim.plugins" }, | ||||
|     -- import/override with your plugins | ||||
|     { import = "plugins" }, | ||||
|   }, | ||||
|   defaults = { | ||||
|     -- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup. | ||||
|     -- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default. | ||||
|     lazy = false, | ||||
|     -- It's recommended to leave version=false for now, since a lot the plugin that support versioning, | ||||
|     -- have outdated releases, which may break your Neovim install. | ||||
|     version = false, -- always use the latest git commit | ||||
|     -- version = "*", -- try installing the latest stable version for plugins that support semver | ||||
|   }, | ||||
|   install = { colorscheme = { "tokyonight", "habamax" } }, | ||||
|   checker = { | ||||
|     enabled = true, -- check for plugin updates periodically | ||||
|     notify = false, -- notify on update | ||||
|   }, -- automatically check for plugin updates | ||||
|   performance = { | ||||
|     rtp = { | ||||
|       -- disable some rtp plugins | ||||
|       disabled_plugins = { | ||||
|         "gzip", | ||||
|         -- "matchit", | ||||
|         -- "matchparen", | ||||
|         -- "netrwPlugin", | ||||
|         "tarPlugin", | ||||
|         "tohtml", | ||||
|         "tutor", | ||||
|         "zipPlugin", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| }) | ||||
| 
 | ||||
| require("sg").setup({}) | ||||
| -- require("ayu").setup({ mirage = true }) | ||||
| -- require("ayu").colorscheme() | ||||
|  | @ -1,6 +0,0 @@ | |||
| -- Options are automatically loaded before lazy.nvim startup | ||||
| -- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua | ||||
| -- Add any additional options here | ||||
| 
 | ||||
| -- Enable autoread to detect external file changes | ||||
| vim.opt.autoread = true | ||||
|  | @ -1,8 +0,0 @@ | |||
| return { | ||||
|   { | ||||
|     "sourcegraph/amp.nvim", | ||||
|     branch = "main",  | ||||
|     lazy = false, | ||||
|     opts = { auto_start = true, log_level = "info" }, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,13 +0,0 @@ | |||
| return { | ||||
|   { | ||||
|     "sourcegraph/sg.nvim", | ||||
|     dependencies = { "nvim-lua/plenary.nvim" }, | ||||
|   }, | ||||
|   { | ||||
|     "hrsh7th/nvim-cmp", | ||||
|     ---@param opts cmp.ConfigSchema | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.sources, { name = "cody" }) | ||||
|     end, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,50 +0,0 @@ | |||
| return { | ||||
|   { | ||||
|     "catppuccin/nvim", | ||||
|     lazy = true, | ||||
|     name = "catppuccin", | ||||
|     opts = { | ||||
|       integrations = { | ||||
|         aerial = true, | ||||
|         alpha = true, | ||||
|         cmp = true, | ||||
|         dashboard = true, | ||||
|         flash = true, | ||||
|         gitsigns = true, | ||||
|         headlines = true, | ||||
|         illuminate = true, | ||||
|         indent_blankline = { enabled = true }, | ||||
|         leap = true, | ||||
|         lsp_trouble = true, | ||||
|         mason = true, | ||||
|         markdown = true, | ||||
|         mini = true, | ||||
|         native_lsp = { | ||||
|           enabled = true, | ||||
|           underlines = { | ||||
|             errors = { "undercurl" }, | ||||
|             hints = { "undercurl" }, | ||||
|             warnings = { "undercurl" }, | ||||
|             information = { "undercurl" }, | ||||
|           }, | ||||
|         }, | ||||
|         navic = { enabled = true, custom_bg = "lualine" }, | ||||
|         neotest = true, | ||||
|         neotree = true, | ||||
|         noice = true, | ||||
|         semantic_tokens = true, | ||||
|         telescope = true, | ||||
|         treesitter = true, | ||||
|         treesitter_context = true, | ||||
|         which_key = true, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
|   { "Shatur/neovim-ayu", lazy = false }, | ||||
|   { | ||||
|     "LazyVim/LazyVim", | ||||
|     opts = { | ||||
|       colorscheme = "catppuccin-macchiato", | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,193 +0,0 @@ | |||
| -- since this is just an example spec, don't actually load anything here and return an empty spec | ||||
| -- stylua: ignore | ||||
| if true then return {} end | ||||
| 
 | ||||
| -- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim | ||||
| -- | ||||
| -- In your plugin files, you can: | ||||
| -- * add extra plugins | ||||
| -- * disable/enabled LazyVim plugins | ||||
| -- * override the configuration of LazyVim plugins | ||||
| return { | ||||
|   -- add gruvbox | ||||
|   { "ellisonleao/gruvbox.nvim" }, | ||||
| 
 | ||||
|   -- Configure LazyVim to load gruvbox | ||||
|   { | ||||
|     "LazyVim/LazyVim", | ||||
|     opts = { | ||||
|       colorscheme = "gruvbox", | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- change trouble config | ||||
|   { | ||||
|     "folke/trouble.nvim", | ||||
|     -- opts will be merged with the parent spec | ||||
|     opts = { use_diagnostic_signs = true }, | ||||
|   }, | ||||
| 
 | ||||
|   -- disable trouble | ||||
|   { "folke/trouble.nvim", enabled = false }, | ||||
| 
 | ||||
|   -- override nvim-cmp and add cmp-emoji | ||||
|   { | ||||
|     "hrsh7th/nvim-cmp", | ||||
|     dependencies = { "hrsh7th/cmp-emoji" }, | ||||
|     ---@param opts cmp.ConfigSchema | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.sources, { name = "emoji" }) | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- change some telescope options and a keymap to browse plugin files | ||||
|   { | ||||
|     "nvim-telescope/telescope.nvim", | ||||
|     keys = { | ||||
|       -- add a keymap to browse plugin files | ||||
|       -- stylua: ignore | ||||
|       { | ||||
|         "<leader>fp", | ||||
|         function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end, | ||||
|         desc = "Find Plugin File", | ||||
|       }, | ||||
|     }, | ||||
|     -- change some options | ||||
|     opts = { | ||||
|       defaults = { | ||||
|         layout_strategy = "horizontal", | ||||
|         layout_config = { prompt_position = "top" }, | ||||
|         sorting_strategy = "ascending", | ||||
|         winblend = 0, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- add pyright to lspconfig | ||||
|   { | ||||
|     "neovim/nvim-lspconfig", | ||||
|     ---@class PluginLspOpts | ||||
|     opts = { | ||||
|       ---@type lspconfig.options | ||||
|       servers = { | ||||
|         -- pyright will be automatically installed with mason and loaded with lspconfig | ||||
|         pyright = {}, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- add tsserver and setup with typescript.nvim instead of lspconfig | ||||
|   { | ||||
|     "neovim/nvim-lspconfig", | ||||
|     dependencies = { | ||||
|       "jose-elias-alvarez/typescript.nvim", | ||||
|       init = function() | ||||
|         require("lazyvim.util").lsp.on_attach(function(_, buffer) | ||||
|           -- stylua: ignore | ||||
|           vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" }) | ||||
|           vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer }) | ||||
|         end) | ||||
|       end, | ||||
|     }, | ||||
|     ---@class PluginLspOpts | ||||
|     opts = { | ||||
|       ---@type lspconfig.options | ||||
|       servers = { | ||||
|         -- tsserver will be automatically installed with mason and loaded with lspconfig | ||||
|         tsserver = {}, | ||||
|       }, | ||||
|       -- you can do any additional lsp server setup here | ||||
|       -- return true if you don't want this server to be setup with lspconfig | ||||
|       ---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?> | ||||
|       setup = { | ||||
|         -- example to setup with typescript.nvim | ||||
|         tsserver = function(_, opts) | ||||
|           require("typescript").setup({ server = opts }) | ||||
|           return true | ||||
|         end, | ||||
|         -- Specify * to use this function as a fallback for any server | ||||
|         -- ["*"] = function(server, opts) end, | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- for typescript, LazyVim also includes extra specs to properly setup lspconfig, | ||||
|   -- treesitter, mason and typescript.nvim. So instead of the above, you can use: | ||||
|   { import = "lazyvim.plugins.extras.lang.typescript" }, | ||||
| 
 | ||||
|   -- add more treesitter parsers | ||||
|   { | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|     opts = { | ||||
|       ensure_installed = { | ||||
|         "bash", | ||||
|         "html", | ||||
|         "javascript", | ||||
|         "json", | ||||
|         "lua", | ||||
|         "markdown", | ||||
|         "markdown_inline", | ||||
|         "python", | ||||
|         "query", | ||||
|         "regex", | ||||
|         "tsx", | ||||
|         "typescript", | ||||
|         "vim", | ||||
|         "yaml", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| 
 | ||||
|   -- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above | ||||
|   -- would overwrite `ensure_installed` with the new value. | ||||
|   -- If you'd rather extend the default config, use the code below instead: | ||||
|   { | ||||
|     "nvim-treesitter/nvim-treesitter", | ||||
|     opts = function(_, opts) | ||||
|       -- add tsx and treesitter | ||||
|       vim.list_extend(opts.ensure_installed, { | ||||
|         "tsx", | ||||
|         "typescript", | ||||
|       }) | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- the opts function can also be used to change the default opts: | ||||
|   { | ||||
|     "nvim-lualine/lualine.nvim", | ||||
|     event = "VeryLazy", | ||||
|     opts = function(_, opts) | ||||
|       table.insert(opts.sections.lualine_x, "😄") | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- or you can return new options to override all the defaults | ||||
|   { | ||||
|     "nvim-lualine/lualine.nvim", | ||||
|     event = "VeryLazy", | ||||
|     opts = function() | ||||
|       return { | ||||
|         --[[add your custom lualine config here]] | ||||
|       } | ||||
|     end, | ||||
|   }, | ||||
| 
 | ||||
|   -- use mini.starter instead of alpha | ||||
|   { import = "lazyvim.plugins.extras.ui.mini-starter" }, | ||||
| 
 | ||||
|   -- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc | ||||
|   { import = "lazyvim.plugins.extras.lang.json" }, | ||||
| 
 | ||||
|   -- add any tools you want to have installed below | ||||
|   { | ||||
|     "williamboman/mason.nvim", | ||||
|     opts = { | ||||
|       ensure_installed = { | ||||
|         "stylua", | ||||
|         "shellcheck", | ||||
|         "shfmt", | ||||
|         "flake8", | ||||
|       }, | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,6 +0,0 @@ | |||
| return { | ||||
|   { | ||||
|     "tpope/vim-fugitive", | ||||
|     lazy = false, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,14 +0,0 @@ | |||
| return { | ||||
|   { | ||||
|     "dlvhdr/gh-addressed.nvim", | ||||
|     dependencies = { | ||||
|       "nvim-lua/plenary.nvim", | ||||
|       "MunifTanjim/nui.nvim", | ||||
|       "folke/trouble.nvim", -- optional | ||||
|     }, | ||||
|     cmd = "GhReviewComments", | ||||
|     keys = { | ||||
|       { "<leader>gc", "<cmd>GhReviewComments<cr>", desc = "GitHub Review Comments" }, | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
|  | @ -1,15 +0,0 @@ | |||
| return { | ||||
|   "echasnovski/mini.surround", | ||||
|   opts = { | ||||
|     mappings = { | ||||
|       add = "ys", | ||||
|       delete = "ds", | ||||
|       find = "gsf", | ||||
|       find_left = "gsF", | ||||
|       highlight = "gsh", | ||||
|       replace = "cs", | ||||
|       update_n_lines = "gsn", | ||||
|     }, | ||||
|   }, | ||||
| } | ||||
| 
 | ||||
|  | @ -1,3 +0,0 @@ | |||
| indent_type = "Spaces" | ||||
| indent_width = 2 | ||||
| column_width = 120 | ||||
|  | @ -1,3 +0,0 @@ | |||
| { | ||||
|   home.file.".tmux.conf".source = ./tmux.conf; | ||||
| } | ||||
|  | @ -1,88 +0,0 @@ | |||
| set -g base-index 1 | ||||
| setw -g pane-base-index 1 | ||||
| 
 | ||||
| # https://old.reddit.com/r/tmux/comments/mesrci/tmux_2_doesnt_seem_to_use_256_colors/ | ||||
| set -g default-terminal "xterm-256color" | ||||
| set -ga terminal-overrides ",*256col*:Tc" | ||||
| set -ga terminal-overrides '*:Ss=\E[%p1%d q:Se=\E[ q' | ||||
| set-environment -g COLORTERM "truecolor" | ||||
| 
 | ||||
| # Mouse works as expected | ||||
| set-option -g mouse on | ||||
| 
 | ||||
| # Enable focus events for vim/neovim autoread | ||||
| set -g focus-events on | ||||
| # easy-to-remember split pane commands | ||||
| bind | split-window -h -c "#{pane_current_path}" | ||||
| bind - split-window -v -c "#{pane_current_path}" | ||||
| 
 | ||||
| # don't rename windows automatically | ||||
| set-option -g allow-rename off | ||||
| 
 | ||||
| # DESIGN TWEAKS | ||||
| 
 | ||||
| # don't do anything when a 'bell' rings | ||||
| set -g visual-activity off | ||||
| set -g visual-bell off | ||||
| set -g visual-silence off | ||||
| setw -g monitor-activity off | ||||
| set -g bell-action none | ||||
| 
 | ||||
| # clock mode | ||||
| setw -g clock-mode-colour yellow | ||||
| 
 | ||||
| # copy mode | ||||
| setw -g mode-style 'fg=black bg=green bold' | ||||
| 
 | ||||
| # panes | ||||
| set -g pane-border-style 'fg=green' | ||||
| set -g pane-active-border-style 'fg=yellow' | ||||
| 
 | ||||
| # statusbar | ||||
| set -g status-position bottom | ||||
| set -g status-justify left | ||||
| set -g status-style 'fg=green' | ||||
| 
 | ||||
| set -g status-left '' | ||||
| set -g status-left-length 10 | ||||
| 
 | ||||
| set -g status-right-style 'fg=black bg=yellow' | ||||
| set -g status-right '%Y-%m-%d %H:%M ' | ||||
| set -g status-right-length 50 | ||||
| 
 | ||||
| setw -g window-status-current-style 'fg=black bg=green' | ||||
| setw -g window-status-current-format ' #I #W #F ' | ||||
| 
 | ||||
| setw -g window-status-style 'fg=green bg=black' | ||||
| setw -g window-status-format ' #I #[fg=white]#W #[fg=yellow]#F ' | ||||
| 
 | ||||
| setw -g window-status-bell-style 'fg=yellow bg=green bold' | ||||
| 
 | ||||
| # messages | ||||
| set -g message-style 'fg=yellow bg=green bold' | ||||
| 
 | ||||
| # Unbind Ctrl+V so it passes through to Kitty for paste | ||||
| unbind C-v | ||||
| 
 | ||||
| # Vim-aware pane navigation with Alt+hjkl | ||||
| is_vim="ps -o state= -o comm= -t '#{pane_tty}' | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" | ||||
| bind-key -n M-h if-shell "$is_vim" "send-keys M-h" "select-pane -L" | ||||
| bind-key -n M-j if-shell "$is_vim" "send-keys M-j" "select-pane -D" | ||||
| bind-key -n M-k if-shell "$is_vim" "send-keys M-k" "select-pane -U" | ||||
| bind-key -n M-l if-shell "$is_vim" "send-keys M-l" "select-pane -R" | ||||
| 
 | ||||
| # Window navigation with Alt+n/p | ||||
| bind-key -n M-n next-window | ||||
| bind-key -n M-p previous-window | ||||
| 
 | ||||
| # Pane resizing with Alt+Shift+hjkl | ||||
| bind-key -n M-S-h resize-pane -L 2 | ||||
| bind-key -n M-S-j resize-pane -D 2 | ||||
| bind-key -n M-S-k resize-pane -U 2 | ||||
| bind-key -n M-S-l resize-pane -R 2 | ||||
| 
 | ||||
| # Copy mode setup | ||||
| bind v copy-mode | ||||
| setw -g mode-keys vi | ||||
| bind-key -T copy-mode-vi 'v' send -X begin-selection | ||||
| bind-key -T copy-mode-vi 'y' send -X copy-pipe-and-cancel 'xclip -in -selection clipboard' | ||||
|  | @ -66,10 +66,6 @@ | |||
|       address = "192.168.1.240"; | ||||
|       prefixLength = 24; | ||||
|     }]; | ||||
|     ipv6.addresses = [{ | ||||
|       address = "fd7d:587a:4300:1::240"; | ||||
|       prefixLength = 64; | ||||
|     }]; | ||||
|     ipv4.routes = [{ address = "192.168.1.0"; prefixLength = 24; via = "192.168.1.1"; }]; | ||||
|     useDHCP = false; | ||||
|   }; | ||||
|  | @ -92,6 +88,7 @@ | |||
|   # Enable the OpenSSH daemon. | ||||
|   services.openssh.enable = true; | ||||
|   networking.firewall.allowedTCPPorts = [ 22 ]; | ||||
|   sound.enable = false; | ||||
| 
 | ||||
|   programs.gnupg.agent.enable = true; | ||||
|   programs.gnupg.agent.pinentryPackage = pkgs.pinentry-curses; | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| { self, pkgs, ... }: { | ||||
| { self, pkgs, ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./configuration.nix | ||||
|     ../profiles/core | ||||
|  | @ -9,7 +10,7 @@ | |||
|     # ../profiles/monitoring | ||||
|     ../profiles/nfs | ||||
|     ../profiles/gonic | ||||
|     ../profiles/headphones  | ||||
|     # ../profiles/headphones # TODO broken on 23.11, see: https://github.com/rembo10/headphones/issues/3320 | ||||
|     ../profiles/radicale | ||||
|     # ../profiles/seafile # waiting for https://github.com/NixOS/nixpkgs/pull/249523 to be merged | ||||
|     ../profiles/syncthing | ||||
|  | @ -18,16 +19,13 @@ | |||
|     ../profiles/wallabag | ||||
|     ../profiles/finance | ||||
|     ../profiles/sync/website | ||||
|     ../profiles/sync/music | ||||
|     ../profiles/grasp | ||||
|     # ../profiles/archivebox | ||||
|     # ../profiles/woodpecker-agent | ||||
|     # ../profiles/jellyfin | ||||
|     ../profiles/ulogger-server | ||||
|     ../profiles/immich | ||||
|     ../profiles/jacket | ||||
|     ../profiles/photoprism # Replace with immich | ||||
|     ../profiles/gpodder | ||||
|     ../profiles/transmission | ||||
|     #../profiles/postgres_upgrade_script | ||||
|   ]; | ||||
| 
 | ||||
|  | @ -35,7 +33,7 @@ | |||
|   age.secrets.borg-password.file = "${self}/secrets/borg-password.age"; | ||||
|   services.postgresqlBackup = { | ||||
|     enable = true; | ||||
|     databases = [ "wallabag" "immich" "ulogger" ]; | ||||
|     databases = [ "wallabag" "photoprism" "ulogger" ]; | ||||
|     location = "/var/backup/postgresql"; | ||||
|   }; | ||||
|   mossnet.backup = { | ||||
|  | @ -51,16 +49,27 @@ | |||
|       # "/home/anish/usr/nonfiction" # syncthing | ||||
|       "/home/anish/usr/finance" # beancount | ||||
|       "/mnt/two/postgres" # sealight postgres backups TODO remove once moved to capsul  | ||||
|       "/mnt/two/photos" | ||||
|       "/mnt/two/music" | ||||
|     ]; | ||||
|     # seafile | ||||
|   }; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ lm_sensors ]; | ||||
|   hardware.fancontrol = { | ||||
|     enable = false; | ||||
|     config = ''''; | ||||
|   services.transmission = { | ||||
|     enable = true; | ||||
|     settings = { | ||||
|       rpc.bind-address = "0.0.0.0"; | ||||
|       download-dir = "/mnt/two/new-music"; | ||||
|     }; | ||||
|   }; | ||||
|   services.nginx.virtualHosts."transmission.mossnet.lan" = { | ||||
|     enableACME = false; | ||||
|     forceSSL = false; | ||||
| 
 | ||||
|     locations."/" = { | ||||
|       extraConfig = '' | ||||
|         proxy_pass http://localhost:9091/; | ||||
|         proxy_set_header X-Forwarded-Host $host; | ||||
|       ''; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   age.secrets.box-wg.file = "${self}/secrets/box-wg.age"; | ||||
|  |  | |||
|  | @ -34,5 +34,7 @@ | |||
|   #   keyMap = "us"; | ||||
|   # }; | ||||
| 
 | ||||
|   sound.enable = true; | ||||
| 
 | ||||
|   services.libinput.enable = true; | ||||
| } | ||||
|  |  | |||
|  | @ -1,4 +1,5 @@ | |||
| { self, pkgs, ... }: { | ||||
| { self, pkgs, ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./configuration.nix | ||||
|     ../users/anish | ||||
|  | @ -16,32 +17,23 @@ | |||
|     # ../profiles/mount-mossnet | ||||
|   ]; | ||||
| 
 | ||||
|   # temporarily allow ssh access for work, to be able to do deploy new services | ||||
|   services.openssh = { | ||||
|     enable = true; | ||||
|     settings.PasswordAuthentication = false; | ||||
|     settings.PermitRootLogin = "no"; | ||||
|   }; | ||||
| 
 | ||||
|   hardware.keyboard.qmk.enable = true; | ||||
|   services.udev.packages = with pkgs; [ via ]; | ||||
| 
 | ||||
|   # import profiling tools | ||||
|   programs.systemtap.enable = true; | ||||
| 
 | ||||
|   virtualisation.docker.enable = true; | ||||
|   virtualisation.docker.storageDriver = "btrfs"; | ||||
|   environment.systemPackages = with pkgs; [ docker-compose via ]; | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     docker-compose   | ||||
|   ]; | ||||
| 
 | ||||
|   # Speed up boot by removing dependency on network  | ||||
|   systemd = { | ||||
|     targets.network-online.wantedBy = | ||||
|       pkgs.lib.mkForce [ ]; # Normally ["multi-user.target"] | ||||
|     services.NetworkManager-wait-online.wantedBy = | ||||
|       pkgs.lib.mkForce [ ]; # Normally ["network-online.target"] | ||||
|     targets.network-online.wantedBy = pkgs.lib.mkForce [ ]; # Normally ["multi-user.target"] | ||||
|     services.NetworkManager-wait-online.wantedBy = pkgs.lib.mkForce [ ]; # Normally ["network-online.target"] | ||||
|   }; | ||||
| 
 | ||||
| 
 | ||||
|   programs.gnupg.agent.enable = true; | ||||
|   programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gnome3; | ||||
| 
 | ||||
|   fileSystems."/mnt/ftp" = { | ||||
|     device = "192.168.1.240:/home/ftp"; | ||||
|  | @ -72,15 +64,8 @@ | |||
| 
 | ||||
|   # lazy enable of ports necessary for KDE connect which is installed via cli home profile (for some reason?) | ||||
|   networking.firewall = { | ||||
|     allowedTCPPorts = [ 22 4173 3000 ]; # allow ssh and vibekanban | ||||
|     allowedTCPPortRanges = [{ | ||||
|       from = 1714; | ||||
|       to = 1764; | ||||
|     }]; | ||||
|     allowedUDPPortRanges = [{ | ||||
|       from = 1714; | ||||
|       to = 1764; | ||||
|     }]; | ||||
|     allowedTCPPortRanges = [{ from = 1714; to = 1764; }]; | ||||
|     allowedUDPPortRanges = [{ from = 1714; to = 1764; }]; | ||||
|   }; | ||||
| 
 | ||||
|   age.secrets.curve-wg.file = "${self}/secrets/curve-wg.age"; | ||||
|  | @ -96,7 +81,10 @@ | |||
|   mossnet.backup = { | ||||
|     enable = true; | ||||
|     name = "curve"; | ||||
|     paths = [ "/home/anish/usr" "/home/anish/.ssh" "/home/anish/.password-store/" ]; | ||||
|     paths = [ | ||||
|       "/home/anish/usr" | ||||
|       "/home/anish/.ssh" | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|   # enable adb  | ||||
|  | @ -105,8 +93,7 @@ | |||
|   #virtualisation.docker.enable = true; | ||||
|   boot.blacklistedKernelModules = [ "qcserial" ]; | ||||
|   # Used for packer Capsul | ||||
|   users.users.anish.extraGroups = | ||||
|     [ "adbusers" "wheel" "plugdev" "libvertd" "docker" ]; | ||||
|   users.users.anish.extraGroups = [ "adbusers" "wheel" "plugdev" "libvertd" "docker" ]; | ||||
|   virtualisation.libvirtd.enable = true; | ||||
|   hardware.keyboard.zsa.enable = true; | ||||
|   services.udev.extraRules = '' | ||||
|  |  | |||
|  | @ -1,44 +0,0 @@ | |||
| {  ... }: | ||||
| 
 | ||||
| { | ||||
|   homebrew.enable = true; | ||||
|   homebrew.brews = [ | ||||
|     "kind" | ||||
|     "kubectl" | ||||
|     "bazelisk" | ||||
|     "sourcegraph/src-cli/src-cli" | ||||
|     "gh" | ||||
|     # "postgresql@15" | ||||
|     # "redis" | ||||
|   ]; | ||||
|   homebrew.casks = [ | ||||
|     # Development Tools | ||||
|     "homebrew/cask/docker" | ||||
|     # "syncthing" | ||||
|     # "insomnia" | ||||
|     # "tableplus" | ||||
|     # "ngrok" | ||||
|     "postico" | ||||
|     "wireshark" | ||||
|     "1password" | ||||
|     "orbstack" | ||||
|     # "aerospace" | ||||
| 
 | ||||
|     # Communication Tools | ||||
|     # Already installed manually | ||||
|     # "loom" | ||||
|     # "slack"  | ||||
|     # "zoom" | ||||
|     # "firefox" | ||||
|     # "1password-cli" | ||||
| 
 | ||||
|     # Utility Tools | ||||
|     # "syncthing" | ||||
| 
 | ||||
|     # Productivity Tools | ||||
|     "raycast" | ||||
| 
 | ||||
|     # AI | ||||
|     # "diffusionbee" | ||||
|   ]; | ||||
| } | ||||
|  | @ -1,157 +0,0 @@ | |||
| { self, pkgs, config, ... }: | ||||
| 
 | ||||
| { | ||||
|   imports = [ | ||||
|     ./sketchybar | ||||
|     # ./yabai # Now using aerospace | ||||
|     # ./casks | ||||
|     # ../../modules/darwin/home-manager.nix | ||||
|     # ../../modules/shared | ||||
|     # ../../modules/shared/cachix | ||||
|   ]; | ||||
| 
 | ||||
|   environment.systemPackages = [  | ||||
|     pkgs.go | ||||
|     pkgs.python3 | ||||
|     pkgs.cargo | ||||
|     pkgs.k9s | ||||
|     pkgs.kubernetes-helm | ||||
|     pkgs.shellcheck | ||||
|   ]; | ||||
| 
 | ||||
|   age.identityPaths = [ "/Users/anishlakhwara/.ssh/id_ed25519" ]; | ||||
|   age.secrets.work-wg.file = "${self}/secrets/work-wg.age"; | ||||
|   age.secrets.work-wg.owner = "anishlakhwara"; | ||||
|   networking.wg-quick.interfaces = { | ||||
|     wg0 = { | ||||
|       address = [ "10.0.69.7/24" ]; | ||||
|       listenPort = 60990; # to match firewall allowedUDPPorts (without this wg uses random port numbers) | ||||
|       privateKeyFile = config.age.secrets.work-wg.path; | ||||
|       dns = [ "10.0.69.4" ]; | ||||
|       postDown = '' | ||||
|         sudo /usr/sbin/networksetup -setdnsservers Wi-Fi "Empty" | ||||
|       ''; | ||||
|       peers = [ | ||||
|         # For a client configuration, one peer entry for the server will suffice. | ||||
|         { | ||||
|           publicKey = "c1J4p63rD3IlszugMZiki7UBV3YmDdqa3DU4UejXzAI="; | ||||
|           allowedIPs = [ "10.0.69.0/24" ]; | ||||
|           # Set this to the server IP and port. | ||||
|           endpoint = "sealight.xyz:60990"; # ToDo: route to endpoint not automatically configured https://wiki.archlinux.org/index.php/WireGuard#Loop_routing https://discourse.nixos.org/t/solved-minimal-firewall-setup-for-wireguard-client/7577 | ||||
|           persistentKeepalive = 25; | ||||
|         } | ||||
|       ]; | ||||
|     }; | ||||
|   }; | ||||
| 
 | ||||
|   # Auto upgrade nix package and the daemon service. | ||||
|   # services.nix-daemon.enable = true; # removed in newer nix-darwin | ||||
|   nixpkgs.hostPlatform = "aarch64-darwin"; | ||||
|   programs.zsh.enable = true; | ||||
| 
 | ||||
|   # Setup user, packages, programs | ||||
|   nix = { | ||||
|     # package = pkgs.nixUnstable; | ||||
|     settings.trusted-users = [ "@admin" "anishlakhwara" ]; | ||||
| 
 | ||||
|     gc = { | ||||
|       # user = "root"; # removed in newer nix-darwin | ||||
|       automatic = true; | ||||
|       interval = { Weekday = 0; Hour = 2; Minute = 0; }; | ||||
|       options = "--delete-older-than 30d"; | ||||
|     }; | ||||
| 
 | ||||
|     # Turn this on to make command line easier | ||||
|     extraOptions = '' | ||||
|       experimental-features = nix-command flakes | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   # Turn off NIX_PATH warnings now that we're using flakes | ||||
|   system.checks.verifyNixPath = false; | ||||
| 
 | ||||
|   # Load configuration that is shared across systems | ||||
|   # environment.systemPackages = with pkgs; [ | ||||
|   #  | ||||
|   # ] ++ (import ../../modules/shared/packages.nix { inherit pkgs; }); | ||||
| 
 | ||||
|   # Enable fonts dir | ||||
|   # fonts.fontDir.enable = true; | ||||
|   fonts.packages = with pkgs; [ | ||||
|     fira-code | ||||
|     fira-code-symbols | ||||
|     hermit | ||||
|     #hack | ||||
|     siji | ||||
|     font-awesome | ||||
|     proggyfonts | ||||
|     nerd-fonts.fira-code | ||||
|     nerd-fonts.droid-sans-mono | ||||
|     nerd-fonts.iosevka | ||||
|   ]; | ||||
| 
 | ||||
|   system = { | ||||
|     stateVersion = 4; | ||||
|     primaryUser = "anishlakhwara";  # required for newer nix-darwin | ||||
| 
 | ||||
|     keyboard = { | ||||
|       enableKeyMapping = true; | ||||
|     }; | ||||
| 
 | ||||
|     defaults = { | ||||
|       LaunchServices = { | ||||
|         LSQuarantine = false; | ||||
|       }; | ||||
| 
 | ||||
|       NSGlobalDomain = { | ||||
|         AppleShowAllExtensions = true; | ||||
|         ApplePressAndHoldEnabled = false; | ||||
| 
 | ||||
|         # 120, 90, 60, 30, 12, 6, 2 | ||||
|         KeyRepeat = 2; | ||||
| 
 | ||||
|         # 120, 94, 68, 35, 25, 15 | ||||
|         InitialKeyRepeat = 15; | ||||
| 
 | ||||
|         "com.apple.mouse.tapBehavior" = 1; | ||||
|         "com.apple.sound.beep.volume" = 0.0; | ||||
|         "com.apple.sound.beep.feedback" = 0; | ||||
|       }; | ||||
| 
 | ||||
|       loginwindow = { | ||||
|         # disable guest account | ||||
|         GuestEnabled = false; | ||||
|         # show name instead of username | ||||
|         SHOWFULLNAME = false; | ||||
|       }; | ||||
| 
 | ||||
|       dock = { | ||||
|         autohide = true; | ||||
|         autohide-delay = 0.0; | ||||
|         autohide-time-modifier = 1.0; | ||||
|         static-only = false; | ||||
|         showhidden = false; | ||||
|         show-recents = false; | ||||
|         launchanim = true; | ||||
|         mouse-over-hilite-stack = true; | ||||
|         orientation = "bottom"; | ||||
|         tilesize = 48; | ||||
|         mru-spaces = false; | ||||
|       }; | ||||
| 
 | ||||
|       finder = { | ||||
|         _FXShowPosixPathInTitle = false; | ||||
|       }; | ||||
| 
 | ||||
|       trackpad = { | ||||
|         Clicking = false; | ||||
|         TrackpadThreeFingerDrag = true; | ||||
|       }; | ||||
|     }; | ||||
| 
 | ||||
|     # keyboard = { | ||||
|     #   enableKeyMapping = true; | ||||
|     #   remapCapsLockToControl = true; | ||||
|     # }; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,10 +0,0 @@ | |||
| { pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   services.sketchybar = { | ||||
|     enable = true; | ||||
|     config = (builtins.readFile ./sketchybarrc); | ||||
|     extraPackages = [ pkgs.jq ]; | ||||
|   }; | ||||
| 
 | ||||
| } | ||||
|  | @ -1,59 +0,0 @@ | |||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| source "$HOME/.config/sketchybar/variables.sh" # Loads all defined colors | ||||
| 
 | ||||
| # General bar and defaults | ||||
| # parts I didn't want | ||||
| # y_offset=5 \ | ||||
| # margin=5 \ | ||||
| 
 | ||||
| sketchybar --bar height=35 \ | ||||
|   color="$BAR_COLOR" \ | ||||
|   shadow="$SHADOW" \ | ||||
|   position=top \ | ||||
|   sticky=on \ | ||||
|   padding_right=0 \ | ||||
|   padding_left=3 \ | ||||
|   corner_radius="$CORNER_RADIUS" \ | ||||
|   blur_radius=20 \ | ||||
|   notch_width=200 \ | ||||
|   --default updates=when_shown \ | ||||
|   icon.font="$FONT:Bold:13.5" \ | ||||
|   icon.color="$ICON_COLOR" \ | ||||
|   icon.padding_left="$PADDINGS" \ | ||||
|   icon.padding_right="$PADDINGS" \ | ||||
|   label.font="$FONT:Bold:13.0" \ | ||||
|   label.color="$LABEL_COLOR" \ | ||||
|   label.padding_left="$PADDINGS" \ | ||||
|   label.padding_right="$PADDINGS" \ | ||||
|   background.padding_right="$PADDINGS" \ | ||||
|   background.padding_left="$PADDINGS" \ | ||||
|   popup.background.border_width=1 \ | ||||
|   popup.background.corner_radius=11 \ | ||||
|   popup.background.border_color="$POPUP_BORDER_COLOR" \ | ||||
|   popup.background.color="$POPUP_BACKGROUND_COLOR" \ | ||||
|   popup.background.shadow.drawing="$SHADOW" | ||||
| 
 | ||||
| # Left | ||||
| # source "$ITEM_DIR/apple.sh" | ||||
| source "$ITEM_DIR/spaces.sh" | ||||
| 
 | ||||
| # Center (of notch) | ||||
| # source "$ITEM_DIR/spotify.sh" | ||||
| source "$ITEM_DIR/front_app.sh" | ||||
| 
 | ||||
| # Right | ||||
| source "$ITEM_DIR/clock.sh" | ||||
| source "$ITEM_DIR/calendar.sh" | ||||
| source "$ITEM_DIR/battery.sh" | ||||
| source "$ITEM_DIR/volume.sh" | ||||
| source "$ITEM_DIR/cpu.sh" | ||||
| source "$ITEM_DIR/vpn.sh" | ||||
| 
 | ||||
| #################### Finalizing Setup #################### | ||||
| 
 | ||||
| # sketchybar --hotload true | ||||
| 
 | ||||
| sketchybar --update | ||||
| 
 | ||||
| echo "sketchybar configuration loaded.." | ||||
|  | @ -1,102 +0,0 @@ | |||
| {pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   services.yabai = { | ||||
|     enable = true; | ||||
|     config = { | ||||
|       mouse_follows_focus = "off"; | ||||
|       focus_follows_mouse = "off"; | ||||
|       window_placement = "second_child"; | ||||
|       window_topmost = "off"; | ||||
|       window_opacity = "off"; | ||||
|       window_opacity_duration = 0.0; | ||||
|       window_shadow = "on"; | ||||
|       window_border = "off"; | ||||
|       window_border_placement = "inset"; | ||||
|       window_border_width = 4; | ||||
|       window_border_radius = -1.0; | ||||
|       active_window_border_topmost = "off"; | ||||
|       active_window_border_color = "0xff775759"; | ||||
|       normal_window_border_color = "0xff505050"; | ||||
|       insert_window_border_color = "0xffd75f5f"; | ||||
|       active_window_opacity = 1.0; | ||||
|       normal_window_opacity = 0.9; | ||||
|       split_ratio = 0.73; | ||||
|       auto_balance = "on"; | ||||
|       mouse_modifier = "fn"; | ||||
|       mouse_action1 = "move"; | ||||
|       mouse_action2 = "resize"; | ||||
|       layout = "bsp"; | ||||
|       top_padding = 5; | ||||
|       bottom_padding = 5; | ||||
|       left_padding = 5; | ||||
|       right_padding = 5; | ||||
|       window_gap = 5; | ||||
|     }; | ||||
|     extraConfig = '' | ||||
|       # Do not manage windows with certain titles eg. Copying files or moving to bin | ||||
|       yabai -m rule --add title="(Copy|Bin|About This Mac|Info)" manage=off | ||||
|       # Do not manage some apps which are not resizable | ||||
|       yabai -m rule --add app="^(Calculator|System Preferences|[sS]tats|[Jj]et[Bb]rains [Tt]ool[Bb]ox|kftray)$" manage=off | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   system.activationScripts.yabai = { | ||||
|     enable = true; | ||||
|     text = '' | ||||
|       yabai --install-service && yabai --start-service | ||||
|     ''; | ||||
|   }; | ||||
| 
 | ||||
|   services.skhd = { | ||||
|     enable = true; | ||||
|     skhdConfig = '' | ||||
| # Open iTerm2 | ||||
| cmd - enter : kitty --single-instance -d ~ | ||||
| 
 | ||||
| ################## | ||||
| # Window Motions # | ||||
| ################## | ||||
| # Rotate | ||||
| lalt - r : yabai -m space --rotate 90 | ||||
| # Mirror verticaly | ||||
| lalt - x : yabai -m space --mirror y-axis | ||||
| # Mirror horizontaly | ||||
| lalt - y : yabai -m space --mirror x-axis | ||||
| # yes, i know i swapped x and y, but I mainly use y-axis and y is further... | ||||
| # Fullscreen | ||||
| cmd - f : yabai -m window --toggle zoom-fullscreen | ||||
| # Swap | ||||
| lalt - q : yabai -m window --swap west | ||||
| lalt - s : yabai -m window --swap south | ||||
| lalt - z : yabai -m window --swap north | ||||
| lalt - d : yabai -m window --swap east | ||||
| # Warp | ||||
| shift + lalt - q : yabai -m window --warp west | ||||
| shift + lalt - s : yabai -m window --warp south | ||||
| shift + lalt - z : yabai -m window --warp north | ||||
| shift + lalt - d : yabai -m window --warp east | ||||
| 
 | ||||
| ######### | ||||
| # Focus # | ||||
| ######### | ||||
| # Clockwise | ||||
| # alt - tab : yabai -m window --focus "$(yabai -m query --windows --space | jq -re "[sort_by(.id, .frame) | .[] | select(.role == \"AXWindow\" and .subrole == \"AXStandardWindow\") | .id] | nth(index($(yabai -m query --windows --window | jq -re ".id")) - 1)")" | ||||
| # Counter-clockwise | ||||
| # shift - tab : yabai -m window --focus "$(yabai -m query --windows --space | jq -re "[sort_by(.id, .frame) | reverse | .[] | select(.role == \"AXWindow\" and .subrole == \"AXStandardWindow\") | .id] | nth(index($(yabai -m query --windows --window | jq -re ".id")) - 1)")" | ||||
| 
 | ||||
| ########## | ||||
| # Spaces # | ||||
| ########## | ||||
| ctrl - left : yabai -m space --focus prev | ||||
| ctrl - right : yabai -m space --focus next | ||||
| ctrl + shift - right : yabai -m window --space next; yabai -m space --focus next | ||||
| ctrl + shift - left : yabai -m window --space prev; yabai -m space --focus prev | ||||
| cmd - 1 : yabai -m window --space  1; yabai -m space --focus 1 | ||||
| cmd - 2 : yabai -m window --space  2; yabai -m space --focus 2 | ||||
| cmd - 3 : yabai -m window --space  3; yabai -m space --focus 3 | ||||
| cmd - 4 : yabai -m window --space  4; yabai -m space --focus 4 | ||||
| cmd - 5 : yabai -m window --space  5; yabai -m space --focus 5 | ||||
|   ''; | ||||
|   }; | ||||
| } | ||||
|  | @ -1,120 +0,0 @@ | |||
| # Edit this configuration file to define what should be installed on | ||||
| # your system.  Help is available in the configuration.nix(5) man page | ||||
| # and in the NixOS manual (accessible by running ‘nixos-help’). | ||||
| 
 | ||||
| { config, pkgs, ... }: | ||||
| 
 | ||||
| { | ||||
|   imports = | ||||
|     [ # Include the results of the hardware scan. | ||||
|       ./hardware-configuration.nix | ||||
|     ]; | ||||
| 
 | ||||
|   # Bootloader. | ||||
|   boot.loader.systemd-boot.enable = true; | ||||
|   boot.loader.efi.canTouchEfiVariables = true; | ||||
| 
 | ||||
|   networking.hostName = "deck"; # Define your hostname. | ||||
|   # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. | ||||
| 
 | ||||
|   # Configure network proxy if necessary | ||||
|   # networking.proxy.default = "http://user:password@proxy:port/"; | ||||
|   # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | ||||
| 
 | ||||
|   # Enable networking | ||||
|   networking.networkmanager.enable = true; | ||||
| 
 | ||||
|   # Set your time zone. | ||||
|   # time.timeZone = "America/Los_Angeles"; | ||||
| 
 | ||||
|   # Select internationalisation properties. | ||||
|   i18n.defaultLocale = "en_US.UTF-8"; | ||||
| 
 | ||||
|   # i18n.extraLocaleSettings = { | ||||
|   #   LC_ADDRESS = "en_US.UTF-8"; | ||||
|   #   LC_IDENTIFICATION = "en_US.UTF-8"; | ||||
|   #   LC_MEASUREMENT = "en_US.UTF-8"; | ||||
|   #   LC_MONETARY = "en_US.UTF-8"; | ||||
|   #   LC_NAME = "en_US.UTF-8"; | ||||
|   #   LC_NUMERIC = "en_US.UTF-8"; | ||||
|   #   LC_PAPER = "en_US.UTF-8"; | ||||
|   #   LC_TELEPHONE = "en_US.UTF-8"; | ||||
|   #   LC_TIME = "en_US.UTF-8"; | ||||
|   # }; | ||||
| 
 | ||||
|   # Enable the X11 windowing system. | ||||
|   # services.xserver.enable = true; | ||||
| 
 | ||||
|   # Enable the GNOME Desktop Environment. | ||||
|   # services.xserver.displayManager.gdm.enable = true; | ||||
|   # services.xserver.desktopManager.gnome.enable = true; | ||||
| 
 | ||||
|   # Configure keymap in X11 | ||||
|   # services.xserver.xkb = { | ||||
|   #   layout = "us"; | ||||
|   #   variant = ""; | ||||
|   # }; | ||||
| 
 | ||||
| 
 | ||||
|     # use the example session manager (no others are packaged yet so this is enabled by default, | ||||
|     # no need to redefine it in your config for now) | ||||
|     #media-session.enable = true; | ||||
| 
 | ||||
|   # Enable touchpad support (enabled default in most desktopManager). | ||||
|   # services.xserver.libinput.enable = true; | ||||
| 
 | ||||
|   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||
|   # users.users.anish = { | ||||
|   #   isNormalUser = true; | ||||
|   #   extraGroups = [ "networkmanager" "wheel" ]; | ||||
|   #   packages = with pkgs; [ | ||||
|   #   #  thunderbird | ||||
|   #   ]; | ||||
|   # }; | ||||
| 
 | ||||
|   # Enable automatic login for the user. | ||||
|   services.xserver.displayManager.autoLogin.enable = true; | ||||
|   services.xserver.displayManager.autoLogin.user = "anish"; | ||||
| 
 | ||||
|   # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 | ||||
|   systemd.services."getty@tty1".enable = false; | ||||
|   systemd.services."autovt@tty1".enable = false; | ||||
| 
 | ||||
|   # Install firefox. | ||||
|   # programs.firefox.enable = true; | ||||
| 
 | ||||
|   # List packages installed in system profile. To search, run: | ||||
|   # $ nix search wget | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|   #  vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. | ||||
|   #  wget | ||||
|   ]; | ||||
| 
 | ||||
|   # Some programs need SUID wrappers, can be configured further or are | ||||
|   # started in user sessions. | ||||
|   # programs.mtr.enable = true; | ||||
|   # programs.gnupg.agent = { | ||||
|   #   enable = true; | ||||
|   #   enableSSHSupport = true; | ||||
|   # }; | ||||
| 
 | ||||
|   # List services that you want to enable: | ||||
| 
 | ||||
|   # Enable the OpenSSH daemon. | ||||
|   # services.openssh.enable = true; | ||||
| 
 | ||||
|   # Open ports in the firewall. | ||||
|   # networking.firewall.allowedTCPPorts = [ ... ]; | ||||
|   # networking.firewall.allowedUDPPorts = [ ... ]; | ||||
|   # Or disable the firewall altogether. | ||||
|   # networking.firewall.enable = false; | ||||
| 
 | ||||
|   # This value determines the NixOS release from which the default | ||||
|   # settings for stateful data, like file locations and database versions | ||||
|   # on your system were taken. It‘s perfectly fine and recommended to leave | ||||
|   # this value at the release version of the first install of this system. | ||||
|   # Before changing this value read the documentation for this option | ||||
|   # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). | ||||
|   system.stateVersion = "24.11"; # Did you read the comment? | ||||
| 
 | ||||
| } | ||||
|  | @ -1,51 +0,0 @@ | |||
| { self, pkgs, config, ... }: | ||||
| { | ||||
|   imports = [ | ||||
|     ./configuration.nix | ||||
|     ../users/anish | ||||
|     ../profiles/core | ||||
|     # ../profiles/bluetooth | ||||
|     # ../profiles/music | ||||
|     ../profiles/sync/cal | ||||
|     ../profiles/wifi | ||||
|     ../profiles/desktop | ||||
|     ../profiles/mimetypes | ||||
|     ../profiles/syncthing | ||||
|     ../profiles/mossnet-hosts | ||||
|     # ../profiles/fly-wg | ||||
|     # ../profiles/mount-mossnet | ||||
|   ]; | ||||
| 
 | ||||
|   # age.secrets.deck-wg.file = "${self}/secrets/deck-wg.age"; | ||||
|   # age.secrets.deck-wg.owner = "deck"; | ||||
|   # mossnet.wg = { | ||||
|   #   enable = true; | ||||
|   #   ips = [ "10.0.69.6/24" ]; | ||||
|   #   privateKeyFile = "/run/agenix/deck-wg"; | ||||
|   # }; | ||||
| 
 | ||||
|   users.users.anish.extraGroups = [ "adbusers" "wheel" "plugdev" "libvertd" ]; | ||||
|   # boot.plymouth = { | ||||
|   #   enable = true; | ||||
|   #   themePackages = [ pkgs.plymouth-themes ]; | ||||
|   #   theme = "motion"; | ||||
|   # }; | ||||
| 
 | ||||
|   jovian.steam.enable = true; | ||||
|   jovian.devices.steamdeck.enable = true; | ||||
|   jovian.steam.user = "anish"; | ||||
|   jovian.steam.autoStart = true; | ||||
|   jovian.steam.desktopSession = "gnome"; | ||||
|   # jovian.steam.desktopSession = "none+bspwm"; | ||||
| 
 | ||||
|   # Install XR drivers | ||||
|   # environment.systemPackages = with pkgs; [ | ||||
|   #   xrlinuxdriver | ||||
|   #   breezy-gnome | ||||
|   # ]; | ||||
| 
 | ||||
|   # services.udev.packages = with pkgs; [ | ||||
|   #   xrlinuxdriver | ||||
|   # ]; | ||||
| 
 | ||||
| } | ||||
|  | @ -1,40 +0,0 @@ | |||
| # Do not modify this file!  It was generated by ‘nixos-generate-config’ | ||||
| # and may be overwritten by future invocations.  Please make changes | ||||
| # to /etc/nixos/configuration.nix instead. | ||||
| { config, lib, pkgs, modulesPath, ... }: | ||||
| 
 | ||||
| { | ||||
|   imports = | ||||
|     [ (modulesPath + "/installer/scan/not-detected.nix") | ||||
|     ]; | ||||
| 
 | ||||
|   boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usbhid" "sdhci_pci" ]; | ||||
|   boot.initrd.kernelModules = [ ]; | ||||
|   boot.kernelModules = [ "kvm-amd" ]; | ||||
|   boot.extraModulePackages = [ ]; | ||||
| 
 | ||||
|   fileSystems."/" = | ||||
|     { device = "/dev/disk/by-uuid/d432dae0-3512-4891-9582-56d7ecd8524c"; | ||||
|       fsType = "ext4"; | ||||
|     }; | ||||
| 
 | ||||
|   fileSystems."/boot" = | ||||
|     { device = "/dev/disk/by-uuid/5B4C-7406"; | ||||
|       fsType = "vfat"; | ||||
|       options = [ "fmask=0077" "dmask=0077" ]; | ||||
|     }; | ||||
| 
 | ||||
|   swapDevices = | ||||
|     [ { device = "/dev/disk/by-uuid/f75a730e-c849-4edd-a17f-52492d4260dc"; } | ||||
|     ]; | ||||
| 
 | ||||
|   # Enables DHCP on each ethernet and wireless interface. In case of scripted networking | ||||
|   # (the default) this is the recommended approach. When using systemd-networkd it's | ||||
|   # still possible to use this option, but it's recommended to use it in conjunction | ||||
|   # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. | ||||
|   networking.useDHCP = lib.mkDefault true; | ||||
|   # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; | ||||
| 
 | ||||
|   nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; | ||||
|   hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; | ||||
| } | ||||
|  | @ -21,6 +21,7 @@ | |||
| 
 | ||||
|   # Enable the OpenSSH daemon. | ||||
|   services.openssh.enable = true; | ||||
|   sound.enable = false; | ||||
| 
 | ||||
|   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||
|   # This value determines the NixOS release with which your system is to be | ||||
|  |  | |||
|  | @ -30,22 +30,6 @@ | |||
|     privateKeyFile = "/run/agenix/helix-wg"; | ||||
|   }; | ||||
| 
 | ||||
|   # Reverse proxy for immich | ||||
|   # services.nginx.virtualHosts."photos.sealight.xyz" = { | ||||
|   #   enableACME = true; | ||||
|   #   forceSSL = true; | ||||
| 
 | ||||
|   #   locations."/" = { | ||||
|   #     extraConfig = '' | ||||
|   #       proxy_pass http://10.0.69.4:8567; | ||||
|   #       proxy_set_header Host $host; | ||||
|   #       proxy_set_header X-Real-IP $remote_addr; | ||||
|   #       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||||
|   #       proxy_set_header X-Forwarded-Proto $scheme; | ||||
|   #     ''; | ||||
|   #   }; | ||||
|   # }; | ||||
| 
 | ||||
|   services.postgresql.package = pkgs.postgresql_15; | ||||
|   services.postgresqlBackup = { | ||||
|     # TODO needs working wireguard to box | ||||
|  |  | |||
|  | @ -19,6 +19,8 @@ | |||
|   # networking.proxy.default = "http://user:password@proxy:port/"; | ||||
|   # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; | ||||
| 
 | ||||
|   sound.enable = false; | ||||
| 
 | ||||
|   # Define a user account. Don't forget to set a password with ‘passwd’. | ||||
|   # This value determines the NixOS release with which your system is to be | ||||
|   # compatible, in order to avoid breaking some software such as database | ||||
|  |  | |||
|  | @ -32,9 +32,7 @@ in | |||
|   }; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     pinentry-rofi | ||||
|     pinentry-gnome3 | ||||
|     pinentry-gtk2 | ||||
|     cached-nix-shell | ||||
|   ]; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,8 +1,8 @@ | |||
| { self, config, pkgs, lib, ... }: | ||||
| let | ||||
|   tex = (pkgs.texlive.combine { | ||||
|     inherit (pkgs.texlive) | ||||
|       scheme-basic dvisvgm dvipng # for preview and export as html | ||||
|     inherit (pkgs.texlive) scheme-basic | ||||
|       dvisvgm dvipng# for preview and export as html | ||||
|       wrapfig amsmath ulem hyperref capt-of; | ||||
|     #(setq org-latex-compiler "lualatex") | ||||
|     #(setq org-preview-latex-default-process 'dvisvgm) | ||||
|  | @ -13,9 +13,13 @@ let | |||
|     rev = "502f212d83bc67e8f0499574546b99ec6c8e16f9"; | ||||
|     sha256 = "1wx9nzq7cqyvpaq4j60bs8g7gh4jk8qg4016yi4c331l4iw1ymsa"; | ||||
|   }; | ||||
| in { | ||||
| in | ||||
| { | ||||
|   # TODO modularize | ||||
|   imports = [ ./battery-low-timer.nix ./cal-alarms.nix ]; | ||||
|   imports = [ | ||||
|     ./battery-low-timer.nix | ||||
|     ./cal-alarms.nix | ||||
|   ]; | ||||
| 
 | ||||
|   # Secrets used by home-manager modules  | ||||
|   age.secrets.fastmail.file = "${self}/secrets/fastmail.age"; | ||||
|  | @ -25,8 +29,7 @@ in { | |||
|   age.secrets.mossnet.owner = "anish"; | ||||
| 
 | ||||
|   # Taskwarrior private key | ||||
|   age.secrets.taskwarrior-private.file = | ||||
|     "${self}/secrets/taskwarrior-private.age"; | ||||
|   age.secrets.taskwarrior-private.file = "${self}/secrets/taskwarrior-private.age"; | ||||
|   age.secrets.taskwarrior-private.owner = "anish"; | ||||
| 
 | ||||
|   # We don't plug USBs into servers | ||||
|  | @ -38,7 +41,7 @@ in { | |||
| 
 | ||||
|     dbus = { | ||||
|       enable = true; | ||||
|       packages = [ pkgs.dconf pkgs.gcr ]; | ||||
|       packages = [ pkgs.dconf ]; | ||||
|     }; | ||||
|   }; | ||||
|   programs.dconf.enable = true; | ||||
|  | @ -53,21 +56,20 @@ in { | |||
|     XDG_BIN_HOME = "\${HOME}/.local/bin"; | ||||
|     XDG_DATA_HOME = "\${HOME}/.local/share"; | ||||
| 
 | ||||
|     PATH = [ "\${XDG_BIN_HOME}" ]; | ||||
|     PATH = [ | ||||
|       "\${XDG_BIN_HOME}" | ||||
|     ]; | ||||
|   }; | ||||
| 
 | ||||
|   environment.systemPackages = with pkgs; [ | ||||
|     #unstable.sublime-music | ||||
|     # olm-3.2.16 is now insecure | ||||
|     # some reason I can't set insecure packages that will be respected | ||||
|     nheko | ||||
|     unstable.nheko | ||||
|     unstable.signal-desktop | ||||
|     unstable.tuba | ||||
|     unstable.newsflash | ||||
|     unstable.liferea | ||||
|     unstable.gh | ||||
|     unstable.flyctl | ||||
|     unstable.sublime-music | ||||
| 
 | ||||
|     kooha | ||||
|     light | ||||
|  | @ -98,7 +100,6 @@ in { | |||
|     # tic-80 | ||||
|     ytfzf | ||||
|     yt-dlp | ||||
|     # autohide-tdrop  | ||||
|   ]; | ||||
| 
 | ||||
|   xdg.portal = { | ||||
|  | @ -221,8 +222,6 @@ in { | |||
|     siji | ||||
|     font-awesome | ||||
|     proggyfonts | ||||
|     nerd-fonts.fira-code | ||||
|     nerd-fonts.droid-sans-mono | ||||
|     nerd-fonts.iosevka | ||||
|     (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" "Iosevka" ]; }) | ||||
|   ]; | ||||
| } | ||||
|  |  | |||
|  | @ -3,7 +3,8 @@ let | |||
|   adblockLocalZones = pkgs.stdenv.mkDerivation { | ||||
|     name = "unbound-zones-adblock"; | ||||
| 
 | ||||
|     src = (pkgs.fetchFromGitHub { | ||||
|     src = (pkgs.fetchFromGitHub | ||||
|       { | ||||
|         owner = "StevenBlack"; | ||||
|         repo = "hosts"; | ||||
|         rev = "3.12.21"; | ||||
|  | @ -39,10 +40,10 @@ let | |||
|     "grasp.mossnet.lan" | ||||
|     "photos.mossnet.lan" | ||||
|     "pod.mossnet.lan" | ||||
|     "mast.mossnet.lan" | ||||
|   ]; | ||||
| 
 | ||||
| in { | ||||
| in | ||||
| { | ||||
|   services.unbound = { | ||||
|     enable = true; | ||||
|     settings = { | ||||
|  | @ -53,9 +54,8 @@ in { | |||
|         # private-address = "192.168.1.0/24"; | ||||
|         cache-min-ttl = 0; | ||||
|         serve-expired = "yes"; | ||||
|         interface = [ "0.0.0.0" "::" ]; | ||||
|         access-control = | ||||
|           [ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" "::1 allow" "fd7d:587a:4300:1::/64 allow" ]; | ||||
|         interface = [ "0.0.0.0" ]; | ||||
|         access-control = [ "127.0.0.0/8 allow" "192.168.1.0/24 allow" "10.0.69.0/24 allow" ]; | ||||
|         access-control-view = "10.0.69.0/24 wireguard"; | ||||
|         # so-reuseport = "yes"; | ||||
|         tls-upstream = "yes"; | ||||
|  | @ -65,10 +65,7 @@ in { | |||
|       }; | ||||
|       forward-zone = [{ | ||||
|         name = "."; | ||||
|         forward-addr = [ | ||||
|           "45.90.28.0#6939b9.dns.nextdns.io" | ||||
|           "1.1.1.1@853#cloudflare-dns.com" | ||||
|         ]; | ||||
|         forward-addr = [ "45.90.28.0#6939b9.dns.nextdns.io" "1.1.1.1@853#cloudflare-dns.com" ]; | ||||
|         # non-tls | ||||
|         # forward-addr = ["45.90.30.49" "45.90.28.49" "1.1.1.1" "8.8.8.8"]  | ||||
|       }]; | ||||
|  |  | |||
|  | @ -1,6 +1,5 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| { | ||||
|   environment.systemPackages = [ pkgs.ffmpeg ]; | ||||
|   mossnet.gonic.enable = true; | ||||
|   mossnet.gonic.settings = '' | ||||
|     music-path /mnt/two/music/ | ||||
|  |  | |||
|  | @ -4,6 +4,7 @@ | |||
|     enable = true; | ||||
|     host = "0.0.0.0"; | ||||
|     port = 8181; | ||||
|     package = "${pkgs.unstable.headphones}"; | ||||
|     user = "headphones"; | ||||
|     group = "audio"; | ||||
|     dataDir = "/data/music"; | ||||
|  |  | |||
Some files were not shown because too many files have changed in this diff Show more
		Loading…
	
		Reference in a new issue