Compare commits
2
Commits
2c31a2aced
...
534d3b9353
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
534d3b9353 | ||
|
|
2fb38b685d |
@@ -22,9 +22,8 @@ in
|
||||
};
|
||||
|
||||
imports = [
|
||||
|
||||
../../modules/darwin/default.nix
|
||||
../../modules/darwin/home-manager.nix
|
||||
../../modules/shared
|
||||
];
|
||||
|
||||
# Setup user, packages, programs
|
||||
@@ -116,7 +115,7 @@ in
|
||||
];
|
||||
})
|
||||
]
|
||||
++ (import ../../modules/shared/packages.nix { inherit pkgs llm-agents; })
|
||||
++ (import ../../modules/darwin/packages.nix { inherit pkgs llm-agents; })
|
||||
|
||||
;
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ let
|
||||
emacsOverlaySha256 = "0pqnl05j86pyvrlqh5kk4sximi749xqgiffq47grw7v98nqd2yin";
|
||||
in
|
||||
{
|
||||
|
||||
home-manager.backupFileExtension = "nix-backup";
|
||||
nixpkgs = {
|
||||
config = {
|
||||
@@ -18,7 +17,6 @@ in
|
||||
};
|
||||
|
||||
overlays =
|
||||
# Apply each overlay found in the /overlays directory
|
||||
let path = ../../overlays; in with builtins;
|
||||
map (n: import (path + ("/" + n)))
|
||||
(filter (n: match ".*\\.nix" n != null ||
|
||||
@@ -12,6 +12,8 @@ let
|
||||
in
|
||||
{
|
||||
|
||||
# Shared file definitions moved into the Darwin module set.
|
||||
|
||||
# Raycast script so that "Run Emacs" is available and uses Emacs daemon
|
||||
"${xdg_dataHome}/bin/emacsclient" = {
|
||||
executable = true;
|
||||
|
||||
@@ -14,7 +14,6 @@ let
|
||||
#!/bin/sh
|
||||
emacs &
|
||||
'';
|
||||
sharedFiles = import ../shared/files.nix { inherit config pkgs; };
|
||||
additionalFiles = import ./files.nix { inherit user config pkgs; };
|
||||
in
|
||||
{
|
||||
@@ -58,7 +57,7 @@ in
|
||||
"Affinity Photo 2: Image Editor" = 1616822987;
|
||||
"Affinity Publisher 2" = 1606941598;
|
||||
"Apple Remote Desktop" = 409907375; # (3.11)
|
||||
# "DaisyDisk" = 411643860; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
||||
# "DaisyDisk" = 409907375; # (4.32) # Don't use this, we need the official version that is not sandboxed
|
||||
"Fantastical - Calendar" = 975937182;
|
||||
" Fedistar" = 6445863996; # (1.13.1)
|
||||
"Home Assistant" = 1099568401; # (2025.7.1)
|
||||
@@ -92,17 +91,198 @@ in
|
||||
home = {
|
||||
enableNixpkgsReleaseCheck = false;
|
||||
packages = pkgs.callPackage ./packages.nix { inherit llm-agents; };
|
||||
file = lib.mkMerge [
|
||||
sharedFiles
|
||||
additionalFiles
|
||||
{ "emacs-launcher.command".source = myEmacsLauncher; }
|
||||
|
||||
];
|
||||
file = additionalFiles // { "emacs-launcher.command".source = myEmacsLauncher; };
|
||||
|
||||
stateVersion = "23.11";
|
||||
};
|
||||
programs = {
|
||||
} // import ../shared/home-manager.nix { inherit config pkgs lib; };
|
||||
gpg.enable = true;
|
||||
|
||||
zsh = {
|
||||
enable = true;
|
||||
autocd = false;
|
||||
cdpath = [ "~/.local/share/src" ];
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ ];
|
||||
theme = "mrtazz";
|
||||
};
|
||||
initContent =
|
||||
let
|
||||
zshConfigEarlyInit = lib.mkOrder 500 ''
|
||||
if [[ -f /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]]; then
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
||||
fi
|
||||
|
||||
# GPGAgent for SSH
|
||||
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||
|
||||
# Define variables for directories
|
||||
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
|
||||
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
|
||||
export PATH=$HOME/.local/share/bin:$PATH
|
||||
export PATH=$HOME/.cargo/bin:$PATH
|
||||
# Remove history data we don't want to see
|
||||
export HISTIGNORE="pwd:ls:cd"
|
||||
|
||||
# Ripgrep alias
|
||||
alias search=rg -p --glob '!node_modules/*' $@
|
||||
|
||||
# Emacs is my editor
|
||||
export ALTERNATE_EDITOR="vim"
|
||||
export EDITOR="emacs -nw"
|
||||
export VISUAL="emacs"
|
||||
# RMAPI remarkable
|
||||
RMAPI_CONFIG=/Users/olaf/.config/rmapi
|
||||
|
||||
e() {
|
||||
emacs -nw "$@"
|
||||
}
|
||||
|
||||
# nix shortcuts
|
||||
shell() {
|
||||
nix-shell '<nixpkgs>' -A "$1"
|
||||
}
|
||||
|
||||
# pnpm is a javascript package manager
|
||||
alias pn=pnpm
|
||||
alias px=pnpx
|
||||
'';
|
||||
zshConfigLastInit = lib.mkOrder 1500 ''
|
||||
# Always color ls and group directories
|
||||
alias ls='ls --color=auto'
|
||||
|
||||
'';
|
||||
in
|
||||
lib.mkMerge [
|
||||
zshConfigEarlyInit
|
||||
zshConfigLastInit
|
||||
];
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
ignores = [ "*.swp" ];
|
||||
|
||||
lfs = {
|
||||
enable = true;
|
||||
};
|
||||
settings = {
|
||||
init.defaultBranch = "main";
|
||||
core = {
|
||||
editor = "vim";
|
||||
autocrlf = "input";
|
||||
};
|
||||
commit.gpgsign = false;
|
||||
pull.rebase = true;
|
||||
rebase.autoStash = true;
|
||||
user = {
|
||||
name = "olaf";
|
||||
email = "olaf@xolx.nl";
|
||||
};
|
||||
};
|
||||
signing = {
|
||||
format = "openpgp";
|
||||
key = null;
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
|
||||
vim = {
|
||||
enable = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-airline
|
||||
vim-airline-themes
|
||||
vim-startify
|
||||
vim-tmux-navigator
|
||||
];
|
||||
settings = {
|
||||
ignorecase = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
"" General
|
||||
set number
|
||||
set history=1000
|
||||
set nocompatible
|
||||
set modelines=0
|
||||
set encoding=utf-8
|
||||
set scrolloff=3
|
||||
set showmode
|
||||
set showcmd
|
||||
set hidden
|
||||
set wildmenu
|
||||
set wildmode=list:longest
|
||||
set cursorline
|
||||
set ttyfast
|
||||
set nowrap
|
||||
set ruler
|
||||
set backspace=indent,eol,start
|
||||
set laststatus=2
|
||||
set clipboard=autoselect
|
||||
|
||||
" Dir stuff
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
set noswapfile
|
||||
set backupdir=~/.config/vim/backups
|
||||
set directory=~/.config/vim/swap
|
||||
|
||||
" Relative line numbers for easy movement
|
||||
set relativenumber
|
||||
set rnu
|
||||
|
||||
"" Whitespace rules
|
||||
set tabstop=8
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set expandtab
|
||||
|
||||
"" Searching
|
||||
set incsearch
|
||||
set gdefault
|
||||
|
||||
"" Statusbar
|
||||
set nocompatible " Disable vi-compatibility
|
||||
set laststatus=2 " Always show the statusline
|
||||
let g:airline_theme='bubblegum'
|
||||
let g:airline_powerline_fonts = 1
|
||||
|
||||
"" Local keys and such
|
||||
let mapleader=","
|
||||
let maplocalleader=" "
|
||||
|
||||
"" Change cursor on mode
|
||||
:autocmd InsertEnter * set cul
|
||||
:autocmd InsertLeave * set nocul
|
||||
|
||||
"" File-type highlighting and configuration
|
||||
syntax on
|
||||
filetype on
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
|
||||
"" Paste from clipboard
|
||||
nnoremap <Leader>, "+gP
|
||||
|
||||
"" Copy from clipboard
|
||||
xnoremap <Leader>. "+y
|
||||
|
||||
"" Move cursor by display lines when wrapping
|
||||
nnoremap j gj
|
||||
nnoremap k gk
|
||||
|
||||
"" Map leader-q to quit out of window
|
||||
nnoremap <leader>q :q<cr>
|
||||
|
||||
"" Move around split
|
||||
nnoremap <C-h> <C-w>h
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-l> <C-w>l
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
autoEnable = true;
|
||||
|
||||
+201
-6
@@ -1,12 +1,207 @@
|
||||
{ pkgs, llm-agents }:
|
||||
|
||||
with pkgs;
|
||||
let
|
||||
shared-packages = import ../shared/packages.nix { inherit pkgs llm-agents; };
|
||||
in
|
||||
shared-packages
|
||||
++ [
|
||||
dockutil
|
||||
[
|
||||
# Nix
|
||||
nixd
|
||||
mas
|
||||
|
||||
# X11
|
||||
libx11
|
||||
libxt
|
||||
libxext
|
||||
libxrender
|
||||
libxrandr
|
||||
xterm
|
||||
|
||||
# security and some such
|
||||
# bitwarden-desktop #Does not compile properly
|
||||
# bitwarden-cli # Fails on i386
|
||||
yubikey-manager # provides ykman
|
||||
pinentry_mac
|
||||
|
||||
# General packages for development and system management
|
||||
alacritty
|
||||
ansible
|
||||
aspell
|
||||
aspellDicts.en
|
||||
bash-completion
|
||||
bat
|
||||
btop
|
||||
coreutils
|
||||
difftastic
|
||||
htop
|
||||
killall
|
||||
minicom
|
||||
mtr
|
||||
ncdu
|
||||
nodejs
|
||||
|
||||
fastfetch
|
||||
nixfmt
|
||||
openssh
|
||||
postgresql
|
||||
sqlite
|
||||
unrar
|
||||
wget
|
||||
zip
|
||||
|
||||
# Development
|
||||
act
|
||||
autoconf
|
||||
autoconf-archive
|
||||
automake
|
||||
ccache
|
||||
clang-tools
|
||||
cmake
|
||||
dfu-util
|
||||
go
|
||||
jd-diff-patch # json diff patch
|
||||
jq # json tool
|
||||
llvm
|
||||
nasm
|
||||
ninja
|
||||
pkg-config
|
||||
|
||||
# Encryption and security tools
|
||||
age
|
||||
gnupg
|
||||
just
|
||||
libfido2
|
||||
sops
|
||||
|
||||
# Cloud-related tools and SDKs
|
||||
docker
|
||||
docker-compose
|
||||
|
||||
# Media-related packages
|
||||
fd
|
||||
ffmpeg
|
||||
imagemagick
|
||||
|
||||
# Text and terminal utilities
|
||||
htop
|
||||
hunspell
|
||||
iftop
|
||||
inetutils # includes Telnet
|
||||
jq
|
||||
ripgrep
|
||||
tmux
|
||||
tree
|
||||
unrar
|
||||
unzip
|
||||
|
||||
# Python packages
|
||||
virtualenv
|
||||
uv
|
||||
|
||||
(python3.withPackages (
|
||||
python-pkgs: with python-pkgs; [
|
||||
bidict
|
||||
blinker
|
||||
certifi
|
||||
charset-normalizer
|
||||
click
|
||||
flask
|
||||
flask-socketio
|
||||
h11
|
||||
idna
|
||||
importlib-metadata
|
||||
itsdangerous
|
||||
jinja2
|
||||
markupsafe
|
||||
mercantile
|
||||
mlx-lm
|
||||
numpy
|
||||
pandas
|
||||
pillow
|
||||
pillow
|
||||
python-engineio
|
||||
python-socketio
|
||||
requests
|
||||
requests
|
||||
shapely
|
||||
simple-websocket
|
||||
tkinter
|
||||
tqdm
|
||||
urllib3
|
||||
werkzeug
|
||||
wsproto
|
||||
zipp
|
||||
]
|
||||
))
|
||||
|
||||
# LLM
|
||||
ollama # Launchd definition in hosts/darwin/default.nix
|
||||
|
||||
# Social
|
||||
pidgin
|
||||
|
||||
# Rust Related
|
||||
rustc
|
||||
cargo
|
||||
platformio-core
|
||||
|
||||
# XML, Tex and LaTex
|
||||
mdbook
|
||||
pandoc
|
||||
rubyPackages_3_4.kramdown-rfc2629
|
||||
tex-fmt
|
||||
xml2rfc
|
||||
zotero
|
||||
|
||||
(texlive.combine {
|
||||
inherit (texlive)
|
||||
apa6
|
||||
apa7
|
||||
apacite
|
||||
biber
|
||||
biblatex
|
||||
biblatex-apa6
|
||||
bibunits
|
||||
catchfile
|
||||
cjk
|
||||
comment
|
||||
courier
|
||||
csquotes
|
||||
draftwatermark
|
||||
endfloat
|
||||
enumitem
|
||||
fancyhdr
|
||||
fontawesome5
|
||||
footmisc
|
||||
footnotehyper
|
||||
geometry
|
||||
ifmtarg
|
||||
latexmk
|
||||
lipsum
|
||||
lualatex-math
|
||||
makecell
|
||||
microtype
|
||||
multirow
|
||||
nowidow
|
||||
parskip
|
||||
ragged2e
|
||||
scalerel
|
||||
scheme-small
|
||||
selnolig
|
||||
sourcesanspro
|
||||
svg
|
||||
tcolorbox
|
||||
texcount
|
||||
threeparttable
|
||||
tikzfill
|
||||
titlesec
|
||||
titling
|
||||
tocloft
|
||||
transparent
|
||||
upquote
|
||||
url
|
||||
xecjk
|
||||
xifthen
|
||||
xurl
|
||||
;
|
||||
})
|
||||
|
||||
dockutil
|
||||
]
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
## Shared
|
||||
Much of the code running on macOS is actually found here.
|
||||
|
||||
This configuration gets imported by both modules. Some configuration examples include `git`, `zsh`, `vim`, and `tmux`.
|
||||
|
||||
## Layout
|
||||
```
|
||||
.
|
||||
├── config # Config files not written in Nix
|
||||
├── cachix # Defines cachix, a global cache for builds
|
||||
├── default.nix # Defines how we import overlays
|
||||
├── files.nix # Non-Nix, static configuration files (now immutable!)
|
||||
├── home-manager.nix # The goods; most all shared config lives here
|
||||
├── packages.nix # List of packages to share
|
||||
|
||||
```
|
||||
@@ -1,12 +0,0 @@
|
||||
{ pkgs, config, ... }:
|
||||
|
||||
# let
|
||||
# githubPublicKey = "ssh-ed25519 AAAA...";
|
||||
# in
|
||||
{
|
||||
|
||||
# ".ssh/id_github.pub" = {
|
||||
# text = githubPublicKey;
|
||||
# };
|
||||
|
||||
}
|
||||
@@ -1,427 +0,0 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
name = "olaf";
|
||||
user = "olaf";
|
||||
email = "olaf@xolx.nl";
|
||||
in
|
||||
{
|
||||
|
||||
gpg = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default-key = "01B157D574FEDBB2" ;
|
||||
no-emit-version = true;
|
||||
auto-key-retrieve = true;
|
||||
personal-digest-preferences= "SHA512 SHA384 SHA256 SHA224";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
# Shared shell configuration
|
||||
zsh = {
|
||||
enable = true;
|
||||
autocd = false;
|
||||
cdpath = [ "~/.local/share/src" ];
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [ ];
|
||||
# theme = "fishy";
|
||||
# theme = "ys";
|
||||
theme = "mrtazz";
|
||||
};
|
||||
# plugins = [ ];
|
||||
|
||||
initContent =
|
||||
let
|
||||
zshConfigEarlyInit = lib.mkOrder 500 ''
|
||||
if [[ -f /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh ]]; then
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix.sh
|
||||
fi
|
||||
|
||||
|
||||
# GPGAgent for SSH
|
||||
export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
|
||||
|
||||
# Define variables for directories
|
||||
export PATH=$HOME/.pnpm-packages/bin:$HOME/.pnpm-packages:$PATH
|
||||
export PATH=$HOME/.npm-packages/bin:$HOME/bin:$PATH
|
||||
export PATH=$HOME/.local/share/bin:$PATH
|
||||
export PATH=$HOME/.cargo/bin:$PATH
|
||||
# Remove history data we don't want to see
|
||||
export HISTIGNORE="pwd:ls:cd"
|
||||
|
||||
# Ripgrep alias
|
||||
alias search=rg -p --glob '!node_modules/*' $@
|
||||
|
||||
# Emacs is my editor
|
||||
export ALTERNATE_EDITOR="vim"
|
||||
export EDITOR="emacs -nw"
|
||||
export VISUAL="emacs"
|
||||
# RMAPI remarkable
|
||||
RMAPI_CONFIG=/Users/olaf/.config/rmapi
|
||||
|
||||
e() {
|
||||
emacs -nw "$@"
|
||||
}
|
||||
|
||||
# nix shortcuts
|
||||
shell() {
|
||||
nix-shell '<nixpkgs>' -A "$1"
|
||||
}
|
||||
|
||||
# pnpm is a javascript package manager
|
||||
alias pn=pnpm
|
||||
alias px=pnpx
|
||||
|
||||
# Use difftastic, syntax-aware diffing
|
||||
# alias diff=difft
|
||||
|
||||
|
||||
|
||||
|
||||
'';
|
||||
zshConfigLastInit = lib.mkOrder 1500 ''
|
||||
# Always color ls and group directories
|
||||
alias ls='ls --color=auto'
|
||||
|
||||
'';
|
||||
in
|
||||
lib.mkMerge [
|
||||
zshConfigEarlyInit
|
||||
zshConfigLastInit
|
||||
];
|
||||
|
||||
};
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
ignores = [ "*.swp" ];
|
||||
|
||||
lfs = {
|
||||
enable = true;
|
||||
};
|
||||
settings = {
|
||||
init.defaultBranch = "main";
|
||||
core = {
|
||||
editor = "vim";
|
||||
autocrlf = "input";
|
||||
};
|
||||
commit.gpgsign = false;
|
||||
pull.rebase = true;
|
||||
rebase.autoStash = true;
|
||||
user = {
|
||||
name = name;
|
||||
email = email;
|
||||
};
|
||||
};
|
||||
signing = {
|
||||
format = "openpgp";
|
||||
key = null;
|
||||
signByDefault = true;
|
||||
};
|
||||
};
|
||||
|
||||
vim = {
|
||||
enable = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
vim-airline
|
||||
vim-airline-themes
|
||||
vim-startify
|
||||
vim-tmux-navigator
|
||||
];
|
||||
settings = {
|
||||
ignorecase = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
"" General
|
||||
set number
|
||||
set history=1000
|
||||
set nocompatible
|
||||
set modelines=0
|
||||
set encoding=utf-8
|
||||
set scrolloff=3
|
||||
set showmode
|
||||
set showcmd
|
||||
set hidden
|
||||
set wildmenu
|
||||
set wildmode=list:longest
|
||||
set cursorline
|
||||
set ttyfast
|
||||
set nowrap
|
||||
set ruler
|
||||
set backspace=indent,eol,start
|
||||
set laststatus=2
|
||||
set clipboard=autoselect
|
||||
|
||||
" Dir stuff
|
||||
set nobackup
|
||||
set nowritebackup
|
||||
set noswapfile
|
||||
set backupdir=~/.config/vim/backups
|
||||
set directory=~/.config/vim/swap
|
||||
|
||||
" Relative line numbers for easy movement
|
||||
set relativenumber
|
||||
set rnu
|
||||
|
||||
"" Whitespace rules
|
||||
set tabstop=8
|
||||
set shiftwidth=2
|
||||
set softtabstop=2
|
||||
set expandtab
|
||||
|
||||
"" Searching
|
||||
set incsearch
|
||||
set gdefault
|
||||
|
||||
"" Statusbar
|
||||
set nocompatible " Disable vi-compatibility
|
||||
set laststatus=2 " Always show the statusline
|
||||
let g:airline_theme='bubblegum'
|
||||
let g:airline_powerline_fonts = 1
|
||||
|
||||
"" Local keys and such
|
||||
let mapleader=","
|
||||
let maplocalleader=" "
|
||||
|
||||
"" Change cursor on mode
|
||||
:autocmd InsertEnter * set cul
|
||||
:autocmd InsertLeave * set nocul
|
||||
|
||||
"" File-type highlighting and configuration
|
||||
syntax on
|
||||
filetype on
|
||||
filetype plugin on
|
||||
filetype indent on
|
||||
|
||||
"" Paste from clipboard
|
||||
nnoremap <Leader>, "+gP
|
||||
|
||||
"" Copy from clipboard
|
||||
xnoremap <Leader>. "+y
|
||||
|
||||
"" Move cursor by display lines when wrapping
|
||||
nnoremap j gj
|
||||
nnoremap k gk
|
||||
|
||||
"" Map leader-q to quit out of window
|
||||
nnoremap <leader>q :q<cr>
|
||||
|
||||
"" Move around split
|
||||
nnoremap <C-h> <C-w>h
|
||||
nnoremap <C-j> <C-w>j
|
||||
nnoremap <C-k> <C-w>k
|
||||
nnoremap <C-l> <C-w>l
|
||||
|
||||
"" Easier to yank entire line
|
||||
nnoremap Y y$
|
||||
|
||||
"" Move buffers
|
||||
nnoremap <tab> :bnext<cr>
|
||||
nnoremap <S-tab> :bprev<cr>
|
||||
|
||||
"" Like a boss, sudo AFTER opening the file to write
|
||||
cmap w!! w !sudo tee % >/dev/null
|
||||
|
||||
let g:startify_lists = [
|
||||
\ { 'type': 'dir', 'header': [' Current Directory '. getcwd()] },
|
||||
\ { 'type': 'sessions', 'header': [' Sessions'] },
|
||||
\ { 'type': 'bookmarks', 'header': [' Bookmarks'] }
|
||||
\ ]
|
||||
|
||||
let g:startify_bookmarks = [
|
||||
\ '~/.local/share/src',
|
||||
\ ]
|
||||
|
||||
let g:airline_theme='bubblegum'
|
||||
let g:airline_powerline_fonts = 1
|
||||
'';
|
||||
};
|
||||
|
||||
alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cursor = {
|
||||
style = "Block";
|
||||
};
|
||||
|
||||
window = {
|
||||
opacity = 1.0;
|
||||
padding = {
|
||||
x = 24;
|
||||
y = 24;
|
||||
};
|
||||
};
|
||||
|
||||
font = {
|
||||
normal = {
|
||||
family = "MesloLGS NF";
|
||||
style = "Regular";
|
||||
};
|
||||
size = lib.mkMerge [
|
||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux 10)
|
||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin 14)
|
||||
];
|
||||
};
|
||||
|
||||
dynamic_padding = true;
|
||||
decorations = "full";
|
||||
title = "Terminal";
|
||||
class = {
|
||||
instance = "Alacritty";
|
||||
general = "Alacritty";
|
||||
};
|
||||
|
||||
colors = {
|
||||
primary = {
|
||||
background = "0x1f2528";
|
||||
foreground = "0xc0c5ce";
|
||||
};
|
||||
|
||||
normal = {
|
||||
black = "0x1f2528";
|
||||
red = "0xec5f67";
|
||||
green = "0x99c794";
|
||||
yellow = "0xfac863";
|
||||
blue = "0x6699cc";
|
||||
magenta = "0xc594c5";
|
||||
cyan = "0x5fb3b3";
|
||||
white = "0xc0c5ce";
|
||||
};
|
||||
|
||||
bright = {
|
||||
black = "0x65737e";
|
||||
red = "0xec5f67";
|
||||
green = "0x99c794";
|
||||
yellow = "0xfac863";
|
||||
blue = "0x6699cc";
|
||||
magenta = "0xc594c5";
|
||||
cyan = "0x5fb3b3";
|
||||
white = "0xd8dee9";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ssh = {
|
||||
enable = true;
|
||||
|
||||
enableDefaultConfig = false;
|
||||
settings= {
|
||||
"*" = {
|
||||
forwardAgent = false;
|
||||
addKeysToAgent = "no";
|
||||
compression = false;
|
||||
serverAliveInterval = 0;
|
||||
serverAliveCountMax = 3;
|
||||
hashKnownHosts = false;
|
||||
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||
controlMaster = "no";
|
||||
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||
controlPersist = "no";
|
||||
};
|
||||
"moonunit.kolkman.org" = {
|
||||
hostname = "moonunit.kolkman.org";
|
||||
user = "root";
|
||||
port = 2222;
|
||||
};
|
||||
};
|
||||
includes = [
|
||||
(lib.mkIf pkgs.stdenv.hostPlatform.isLinux "/home/${user}/.ssh/config_external")
|
||||
(lib.mkIf pkgs.stdenv.hostPlatform.isDarwin "/Users/${user}/.ssh/config_external")
|
||||
];
|
||||
};
|
||||
|
||||
tmux = {
|
||||
enable = true;
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
vim-tmux-navigator
|
||||
sensible
|
||||
yank
|
||||
prefix-highlight
|
||||
{
|
||||
plugin = power-theme;
|
||||
extraConfig = ''
|
||||
set -g @tmux_power_theme 'gold'
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = resurrect; # Used by tmux-continuum
|
||||
|
||||
# Use XDG data directory
|
||||
# https://github.com/tmux-plugins/tmux-resurrect/issues/348
|
||||
extraConfig = ''
|
||||
set -g @resurrect-dir '$HOME/.cache/tmux/resurrect'
|
||||
set -g @resurrect-capture-pane-contents 'on'
|
||||
set -g @resurrect-pane-contents-area 'visible'
|
||||
'';
|
||||
}
|
||||
{
|
||||
plugin = continuum;
|
||||
extraConfig = ''
|
||||
set -g @continuum-restore 'on'
|
||||
set -g @continuum-save-interval '5' # minutes
|
||||
'';
|
||||
}
|
||||
];
|
||||
terminal = "screen-256color";
|
||||
prefix = "C-x";
|
||||
escapeTime = 10;
|
||||
historyLimit = 50000;
|
||||
extraConfig = ''
|
||||
# Remove Vim mode delays
|
||||
set -g focus-events on
|
||||
|
||||
# Enable full mouse support
|
||||
set -g mouse on
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Key bindings
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Unbind default keys
|
||||
unbind C-b
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# Split panes, vertical or horizontal
|
||||
bind-key x split-window -v
|
||||
bind-key v split-window -h
|
||||
|
||||
# Move around panes with vim-like bindings (h,j,k,l)
|
||||
bind-key -n M-k select-pane -U
|
||||
bind-key -n M-h select-pane -L
|
||||
bind-key -n M-j select-pane -D
|
||||
bind-key -n M-l select-pane -R
|
||||
|
||||
# Smart pane switching with awareness of Vim splits.
|
||||
# This is copy paste from https://github.com/christoomey/vim-tmux-navigator
|
||||
is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
|
||||
| grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
|
||||
bind-key -n 'C-h' if-shell "$is_vim" 'send-keys C-h' 'select-pane -L'
|
||||
bind-key -n 'C-j' if-shell "$is_vim" 'send-keys C-j' 'select-pane -D'
|
||||
bind-key -n 'C-k' if-shell "$is_vim" 'send-keys C-k' 'select-pane -U'
|
||||
bind-key -n 'C-l' if-shell "$is_vim" 'send-keys C-l' 'select-pane -R'
|
||||
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")'
|
||||
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \
|
||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'"
|
||||
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \
|
||||
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\\\' 'select-pane -l'"
|
||||
|
||||
bind-key -T copy-mode-vi 'C-h' select-pane -L
|
||||
bind-key -T copy-mode-vi 'C-j' select-pane -D
|
||||
bind-key -T copy-mode-vi 'C-k' select-pane -U
|
||||
bind-key -T copy-mode-vi 'C-l' select-pane -R
|
||||
bind-key -T copy-mode-vi 'C-\' select-pane -l
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
(vscode-with-extensions.override {
|
||||
vscodeExtensions =
|
||||
with vscode-extensions;
|
||||
[
|
||||
#bbenoist.nix
|
||||
jnoortheen.nix-ide
|
||||
ms-python.python
|
||||
ms-azuretools.vscode-docker
|
||||
# ms-vscode-remote.remote-ssh
|
||||
# ms-vscode.cpptools
|
||||
eamodio.gitlens
|
||||
|
||||
]
|
||||
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
# {
|
||||
# name = "remote-ssh-edit";
|
||||
# publisher = "ms-vscode-remote";
|
||||
# version = "0.47.2";
|
||||
# sha256 = "1hp6gjh4xp2m1xlm1jsdzxw9d8frkiidhph6nvl24d0h8z34w49g";
|
||||
# }
|
||||
{
|
||||
name = "cpptools";
|
||||
publisher = "ms-vscode";
|
||||
version = "1.26.1";
|
||||
sha256 = "sha256-uVE7sEO8XN3ArFpElUw25/BKyCOzF1EmZ5nHBkdoL/0=";
|
||||
}
|
||||
# {
|
||||
# name = "minifyall";
|
||||
# publisher = "josee9988";
|
||||
# version = "2.10";
|
||||
# }
|
||||
{
|
||||
name = "platformio-ide";
|
||||
publisher = "platformio";
|
||||
version = "3.3.4";
|
||||
sha256 = "sha256-qfNz4IYjCmCMFLtAkbGTW5xnsVT8iDnFWjrgkmr2Slk=";
|
||||
}
|
||||
];
|
||||
})
|
||||
@@ -1,231 +0,0 @@
|
||||
{ pkgs, llm-agents }:
|
||||
|
||||
with pkgs;
|
||||
[
|
||||
# Nix
|
||||
nixd
|
||||
mas
|
||||
|
||||
# X11
|
||||
libx11
|
||||
libxt
|
||||
libxext
|
||||
libxrender
|
||||
libxrandr
|
||||
xterm
|
||||
|
||||
# The Web Browsers
|
||||
# maintained by in homebrew
|
||||
|
||||
# security and some such
|
||||
# bitwarden-desktop #Does not compile properly
|
||||
# bitwarden-cli # Fails on i386
|
||||
yubikey-manager # provides ykman
|
||||
pinentry_mac
|
||||
|
||||
# General packages for development and system management
|
||||
alacritty
|
||||
ansible
|
||||
aspell
|
||||
aspellDicts.en
|
||||
bash-completion
|
||||
bat
|
||||
btop
|
||||
coreutils
|
||||
difftastic
|
||||
htop
|
||||
killall
|
||||
minicom
|
||||
mtr
|
||||
ncdu
|
||||
nodejs
|
||||
|
||||
fastfetch
|
||||
nixfmt
|
||||
openssh
|
||||
postgresql
|
||||
sqlite
|
||||
unrar
|
||||
wget
|
||||
zip
|
||||
|
||||
# Development
|
||||
act
|
||||
autoconf
|
||||
autoconf-archive
|
||||
automake
|
||||
ccache
|
||||
clang-tools
|
||||
cmake
|
||||
dfu-util
|
||||
go
|
||||
jd-diff-patch # json diff patch
|
||||
jq # json tool
|
||||
llvm
|
||||
nasm
|
||||
ninja
|
||||
pkg-config
|
||||
|
||||
# Encryption and security tools
|
||||
age
|
||||
gnupg
|
||||
just
|
||||
libfido2
|
||||
sops
|
||||
|
||||
# Cloud-related tools and SDKs
|
||||
docker
|
||||
docker-compose
|
||||
|
||||
# Media-related packages
|
||||
|
||||
fd
|
||||
ffmpeg
|
||||
imagemagick
|
||||
|
||||
|
||||
|
||||
|
||||
# Node.js development tools
|
||||
#nodePackages.npm # globally install npm
|
||||
#nodePackages.prettier
|
||||
|
||||
# Text and terminal utilities
|
||||
|
||||
htop
|
||||
hunspell
|
||||
iftop
|
||||
inetutils # includes Telnet
|
||||
jq
|
||||
ripgrep
|
||||
tmux
|
||||
tree
|
||||
unrar
|
||||
unzip
|
||||
|
||||
# zsh-powerlevel10k
|
||||
|
||||
# Python packages
|
||||
# python3
|
||||
virtualenv
|
||||
uv
|
||||
|
||||
(python3.withPackages (
|
||||
python-pkgs: with python-pkgs; [
|
||||
bidict
|
||||
blinker
|
||||
certifi
|
||||
charset-normalizer
|
||||
click
|
||||
flask
|
||||
flask-socketio
|
||||
h11
|
||||
idna
|
||||
importlib-metadata
|
||||
itsdangerous
|
||||
jinja2
|
||||
markupsafe
|
||||
mercantile
|
||||
mlx-lm
|
||||
numpy
|
||||
pandas
|
||||
pillow
|
||||
pillow
|
||||
python-engineio
|
||||
python-socketio
|
||||
requests
|
||||
requests
|
||||
shapely
|
||||
simple-websocket
|
||||
tkinter
|
||||
tqdm
|
||||
urllib3
|
||||
werkzeug
|
||||
wsproto
|
||||
zipp
|
||||
]
|
||||
))
|
||||
|
||||
# LLM
|
||||
ollama # Launchd definition in hosts/darwin/default.nix
|
||||
|
||||
# Social
|
||||
pidgin
|
||||
|
||||
# Rust Related
|
||||
rustc
|
||||
cargo
|
||||
platformio-core
|
||||
|
||||
# XML, Tex and LaTex
|
||||
|
||||
mdbook
|
||||
pandoc
|
||||
rubyPackages_3_4.kramdown-rfc2629
|
||||
tex-fmt
|
||||
xml2rfc
|
||||
zotero
|
||||
|
||||
(texlive.combine {
|
||||
inherit (texlive)
|
||||
apa6
|
||||
apa7
|
||||
apacite
|
||||
biber
|
||||
biblatex
|
||||
biblatex-apa6
|
||||
bibunits
|
||||
catchfile
|
||||
cjk
|
||||
comment
|
||||
courier
|
||||
csquotes
|
||||
draftwatermark
|
||||
endfloat
|
||||
enumitem
|
||||
fancyhdr
|
||||
fontawesome5
|
||||
footmisc
|
||||
footnotehyper
|
||||
geometry
|
||||
ifmtarg
|
||||
latexmk
|
||||
lipsum
|
||||
lualatex-math
|
||||
makecell
|
||||
microtype
|
||||
multirow
|
||||
nowidow
|
||||
parskip
|
||||
ragged2e
|
||||
scalerel
|
||||
scheme-small
|
||||
selnolig
|
||||
sourcesanspro
|
||||
svg
|
||||
tcolorbox
|
||||
texcount
|
||||
threeparttable
|
||||
tikzfill
|
||||
titlesec
|
||||
titling
|
||||
tocloft
|
||||
transparent
|
||||
upquote
|
||||
url
|
||||
xecjk
|
||||
xifthen
|
||||
xurl
|
||||
;
|
||||
|
||||
})
|
||||
]
|
||||
|
||||
### Agents from https://github.com/numtide/llm-agents.nix
|
||||
|
||||
|
||||
|
||||
++ (with llm-agents.packages.${pkgs.stdenv.hostPlatform.system}; [
|
||||
hermes-desktop
|
||||
hermes-hud
|
||||
])
|
||||
Reference in New Issue
Block a user