110 lines
2.9 KiB
Nix
110 lines
2.9 KiB
Nix
{ config, lib, pkgs, osConfig, ... }:
|
|
|
|
# https://home-manager-options.extranix.com/
|
|
# https://nix-community.github.io/home-manager/options.xhtml
|
|
|
|
let
|
|
# Check if the current machine has the role "personal"
|
|
thisMachineIsPersonal = osConfig.thisMachine.hasRole."personal";
|
|
in
|
|
{
|
|
home.username = "googlebot";
|
|
home.homeDirectory = "/home/googlebot";
|
|
|
|
home.stateVersion = "24.11";
|
|
programs.home-manager.enable = true;
|
|
|
|
services.ssh-agent.enable = true;
|
|
|
|
# System Monitoring
|
|
programs.btop.enable = true;
|
|
programs.bottom.enable = true;
|
|
|
|
# Modern "ls" replacement
|
|
programs.pls.enable = true;
|
|
programs.pls.enableFishIntegration = false;
|
|
programs.eza.enable = true;
|
|
|
|
# Graphical terminal
|
|
programs.ghostty.enable = thisMachineIsPersonal;
|
|
programs.ghostty.settings = {
|
|
theme = "Snazzy";
|
|
font-size = 10;
|
|
};
|
|
|
|
# Advanced terminal file explorer
|
|
programs.broot.enable = true;
|
|
|
|
# Shell promt theming
|
|
programs.fish.enable = true;
|
|
programs.starship.enable = true;
|
|
programs.starship.enableFishIntegration = true;
|
|
programs.starship.enableInteractive = true;
|
|
# programs.oh-my-posh.enable = true;
|
|
# programs.oh-my-posh.enableFishIntegration = true;
|
|
|
|
# Advanced search
|
|
programs.ripgrep.enable = true;
|
|
|
|
# tldr: Simplified, example based and community-driven man pages.
|
|
programs.tealdeer.enable = true;
|
|
|
|
home.shellAliases = {
|
|
sudo = "doas";
|
|
ls2 = "eza";
|
|
explorer = "broot";
|
|
};
|
|
|
|
programs.zed-editor = {
|
|
enable = thisMachineIsPersonal;
|
|
};
|
|
|
|
programs.vscode = {
|
|
enable = thisMachineIsPersonal;
|
|
package = pkgs.vscodium;
|
|
profiles.default = {
|
|
userSettings = {
|
|
editor.formatOnSave = true;
|
|
nix = {
|
|
enableLanguageServer = true;
|
|
serverPath = "${pkgs.nil}/bin/nil";
|
|
serverSettings.nil = {
|
|
formatting.command = [ "${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt" ];
|
|
nix.flake.autoArchive = true;
|
|
};
|
|
};
|
|
dotnetAcquisitionExtension.sharedExistingDotnetPath = "${pkgs.dotnet-sdk_9}/bin";
|
|
godotTools = {
|
|
lsp.serverPort = 6005; # port needs to match Godot configuration
|
|
editorPath.godot4 = "godot-mono";
|
|
};
|
|
};
|
|
extensions = with pkgs.vscode-extensions; [
|
|
bbenoist.nix # nix syntax support
|
|
arrterian.nix-env-selector # nix dev envs
|
|
dart-code.dart-code
|
|
dart-code.flutter
|
|
golang.go
|
|
jnoortheen.nix-ide
|
|
ms-vscode.cpptools
|
|
rust-lang.rust-analyzer
|
|
vadimcn.vscode-lldb
|
|
tauri-apps.tauri-vscode
|
|
platformio.platformio-vscode-ide
|
|
vue.volar
|
|
wgsl-analyzer.wgsl-analyzer
|
|
|
|
# Godot
|
|
geequlim.godot-tools # For Godot GDScript support
|
|
ms-dotnettools.csharp
|
|
ms-dotnettools.vscode-dotnet-runtime
|
|
];
|
|
};
|
|
};
|
|
|
|
home.packages = lib.mkIf thisMachineIsPersonal [
|
|
pkgs.claude-code
|
|
pkgs.dotnetCorePackages.dotnet_9.sdk # For Godot-Mono VSCode-Extension CSharp
|
|
];
|
|
}
|