1
0
Fork 0
mirror of https://github.com/ryanccn/flake.git synced 2025-12-06 08:10:43 +01:00

feat: initial commit

This commit is contained in:
Ryan Cao 2023-07-19 23:36:58 +08:00
commit dd089fe75c
Signed by: ryanccn
SSH key fingerprint: SHA256:NtP/BlVhoQq4xU6BEcZeT8nIPvHntkJ3lIc2yB+F09E
21 changed files with 983 additions and 0 deletions

3
.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
.DS_Store
result*

315
flake.lock generated Normal file
View file

@ -0,0 +1,315 @@
{
"nodes": {
"agenix": {
"inputs": {
"darwin": "darwin",
"home-manager": "home-manager",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1689334118,
"narHash": "sha256-djk5AZv1yU84xlKFaVHqFWvH73U7kIRstXwUAnDJPsk=",
"owner": "ryantm",
"repo": "agenix",
"rev": "0d8c5325fc81daf00532e3e26c6752f7bcde1143",
"type": "github"
},
"original": {
"owner": "ryantm",
"repo": "agenix",
"type": "github"
}
},
"attic": {
"inputs": {
"crane": "crane",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1689457600,
"narHash": "sha256-1XLn2ZZMaqQx+Ys3eel5hQRkgUn3DeHcVb2JT8WYU0A=",
"owner": "zhaofengli",
"repo": "attic",
"rev": "4902d57f5dae8ec660ee9ee14c45c2192f9fe8b1",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"repo": "attic",
"type": "github"
}
},
"catppuccin": {
"inputs": {
"flake-compat": "flake-compat_2",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1689265071,
"narHash": "sha256-B4N7GV34E2sTKp/vVjYtF1BQOTw/sB5t8lgEPSH7tKc=",
"owner": "Stonks3141",
"repo": "ctp-nix",
"rev": "60a1d9ba22324ad7f563290e454c898b10db954d",
"type": "github"
},
"original": {
"owner": "Stonks3141",
"repo": "ctp-nix",
"type": "github"
}
},
"crane": {
"inputs": {
"flake-compat": [
"attic",
"flake-compat"
],
"flake-utils": [
"attic",
"flake-utils"
],
"nixpkgs": [
"attic",
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1677892403,
"narHash": "sha256-/Wi0L1spSWLFj+UQxN3j0mPYMoc7ZoAujpUF/juFVII=",
"owner": "ipetkov",
"repo": "crane",
"rev": "105e27adb70a9890986b6d543a67761cbc1964a2",
"type": "github"
},
"original": {
"owner": "ipetkov",
"repo": "crane",
"type": "github"
}
},
"darwin": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1673295039,
"narHash": "sha256-AsdYgE8/GPwcelGgrntlijMg4t3hLFJFCRF3tL5WVjA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87b9d090ad39b25b2400029c64825fc2a8868943",
"type": "github"
},
"original": {
"owner": "lnl7",
"ref": "master",
"repo": "nix-darwin",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"agenix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1682203081,
"narHash": "sha256-kRL4ejWDhi0zph/FpebFYhzqlOBrk0Pl3dzGEKSAlEw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "32d3e39c491e2f91152c84f8ad8b003420eab0a1",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1689495092,
"narHash": "sha256-yZu2j5FpLZEPhJQQutMCPTxa1VMigLPabLYvLTq6ASM=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2f84579a70b8c74e5ebb37299a0c3ba279f09382",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1689516967,
"narHash": "sha256-sFAa33wkQHanmij/uhfGduIDK8z4dJAita/rK6u9pvE=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "61662a63bfe1726588c1da6b412df86d8ca94d63",
"type": "github"
},
"original": {
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1685655444,
"narHash": "sha256-6EujQNAeaUkWvpEZZcVF8qSfQrNVWFNNGbUJxv/A5a8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e635192892f5abbc2289eaac3a73cdb249abaefd",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1685004253,
"narHash": "sha256-AbVL1nN/TDicUQ5wXZ8xdLERxz/eJr7+o8lqkIOVuaE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3e01645c40b92d29f3ae76344a6d654986a91a91",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1689631193,
"narHash": "sha256-AGSkBZaiTODQc8eT1rZDrQIjtb8JtFwJ0wVPzArlrnM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "57695599bdc4f7bfe5d28cfa23f14b3d8bdf8a5f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"agenix": "agenix",
"attic": "attic",
"catppuccin": "catppuccin",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_2"
}
},
"rust-overlay": {
"inputs": {
"flake-utils": [
"attic",
"crane",
"flake-utils"
],
"nixpkgs": [
"attic",
"crane",
"nixpkgs"
]
},
"locked": {
"lastModified": 1675391458,
"narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

144
flake.nix Normal file
View file

@ -0,0 +1,144 @@
{
description = "Ryan's MacBook Pro flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
nix-darwin.url = "github:LnL7/nix-darwin";
nix-darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
attic.url = "github:zhaofengli/attic";
attic.inputs.nixpkgs.follows = "nixpkgs";
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
catppuccin.url = "github:Stonks3141/ctp-nix";
};
outputs = {
self,
nix-darwin,
home-manager,
agenix,
attic,
catppuccin,
...
}: let
configuration = {pkgs, ...}: {
environment.systemPackages = with pkgs; [
nil
alejandra
attic-client
exa
pkgs."_1password"
age
pkgs.agenix
asciinema
bat
btop
ccache
ccacheWrapper
cloudflared
deno
direnv
doggo
doppler
du-dust
exa
exiftool
fd
ffmpeg
fish
flyctl
fnm
fzf
go
gh
git
git-lfs
gum
helix
hyperfine
jq
just
spicetify-cli
mkcert
nerdfix
opencv
bun
pipx
pscale
pyenv
railway
redis
silicon
starship
tealdeer
tokei
# ttfautohint
vhs
vivid
xh
zoxide
];
services.nix-daemon.enable = true;
nix.package = pkgs.nix;
nix.settings = {
experimental-features = "nix-command flakes";
build-users-group = "nixbld";
trusted-users = ["ryanccn"];
auto-optimise-store = true;
extra-platforms = ["x86_64-darwin" "aarch64-darwin"];
extra-sandbox-paths = ["/nix/var/cache/ccache"];
};
nixpkgs = {
overlays = [
attic.overlays.default
agenix.overlays.default
(import ./overlays/ccache-wrapper.nix)
];
config.allowUnfree = true;
hostPlatform = "aarch64-darwin";
};
programs.zsh.enable = true;
programs.fish.enable = true;
programs.fish.shellInit = ''
for p in /run/current-system/sw/bin
if not contains $p $fish_user_paths
set -g fish_user_paths $p $fish_user_paths
end
end
'';
system.stateVersion = 4;
};
in {
darwinConfigurations.Ryans-MacBook-Pro = nix-darwin.lib.darwinSystem {
modules = [
configuration
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
nixpkgs.overlays = [attic.overlays.default];
users.users.ryanccn.home = "/Users/ryanccn";
home-manager.users.ryanccn = import ./home.nix {
agenixModule = agenix.homeManagerModules.age;
ctpModule = catppuccin.homeManagerModules.catppuccin;
};
}
];
};
darwinPackages = self.darwinConfigurations.Ryans-MacBook-Pro.pkgs;
};
}

27
home.nix Normal file
View file

@ -0,0 +1,27 @@
{
agenixModule,
ctpModule,
...
}: {
home.stateVersion = "23.05";
imports = [
agenixModule
ctpModule
./programs/zsh.nix
./programs/fish.nix
./programs/starship.nix
./programs/git.nix
./programs/bat.nix
./programs/helix.nix
];
programs.home-manager.enable = true;
home.packages = [];
catppuccin.flavour = "frappe";
age.secrets."attic.toml" = {
file = ./secrets/attic.toml.age;
path = "/Users/ryanccn/.config/attic/config.toml";
};
}

2
justfile Normal file
View file

@ -0,0 +1,2 @@
switch:
darwin-rebuild switch --flake .

View file

@ -0,0 +1,25 @@
(self: super: {
ccacheWrapper = super.ccacheWrapper.override {
extraConfig = ''
export CCACHE_COMPRESS=1
export CCACHE_DIR="/nix/var/cache/ccache"
export CCACHE_UMASK=007
if [ ! -d "$CCACHE_DIR" ]; then
echo "====="
echo "Directory '$CCACHE_DIR' does not exist"
echo "Please create it with:"
echo " sudo mkdir -m0770 '$CCACHE_DIR'"
echo " sudo chown root:nixbld '$CCACHE_DIR'"
echo "====="
exit 1
fi
if [ ! -w "$CCACHE_DIR" ]; then
echo "====="
echo "Directory '$CCACHE_DIR' is not accessible for user $(whoami)"
echo "Please verify its access permissions"
echo "====="
exit 1
fi
'';
};
})

9
programs/bat.nix Normal file
View file

@ -0,0 +1,9 @@
{...}: {
programs.bat = {
enable = true;
catppuccin.enable = true;
# config = {
# theme = "Catppuccin-frappe";
# };
};
}

27
programs/fish.nix Normal file
View file

@ -0,0 +1,27 @@
{...}: {
programs.fish = {
enable = true;
shellAbbrs = {
"vim" = "hx";
"ls" = "exa --all --icons";
"dig" = "doggo";
"glol" = "git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'";
"ghrvw" = "gh repo view --web";
"opr" = "op run --env-file=.env.1password --";
"dr" = "doppler run --";
"dequarantine" = "xattr -d com.apple.quarantine";
"bcpa" = "brew cleanup --prune=all";
"puil" = "pnpm update --interactive --latest";
"pip-upgrade-all" = "pip --disable-pip-version-check list --outdated --format=json | python -c \"import json, sys; print('\n'.join([x['name'] for x in json.load(sys.stdin)]))\" | xargs -n1 pip install -U";
};
};
home.file.".config/fish/conf.d" = {
source = ./fish/conf.d;
recursive = true;
};
}

View file

@ -0,0 +1,6 @@
# basic environment variables
set -x LANG en_US.UTF-8
set -x EDITOR "hx"
set -x PAGER "less"
set -x LESS "-R"
set -x LS_COLORS "$(vivid generate catppuccin-frappe)"

View file

@ -0,0 +1,51 @@
# 1Password SSH
set -x SSH_AUTH_SOCK "$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
# Homebrew shell
set -x HOMEBREW_NO_ANALYTICS 1
set -x HOMEBREW_CASK_OPTS "--require-sha"
set -x HOMEBREW_NO_INSECURE_REDIRECT 1
set -x HOMEBREW_NO_EMOJI 1
/opt/homebrew/bin/brew shellenv | source
# ccache
fish_add_path "$(brew --prefix ccache)/libexec"
# fnm shell env
fnm env --use-on-cd | source
# pyenv
set -x PYENV_ROOT "$HOME/.pyenv"
set -x PATH "$PYENV_ROOT/bin:$PATH"
pyenv init - | source
set -x PIPX_DEFAULT_PYTHON "$HOME/.pyenv/shims/python"
# cargo
fish_add_path "$HOME/.cargo/bin"
# deno
fish_add_path "$HOME/.deno/bin"
# pnpm
set -x PNPM_HOME "$HOME/Library/pnpm"
# disable telemetry
set -x NEXT_TELEMETRY_DISABLED 1 # Next.js
set -x CHECKPOINT_DISABLE 1 # Prisma
set -x DISABLE_TELEMETRY YES # diffusers
# go
set -x GOPATH "$HOME/.go"
fish_add_path "$GOPATH/bin"
# direnv
set -x DIRENV_LOG_FORMAT ""
# docker
fish_add_path "$HOME/.docker/bin"
# local bin
fish_add_path "$HOME/.local/bin"
# nish
fish_add_path "$HOME/dev/nish/bin"
# fish
set fish_greeting

View file

@ -0,0 +1,13 @@
if status is-interactive
# starship
starship init fish | source
# zoxide
zoxide init fish | source
# direnv
direnv hook fish | source
set -x FZF_DEFAULT_OPTS " \
--color=bg+:#414559,bg:#303446,spinner:#f2d5cf,hl:#e78284 \
--color=fg:#c6d0f5,header:#e78284,info:#ca9ee6,pointer:#f2d5cf \
--color=marker:#f2d5cf,fg+:#c6d0f5,prompt:#ca9ee6,hl+:#e78284"
end

30
programs/git.nix Normal file
View file

@ -0,0 +1,30 @@
{pkgs, ...}: {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
diff-so-fancy.enable = true;
ignores = [
".DS_Store"
];
userName = "Ryan Cao";
userEmail = "70191398+ryanccn@users.noreply.github.com";
extraConfig = {
user.signingkey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM4VfgP5+HdCmM/VpTcW8jLKLyR8s0qqoIDXv7iTnWlR";
init.defaultBranch = "main";
commit.gpgsign = true;
gpg.format = "ssh";
"gpg \"ssh\"".program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign";
push.autoSetupRemote = true;
};
};
programs.gh = {
enable = true;
enableGitCredentialHelper = true;
};
}

