Updated some deprecation warnings, moved all firefox instances to shared module, added claude.md file for agent work, fixed zfs kernel version, pinned to 6.10
This commit is contained in:
parent
c7439fa85d
commit
662cfa3fbe
163
CLAUDE.md
Normal file
163
CLAUDE.md
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
# CLAUDE.md
|
||||||
|
|
||||||
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||||
|
|
||||||
|
## Common Commands
|
||||||
|
|
||||||
|
### Building and Rebuilding Systems
|
||||||
|
```bash
|
||||||
|
# Rebuild NixOS configuration for current system
|
||||||
|
sudo nixos-rebuild switch --flake .
|
||||||
|
|
||||||
|
# Build for specific system
|
||||||
|
sudo nixos-rebuild switch --flake .#nate-work
|
||||||
|
sudo nixos-rebuild switch --flake .#nate
|
||||||
|
sudo nixos-rebuild switch --flake .#luci
|
||||||
|
sudo nixos-rebuild switch --flake .#jaci
|
||||||
|
sudo nixos-rebuild switch --flake .#scrappy
|
||||||
|
|
||||||
|
# Test configuration without switching
|
||||||
|
sudo nixos-rebuild test --flake .
|
||||||
|
|
||||||
|
# Check configuration without building
|
||||||
|
nix flake check
|
||||||
|
```
|
||||||
|
|
||||||
|
### Package Management
|
||||||
|
```bash
|
||||||
|
# Update flake inputs
|
||||||
|
nix flake update
|
||||||
|
|
||||||
|
# Run garbage collection
|
||||||
|
nix-collect-garbage -d
|
||||||
|
|
||||||
|
# Check system generations
|
||||||
|
nixos-rebuild list-generations
|
||||||
|
|
||||||
|
# Rollback to previous generation
|
||||||
|
sudo nixos-rebuild switch --rollback
|
||||||
|
```
|
||||||
|
|
||||||
|
### Home Manager
|
||||||
|
```bash
|
||||||
|
# Apply home manager configuration
|
||||||
|
home-manager switch --flake .
|
||||||
|
|
||||||
|
# For specific user configurations
|
||||||
|
home-manager switch --flake .#nate-work
|
||||||
|
```
|
||||||
|
|
||||||
|
## Architecture Overview
|
||||||
|
|
||||||
|
This is a multi-user NixOS configuration repository using Nix flakes. The repository manages configurations for multiple machines and users across different environments.
|
||||||
|
|
||||||
|
### Repository Structure
|
||||||
|
|
||||||
|
- **flake.nix**: Main flake configuration defining all system configurations
|
||||||
|
- **{user}/**: Individual user configuration directories (nate, nate-work, luci, jaci, scrappy)
|
||||||
|
- **shared/**: Shared modules and configurations across systems
|
||||||
|
- **{user}/default.nix**: System-level configuration for each user/machine
|
||||||
|
- **{user}/desktop-configuration.nix**: Desktop environment configuration
|
||||||
|
- **{user}/modules/**: User-specific modules and configurations
|
||||||
|
- **{user}/dotfiles/**: User dotfiles and application configurations
|
||||||
|
|
||||||
|
### Key Components
|
||||||
|
|
||||||
|
#### System Configurations
|
||||||
|
Each system configuration follows this pattern:
|
||||||
|
- `default.nix`: Main system configuration with user settings, hostname, desktop environment
|
||||||
|
- `desktop-configuration.nix`: Desktop environment setup (Sway/Hyprland)
|
||||||
|
- `modules/home-manager/home.nix`: Home Manager configuration
|
||||||
|
- `nixos/hardware-configuration.nix`: Hardware-specific settings
|
||||||
|
|
||||||
|
#### Supported Desktop Environments
|
||||||
|
- **Sway**: Wayland compositor (default)
|
||||||
|
- **Hyprland**: Modern Wayland compositor
|
||||||
|
- Desktop choice configured via `deskCfg.de` option
|
||||||
|
|
||||||
|
#### User Management
|
||||||
|
- Custom `main_user` module handles user creation
|
||||||
|
- Desktop users get additional groups (video, audio, adbusers)
|
||||||
|
- Server users get minimal groups (wheel, networkmanager)
|
||||||
|
|
||||||
|
#### Package Management
|
||||||
|
- Stable packages from nixpkgs 25.05
|
||||||
|
- Unstable packages available via `nixpkgs-unstable`
|
||||||
|
- Catppuccin theme integration via catppuccin.nix
|
||||||
|
- NUR (Nix User Repository) overlay enabled
|
||||||
|
|
||||||
|
### Configuration Patterns
|
||||||
|
|
||||||
|
#### User-Specific Settings
|
||||||
|
Each user configuration defines:
|
||||||
|
```nix
|
||||||
|
{
|
||||||
|
userName = "username";
|
||||||
|
fullName = "Full Name";
|
||||||
|
email = "email@domain.com";
|
||||||
|
hostName = "hostname";
|
||||||
|
desktop = "sway" or "hyprland";
|
||||||
|
gaming = true/false;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Module System
|
||||||
|
- Custom modules in `modules/` directories
|
||||||
|
- Shared modules in `shared/modules/`
|
||||||
|
- Options defined with `lib.mkOption`
|
||||||
|
- Conditional configuration with `lib.mkIf`
|
||||||
|
|
||||||
|
#### Home Manager Integration
|
||||||
|
- Home Manager configurations in `modules/home-manager/home.nix`
|
||||||
|
- Dotfiles linked from `dotfiles/` directories
|
||||||
|
- User packages defined in `homePackages`
|
||||||
|
|
||||||
|
### Development Environment
|
||||||
|
|
||||||
|
#### Installed Development Tools
|
||||||
|
- **Editors**: Helix (default), Emacs
|
||||||
|
- **Languages**: Go, Python, Clojure, Nix
|
||||||
|
- **LSPs**: gopls, nil, bash-language-server, python-lsp-server
|
||||||
|
- **Tools**: Docker, distrobox, jq, make, cmake
|
||||||
|
- **Version Control**: Git with delta, direnv
|
||||||
|
|
||||||
|
#### Shell Configuration
|
||||||
|
- **Default Shell**: Zsh with Oh My Zsh
|
||||||
|
- **Theme**: half-life
|
||||||
|
- **Plugins**: git, ssh-agent
|
||||||
|
- **Aliases**: Modern Unix tools (lsd, bat, ripgrep, fd, fzf)
|
||||||
|
|
||||||
|
### Security and Maintenance
|
||||||
|
|
||||||
|
#### Automatic Updates
|
||||||
|
- `auto-update.nix` module for automatic system updates
|
||||||
|
- Garbage collection configured weekly
|
||||||
|
- Boot loader limited to 5 generations
|
||||||
|
- Store optimization enabled
|
||||||
|
|
||||||
|
#### Security Features
|
||||||
|
- ClamAV antivirus on work systems
|
||||||
|
- Gnome Keyring for SSH secrets
|
||||||
|
- Firewall configuration for servers
|
||||||
|
- Initial password set to "password" (should be changed)
|
||||||
|
|
||||||
|
### Server Configuration
|
||||||
|
|
||||||
|
For server deployments, use `shared/server-configuration.nix` which provides:
|
||||||
|
- SSH server option
|
||||||
|
- NFS server with configurable exports
|
||||||
|
- Syncthing for file synchronization
|
||||||
|
- Radicale CalDAV server
|
||||||
|
- Printer sharing via CUPS/Avahi
|
||||||
|
|
||||||
|
### Special Features
|
||||||
|
|
||||||
|
#### Claude Code Integration
|
||||||
|
- Work profile: `claudew` command (uses AWS Bedrock)
|
||||||
|
- Personal profile: `claudep` command (uses standard API)
|
||||||
|
- Configuration directories: `/home/nate/.claude-work` and `/home/nate/.claude-personal`
|
||||||
|
|
||||||
|
#### Catppuccin Theme
|
||||||
|
- Consistent theming across applications
|
||||||
|
- Macchiato variant with lavender accent
|
||||||
|
- GTK, Qt, and terminal theme integration
|
12
flake.lock
generated
12
flake.lock
generated
@ -78,11 +78,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1749794982,
|
"lastModified": 1751792365,
|
||||||
"narHash": "sha256-Kh9K4taXbVuaLC0IL+9HcfvxsSUx8dPB5s5weJcc9pc=",
|
"narHash": "sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ee930f9755f58096ac6e8ca94a1887e0534e2d81",
|
"rev": "1fd8bada0b6117e6c7eb54aad5813023eed37ccb",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -94,11 +94,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1750005367,
|
"lastModified": 1751741127,
|
||||||
"narHash": "sha256-h/aac1dGLhS3qpaD2aZt25NdKY7b+JT0ZIP2WuGsJMU=",
|
"narHash": "sha256-t75Shs76NgxjZSgvvZZ9qOmz5zuBE8buUaYD28BMTxg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6c64dabd3aa85e0c02ef1cdcb6e1213de64baee3",
|
"rev": "29e290002bfff26af1db6f64d070698019460302",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -40,7 +40,7 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
inputs.nur.overlay
|
inputs.nur.overlays.default
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable flakes feature
|
# Enable flakes feature
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
# nixpkgs.config.allowUnfree = true;
|
# nixpkgs.config.allowUnfree = true;
|
||||||
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
||||||
imports = [
|
imports = [
|
||||||
../apps/firefox/firefox.nix
|
../../../shared/modules/apps/firefox/firefox.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = userName;
|
home.username = userName;
|
||||||
@ -49,7 +49,8 @@
|
|||||||
gimp
|
gimp
|
||||||
|
|
||||||
# Install fonts
|
# Install fonts
|
||||||
(nerdfonts.override { fonts = [ "Hermit" "Gohu" ]; })
|
nerd-fonts.hurmit
|
||||||
|
# TODO need to add gohu font
|
||||||
# Style
|
# Style
|
||||||
catppuccin-kvantum
|
catppuccin-kvantum
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
libsForQt5.qtstyleplugin-kvantum
|
||||||
@ -81,25 +82,7 @@
|
|||||||
plugins = [ "git" ];
|
plugins = [ "git" ];
|
||||||
theme = "half-life";
|
theme = "half-life";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initContent = ''
|
||||||
alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
|
|
||||||
|
|
||||||
fzf_projects() {
|
|
||||||
DIR=`
|
|
||||||
fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
|
|
||||||
xargs dirname | \
|
|
||||||
sed 's|$HOME||g' | \
|
|
||||||
sort | \
|
|
||||||
uniq | \
|
|
||||||
fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
|
|
||||||
xargs printf "$HOME/%s/"
|
|
||||||
`
|
|
||||||
cd $DIR
|
|
||||||
}
|
|
||||||
alias p="fzf_projects source/"
|
|
||||||
|
|
||||||
### Busykid Bash Functions
|
|
||||||
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ in
|
|||||||
plugins = [ "git" ];
|
plugins = [ "git" ];
|
||||||
theme = "dieter";
|
theme = "dieter";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initContent = ''
|
||||||
eval "$(direnv hook zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
|
|
||||||
alias ls="lsd"
|
alias ls="lsd"
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
boot.supportedFilesystems = [ "zfs" ];
|
||||||
|
|
||||||
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
boot.kernelPackages = pkgs.linuxPackages_6_10;
|
||||||
|
|
||||||
boot.zfs.forceImportRoot = false;
|
boot.zfs.forceImportRoot = false;
|
||||||
|
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
yt-audio() {
|
|
||||||
nix-shell -p yt-dlp --run "yt-dlp -x $1 --audio-format mp3"
|
|
||||||
}
|
|
||||||
|
|
||||||
docker_mysql() {
|
|
||||||
if [ -z "$1" ]; then
|
|
||||||
echo "Usage: docker_mysql <mysql_container_name>"
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
docker exec -it "$1" mysql -u root -ppassword
|
|
||||||
}
|
|
||||||
# Tab-completion for docker_mysql function
|
|
||||||
_complete_docker_mysql() {
|
|
||||||
local cur=${COMP_WORDS[COMP_CWORD]}
|
|
||||||
COMPREPLY=($(compgen -W "$(docker ps --format '{{.Names}}' | grep mysql)" -- $cur))
|
|
||||||
}
|
|
||||||
# Register the completion for the docker_mysql function
|
|
||||||
complete -F _complete_docker_mysql docker_mysql
|
|
||||||
|
|
||||||
# Git restore file, like git restore but works for staged changes as well
|
|
||||||
gres() {
|
|
||||||
git restore --source=HEAD --staged --worktree -- "$1"
|
|
||||||
}
|
|
117
nate-work/dotfiles/zsh_functions.zsh
Normal file
117
nate-work/dotfiles/zsh_functions.zsh
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
yt-audio() {
|
||||||
|
nix-shell -p yt-dlp --run "yt-dlp -x $1 --audio-format mp3"
|
||||||
|
}
|
||||||
|
|
||||||
|
docker_mysql() {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
echo "Usage: docker_mysql <mysql_container_name>"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
docker exec -it "$1" mysql -u root -ppassword
|
||||||
|
}
|
||||||
|
# Tab-completion for docker_mysql function
|
||||||
|
_complete_docker_mysql() {
|
||||||
|
local cur=${COMP_WORDS[COMP_CWORD]}
|
||||||
|
COMPREPLY=($(compgen -W "$(docker ps --format '{{.Names}}' | grep mysql)" -- $cur))
|
||||||
|
}
|
||||||
|
# Register the completion for the docker_mysql function
|
||||||
|
complete -F _complete_docker_mysql docker_mysql
|
||||||
|
|
||||||
|
# Git restore file, like git restore but works for staged changes as well
|
||||||
|
gres() {
|
||||||
|
git restore --source=HEAD --staged --worktree -- "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Nixos upgrade functions
|
||||||
|
upgrade() {
|
||||||
|
local command="$1"
|
||||||
|
local profile="$2"
|
||||||
|
local flake_path="$HOME/nixos"
|
||||||
|
|
||||||
|
# Define valid commands
|
||||||
|
local valid_commands=("switch" "boot" "test" "build" "dry-build" "dry-activate" "edit" "repl" "build-vm" "build-vm-with-bootloader" "build-image")
|
||||||
|
|
||||||
|
# Check if command is provided
|
||||||
|
if [[ -z "$command" ]]; then
|
||||||
|
echo "Error: No command specified"
|
||||||
|
echo "Usage: upgrade <command> [profile]"
|
||||||
|
echo "Valid commands: ${valid_commands[*]}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Validate command
|
||||||
|
local valid_command=false
|
||||||
|
for valid_cmd in "${valid_commands[@]}"; do
|
||||||
|
if [[ "$command" == "$valid_cmd" ]]; then
|
||||||
|
valid_command=true
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$valid_command" != true ]]; then
|
||||||
|
echo "Error: Invalid command '$command'"
|
||||||
|
echo "Valid commands: ${valid_commands[*]}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if flake directory exists
|
||||||
|
if [[ ! -d "$flake_path" ]]; then
|
||||||
|
echo -e "Error: Flake directory '$flake_path' does not exist, check function definition:\n\n\t`function upgrade`"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if flake.nix exists
|
||||||
|
if [[ ! -f "$flake_path/flake.nix" ]]; then
|
||||||
|
echo "Error: flake.nix not found in '$flake_path'"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# If profile is provided, validate it exists in flake.nix
|
||||||
|
if [[ -n "$profile" ]]; then
|
||||||
|
if ! awk '/nixosConfigurations = \{/,/^\s*\}/' "$flake_path/flake.nix" | \
|
||||||
|
grep -E "^\s*$profile\s*=" > /dev/null; then
|
||||||
|
echo "Error: Profile '$profile' not found in flake.nix"
|
||||||
|
echo "Available profiles:"
|
||||||
|
# Extract available profiles from nixosConfigurations section
|
||||||
|
awk '/nixosConfigurations = \{/,/^\s*\}/' "$flake_path/flake.nix" | \
|
||||||
|
grep -E "^\s*[a-zA-Z0-9_-]+\s*=.*nixpkgs\.lib\.nixosSystem" | \
|
||||||
|
sed -E 's/^\s*([a-zA-Z0-9_-]+)\s*=.*/ - \1/'
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
# Build the full flake reference
|
||||||
|
local flake_ref="$flake_path#$profile"
|
||||||
|
echo "Running: sudo nixos-rebuild $command --flake $flake_ref"
|
||||||
|
sudo nixos-rebuild "$command" --flake "$flake_ref"
|
||||||
|
else
|
||||||
|
echo "Error: No profile provided."
|
||||||
|
echo "Usage: upgrade <command> [profile]"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add tab completion for the function
|
||||||
|
_upgrade_completion() {
|
||||||
|
local cur="${COMP_WORDS[COMP_CWORD]}"
|
||||||
|
local prev="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
|
|
||||||
|
case $COMP_CWORD in
|
||||||
|
1)
|
||||||
|
# Complete command names
|
||||||
|
local commands="switch boot test build dry-build dry-activate edit repl build-vm build-vm-with-bootloader build-image"
|
||||||
|
COMPREPLY=($(compgen -W "$commands" -- "$cur"))
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
# Complete profile names from flake.nix
|
||||||
|
if [[ -f "$HOME/nixos/flake.nix" ]]; then
|
||||||
|
local profiles=$(grep -E "^\s*[a-zA-Z0-9_-]+\s*=" "$HOME/nixos/flake.nix" | \
|
||||||
|
grep -A5 -B5 "nixosConfigurations" | \
|
||||||
|
sed -n 's/^\s*\([a-zA-Z0-9_-]*\)\s*=.*/\1/p' | \
|
||||||
|
sort -u)
|
||||||
|
COMPREPLY=($(compgen -W "$profiles" -- "$cur"))
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Register the completion function
|
||||||
|
complete -F _upgrade_completion upgrade
|
@ -47,6 +47,17 @@ in
|
|||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
"MySQL Docs" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://dev.mysql.com/doc/search";
|
||||||
|
params = [
|
||||||
|
{ name = "d"; value = "371"; }
|
||||||
|
{ name = "p"; value = "1"; }
|
||||||
|
{ name = "q"; value = "{searchTerms}"; }
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
definedAliases = [ "@mysql" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../apps/firefox/firefox.nix
|
../../../shared/modules/apps/firefox/firefox.nix
|
||||||
../hypr/hypr_home.nix
|
../hypr/hypr_home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -67,18 +67,16 @@
|
|||||||
# Dev Tools
|
# Dev Tools
|
||||||
#
|
#
|
||||||
helix
|
helix
|
||||||
vscodium-fhs
|
|
||||||
unstable.distrobox
|
unstable.distrobox
|
||||||
unstable.docker_25
|
unstable.docker_25
|
||||||
docker-compose
|
docker-compose
|
||||||
jq
|
jq
|
||||||
gnumake
|
gnumake
|
||||||
insomnia
|
|
||||||
mariadb
|
mariadb
|
||||||
lsp-ai
|
lsp-ai
|
||||||
python3
|
python3
|
||||||
cmake
|
cmake
|
||||||
claude-code
|
unstable.claude-code
|
||||||
# proto
|
# proto
|
||||||
protobuf
|
protobuf
|
||||||
protoc-gen-dart
|
protoc-gen-dart
|
||||||
@ -87,7 +85,10 @@
|
|||||||
delve
|
delve
|
||||||
gotools
|
gotools
|
||||||
go-tools
|
go-tools
|
||||||
|
govulncheck
|
||||||
golangci-lint
|
golangci-lint
|
||||||
|
go-swag
|
||||||
|
delve
|
||||||
|
|
||||||
# clojure
|
# clojure
|
||||||
jre17_minimal
|
jre17_minimal
|
||||||
@ -99,13 +100,11 @@
|
|||||||
|
|
||||||
### LSP's
|
### LSP's
|
||||||
gopls
|
gopls
|
||||||
nil # Nix LSP
|
nil
|
||||||
nodePackages_latest.bash-language-server
|
nodePackages_latest.bash-language-server
|
||||||
openscad-lsp
|
openscad-lsp
|
||||||
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
||||||
python311Packages.python-lsp-server
|
python311Packages.python-lsp-server
|
||||||
gopls
|
|
||||||
delve
|
|
||||||
yaml-language-server
|
yaml-language-server
|
||||||
elixir-ls
|
elixir-ls
|
||||||
|
|
||||||
@ -165,7 +164,6 @@
|
|||||||
gnome-disk-utility
|
gnome-disk-utility
|
||||||
kdePackages.filelight
|
kdePackages.filelight
|
||||||
hugo
|
hugo
|
||||||
go-swag
|
|
||||||
unstable.llama-cpp
|
unstable.llama-cpp
|
||||||
|
|
||||||
#
|
#
|
||||||
@ -176,33 +174,19 @@
|
|||||||
libsForQt5.qt5ct
|
libsForQt5.qt5ct
|
||||||
# Install fonts
|
# Install fonts
|
||||||
lato
|
lato
|
||||||
# (unstable.nerdfonts.override { fonts = [ "Iconsolata" "Hermit" "Overpass" ]; })
|
|
||||||
unstable.nerd-fonts.hurmit
|
unstable.nerd-fonts.hurmit
|
||||||
unstable.nerd-fonts.overpass
|
unstable.nerd-fonts.overpass
|
||||||
unstable.nerd-fonts.monaspace
|
unstable.nerd-fonts.monaspace
|
||||||
monaspace
|
monaspace
|
||||||
# fonts.packages = [
|
|
||||||
# ...
|
|
||||||
# pkgs.nerd-fonts._0xproto
|
|
||||||
# pkgs.nerd-fonts.droid-sans-mono
|
|
||||||
# ] recursive
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
|
||||||
# plain files is through 'home.file'.
|
|
||||||
home.file."${config.xdg.configHome}" = {
|
home.file."${config.xdg.configHome}" = {
|
||||||
source = ../../dotfiles;
|
source = ../../dotfiles;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# For applying custom styles
|
# enable saving ssh secrets (needed for go mod installing private packages)
|
||||||
# home.file.".mozilla/firefox/default" = {
|
|
||||||
# source = ../../misc/firefox_styles;
|
|
||||||
# recursive = true;
|
|
||||||
# };
|
|
||||||
# location where stylus data is kept
|
|
||||||
# /home/nate/.mozilla/firefox/default/storage/default/moz-extension+++77a1d59f-183c-4439-b249-fdae98b7bd7b/idb
|
|
||||||
services.gnome-keyring.enable = true;
|
services.gnome-keyring.enable = true;
|
||||||
services.gnome-keyring.components = [ "ssh" "secrets" ];
|
services.gnome-keyring.components = [ "ssh" "secrets" ];
|
||||||
# Enable bluetooth headphone controls
|
# Enable bluetooth headphone controls
|
||||||
@ -214,7 +198,6 @@
|
|||||||
XCURSOR_THEME = "Bibata-Modern-Classic";
|
XCURSOR_THEME = "Bibata-Modern-Classic";
|
||||||
XCURSOR_SIZE = "24";
|
XCURSOR_SIZE = "24";
|
||||||
HYPRCURSOR_THEME = "Bibata-Modern-Classic";
|
HYPRCURSOR_THEME = "Bibata-Modern-Classic";
|
||||||
# HYPRCURSOR_SIZE = "24";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Git setup
|
# Git setup
|
||||||
@ -238,11 +221,11 @@
|
|||||||
programs = {
|
programs = {
|
||||||
direnv = {
|
direnv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableZshIntegration = true; # see note on other shells below
|
enableZshIntegration = true;
|
||||||
nix-direnv.enable = true;
|
nix-direnv.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
bash.enable = true; # see note on other shells below
|
bash.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Zsh setup
|
# Zsh setup
|
||||||
@ -258,17 +241,39 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
initContent = ''
|
initContent = ''
|
||||||
|
# direnv setup
|
||||||
eval "$(direnv hook zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
# eval "$(ssh-agent)" >/dev/null
|
|
||||||
# export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
|
# History
|
||||||
|
HISTSIZE=10000
|
||||||
|
SAVEHIST=10000
|
||||||
|
setopt SHARE_HISTORY
|
||||||
|
setopt APPEND_HISTORY
|
||||||
|
|
||||||
# Work envs
|
# Work envs
|
||||||
source ~/.vasion_env
|
source ~/.vasion_env
|
||||||
# bonus functions
|
# bonus functions
|
||||||
source ~/.config/zsh_functions
|
source ~/.config/zsh_functions.zsh
|
||||||
|
|
||||||
export GOBIN=~/go/bin
|
export GOBIN=~/go/bin
|
||||||
export PATH=$PATH:$GOBIN
|
export PATH=$PATH:$GOBIN
|
||||||
|
export NIX_SHELL=/usr/bin/env zsh
|
||||||
|
|
||||||
|
|
||||||
|
claudew() {
|
||||||
|
export ANTHROPIC_MODEL=us.anthropic.claude-sonnet-4-20250514-v1:0
|
||||||
|
export CLAUDE_CODE_USE_BEDROCK=1
|
||||||
|
export AWS_REGION=us-west-2
|
||||||
|
export CLAUDE_CONFIG_DIR=/home/nate/.claude-work
|
||||||
|
claude
|
||||||
|
}
|
||||||
|
claudep() {
|
||||||
|
unset ANTHROPIC_MODEL
|
||||||
|
unset CLAUDE_CODE_USE_BEDROCK
|
||||||
|
unset AWS_REGION
|
||||||
|
export CLAUDE_CONFIG_DIR=/home/nate/.claude-personal
|
||||||
|
claude
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
ls="lsd";
|
ls="lsd";
|
||||||
@ -277,6 +282,9 @@
|
|||||||
lS="lsd --oneline --classic";
|
lS="lsd --oneline --classic";
|
||||||
lt="lsd --tree --depth=2";
|
lt="lsd --tree --depth=2";
|
||||||
cat="bat --paging=never";
|
cat="bat --paging=never";
|
||||||
|
ccat="cat";
|
||||||
|
catp="bat --paging=never -p";
|
||||||
|
catplain="bat --paging=never -p";
|
||||||
rm="rm -i";
|
rm="rm -i";
|
||||||
};
|
};
|
||||||
syntaxHighlighting = {
|
syntaxHighlighting = {
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../apps/firefox/firefox.nix
|
../../../shared/modules/apps/firefox/firefox.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = userName;
|
home.username = userName;
|
||||||
@ -58,12 +58,8 @@
|
|||||||
#
|
#
|
||||||
dbeaver-bin
|
dbeaver-bin
|
||||||
helix
|
helix
|
||||||
# kakoune
|
|
||||||
# flutter316
|
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
# fossil
|
|
||||||
# fnc
|
|
||||||
unstable.godot
|
unstable.godot
|
||||||
jq
|
jq
|
||||||
python310
|
python310
|
||||||
|
@ -18,7 +18,9 @@
|
|||||||
# Use xanmod kernel. List kernels by running:
|
# Use xanmod kernel. List kernels by running:
|
||||||
# `nix repl`
|
# `nix repl`
|
||||||
# > :l <nixpkgs>
|
# > :l <nixpkgs>
|
||||||
# > pkgs.linuxPackages
|
# > pkgs.linuxPackages<Tab>
|
||||||
|
# > ## Should display a list of available kernels
|
||||||
|
# > :quit
|
||||||
boot.kernelPackages = pkgs.linuxPackages_xanmod;
|
boot.kernelPackages = pkgs.linuxPackages_xanmod;
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
|
@ -39,7 +39,7 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
inputs.nur.overlay
|
inputs.nur.overlays.default
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
# ];
|
# ];
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
../apps/firefox/firefox.nix
|
../../../shared/modules/apps/firefox/firefox.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
home.username = userName;
|
home.username = userName;
|
||||||
@ -332,7 +332,7 @@
|
|||||||
plugins = [ "fossil" "git" ];
|
plugins = [ "fossil" "git" ];
|
||||||
theme = "half-life";
|
theme = "half-life";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initContent = ''
|
||||||
eval "$(direnv hook zsh)"
|
eval "$(direnv hook zsh)"
|
||||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
|
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
|
||||||
|
|
||||||
|
@ -13,17 +13,18 @@ in
|
|||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
# Add pipewire support
|
# Add pipewire support
|
||||||
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
|
# package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles = {
|
profiles = {
|
||||||
default = {
|
default = {
|
||||||
id = 0;
|
id = 0;
|
||||||
name = "default";
|
name = "default";
|
||||||
isDefault = true;
|
isDefault = true;
|
||||||
extensions = with pkgs; [
|
extensions.packages = with pkgs; [
|
||||||
nur.repos.rycee.firefox-addons.darkreader
|
nur.repos.rycee.firefox-addons.darkreader
|
||||||
nur.repos.rycee.firefox-addons.keepassxc-browser
|
nur.repos.rycee.firefox-addons.keepassxc-browser
|
||||||
nur.repos.crazazy.firefox-addons.ublock-origin
|
nur.repos.crazazy.firefox-addons.ublock-origin
|
||||||
|
nur.repos.bandithedoge.firefoxAddons.stylus
|
||||||
];
|
];
|
||||||
search = {
|
search = {
|
||||||
# Replace default firefox search engine config with this one
|
# Replace default firefox search engine config with this one
|
||||||
@ -46,12 +47,22 @@ in
|
|||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
||||||
definedAliases = [ "@np" ];
|
definedAliases = [ "@np" ];
|
||||||
};
|
};
|
||||||
|
"MySQL Docs" = {
|
||||||
|
urls = [{
|
||||||
|
template = "https://dev.mysql.com/doc/search";
|
||||||
|
params = [
|
||||||
|
{ name = "d"; value = "371"; }
|
||||||
|
{ name = "p"; value = "1"; }
|
||||||
|
{ name = "q"; value = "{searchTerms}"; }
|
||||||
|
];
|
||||||
|
}];
|
||||||
|
definedAliases = [ "@mysql" ];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
"browser.startup.blankWindow" = true;
|
"browser.startup.blankWindow" = true;
|
||||||
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
||||||
"browser.newtabpage.enabled" = false;
|
|
||||||
"browser.search.region" = "US";
|
"browser.search.region" = "US";
|
||||||
"browser.search.isUS" = true;
|
"browser.search.isUS" = true;
|
||||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
"distribution.searchplugins.defaultLocale" = "en-US";
|
||||||
@ -68,6 +79,8 @@ in
|
|||||||
"extensions.formautofill.creditCards.enabled" = false;
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
"browser.toolbars.bookmarks.visibility" = "always";
|
"browser.toolbars.bookmarks.visibility" = "always";
|
||||||
|
# For applying userContent.css - not being used
|
||||||
|
# "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
# "browser.newtabpage.pinned" = [{
|
# "browser.newtabpage.pinned" = [{
|
||||||
# title = "NixOS";
|
# title = "NixOS";
|
||||||
# url = "https://nixos.org";
|
# url = "https://nixos.org";
|
||||||
|
@ -187,7 +187,7 @@ in
|
|||||||
listenAddresses = [ "*:631" ];
|
listenAddresses = [ "*:631" ];
|
||||||
allowFrom = [ "all" ];
|
allowFrom = [ "all" ];
|
||||||
browsing = true;
|
browsing = true;
|
||||||
browserAddress = "192.168.1.169:631";
|
# browserAddress = "192.168.1.169:631";
|
||||||
defaultShared = true;
|
defaultShared = true;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user