Compare commits
4 Commits
72ba8ddf59
...
23fb30893d
Author | SHA1 | Date | |
---|---|---|---|
23fb30893d | |||
4e82b684e5 | |||
e354c4e194 | |||
b956c8da1e |
169
flake.lock
generated
169
flake.lock
generated
@ -1,5 +1,27 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"apple-silicon": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742098834,
|
||||||
|
"narHash": "sha256-l98XVpNXW6hr0AsxCeQZbdf6EGT8OpHdkWBi7sdel4s=",
|
||||||
|
"owner": "tpwrules",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"rev": "8457960249bcfd34c22838e20eaa7d8261428688",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tpwrules",
|
||||||
|
"repo": "nixos-apple-silicon",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"disko": {
|
"disko": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
@ -18,6 +40,95 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1688025799,
|
||||||
|
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "8bf105319d44f6b9f0d764efa4fdef9f1cc9ba1c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1650374568,
|
||||||
|
"narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "b4a34015c698c7793d592d66adbab377907a2be8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694529238,
|
||||||
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils-plus": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1715533576,
|
||||||
|
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1742655702,
|
||||||
|
"narHash": "sha256-jbqlw4sPArFtNtA1s3kLg7/A4fzP4GLk9bGbtUJg0JQ=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "0948aeedc296f964140d9429223c7e4a0702a1ff",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "release-24.11",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixlib": {
|
"nixlib": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1736643958,
|
"lastModified": 1736643958,
|
||||||
@ -88,9 +199,65 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"apple-silicon": "apple-silicon",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"home-manager": "home-manager",
|
||||||
"nixos-generators": "nixos-generators",
|
"nixos-generators": "nixos-generators",
|
||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"snowfall-lib": "snowfall-lib"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1686795910,
|
||||||
|
"narHash": "sha256-jDa40qRZ0GRQtP9EMZdf+uCbvzuLnJglTUI2JoHfWDc=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "5c2b97c0a9bc5217fc3dfb1555aae0fb756d99f9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"snowfall-lib": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_2",
|
||||||
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1736130495,
|
||||||
|
"narHash": "sha256-4i9nAJEZFv7vZMmrE0YG55I3Ggrtfo5/T07JEpEZ/RM=",
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"rev": "02d941739f98a09e81f3d2d9b3ab08918958beac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "snowfallorg",
|
||||||
|
"repo": "lib",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
194
flake.nix
194
flake.nix
@ -4,93 +4,131 @@
|
|||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
|
||||||
disko.url = "github:nix-community/disko";
|
disko.url = "github:nix-community/disko";
|
||||||
|
snowfall-lib = {
|
||||||
|
url = "github:snowfallorg/lib";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
apple-silicon = {
|
||||||
|
url = "github:tpwrules/nixos-apple-silicon";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
nixos-generators = {
|
nixos-generators = {
|
||||||
url = "github:nix-community/nixos-generators";
|
url = "github:nix-community/nixos-generators";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, disko, nixos-generators }:
|
outputs = inputs:
|
||||||
let
|
inputs.snowfall-lib.mkFlake {
|
||||||
mkSystem = { systemConfig ? { }, moduleConfig }: nixpkgs.lib.nixosSystem {
|
inherit inputs;
|
||||||
system = "x86_64-linux";
|
src = ./.;
|
||||||
modules = [
|
|
||||||
disko.nixosModules.disko
|
snowfall = {
|
||||||
./lib/disk-config.nix
|
meta = {
|
||||||
./lib/common-system.nix
|
name = "reichardnix";
|
||||||
systemConfig
|
title = "ReichardNix";
|
||||||
({ ... }: moduleConfig)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# NixOS Generators
|
|
||||||
packages.x86_64-linux = {
|
|
||||||
# RKE2
|
|
||||||
rke2-image = nixos-generators.nixosGenerate {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
format = "vmware";
|
|
||||||
modules = [
|
|
||||||
./hosts/rke2-image.nix
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
usb-image = nixos-generators.nixosGenerate {
|
namespace = "reichardnix";
|
||||||
system = "x86_64-linux";
|
|
||||||
format = "raw-efi";
|
|
||||||
modules = [
|
|
||||||
./hosts/usb-image.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# NixOS Configurations
|
# home-manager.enable = true;
|
||||||
nixosConfigurations = {
|
|
||||||
# Office Server (LLaMA / ADS-B)
|
|
||||||
lin-va-office = mkSystem {
|
|
||||||
systemConfig = ./hosts/office-server.nix;
|
|
||||||
moduleConfig = {
|
|
||||||
hostName = "lin-va-office";
|
|
||||||
mainDiskID = "/dev/disk/by-id/ata-MTFDDAK512MBF-1AN1ZABHA_161212233628";
|
|
||||||
network = {
|
|
||||||
interface = "enp5s0";
|
|
||||||
address = "10.0.50.120";
|
|
||||||
defaultGateway = "10.0.50.254";
|
|
||||||
nameservers = [ "10.0.50.254" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Utility Room Desktop
|
|
||||||
lin-va-utility = mkSystem {
|
|
||||||
systemConfig = ./hosts/utility-desktop.nix;
|
|
||||||
moduleConfig = {
|
|
||||||
hostName = "lin-va-utility";
|
|
||||||
mainDiskID = "/dev/disk/by-id/nvme-eui.0026b768429d3eb5";
|
|
||||||
network = {
|
|
||||||
interface = "eno1";
|
|
||||||
address = "10.0.20.50";
|
|
||||||
defaultGateway = "10.0.20.254";
|
|
||||||
nameservers = [ "10.0.20.254" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Nix Builder
|
|
||||||
lin-va-nix-builder = mkSystem {
|
|
||||||
systemConfig = ./hosts/builder.nix;
|
|
||||||
moduleConfig = {
|
|
||||||
hostName = "lin-va-nix-builder";
|
|
||||||
mainDiskID = "/dev/xvda";
|
|
||||||
enableXenGuest = true;
|
|
||||||
network = {
|
|
||||||
interface = "enX0";
|
|
||||||
address = "10.0.50.130";
|
|
||||||
defaultGateway = "10.0.50.254";
|
|
||||||
nameservers = [ "10.0.50.254" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# outputs = { self, nixpkgs, disko, nixos-generators, apple-silicon }:
|
||||||
|
# let
|
||||||
|
# mkSystem = { systemConfig ? { }, moduleConfig }: nixpkgs.lib.nixosSystem {
|
||||||
|
# system = "x86_64-linux";
|
||||||
|
# modules = [
|
||||||
|
# disko.nixosModules.disko
|
||||||
|
# ./lib/disk-config.nix
|
||||||
|
# ./lib/common-system.nix
|
||||||
|
# systemConfig
|
||||||
|
# ({ ... }: moduleConfig)
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
# in
|
||||||
|
# {
|
||||||
|
# # NixOS Generators
|
||||||
|
# packages.x86_64-linux = {
|
||||||
|
# # RKE2
|
||||||
|
# rke2-image = nixos-generators.nixosGenerate {
|
||||||
|
# system = "x86_64-linux";
|
||||||
|
# format = "vmware";
|
||||||
|
# modules = [
|
||||||
|
# ./hosts/rke2-image.nix
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# usb-image = nixos-generators.nixosGenerate {
|
||||||
|
# system = "x86_64-linux";
|
||||||
|
# format = "raw-efi";
|
||||||
|
# modules = [
|
||||||
|
# ./hosts/usb-image.nix
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # NixOS Configurations
|
||||||
|
# nixosConfigurations = {
|
||||||
|
# # MBP NixOS Asahi
|
||||||
|
# mpb-asahi = nixpkgs.lib.nixosSystem {
|
||||||
|
# system = "aarch64-linux";
|
||||||
|
# modules = [
|
||||||
|
# apple-silicon.nixosModules.default
|
||||||
|
# ./hosts/mbp-asahi.nix
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Office Server (LLaMA / ADS-B)
|
||||||
|
# lin-va-office = mkSystem {
|
||||||
|
# systemConfig = ./hosts/office-server.nix;
|
||||||
|
# moduleConfig = {
|
||||||
|
# hostName = "lin-va-office";
|
||||||
|
# mainDiskID = "/dev/disk/by-id/ata-MTFDDAK512MBF-1AN1ZABHA_161212233628";
|
||||||
|
# network = {
|
||||||
|
# interface = "enp5s0";
|
||||||
|
# address = "10.0.50.120";
|
||||||
|
# defaultGateway = "10.0.50.254";
|
||||||
|
# nameservers = [ "10.0.50.254" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Utility Room Desktop
|
||||||
|
# lin-va-utility = mkSystem {
|
||||||
|
# systemConfig = ./hosts/utility-desktop.nix;
|
||||||
|
# moduleConfig = {
|
||||||
|
# hostName = "lin-va-utility";
|
||||||
|
# mainDiskID = "/dev/disk/by-id/nvme-eui.0026b768429d3eb5";
|
||||||
|
# network = {
|
||||||
|
# interface = "eno1";
|
||||||
|
# address = "10.0.20.50";
|
||||||
|
# defaultGateway = "10.0.20.254";
|
||||||
|
# nameservers = [ "10.0.20.254" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Nix Builder
|
||||||
|
# lin-va-nix-builder = mkSystem {
|
||||||
|
# systemConfig = ./hosts/builder.nix;
|
||||||
|
# moduleConfig = {
|
||||||
|
# hostName = "lin-va-nix-builder";
|
||||||
|
# mainDiskID = "/dev/xvda";
|
||||||
|
# enableXenGuest = true;
|
||||||
|
# network = {
|
||||||
|
# interface = "enX0";
|
||||||
|
# address = "10.0.50.130";
|
||||||
|
# defaultGateway = "10.0.50.254";
|
||||||
|
# nameservers = [ "10.0.50.254" ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
programs.bash = {
|
|
||||||
enable = true;
|
|
||||||
shellAliases = {
|
|
||||||
grep = "grep --color";
|
|
||||||
ssh = "TERM=xterm-256color ssh";
|
|
||||||
flush_dns = "sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder";
|
|
||||||
};
|
|
||||||
profileExtra = ''
|
|
||||||
SHELL="$BASH"
|
|
||||||
PATH=~/.bin:$PATH
|
|
||||||
eval "$(thefuck --alias)"
|
|
||||||
set -o vi
|
|
||||||
bind "set show-mode-in-prompt on"
|
|
||||||
fastfetch
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
programs.btop = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".config/btop/btop.conf".text =
|
|
||||||
builtins.readFile ./config/btop.conf;
|
|
||||||
home.file.".config/btop/themes/catppuccin_mocha.theme".text =
|
|
||||||
builtins.readFile ./config/catppuccin_mocha.theme;
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
xdg.configFile = {
|
|
||||||
"fastfetch/config.jsonc" = {
|
|
||||||
source = ./config/config.jsonc;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
xdg.configFile = {
|
|
||||||
"ghostty/config" = {
|
|
||||||
source = ./config/ghostty.conf;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,72 +0,0 @@
|
|||||||
{
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "Evan Reichard";
|
|
||||||
aliases = {
|
|
||||||
lg = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all -n 15";
|
|
||||||
};
|
|
||||||
includes = [
|
|
||||||
{
|
|
||||||
path = "~/.config/git/work";
|
|
||||||
condition = "gitdir:~/Development/git/work/";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
path = "~/.config/git/personal";
|
|
||||||
condition = "gitdir:~/Development/git/personal/";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraConfig = {
|
|
||||||
core = {
|
|
||||||
autocrlf = "input";
|
|
||||||
safecrlf = "true";
|
|
||||||
excludesFile = "~/.config/git/.gitignore";
|
|
||||||
};
|
|
||||||
column = {
|
|
||||||
ui = "auto";
|
|
||||||
};
|
|
||||||
fetch = {
|
|
||||||
prune = true;
|
|
||||||
pruneTags = true;
|
|
||||||
all = true;
|
|
||||||
};
|
|
||||||
help = {
|
|
||||||
autocorrect = true;
|
|
||||||
};
|
|
||||||
diff = {
|
|
||||||
algorithm = "histogram";
|
|
||||||
colorMoved = "plain";
|
|
||||||
mnemonicPrefix = true;
|
|
||||||
renames = true;
|
|
||||||
};
|
|
||||||
rebase = {
|
|
||||||
autoSquash = true;
|
|
||||||
autoStash = true;
|
|
||||||
updateRefs = true;
|
|
||||||
};
|
|
||||||
rerere = {
|
|
||||||
enabled = true;
|
|
||||||
autoupdate = true;
|
|
||||||
};
|
|
||||||
commit = {
|
|
||||||
verbose = true;
|
|
||||||
};
|
|
||||||
branch = {
|
|
||||||
sort = "-committerdate";
|
|
||||||
};
|
|
||||||
merge = {
|
|
||||||
conflictstyle = "zdiff3";
|
|
||||||
};
|
|
||||||
push = {
|
|
||||||
autoSetupRemote = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Copy Configuration
|
|
||||||
xdg.configFile = {
|
|
||||||
git = {
|
|
||||||
source = ./config;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,86 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
let
|
|
||||||
inherit (pkgs.lib) optionals mkForce;
|
|
||||||
inherit (pkgs.stdenv) isLinux isDarwin;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./bash
|
|
||||||
./btop
|
|
||||||
./direnv
|
|
||||||
./fastfetch
|
|
||||||
./ghostty
|
|
||||||
./git
|
|
||||||
./nvim
|
|
||||||
./powerline
|
|
||||||
./readline
|
|
||||||
./hyprland
|
|
||||||
./waybar
|
|
||||||
];
|
|
||||||
|
|
||||||
# Home Manager Config
|
|
||||||
home.stateVersion = "24.11";
|
|
||||||
home.username = "evanreichard";
|
|
||||||
home.homeDirectory = mkForce (if isLinux then "/home/evanreichard" else "/Users/evanreichard");
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
# Global Packages
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
(nerdfonts.override { fonts = [ "Meslo" ]; })
|
|
||||||
# ghostty - Pending Darwin @ https://github.com/NixOS/nixpkgs/pull/369788
|
|
||||||
android-tools
|
|
||||||
awscli2
|
|
||||||
bashInteractive
|
|
||||||
cw
|
|
||||||
fastfetch
|
|
||||||
gitAndTools.gh
|
|
||||||
google-cloud-sdk
|
|
||||||
imagemagick
|
|
||||||
kubectl
|
|
||||||
kubernetes-helm
|
|
||||||
mosh
|
|
||||||
pre-commit
|
|
||||||
python311
|
|
||||||
ssm-session-manager-plugin
|
|
||||||
texliveSmall # Pandoc PDF Dep
|
|
||||||
thefuck
|
|
||||||
tldr
|
|
||||||
]
|
|
||||||
++ optionals isLinux [
|
|
||||||
ghostty
|
|
||||||
hyprpaper
|
|
||||||
firefox
|
|
||||||
]
|
|
||||||
++ optionals isDarwin [ ];
|
|
||||||
|
|
||||||
# GitHub CLI
|
|
||||||
programs.gh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
git_protocol = "ssh";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Misc Programs
|
|
||||||
programs.jq.enable = true;
|
|
||||||
programs.k9s.enable = true;
|
|
||||||
programs.pandoc.enable = true;
|
|
||||||
|
|
||||||
# Enable Flakes & Commands
|
|
||||||
nix = {
|
|
||||||
package = mkForce pkgs.nix;
|
|
||||||
settings = {
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# SQLite Configuration
|
|
||||||
home.file.".sqliterc".text = ''
|
|
||||||
.headers on
|
|
||||||
.mode column
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Darwin Spotlight Indexing Hack
|
|
||||||
disabledModules = [ "targets/darwin/linkapps.nix" ];
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
{ pkgs, lib, ... }:
|
|
||||||
|
|
||||||
lib.mkIf pkgs.stdenv.isLinux {
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = builtins.readFile ./config/hyprland.conf;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,194 +0,0 @@
|
|||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
viAlias = true;
|
|
||||||
vimAlias = true;
|
|
||||||
withNodeJs = true;
|
|
||||||
withPython3 = true;
|
|
||||||
|
|
||||||
plugins = with pkgs.vimPlugins; [
|
|
||||||
# ------------------
|
|
||||||
# --- Completion ---
|
|
||||||
# ------------------
|
|
||||||
cmp-buffer # Buffer Word Completion
|
|
||||||
cmp-cmdline # Command Line Completion
|
|
||||||
cmp-nvim-lsp # Main LSP
|
|
||||||
cmp-path # Path Completion
|
|
||||||
cmp_luasnip # Snippets Completion
|
|
||||||
friendly-snippets # Snippets
|
|
||||||
lsp_lines-nvim # Inline Diagnostics
|
|
||||||
luasnip # Snippets
|
|
||||||
nvim-cmp # Completions
|
|
||||||
nvim-lspconfig # LSP Config
|
|
||||||
|
|
||||||
# -------------------
|
|
||||||
# ----- Helpers -----
|
|
||||||
# -------------------
|
|
||||||
aerial-nvim # Code Outline
|
|
||||||
comment-nvim # Code Comments
|
|
||||||
diffview-nvim # Diff View
|
|
||||||
gitsigns-nvim # Git Blame
|
|
||||||
leap-nvim # Quick Movement
|
|
||||||
markdown-preview-nvim # Markdown Preview
|
|
||||||
neo-tree-nvim # File Explorer
|
|
||||||
none-ls-nvim # Formatters
|
|
||||||
numb-nvim # Peek / Jump to Lines
|
|
||||||
nvim-autopairs # Automatically Close Pairs (),[],{}
|
|
||||||
telescope-fzf-native-nvim # Faster Telescope
|
|
||||||
telescope-nvim # Fuzzy Finder
|
|
||||||
telescope-ui-select-nvim # UI
|
|
||||||
toggleterm-nvim # Terminal Helper
|
|
||||||
vim-nix # Nix Helpers
|
|
||||||
which-key-nvim # Shortcut Helper
|
|
||||||
|
|
||||||
# ------------------
|
|
||||||
# --- Theme / UI ---
|
|
||||||
# ------------------
|
|
||||||
lualine-nvim # Bottom Line
|
|
||||||
noice-nvim # UI Tweaks
|
|
||||||
# nord-nvim # Theme
|
|
||||||
melange-nvim # Theme
|
|
||||||
nvim-notify # Noice Dependency
|
|
||||||
nvim-web-devicons # Dev Icons
|
|
||||||
|
|
||||||
# ------------------
|
|
||||||
# --- Treesitter ---
|
|
||||||
# ------------------
|
|
||||||
nvim-treesitter-context
|
|
||||||
nvim-treesitter.withAllGrammars
|
|
||||||
|
|
||||||
# -------------------
|
|
||||||
# ------- DAP -------
|
|
||||||
# -------------------
|
|
||||||
nvim-dap
|
|
||||||
nvim-dap-go
|
|
||||||
nvim-dap-ui
|
|
||||||
|
|
||||||
# --------------------
|
|
||||||
# -- NONE-LS EXTRAS --
|
|
||||||
# --------------------
|
|
||||||
(
|
|
||||||
pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "none-ls-extras.nvim";
|
|
||||||
version = "2024-06-11";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "nvimtools";
|
|
||||||
repo = "none-ls-extras.nvim";
|
|
||||||
rev = "336e84b9e43c0effb735b08798ffac382920053b";
|
|
||||||
sha256 = "sha256-UtU4oWSRTKdEoMz3w8Pk95sROuo3LEwxSDAm169wxwk=";
|
|
||||||
};
|
|
||||||
meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/";
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# -------------------
|
|
||||||
# ----- Silicon -----
|
|
||||||
# -------------------
|
|
||||||
(
|
|
||||||
pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "silicon.lua";
|
|
||||||
version = "2022-12-03";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "mhanberg";
|
|
||||||
repo = "silicon.lua";
|
|
||||||
rev = "5ca462bee0a39b058786bc7fbeb5d16ea49f3a23";
|
|
||||||
sha256 = "0vlp645d5mmii513v72jca931miyrhkvhwb9bfzhix1199zx7vi2";
|
|
||||||
};
|
|
||||||
meta.homepage = "https://github.com/mhanberg/silicon.lua/";
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# -------------------
|
|
||||||
# ------- LLM -------
|
|
||||||
# -------------------
|
|
||||||
(
|
|
||||||
pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "llm.nvim";
|
|
||||||
version = "2024-05-25";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "David-Kunz";
|
|
||||||
repo = "gen.nvim";
|
|
||||||
rev = "bd19cf584b5b82123de977b44105e855e61e5f39";
|
|
||||||
sha256 = "sha256-0AEB6im8Jz5foYzmL6KEGSAYo48g1bkFpjlCSWT6JeE=";
|
|
||||||
};
|
|
||||||
meta.homepage = "https://github.com/David-Kunz/gen.nvim/";
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
# -------------------
|
|
||||||
# ---- LLAMA.VIM ----
|
|
||||||
# -------------------
|
|
||||||
(
|
|
||||||
pkgs.vimUtils.buildVimPlugin {
|
|
||||||
pname = "llama.vim";
|
|
||||||
version = "2025-01-23";
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "ggml-org";
|
|
||||||
repo = "llama.vim";
|
|
||||||
rev = "143fe910b8d47a054ed464c38d8b7c17d5354468";
|
|
||||||
sha256 = "sha256-PW0HKzhSxcZiWzpDOuy98rl/X0o2nE7tMjZjwwh0qLE=";
|
|
||||||
};
|
|
||||||
meta.homepage = "https://github.com/ggml-org/llama.vim/";
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
# Telescope Dependencies
|
|
||||||
fd
|
|
||||||
ripgrep
|
|
||||||
tree-sitter
|
|
||||||
|
|
||||||
# LSP Dependencies
|
|
||||||
go
|
|
||||||
golangci-lint
|
|
||||||
golangci-lint-langserver
|
|
||||||
gopls
|
|
||||||
lua-language-server
|
|
||||||
nil
|
|
||||||
nodePackages.eslint
|
|
||||||
nodePackages.svelte-language-server
|
|
||||||
nodePackages.typescript
|
|
||||||
nodePackages.typescript-language-server
|
|
||||||
nodePackages.vscode-langservers-extracted
|
|
||||||
pyright
|
|
||||||
eslint_d
|
|
||||||
|
|
||||||
# Formatters
|
|
||||||
luaformatter
|
|
||||||
nixpkgs-fmt
|
|
||||||
nodePackages.prettier
|
|
||||||
sqlfluff
|
|
||||||
stylua
|
|
||||||
|
|
||||||
# Silicon
|
|
||||||
silicon
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfig = ":luafile ~/.config/nvim/lua/init.lua";
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
xdg.configFile = {
|
|
||||||
# Copy Configuration
|
|
||||||
nvim = {
|
|
||||||
source = ./config;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Generate Nix Vars
|
|
||||||
"nvim/lua/nix-vars.lua".text = ''
|
|
||||||
local nix_vars = {
|
|
||||||
gopls = "${pkgs.gopls}/bin/gopls",
|
|
||||||
luals = "${pkgs.lua-language-server}/bin/lua-language-server",
|
|
||||||
sveltels = "${pkgs.nodePackages.svelte-language-server}/bin/svelteserver",
|
|
||||||
tsls = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server",
|
|
||||||
golintls = "${pkgs.golangci-lint-langserver}/bin/golangci-lint-langserver",
|
|
||||||
vscls = "${pkgs.nodePackages.vscode-langservers-extracted}",
|
|
||||||
}
|
|
||||||
return nix_vars
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
programs.powerline-go = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
git-mode = "compact";
|
|
||||||
theme = "gruvbox";
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
"host"
|
|
||||||
"cwd"
|
|
||||||
"git"
|
|
||||||
"docker"
|
|
||||||
"venv"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
{
|
|
||||||
programs.readline = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = ''
|
|
||||||
# Approximate VIM Dracula Colors
|
|
||||||
set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2
|
|
||||||
set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,114 +0,0 @@
|
|||||||
{ lib, pkgs, ... }:
|
|
||||||
lib.mkIf pkgs.stdenv.isLinux {
|
|
||||||
programs.waybar = {
|
|
||||||
enable = true;
|
|
||||||
style = builtins.readFile ./config/style.css;
|
|
||||||
settings = [{
|
|
||||||
layer = "top";
|
|
||||||
position = "top";
|
|
||||||
mod = "dock";
|
|
||||||
exclusive = true;
|
|
||||||
passtrough = false;
|
|
||||||
gtk-layer-shell = true;
|
|
||||||
height = 0;
|
|
||||||
modules-left = [
|
|
||||||
"hyprland/workspaces"
|
|
||||||
"custom/divider"
|
|
||||||
"custom/divider"
|
|
||||||
"cpu"
|
|
||||||
"custom/divider"
|
|
||||||
"memory"
|
|
||||||
];
|
|
||||||
modules-center = [ "hyprland/window" ];
|
|
||||||
modules-right = [
|
|
||||||
"tray"
|
|
||||||
"network"
|
|
||||||
"custom/divider"
|
|
||||||
"backlight"
|
|
||||||
"custom/divider"
|
|
||||||
"pulseaudio"
|
|
||||||
"custom/divider"
|
|
||||||
"battery"
|
|
||||||
"custom/divider"
|
|
||||||
"clock"
|
|
||||||
];
|
|
||||||
"hyprland/window" = { format = "{}"; };
|
|
||||||
"wlr/workspaces" = {
|
|
||||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
|
||||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
|
||||||
all-outputs = true;
|
|
||||||
on-click = "activate";
|
|
||||||
};
|
|
||||||
battery = { format = " {}%"; };
|
|
||||||
cpu = {
|
|
||||||
interval = 10;
|
|
||||||
format = " {}%";
|
|
||||||
max-length = 10;
|
|
||||||
on-click = "";
|
|
||||||
};
|
|
||||||
memory = {
|
|
||||||
interval = 30;
|
|
||||||
format = " {}%";
|
|
||||||
format-alt = " {used:0.1f}G";
|
|
||||||
max-length = 10;
|
|
||||||
};
|
|
||||||
backlight = {
|
|
||||||
format = " {}";
|
|
||||||
device = "acpi_video0";
|
|
||||||
};
|
|
||||||
tray = {
|
|
||||||
icon-size = 13;
|
|
||||||
tooltip = false;
|
|
||||||
spacing = 10;
|
|
||||||
};
|
|
||||||
network = {
|
|
||||||
format = " {essid}";
|
|
||||||
format-disconnected = " disconnected";
|
|
||||||
};
|
|
||||||
clock = {
|
|
||||||
format = " {:%I:%M %p %m/%d} ";
|
|
||||||
tooltip-format = ''
|
|
||||||
<big>{:%Y %B}</big>
|
|
||||||
<tt><small>{calendar}</small></tt>'';
|
|
||||||
};
|
|
||||||
pulseaudio = {
|
|
||||||
format = "{icon} {volume}%";
|
|
||||||
tooltip = false;
|
|
||||||
format-muted = " Muted";
|
|
||||||
on-click = "pamixer -t";
|
|
||||||
on-scroll-up = "pamixer -i 5";
|
|
||||||
on-scroll-down = "pamixer -d 5";
|
|
||||||
scroll-step = 5;
|
|
||||||
format-icons = {
|
|
||||||
headphone = "";
|
|
||||||
hands-free = "";
|
|
||||||
headset = "";
|
|
||||||
phone = "";
|
|
||||||
portable = "";
|
|
||||||
car = "";
|
|
||||||
default = [ "" "" "" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"pulseaudio#microphone" = {
|
|
||||||
format = "{format_source}";
|
|
||||||
tooltip = false;
|
|
||||||
format-source = " {volume}%";
|
|
||||||
format-source-muted = " Muted";
|
|
||||||
on-click = "pamixer --default-source -t";
|
|
||||||
on-scroll-up = "pamixer --default-source -i 5";
|
|
||||||
on-scroll-down = "pamixer --default-source -d 5";
|
|
||||||
scroll-step = 5;
|
|
||||||
};
|
|
||||||
"custom/divider" = {
|
|
||||||
format = " | ";
|
|
||||||
interval = "once";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
"custom/endright" = {
|
|
||||||
format = "_";
|
|
||||||
interval = "once";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
}
|
|
37
homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix
Normal file
37
homes/aarch64-darwin/evanreichard@MBP-Personal/default.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
reichardnix = {
|
||||||
|
programs.btop.enable = true;
|
||||||
|
programs.direnv.enable = true;
|
||||||
|
programs.ghostty.enable = true;
|
||||||
|
programs.git.enable = true;
|
||||||
|
programs.k9s.enable = true;
|
||||||
|
programs.nvim.enable = true;
|
||||||
|
|
||||||
|
programs.hyprland.enable = false;
|
||||||
|
programs.aws.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Global Packages
|
||||||
|
programs.jq.enable = true;
|
||||||
|
programs.pandoc.enable = true;
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
android-tools
|
||||||
|
imagemagick
|
||||||
|
mosh
|
||||||
|
python311
|
||||||
|
texliveSmall # Pandoc PDF Dep
|
||||||
|
google-cloud-sdk
|
||||||
|
tldr
|
||||||
|
];
|
||||||
|
|
||||||
|
# SQLite Configuration
|
||||||
|
home.file.".sqliterc".text = ''
|
||||||
|
.headers on
|
||||||
|
.mode column
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Enable Home Manager & Self Manage
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
}
|
75
homes/aarch64-darwin/evanreichard@MBP-Work/default.nix
Normal file
75
homes/aarch64-darwin/evanreichard@MBP-Work/default.nix
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
inherit (pkgs.lib) mkForce;
|
||||||
|
inherit (pkgs.stdenv) isLinux;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
reichardnix = {
|
||||||
|
programs.nvim.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Home Manager Config
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
home.username = "evanreichard";
|
||||||
|
home.homeDirectory = mkForce (if isLinux then "/home/evanreichard" else "/Users/evanreichard");
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
|
# Global Packages
|
||||||
|
# home.packages = with pkgs; [
|
||||||
|
# (nerdfonts.override { fonts = [ "Meslo" ]; })
|
||||||
|
# # ghostty - Pending Darwin @ https://github.com/NixOS/nixpkgs/pull/369788
|
||||||
|
# android-tools
|
||||||
|
# awscli2
|
||||||
|
# bashInteractive
|
||||||
|
# cw
|
||||||
|
# fastfetch
|
||||||
|
# gitAndTools.gh
|
||||||
|
# google-cloud-sdk
|
||||||
|
# imagemagick
|
||||||
|
# kubectl
|
||||||
|
# kubernetes-helm
|
||||||
|
# mosh
|
||||||
|
# pre-commit
|
||||||
|
# python311
|
||||||
|
# ssm-session-manager-plugin
|
||||||
|
# texliveSmall # Pandoc PDF Dep
|
||||||
|
# thefuck
|
||||||
|
# tldr
|
||||||
|
# ]
|
||||||
|
# ++ optionals isLinux [
|
||||||
|
# ghostty
|
||||||
|
# hyprpaper
|
||||||
|
# firefox
|
||||||
|
# ]
|
||||||
|
# ++ optionals isDarwin [ ];
|
||||||
|
|
||||||
|
# # GitHub CLI
|
||||||
|
# programs.gh = {
|
||||||
|
# enable = true;
|
||||||
|
# settings = {
|
||||||
|
# git_protocol = "ssh";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Misc Programs
|
||||||
|
# programs.jq.enable = true;
|
||||||
|
# programs.k9s.enable = true;
|
||||||
|
# programs.pandoc.enable = true;
|
||||||
|
|
||||||
|
# # Enable Flakes & Commands
|
||||||
|
# nix = {
|
||||||
|
# package = mkForce pkgs.nix;
|
||||||
|
# settings = {
|
||||||
|
# experimental-features = "nix-command flakes";
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # SQLite Configuration
|
||||||
|
# home.file.".sqliterc".text = ''
|
||||||
|
# .headers on
|
||||||
|
# .mode column
|
||||||
|
# '';
|
||||||
|
|
||||||
|
# # Darwin Spotlight Indexing Hack
|
||||||
|
# disabledModules = [ "targets/darwin/linkapps.nix" ];
|
||||||
|
}
|
18
modules/home/programs/aws/default.nix
Normal file
18
modules/home/programs/aws/default.nix
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
{ lib, pkgs, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.aws;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.aws = {
|
||||||
|
enable = lib.mkEnableOption "AWS";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
cw
|
||||||
|
awscli2
|
||||||
|
ssm-session-manager-plugin
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
19
modules/home/programs/btop/default.nix
Normal file
19
modules/home/programs/btop/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.btop;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.btop = {
|
||||||
|
enable = lib.mkEnableOption "btop";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.btop.enable = true;
|
||||||
|
|
||||||
|
home.file.".config/btop/btop.conf".text =
|
||||||
|
builtins.readFile ./config/btop.conf;
|
||||||
|
home.file.".config/btop/themes/catppuccin_mocha.theme".text =
|
||||||
|
builtins.readFile ./config/catppuccin_mocha.theme;
|
||||||
|
};
|
||||||
|
}
|
17
modules/home/programs/direnv/default.nix
Normal file
17
modules/home/programs/direnv/default.nix
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{ lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.direnv;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.direnv = {
|
||||||
|
enable = lib.mkEnableOption "direnv";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -1,4 +1,4 @@
|
|||||||
command = bash --login
|
command = @BASH_PATH@ --login
|
||||||
macos-titlebar-style = tabs
|
macos-titlebar-style = tabs
|
||||||
auto-update = off
|
auto-update = off
|
||||||
font-family = "MesloLGM Nerd Font Mono"
|
font-family = "MesloLGM Nerd Font Mono"
|
73
modules/home/programs/ghostty/default.nix
Normal file
73
modules/home/programs/ghostty/default.nix
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
{ pkgs, lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.ghostty;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.ghostty = {
|
||||||
|
enable = lib.mkEnableOption "Ghostty";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.bash = {
|
||||||
|
enable = true;
|
||||||
|
shellAliases = {
|
||||||
|
grep = "grep --color";
|
||||||
|
ssh = "TERM=xterm-256color ssh";
|
||||||
|
flush_dns = "sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder";
|
||||||
|
};
|
||||||
|
profileExtra = ''
|
||||||
|
SHELL="$BASH"
|
||||||
|
PATH=~/.bin:$PATH
|
||||||
|
eval "$(thefuck --alias)"
|
||||||
|
set -o vi
|
||||||
|
bind "set show-mode-in-prompt on"
|
||||||
|
fastfetch
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.powerline-go = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
git-mode = "compact";
|
||||||
|
theme = "gruvbox";
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
"host"
|
||||||
|
"cwd"
|
||||||
|
"git"
|
||||||
|
"docker"
|
||||||
|
"venv"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.readline = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
# Approximate VIM Dracula Colors
|
||||||
|
set vi-ins-mode-string \1\e[01;38;5;23;48;5;231m\2 I \1\e[38;5;231;48;5;238m\2\1\e[0m\2
|
||||||
|
set vi-cmd-mode-string \1\e[01;38;5;22;48;5;148m\2 C \1\e[38;5;148;48;5;238m\2\1\e[0m\2
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
# Pending Darwin @ https://github.com/NixOS/nixpkgs/pull/369788
|
||||||
|
# ghostty
|
||||||
|
thefuck
|
||||||
|
fastfetch
|
||||||
|
bashInteractive
|
||||||
|
(nerdfonts.override { fonts = [ "Meslo" ]; })
|
||||||
|
];
|
||||||
|
|
||||||
|
home.file.".config/fastfetch/config.jsonc".text = builtins.readFile ./config/fastfetch.jsonc;
|
||||||
|
home.file.".config/ghostty/config".text =
|
||||||
|
let
|
||||||
|
bashPath = "${pkgs.bashInteractive}/bin/bash";
|
||||||
|
in
|
||||||
|
builtins.replaceStrings
|
||||||
|
[ "@BASH_PATH@" ]
|
||||||
|
[ bashPath ]
|
||||||
|
(builtins.readFile ./config/ghostty.conf);
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
95
modules/home/programs/git/default.nix
Normal file
95
modules/home/programs/git/default.nix
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
{ pkgs, lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.git;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.git = {
|
||||||
|
enable = lib.mkEnableOption "Git";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "Evan Reichard";
|
||||||
|
aliases = {
|
||||||
|
lg = "log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all -n 15";
|
||||||
|
};
|
||||||
|
includes = [
|
||||||
|
{
|
||||||
|
path = "~/.config/git/work";
|
||||||
|
condition = "gitdir:~/Development/git/work/";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
path = "~/.config/git/personal";
|
||||||
|
condition = "gitdir:~/Development/git/personal/";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
extraConfig = {
|
||||||
|
core = {
|
||||||
|
autocrlf = "input";
|
||||||
|
safecrlf = "true";
|
||||||
|
excludesFile = "~/.config/git/.gitignore";
|
||||||
|
};
|
||||||
|
column = {
|
||||||
|
ui = "auto";
|
||||||
|
};
|
||||||
|
fetch = {
|
||||||
|
prune = true;
|
||||||
|
pruneTags = true;
|
||||||
|
all = true;
|
||||||
|
};
|
||||||
|
help = {
|
||||||
|
autocorrect = true;
|
||||||
|
};
|
||||||
|
diff = {
|
||||||
|
algorithm = "histogram";
|
||||||
|
colorMoved = "plain";
|
||||||
|
mnemonicPrefix = true;
|
||||||
|
renames = true;
|
||||||
|
};
|
||||||
|
rebase = {
|
||||||
|
autoSquash = true;
|
||||||
|
autoStash = true;
|
||||||
|
updateRefs = true;
|
||||||
|
};
|
||||||
|
rerere = {
|
||||||
|
enabled = true;
|
||||||
|
autoupdate = true;
|
||||||
|
};
|
||||||
|
commit = {
|
||||||
|
verbose = true;
|
||||||
|
};
|
||||||
|
branch = {
|
||||||
|
sort = "-committerdate";
|
||||||
|
};
|
||||||
|
merge = {
|
||||||
|
conflictstyle = "zdiff3";
|
||||||
|
};
|
||||||
|
push = {
|
||||||
|
autoSetupRemote = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.gh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
git_protocol = "ssh";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
gitAndTools.gh
|
||||||
|
pre-commit
|
||||||
|
];
|
||||||
|
|
||||||
|
# Copy Configuration
|
||||||
|
xdg.configFile = {
|
||||||
|
git = {
|
||||||
|
source = ./config;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
129
modules/home/programs/hyprland/default.nix
Normal file
129
modules/home/programs/hyprland/default.nix
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
{ lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.hyprland;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.hyprland = {
|
||||||
|
enable = lib.mkEnableOption "Hyprland";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = builtins.readFile ./config/hyprland.conf;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.waybar = {
|
||||||
|
enable = true;
|
||||||
|
style = builtins.readFile ./config/waybar-style.css;
|
||||||
|
settings = [{
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
mod = "dock";
|
||||||
|
exclusive = true;
|
||||||
|
passtrough = false;
|
||||||
|
gtk-layer-shell = true;
|
||||||
|
height = 0;
|
||||||
|
modules-left = [
|
||||||
|
"hyprland/workspaces"
|
||||||
|
"custom/divider"
|
||||||
|
"custom/divider"
|
||||||
|
"cpu"
|
||||||
|
"custom/divider"
|
||||||
|
"memory"
|
||||||
|
];
|
||||||
|
modules-center = [ "hyprland/window" ];
|
||||||
|
modules-right = [
|
||||||
|
"tray"
|
||||||
|
"network"
|
||||||
|
"custom/divider"
|
||||||
|
"backlight"
|
||||||
|
"custom/divider"
|
||||||
|
"pulseaudio"
|
||||||
|
"custom/divider"
|
||||||
|
"battery"
|
||||||
|
"custom/divider"
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
"hyprland/window" = { format = "{}"; };
|
||||||
|
"wlr/workspaces" = {
|
||||||
|
on-scroll-up = "hyprctl dispatch workspace e+1";
|
||||||
|
on-scroll-down = "hyprctl dispatch workspace e-1";
|
||||||
|
all-outputs = true;
|
||||||
|
on-click = "activate";
|
||||||
|
};
|
||||||
|
battery = { format = " {}%"; };
|
||||||
|
cpu = {
|
||||||
|
interval = 10;
|
||||||
|
format = " {}%";
|
||||||
|
max-length = 10;
|
||||||
|
on-click = "";
|
||||||
|
};
|
||||||
|
memory = {
|
||||||
|
interval = 30;
|
||||||
|
format = " {}%";
|
||||||
|
format-alt = " {used:0.1f}G";
|
||||||
|
max-length = 10;
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
format = " {}";
|
||||||
|
device = "acpi_video0";
|
||||||
|
};
|
||||||
|
tray = {
|
||||||
|
icon-size = 13;
|
||||||
|
tooltip = false;
|
||||||
|
spacing = 10;
|
||||||
|
};
|
||||||
|
network = {
|
||||||
|
format = " {essid}";
|
||||||
|
format-disconnected = " disconnected";
|
||||||
|
};
|
||||||
|
clock = {
|
||||||
|
format = " {:%I:%M %p %m/%d} ";
|
||||||
|
tooltip-format = ''
|
||||||
|
<big>{:%Y %B}</big>
|
||||||
|
<tt><small>{calendar}</small></tt>'';
|
||||||
|
};
|
||||||
|
pulseaudio = {
|
||||||
|
format = "{icon} {volume}%";
|
||||||
|
tooltip = false;
|
||||||
|
format-muted = " Muted";
|
||||||
|
on-click = "pamixer -t";
|
||||||
|
on-scroll-up = "pamixer -i 5";
|
||||||
|
on-scroll-down = "pamixer -d 5";
|
||||||
|
scroll-step = 5;
|
||||||
|
format-icons = {
|
||||||
|
headphone = "";
|
||||||
|
hands-free = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = [ "" "" "" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"pulseaudio#microphone" = {
|
||||||
|
format = "{format_source}";
|
||||||
|
tooltip = false;
|
||||||
|
format-source = " {volume}%";
|
||||||
|
format-source-muted = " Muted";
|
||||||
|
on-click = "pamixer --default-source -t";
|
||||||
|
on-scroll-up = "pamixer --default-source -i 5";
|
||||||
|
on-scroll-down = "pamixer --default-source -d 5";
|
||||||
|
scroll-step = 5;
|
||||||
|
};
|
||||||
|
"custom/divider" = {
|
||||||
|
format = " | ";
|
||||||
|
interval = "once";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
"custom/endright" = {
|
||||||
|
format = "_";
|
||||||
|
interval = "once";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
}];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
19
modules/home/programs/k9s/default.nix
Normal file
19
modules/home/programs/k9s/default.nix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{ lib, pkgs, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.k9s;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.k9s = {
|
||||||
|
enable = lib.mkEnableOption "k9s";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.k9s.enable = true;
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
kubectl
|
||||||
|
kubernetes-helm
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
203
modules/home/programs/nvim/default.nix
Normal file
203
modules/home/programs/nvim/default.nix
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
{ pkgs, lib, config, namespace, ... }:
|
||||||
|
let
|
||||||
|
inherit (lib) mkIf;
|
||||||
|
cfg = config.${namespace}.programs.nvim;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.${namespace}.programs.nvim = {
|
||||||
|
enable = lib.mkEnableOption "NeoVim";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
viAlias = true;
|
||||||
|
vimAlias = true;
|
||||||
|
withNodeJs = true;
|
||||||
|
withPython3 = true;
|
||||||
|
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
# ------------------
|
||||||
|
# --- Completion ---
|
||||||
|
# ------------------
|
||||||
|
cmp-buffer # Buffer Word Completion
|
||||||
|
cmp-cmdline # Command Line Completion
|
||||||
|
cmp-nvim-lsp # Main LSP
|
||||||
|
cmp-path # Path Completion
|
||||||
|
cmp_luasnip # Snippets Completion
|
||||||
|
friendly-snippets # Snippets
|
||||||
|
lsp_lines-nvim # Inline Diagnostics
|
||||||
|
luasnip # Snippets
|
||||||
|
nvim-cmp # Completions
|
||||||
|
nvim-lspconfig # LSP Config
|
||||||
|
|
||||||
|
# -------------------
|
||||||
|
# ----- Helpers -----
|
||||||
|
# -------------------
|
||||||
|
aerial-nvim # Code Outline
|
||||||
|
comment-nvim # Code Comments
|
||||||
|
diffview-nvim # Diff View
|
||||||
|
gitsigns-nvim # Git Blame
|
||||||
|
leap-nvim # Quick Movement
|
||||||
|
markdown-preview-nvim # Markdown Preview
|
||||||
|
neo-tree-nvim # File Explorer
|
||||||
|
none-ls-nvim # Formatters
|
||||||
|
numb-nvim # Peek / Jump to Lines
|
||||||
|
nvim-autopairs # Automatically Close Pairs (),[],{}
|
||||||
|
telescope-fzf-native-nvim # Faster Telescope
|
||||||
|
telescope-nvim # Fuzzy Finder
|
||||||
|
telescope-ui-select-nvim # UI
|
||||||
|
toggleterm-nvim # Terminal Helper
|
||||||
|
vim-nix # Nix Helpers
|
||||||
|
which-key-nvim # Shortcut Helper
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
# --- Theme / UI ---
|
||||||
|
# ------------------
|
||||||
|
lualine-nvim # Bottom Line
|
||||||
|
noice-nvim # UI Tweaks
|
||||||
|
# nord-nvim # Theme
|
||||||
|
melange-nvim # Theme
|
||||||
|
nvim-notify # Noice Dependency
|
||||||
|
nvim-web-devicons # Dev Icons
|
||||||
|
|
||||||
|
# ------------------
|
||||||
|
# --- Treesitter ---
|
||||||
|
# ------------------
|
||||||
|
nvim-treesitter-context
|
||||||
|
nvim-treesitter.withAllGrammars
|
||||||
|
|
||||||
|
# -------------------
|
||||||
|
# ------- DAP -------
|
||||||
|
# -------------------
|
||||||
|
nvim-dap
|
||||||
|
nvim-dap-go
|
||||||
|
nvim-dap-ui
|
||||||
|
|
||||||
|
# --------------------
|
||||||
|
# -- NONE-LS EXTRAS --
|
||||||
|
# --------------------
|
||||||
|
(
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = "none-ls-extras.nvim";
|
||||||
|
version = "2024-06-11";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "nvimtools";
|
||||||
|
repo = "none-ls-extras.nvim";
|
||||||
|
rev = "336e84b9e43c0effb735b08798ffac382920053b";
|
||||||
|
sha256 = "sha256-UtU4oWSRTKdEoMz3w8Pk95sROuo3LEwxSDAm169wxwk=";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# -------------------
|
||||||
|
# ----- Silicon -----
|
||||||
|
# -------------------
|
||||||
|
(
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = "silicon.lua";
|
||||||
|
version = "2022-12-03";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "mhanberg";
|
||||||
|
repo = "silicon.lua";
|
||||||
|
rev = "5ca462bee0a39b058786bc7fbeb5d16ea49f3a23";
|
||||||
|
sha256 = "0vlp645d5mmii513v72jca931miyrhkvhwb9bfzhix1199zx7vi2";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/mhanberg/silicon.lua/";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# -------------------
|
||||||
|
# ------- LLM -------
|
||||||
|
# -------------------
|
||||||
|
(
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = "llm.nvim";
|
||||||
|
version = "2024-05-25";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "David-Kunz";
|
||||||
|
repo = "gen.nvim";
|
||||||
|
rev = "bd19cf584b5b82123de977b44105e855e61e5f39";
|
||||||
|
sha256 = "sha256-0AEB6im8Jz5foYzmL6KEGSAYo48g1bkFpjlCSWT6JeE=";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/David-Kunz/gen.nvim/";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
# -------------------
|
||||||
|
# ---- LLAMA.VIM ----
|
||||||
|
# -------------------
|
||||||
|
(
|
||||||
|
pkgs.vimUtils.buildVimPlugin {
|
||||||
|
pname = "llama.vim";
|
||||||
|
version = "2025-01-23";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "ggml-org";
|
||||||
|
repo = "llama.vim";
|
||||||
|
rev = "143fe910b8d47a054ed464c38d8b7c17d5354468";
|
||||||
|
sha256 = "sha256-PW0HKzhSxcZiWzpDOuy98rl/X0o2nE7tMjZjwwh0qLE=";
|
||||||
|
};
|
||||||
|
meta.homepage = "https://github.com/ggml-org/llama.vim/";
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# Telescope Dependencies
|
||||||
|
fd
|
||||||
|
ripgrep
|
||||||
|
tree-sitter
|
||||||
|
|
||||||
|
# LSP Dependencies
|
||||||
|
go
|
||||||
|
golangci-lint
|
||||||
|
golangci-lint-langserver
|
||||||
|
gopls
|
||||||
|
lua-language-server
|
||||||
|
nil
|
||||||
|
nodePackages.eslint
|
||||||
|
nodePackages.svelte-language-server
|
||||||
|
nodePackages.typescript
|
||||||
|
nodePackages.typescript-language-server
|
||||||
|
nodePackages.vscode-langservers-extracted
|
||||||
|
pyright
|
||||||
|
eslint_d
|
||||||
|
|
||||||
|
# Formatters
|
||||||
|
luaformatter
|
||||||
|
nixpkgs-fmt
|
||||||
|
nodePackages.prettier
|
||||||
|
sqlfluff
|
||||||
|
stylua
|
||||||
|
|
||||||
|
# Silicon
|
||||||
|
silicon
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = ":luafile ~/.config/nvim/lua/init.lua";
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile = {
|
||||||
|
# Copy Configuration
|
||||||
|
nvim = {
|
||||||
|
source = ./config;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Generate Nix Vars
|
||||||
|
"nvim/lua/nix-vars.lua".text = ''
|
||||||
|
local nix_vars = {
|
||||||
|
gopls = "${pkgs.gopls}/bin/gopls",
|
||||||
|
luals = "${pkgs.lua-language-server}/bin/lua-language-server",
|
||||||
|
sveltels = "${pkgs.nodePackages.svelte-language-server}/bin/svelteserver",
|
||||||
|
tsls = "${pkgs.nodePackages.typescript-language-server}/bin/typescript-language-server",
|
||||||
|
golintls = "${pkgs.golangci-lint-langserver}/bin/golangci-lint-langserver",
|
||||||
|
vscls = "${pkgs.nodePackages.vscode-langservers-extracted}",
|
||||||
|
}
|
||||||
|
return nix_vars
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
77
systems/aarch64-linux/mbp-nixos/default.nix
Normal file
77
systems/aarch64-linux/mbp-nixos/default.nix
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
{ inputs, lib, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.apple-silicon.nixosModules.default
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# Generic Config
|
||||||
|
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
# Boot Loader Config
|
||||||
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Networking Config
|
||||||
|
networking = {
|
||||||
|
firewall.enable = true;
|
||||||
|
hostName = "mpb-nixos";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
networkmanager.wifi.backend = "iwd";
|
||||||
|
useDHCP = lib.mkDefault true;
|
||||||
|
wireless.iwd.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Hardware Config
|
||||||
|
hardware = {
|
||||||
|
asahi = {
|
||||||
|
peripheralFirmwareDirectory = ./firmware;
|
||||||
|
useExperimentalGPUDriver = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# graphics = {
|
||||||
|
# enable = true;
|
||||||
|
# enable32Bit = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
bluetooth.enable = true;
|
||||||
|
bluetooth.powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# # User Config
|
||||||
|
# users.users.evanreichard = {
|
||||||
|
# isNormalUser = true;
|
||||||
|
# home = "/home/evanreichard";
|
||||||
|
# extraGroups = [ "wheel" "networkmanager" "video" ];
|
||||||
|
# shell = pkgs.bash;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# # Home Manager Config
|
||||||
|
# home-manager = {
|
||||||
|
# useGlobalPkgs = true;
|
||||||
|
# useUserPackages = true;
|
||||||
|
# users.evanreichard = import ../home-manager/home.nix;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# HyprLand Config
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
|
# environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
|
|
||||||
|
# System Packages
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ghostty
|
||||||
|
firefox
|
||||||
|
htop
|
||||||
|
tmux
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
|
||||||
|
# hyprlock
|
||||||
|
# hypridle
|
||||||
|
];
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user