This commit is contained in:
Javier Feliz 2025-08-27 14:35:49 -04:00
parent 33f45c4cad
commit 24a8ccfc8f
8 changed files with 200 additions and 46 deletions

88
flake.lock generated
View File

@ -115,6 +115,22 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -178,6 +194,24 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_2"
},
"locked": {
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -416,6 +450,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1708161998,
"narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "84d981bae8b5e783b3b548de505b22880559515f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@ -448,7 +498,8 @@
"my-assets": "my-assets", "my-assets": "my-assets",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_3",
"stylix": "stylix" "stylix": "stylix",
"zig": "zig"
} }
}, },
"stylix": { "stylix": {
@ -500,6 +551,21 @@
"type": "github" "type": "github"
} }
}, },
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": { "tinted-foot": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -601,6 +667,26 @@
"repo": "treefmt-nix", "repo": "treefmt-nix",
"type": "github" "type": "github"
} }
},
"zig": {
"inputs": {
"flake-compat": "flake-compat_3",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1755864794,
"narHash": "sha256-hgnov6RLA+DD4Uocs/vCbiH3/3sKvqiJOKHpdhGyVAI=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "5cd601f8760d2383210b7b8c8a45fc79388f3ddf",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -12,6 +12,7 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
zig.url = "github:mitchellh/zig-overlay";
my-assets = { my-assets = {
url = "path:./assets"; url = "path:./assets";
@ -24,6 +25,7 @@
self, self,
nixpkgs, nixpkgs,
my-assets, my-assets,
zig,
... ...
}@inputs: }@inputs:
let let
@ -32,6 +34,7 @@
# Common overlays for all hosts # Common overlays for all hosts
overlays = [ overlays = [
inputs.neovim-nightly-overlay.overlays.default inputs.neovim-nightly-overlay.overlays.default
inputs.zig.overlays.default
]; ];
# Helper function to create a host configuration # Helper function to create a host configuration

View File

@ -175,8 +175,10 @@
# Enable home manager # Enable home manager
home-manager = { home-manager = {
useGlobalPkgs = true;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
zigpkg = pkgs.zigpkgs.master;
assets = assets; assets = assets;
}; };
users = { users = {

View File

@ -41,6 +41,7 @@
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
pkgs.ntfs3g pkgs.ntfs3g
zigpkgs.master
]; ];
}; };
} }

View File

@ -60,6 +60,10 @@
# Golang # Golang
gr = "go run ."; gr = "go run .";
gmt = "go mod tidy"; gmt = "go mod tidy";
# Zig
zb = "zig build";
zbr = "zig build run";
}; };
# Additional bash configuration # Additional bash configuration

View File

