You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

354 lines
8.2 KiB
Nix

{ pkgs, ... }:
let
secrets = import ./secrets.nix;
in
{
home.stateVersion = "18.09";
4 months ago
home.username = "dustinswan";
home.homeDirectory = "/Users/dustinswan";
imports = [
<catppuccin/modules/home-manager>
];
4 months ago
# catppuccin.enable = true; # TODO
home.packages = with pkgs; [
fd # `fd PATTERN`; `fd` is like ls-R; `-e ext` searches by extension; `-g` for glob; `-H` searches hidden files; `-u` for unrestricted; `fd -e jpg -x convert {} {.}.png`
mosh # like ssh but better on spotty networks
1 year ago
w3m
hexyl
wget
httpie
4 months ago
hurl
atac # API client
# bruno
1 year ago
nmap
4 months ago
trippy # sudo trip example.com
ouch # "Painless compression and decompression"; `ouch d a.zip b.tar.gz c.tar -d output_dir`; `ouch c a.txt b.txt archive.zip`; `ouch list archive.zip --tree`
sshs
4 months ago
ngrok
ddev
bitwarden-cli
mkcert
1 year ago
timg
restic
gnupg
gpg-tui
rage
sd
4 months ago
kalker
# lnav
1 year ago
glow
4 months ago
spotify-player
1 year ago
spotifyd
4 months ago
toot
yt-dlp
youtube-tui
1 year ago
amfora
duf
du-dust
1 year ago
pandoc
pastel
jq
jo
fx
jc
4 months ago
xsv
jless
1 year ago
miller
4 months ago
# visidata
jwt-cli
mysql
# sc-im
1 year ago
cacert
weechat
cointop
tz
4 months ago
sttr # string operations. e.g. sttr md5 "Hello World"; sttr snake "ChangeCase"
1 year ago
ddgr
so
silicon
imagemagick
1 year ago
magic-wormhole
4 months ago
# tunnel # portal send <file1> <file2> <folder1> <folder2> ... # portal receive 1-intertia-elliptical-celestial
termscp # SCP/SFTP/FTP/S3
# nixfmt # deprecated?
1 year ago
shellcheck
vale
# tectonic
# zathura # lilypond-with-fonts
1 year ago
nodejs
deno
bun
1 year ago
yarn
flyctl
lazydocker
4 months ago
php83
php83Packages.composer
1 year ago
nodePackages.typescript-language-server
nodePackages.stylelint
nodePackages.js-beautify
nodePackages.intelephense
1 year ago
nodePackages.expo-cli
nodePackages.localtunnel
1 year ago
ocaml
dune_2
ocamlPackages.utop
ocamlPackages.ocp-indent
ocamlPackages.merlin
# rustup
rustc
cargo
zig
1 year ago
go
cmake
7 months ago
python3
pipx
7 months ago
python312Packages.pip
racket-minimal
ghc
llvm
haskell-language-server
hlint
haskellPackages.hoogle
lua53Packages.luarocks
1 year ago
translate-shell
1 year ago
ispell
aspell
aspellDicts.en
aspellDicts.en-computers
aspellDicts.en-science
aspellDicts.fr
aspellDicts.de
aspellDicts.eo
aspellDicts.es
];
6 years ago
home.sessionVariables = {
EDITOR = "vim";
2 years ago
BROWSER = "open";
TZ_LIST = "US/Pacific;US/Mountain;US/Central;US/Eastern;Europe/London;Europe/Kiev;Asia/Shanghai;Asia/Tokyo";
inherit (secrets.openai) OPENAI_API_KEY;
};
home.sessionPath = [
"$HOME/.local/bin"
"$HOME/.cargo/bin"
"$HOME/.npm-global/bin"
];
4 months ago
xdg.enable = true;
programs.home-manager.enable = true;
programs.tmux = {
enable = true;
shortcut = "a";
keyMode = "vi";
7 months ago
mouse = true;
baseIndex = 1;
4 years ago
newSession = true;
secureSocket = false;
terminal = "tmux-256color";
plugins = with pkgs.tmuxPlugins; [
sensible
resurrect # prefix ctrl-s to save sessions; prefix ctrl-r to restore
continuum # automatically save the session every 15 minutes
sessionist # prefix g to switch sessions; prefix C to create; prefix X to kill; prefix S to switch back; prefix @ to promote; prefix t f to join marked pane
pain-control # prefix |, -, \, _ to split; prefix h, j, k, l to switch; prefix H, J, K, L to resize; prefix <, > to move windows
fzf-tmux-url # prefix u -> fzf urls
yank # prefix y -> copy command line to clipboard; prefix Y -> copy pwd to clipboard; search + y -> copy to clipboard
4 months ago
# open # highlight: o -> open; ctrl-o -> $EDITOR; S -> web search
vim-tmux-navigator # ctrl-h, -j, -k, -l -> move between tmux and vim splits
2 years ago
extrakto # prefix tab -> fuzzy find text on screen; enter to copy; tab to paste
4 months ago
fingers # prefix F -> copy/open/edit items on screen by letter
];
extraConfig = ''
set -ag terminal-overrides ",xterm-256color:RGB"
'';
4 months ago
catppuccin.enable = true;
};
programs.eza = {
4 years ago
enable = true;
4 months ago
enableZshIntegration = true;
7 months ago
git = true;
4 years ago
};
1 year ago
programs.zoxide = {
# z doc -> cd ~/Documents; zi -> interactive
enable = true;
3 years ago
enableZshIntegration = true;
};
programs.zsh = {
enable = true;
4 months ago
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
plugins = [ "git" "httpie" "aws" "fd" "fzf" "mosh" "npm" "ripgrep" "rsync" "sudo" "yarn" "vi-mode" ];
};
4 months ago
syntaxHighlighting.catppuccin.enable = true;
};
programs.direnv = {
enable = true;
enableZshIntegration = true;
};
programs.starship = {
enable = true;
enableZshIntegration = true;
4 months ago
catppuccin.enable = true;
};
programs.fzf = {
# ctrl-t, ctrl-r, ssh **<tab>
enable = true;
enableZshIntegration = true;
defaultCommand = "fd --type file --color=always";
defaultOptions = [
"--height 40%"
1 year ago
"--border"
"--ansi"
"--color bg+:#302D41,bg:#1E1E2E,spinner:#F8BD96,hl:#F28FAD"
"--color=fg:#D9E0EE,header:#F28FAD,info:#DDB6F2,pointer:#F8BD96"
"--color=marker:#F8BD96,fg+:#F2CDCD,prompt:#DDB6F2,hl+:#F28FAD"
];
fileWidgetCommand = "fd --type file --color=always";
fileWidgetOptions = [ "--min-height 30 --preview-window noborder --preview '(bat --style=numbers,changes --wrap never --color always {} || cat {} || tree -C {}) 2> /dev/null'" ];
4 months ago
catppuccin.enable = true;
};
programs.ssh = {
enable = true;
matchBlocks = {
5 years ago
dustinswan = {
inherit (secrets.dustinswan) user;
inherit (secrets.dustinswan) hostname;
};
mr = {
inherit (secrets.mr) user;
inherit (secrets.mr) hostname;
identityFile = "/Users/dustinswan/.ssh/id_rsa_mr";
identitiesOnly = true;
};
mr-prod = {
inherit (secrets.mr-prod) user;
inherit (secrets.mr-prod) hostname;
identityFile = "/Users/dustinswan/.ssh/id_rsa_mr";
identitiesOnly = true;
};
mr-prod2 = {
inherit (secrets.mr-prod2) user;
inherit (secrets.mr-prod2) hostname;
identityFile = "/Users/dustinswan/.ssh/id_rsa_mr";
identitiesOnly = true;
5 years ago
};
};
};
programs.git = {
enable = true;
userName = "Dustin Swan";
userEmail = "dustin@dustinswan.com";
signing = {
# signByDefault = true;
key = "AD11750151C10881970BD943AB49BD6B2B3A6377";
};
4 months ago
delta = {
enable = true;
catppuccin.enable = true;
};
};
# programs.jujutsu = {
# enable = true;
# enableZshIntegration = true;
# };
7 months ago
programs.gh.enable = true;
4 months ago
programs.lazygit = {
enable = true;
catppuccin.enable = true;
};
programs.gitui = {
enable = true;
catppuccin.enable = true;
};
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
vimdiffAlias = true;
withNodeJs = true;
withPython3 = true;
2 years ago
withRuby = true;
};
1 year ago
# xdg.configFile."nvim/lua/plugins/lazyvim-plugins.lua".source = ./lazyvim-plugins.lua;
4 months ago
programs.helix = {
enable = true;
catppuccin.enable = true;
};
7 months ago
programs.btop = {
3 years ago
enable = true;
7 months ago
settings = {
4 months ago
# color_theme = "tokyo-night";
7 months ago
theme_background = false;
vim_keys = true;
};
4 months ago
catppuccin.enable = true;
3 years ago
};
4 months ago
programs.bat = {
enable = true;
catppuccin.enable = true;
};
programs.yazi = {
enable = true;
catppuccin.enable = true;
};
7 months ago
# programs.bottom.enable = true;
programs.gpg.enable = true;
programs.mpv.enable = true;
3 years ago
programs.noti.enable = true;
programs.tealdeer.enable = true;
programs.ripgrep.enable = true;
6 years ago
programs.keychain = {
enable = true;
enableZshIntegration = true;
inheritType = "any";
agents = [ "gpg" "ssh" ];
7 months ago
keys = [ "id_rsa" "id_rsa_mr" "2B3A6377" ];
6 years ago
};
programs.newsboat = {
enable = true;
extraConfig = ''
3 years ago
urls-source "inoreader"
inoreader-app-id "${secrets.inoreader.id}"
inoreader-app-key "${secrets.inoreader.key}"
3 years ago
inoreader-login "dustin@dustinswan.com"
inoreader-passwordeval "gpg --decrypt ~/.inoreader-password.gpg"
inoreader-min-items 100
unbind-key j
unbind-key k
bind-key j down
bind-key k up
'';
};
}