6
programs/helix.nix Normal file
View file

@ -0,0 +1,6 @@
{...}: {
programs.helix = {
enable = true;
catppuccin.enable = true;
};
}

3
programs/starship.nix Normal file
View file

@ -0,0 +1,3 @@
{...}: {
home.file.".config/starship.toml".source = ./starship/starship.toml;
}

View file

@ -0,0 +1,145 @@
"$schema" = 'https://starship.rs/config-schema.json'
[character]
success_symbol = "[➜](bold green)"
error_symbol = "[➜](bold red)"
[aws]
symbol = " "
[buf]
symbol = " "
[c]
symbol = " "
[conda]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " 󰌾"
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fossil_branch]
symbol = " "
[git_branch]
symbol = " "
[golang]
symbol = " "
[guix_shell]
symbol = " "
[haskell]
symbol = " "
[haxe]
symbol = "⌘ "
[hg_branch]
symbol = " "
[hostname]
ssh_symbol = " "
[java]
symbol = " "
[julia]
symbol = " "
[lua]
symbol = " "
[memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
Amazon = " "
Android = " "
Arch = " "
Artix = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
Redox = " "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Windows = "󰍲 "
[package]
symbol = "󰏗 "
[pijul_channel]
symbol = "🪺 "
[python]
symbol = " "
[rlang]
symbol = "󰟔 "
[ruby]
symbol = " "
[rust]
symbol = " "
[scala]
symbol = " "
[spack]
symbol = "🅢 "

40
programs/zsh.nix Normal file
View file

@ -0,0 +1,40 @@
{pkgs, ...}: {
programs.zsh = {
enable = true;
enableAutosuggestions = true;
enableCompletion = true;
dotDir = ".config/zsh";
syntaxHighlighting.enable = true;
envExtra = builtins.readFile ./zsh/envExtra.zsh;
initExtraBeforeCompInit = builtins.readFile ./zsh/initExtraBeforeCompInit.zsh;
initExtra = builtins.readFile ./zsh/initExtra.zsh;
localVariables = {
vivid_theme = "catppuccin-macchiato";
};
plugins = [
{
name = "ohmyzsh-macos";
file = "plugins/macos.zsh";
src = pkgs.fetchFromGitHub {
owner = "ohmyzsh";
repo = "ohmyzsh";
rev = "c4392a4da31efee36f29a62d3951d5c0fcd7d4e6";
sha256 = "sha256-cMJCmhtcCAVDFgp6Ryv/5DteSRtwNcemO97as8ill8I=";
};
}
{
name = "vivid-zsh";
src = pkgs.fetchFromGitHub {
owner = "ryanccn";
repo = "vivid-zsh";
rev = "a76616c87821e96ae0cbdfb6bf897bffc170a283";
sha256 = "sha256-E00xQMCmOt6fJ+IO/TrpFvskNa9QnDw/6DKR51T7i+8=";
};
}
];
};
}

52
programs/zsh/envExtra.zsh Normal file
View file

@ -0,0 +1,52 @@
# 1Password SSH
export SSH_AUTH_SOCK="$HOME/Library/Group Containers/2BUA8C4S2C.com.1password/t/agent.sock"
# Homebrew shell
export HOMEBREW_NO_ANALYTICS=1
export HOMEBREW_CASK_OPTS=--require-sha
export HOMEBREW_NO_INSECURE_REDIRECT=1
export HOMEBREW_NO_EMOJI=1
eval "$(/opt/homebrew/bin/brew shellenv)"
# ccache
export PATH="$(brew --prefix ccache)/libexec:$PATH"
# fnm shell env
eval "$(fnm env --use-on-cd)"
# pyenv
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv > /dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
export PIPX_DEFAULT_PYTHON="$HOME/.pyenv/shims/python"
# cargo
source "$HOME/.cargo/env"
# deno
export PATH="$HOME/.deno/bin:$PATH"
# pnpm
export PNPM_HOME="''${HOME}/Library/pnpm"
export PATH="$PNPM_HOME:$PATH"
# disable telemetry
export NEXT_TELEMETRY_DISABLED=1 # Next.js
export CHECKPOINT_DISABLE=1 # Prisma
export DISABLE_TELEMETRY=YES # diffusers
# go
export GOPATH="$HOME/.go"
export PATH="$GOPATH/bin:$PATH"
# direnv
export DIRENV_LOG_FORMAT=""
# docker
export PATH="$HOME/.docker/bin:$PATH"
# local bin
export PATH="$HOME/.local/bin:$PATH"
# nish
export PATH="$HOME/dev/nish/bin:$PATH"

View file

@ -0,0 +1,75 @@
# environment variables
export LANG=en_US.UTF-8
export EDITOR="hx"
export PAGER="less"
export LESS="-R"
export FZF_DEFAULT_OPTS=" \
--color=bg+:#414559,bg:#303446,spinner:#f2d5cf,hl:#e78284 \
--color=fg:#c6d0f5,header:#e78284,info:#ca9ee6,pointer:#f2d5cf \
--color=marker:#f2d5cf,fg+:#c6d0f5,prompt:#ca9ee6,hl+:#e78284"
# zsh options
setopt interactivecomments
unsetopt menu_complete
unsetopt flowcontrol
setopt auto_menu
setopt complete_in_word
setopt always_to_end
[ -f "$HOME/.config/tabtab/zsh/__tabtab.zsh" ] && . "$HOME/.config/tabtab/zsh/__tabtab.zsh" || true
# configure completion styles
zstyle ':completion:*' menu select
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
zstyle ':completion:*' group-name \'\'
# aliases
alias vim="hx"
alias ls="exa --all --icons"
alias dig="doggo"
alias glol="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ar) %C(bold blue)<%an>%Creset'"
alias ghrvw="gh repo view --web"
alias opr="op run --env-file=.env.1password --"
alias dr="doppler run --"
alias dequarantine="xattr -d com.apple.quarantine"
alias bcpa="brew cleanup --prune=all"
alias puil="pnpm update --interactive --latest"
alias pip-upgrade-all="pip --disable-pip-version-check list --outdated --format=json | python -c \"import json, sys; print('\n'.join([x['name'] for x in json.load(sys.stdin)]))\" | xargs -n1 pip install -U"
function take() {
mkdir "$1"
cd "$1" || return 1
}
function clean_vscode_workspace_storage() {
for i in "$HOME/Library/Application Support/Code/User/workspaceStorage/"*; do
if [ -f $i/workspace.json ]; then
older="$(python3 -c "import sys, json; print(json.load(open(sys.argv[1], 'r'))['folder'])" $i/workspace.json 2>/dev/null | sed 's#^file://##;s/+/ /g;s/%\(..\)/\\x\1/g;')";
if [ -n "$folder" ] && [ ! -d "$folder" ]; then
echo "Removing workspace $(basename $i) for deleted folder $folder of size $(du -sh $i|cut -f1)"; rm -rfv "$i";
fi
fi
done
}
# starship
eval "$(starship init zsh)"
# fzf
# [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
# zoxide
eval "$(zoxide init zsh)"
# direnv
command -v direnv &> /dev/null && eval "$(direnv hook zsh)"
# iTerm
[ -e "$HOME/.iterm2_shell_integration.zsh" ] && source "$HOME/.iterm2_shell_integration.zsh"

View file

@ -0,0 +1,5 @@
if command -v brew &>/dev/null
then
FPATH="$(brew --prefix)/share/zsh/site-functions:$FPATH"
fi
FPATH="$HOME/.zfunc:$FPATH"

BIN
secrets/attic.toml.age Normal file

Binary file not shown.

5
secrets/secrets.nix Normal file
View file

@ -0,0 +1,5 @@
let
main = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFthNLv08xufLf09hObm+COlDdYDL4WuH9f+PZm54M3I";
in {
"attic.toml.age".publicKeys = [main];
}