@ -2,6 +2,8 @@
config, config,
pkgs, pkgs,
lib, lib,
inputs,
zigpkg,
... ...
}: }:
@ -14,55 +16,96 @@
extensions = extensions =
with pkgs.vscode-extensions; with pkgs.vscode-extensions;
[ [
# adpyke.vscode-sql-formatter # Misc
# adrianwilczynski.alpine-js-intellisense vscodevim.vim
# anthropic.claude-code
bmewburn.vscode-intelephense-client
bradlc.vscode-tailwindcss
catppuccin.catppuccin-vsc-icons
christian-kohler.path-intellisense
# cierra.livewire-vscode
# delgan.qml-format
eamodio.gitlens eamodio.gitlens
formulahendry.auto-close-tag christian-kohler.path-intellisense
formulahendry.auto-rename-tag catppuccin.catppuccin-vsc-icons
foxundermoon.shell-format foxundermoon.shell-format
golang.go
gruntfuggly.todo-tree gruntfuggly.todo-tree
# isudox.vscode-jetbrains-keybindings
jdinhlife.gruvbox jdinhlife.gruvbox
jnoortheen.nix-ide
# kennylong.kubernetes-yaml-formatter
mikestead.dotenv
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
# ms-python.vscode-python-envs
# ms-vsliveshare.vsliveshare
# neilbrayfield.php-docblocker
# onecentlin.laravel-blade
# phiter.phpstorm-snippets
pkief.material-icon-theme
redhat.ansible redhat.ansible
redhat.vscode-yaml redhat.vscode-yaml
shd101wyy.markdown-preview-enhanced shd101wyy.markdown-preview-enhanced
svelte.svelte-vscode ms-vsliveshare.vsliveshare
pkief.material-icon-theme
tamasfe.even-better-toml tamasfe.even-better-toml
# theqtcompany.qt-core # PHP
# theqtcompany.qt-qml bmewburn.vscode-intelephense-client
vscodevim.vim # Html/Front End Support
bradlc.vscode-tailwindcss
formulahendry.auto-close-tag
formulahendry.auto-rename-tag
svelte.svelte-vscode
vue.volar vue.volar
# Go
golang.go
mikestead.dotenv
# Python
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
# Zig
ziglang.vscode-zig
# C++
ms-vscode.cpptools
ms-vscode.cmake-tools
# delgan.qml-format
# Nix
mkhl.direnv
jnoortheen.nix-ide
# adpyke.vscode-sql-formatter
# adrianwilczynski.alpine-js-intellisense
# anthropic.claude-code
# cierra.livewire-vscode
# neilbrayfield.php-docblocker
# zignd.html-css-class-completion # zignd.html-css-class-completion
] ]
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
# # Extensions not in nixpkgs # Extensions not in nixpkgs
# { {
# name = "copilot"; name = "base16-tinted-themes";
# publisher = "github"; publisher = "TintedTheming";
# version = "1.86.82"; version = "0.27.0";
# sha256 = "sha256-example-hash-here"; sha256 = "7wLBwfaXEoumAfp9kK5Mv1VaGffuGdoYMGZ+ZjN9G8Q=";
# } }
{
name = "vscode-laravel";
publisher = "laravel";
version = "1.0.14";
sha256 = "DEHr8kAGm6ShdQCThh7MUhv24Ghwg10mGDhZgUIojrY=";
}
{
name = "phpstorm-snippets";
publisher = "phiter";
version = "1.1.2";
sha256 = "EHEzM4YKYR+2r6RVun8tSjGYDsbriBPATNwxczEuqjQ=";
}
{
name = "laravel-blade";
publisher = "onecentlin";
version = "1.37.0";
sha256 = "q5CTRj746404yM9mhOWYAGTzt/8CJ7Fx4QUQSJ+LdLs=";
}
# Qt Extension Pack
{
name = "qt-qml";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "QjfvZIcE4LcJU93YiYN/zykEluHtR7zVOwYiPL0k+cQ=";
}
{
name = "qt-ui";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "XDOIyCZIUYPGfcszZMUkR9MHH+zrXZgympKNhcQwITY=";
}
{
name = "qt-core";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "2413vMpvxSYBKpaD14sMgI92W8NtCYa/sJ7PZO62WfY=";
}
]; ];
# User settings # User settings
@ -172,8 +215,10 @@
"workbench.editor.enablePreviewFromQuickOpen" = false; "workbench.editor.enablePreviewFromQuickOpen" = false;
"editor.gotoLocation.multipleImplementations" = "goto"; "editor.gotoLocation.multipleImplementations" = "goto";
"editor.gotoLocation.multipleTypeDefinitions" = "goto"; "editor.gotoLocation.multipleTypeDefinitions" = "goto";
"editor.cursorSurroundingLines" = 16; "editor.cursorSurroundingLines" = 200;
"workbench.editor.pinnedTabsOnSeparateRow" = true; "workbench.editor.pinnedTabsOnSeparateRow" = true;
"C_Cpp.default.compileCommands" = "\${workspaceFolder}/build/compile_commands.json";
"C_Cpp.default.configurationProvider" = "ms-vscode.cmake-tools";
"window.menuBarVisibility" = "compact"; "window.menuBarVisibility" = "compact";
"vim.leader" = "<space>"; "vim.leader" = "<space>";
"vim.normalModeKeyBindings" = [ "vim.normalModeKeyBindings" = [
@ -237,6 +282,14 @@
"svelte.enable-ts-plugin" = true; "svelte.enable-ts-plugin" = true;
"workbench.sideBar.location" = "right"; "workbench.sideBar.location" = "right";
"workbench.panel.defaultLocation" = "right"; "workbench.panel.defaultLocation" = "right";
"zig.zls.enabled" = "on";
"zig.path" = "${zigpkg}/bin/zig";
"zig.zls.path" = "${pkgs.zls}/bin/zls";
"zig.zls.zigLibPath" = "${zigpkg}/lib";
"zig.zls.completionLabelDetails" = false;
"zig.zls.enableArgumentPlaceholders" = false;
"zig.zls.inlayHintsShowParameterName" = false;
"zig.zls.inlayHintsShowVariableTypeHints" = false;
}; };
# Keybindings # Keybindings

View File

@ -27,7 +27,6 @@
# package = pkgs.papirus-icon-theme; # package = pkgs.papirus-icon-theme;
# }; # };
# }; # };
home = { home = {
username = "javi"; username = "javi";
homeDirectory = "/home/javi"; homeDirectory = "/home/javi";
@ -35,6 +34,10 @@
packages = with pkgs; [ packages = with pkgs; [
# Basics # Basics
quickshell quickshell
zoom-us
obsidian
kdePackages.kdenlive
ffmpeg
# Terminal tools # Terminal tools
ripgrep ripgrep
@ -66,6 +69,7 @@
go go
nodejs_22 nodejs_22
bun bun
zls # Zig language server
]; ];
sessionVariables = { sessionVariables = {
@ -88,6 +92,11 @@
btop = { btop = {
enable = true; enable = true;
}; };
direnv = {
enable = true;
enableZshIntegration = true;
};
}; };
stylix = { stylix = {

View File

@ -7,10 +7,11 @@ let
"backups" "backups"
"container-data" "container-data"
"javi" "javi"
"xrandr"
]; ];
configureShare = share: { configureShare = share: {
name = "/mnt/${share}"; name = "/home/javi/network-shares/${share}";
value = { value = {
device = "${nasIp}:${baseMnt}/${share}"; device = "${nasIp}:${baseMnt}/${share}";
fsType = "nfs"; fsType = "nfs";
@ -19,11 +20,6 @@ let
"noauto" "noauto"
"rw" "rw"
"vers=4" "vers=4"
# make Nautilus/Dolphin/Any File Manager show it with a friendly name/icon
"x-gvfs-show"
"x-gvfs-name=NAS ${share}"
"x-gvfs-icon=network-server"
]; ];
}; };
}; };