Compare commits

...

13 Commits

22 changed files with 181 additions and 116 deletions

View File

@ -1 +0,0 @@
trailingComma = "none"

12
biome.jsonc Normal file
View File

@ -0,0 +1,12 @@
{
"$schema": "https://biomejs.dev/schemas/2.0.5/schema.json",
"formatter": {
"enabled": true,
"indentStyle": "space"
},
"linter": {
"enabled": false
}
}

111
flake.lock generated
View File

@ -21,11 +21,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1750153510,
"narHash": "sha256-NYHXXJZ9m4fJpKk9tKn/EExX87SqcBcRINOGF7hKRLI=",
"lastModified": 1754727511,
"narHash": "sha256-iRqRCeeXEQ5HSB6zI6Wja7ZfY0PPRx5yelgjtoX2iMo=",
"owner": "catppuccin",
"repo": "nix",
"rev": "4e95eaf8a351956d75cc400318579967ca2b6d0f",
"rev": "7b55c4947c02f79dfd249432ccb0ada2726c29e2",
"type": "github"
},
"original": {
@ -98,24 +98,6 @@
"type": "github"
}
},
"grayjay": {
"inputs": {
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1750918833,
"narHash": "sha256-c87JpXIPSJP+Yyax+BydEKI5D8asFPR90BRQEp4DCgw=",
"owner": "rishabh5321",
"repo": "grayjay-flake",
"rev": "986c42094f9be9bcc18d09da9e2ee89b706f7801",
"type": "github"
},
"original": {
"owner": "rishabh5321",
"repo": "grayjay-flake",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -123,11 +105,11 @@
]
},
"locked": {
"lastModified": 1750792728,
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=",
"lastModified": 1753592768,
"narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557",
"rev": "fc3add429f21450359369af74c2375cb34a2d204",
"type": "github"
},
"original": {
@ -145,11 +127,11 @@
]
},
"locked": {
"lastModified": 1743604125,
"narHash": "sha256-ZD61DNbsBt1mQbinAaaEqKaJk2RFo9R/j+eYWeGMx7A=",
"lastModified": 1752603129,
"narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "180fd43eea296e62ae68e079fcf56aba268b9a1a",
"rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b",
"type": "github"
},
"original": {
@ -160,11 +142,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1744463964,
"narHash": "sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR+Xhw3kr/3Xd0GPTM=",
"lastModified": 1753694789,
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2631b0b7abcea6e640ce31cd78ea58910d31e650",
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
"type": "github"
},
"original": {
@ -192,11 +174,11 @@
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1750838302,
"narHash": "sha256-aVkL3/yu50oQzi2YuKo0ceiCypVZpZXYd2P2p1FMJM4=",
"lastModified": 1754689972,
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7284e2decc982b81a296ab35aa46e804baaa1cfe",
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
"type": "github"
},
"original": {
@ -208,11 +190,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1750776420,
"narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
"lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
"type": "github"
},
"original": {
@ -224,27 +206,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1750776420,
"narHash": "sha256-/CG+w0o0oJ5itVklOoLbdn2dGB0wbZVOoDm4np6w09A=",
"lastModified": 1754689972,
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "30a61f056ac492e3b7cdcb69c1e6abdcf00e39cf",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1750838302,
"narHash": "sha256-aVkL3/yu50oQzi2YuKo0ceiCypVZpZXYd2P2p1FMJM4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7284e2decc982b81a296ab35aa46e804baaa1cfe",
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
"type": "github"
},
"original": {
@ -254,7 +220,7 @@
"type": "github"
}
},
"nixpkgs_4": {
"nixpkgs_3": {
"locked": {
"lastModified": 1747179050,
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
@ -270,13 +236,13 @@
"type": "github"
}
},
"nixpkgs_5": {
"nixpkgs_4": {
"locked": {
"lastModified": 1743448293,
"narHash": "sha256-bmEPmSjJakAp/JojZRrUvNcDX2R5/nuX6bm+seVaGhs=",
"lastModified": 1752480373,
"narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "77b584d61ff80b4cef9245829a6f1dfad5afdfa3",
"rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08",
"type": "github"
},
"original": {
@ -289,9 +255,8 @@
"root": {
"inputs": {
"catppuccin": "catppuccin",
"grayjay": "grayjay",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs_3",
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable",
"simple-nixos-mailserver": "simple-nixos-mailserver",
@ -305,7 +270,7 @@
"blobs": "blobs",
"flake-compat": "flake-compat",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs_4",
"nixpkgs": "nixpkgs_3",
"nixpkgs-25_05": "nixpkgs-25_05"
},
"locked": {
@ -330,11 +295,11 @@
]
},
"locked": {
"lastModified": 1750119275,
"narHash": "sha256-Rr7Pooz9zQbhdVxux16h7URa6mA80Pb/G07T4lHvh0M=",
"lastModified": 1754328224,
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
"owner": "mic92",
"repo": "sops-nix",
"rev": "77c423a03b9b2b79709ea2cb63336312e78b72e2",
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
"type": "github"
},
"original": {
@ -351,11 +316,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1750567035,
"narHash": "sha256-GVNXxMZynKZt+83QQQEVXscqtkJbScvaBrwianovUW4=",
"lastModified": 1754196919,
"narHash": "sha256-0zATw65mNql9H8e7HWVBPpijMSbDVeK7JNivRBcUScM=",
"owner": "Gerg-L",
"repo": "spicetify-nix",
"rev": "e32285f5d1dfc184b039a813644e226c3914e7d7",
"rev": "24fcb94f7792ab755b933e1c9516996530ac1fbd",
"type": "github"
},
"original": {
@ -382,14 +347,14 @@
"zen-browser": {
"inputs": {
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_5"
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1750907909,
"narHash": "sha256-2WzRZLFUlu13iRGsP+tsaJhCOUESmL8gKtT7zY14TzE=",
"lastModified": 1754713785,
"narHash": "sha256-/XEjh0nXEzHX5H84AAEP1vJopIGf0Z4sbfqKklwQaHk=",
"owner": "0xc000022070",
"repo": "zen-browser-flake",
"rev": "ac0fcd7e963dce814b69cbedc4d510a95094cc15",
"rev": "7564df093b5d6aac0be47a0cd6336e5a36ece598",
"type": "github"
},
"original": {

View File

@ -37,8 +37,6 @@
};
# Browser
zen-browser.url = "github:0xc000022070/zen-browser-flake";
# Video aggregator
grayjay.url = "github:rishabh5321/grayjay-flake";
};
outputs =

View File

@ -11,5 +11,5 @@
./hardware-configuration.nix
];
boot.kernelPackages = pkgs.linuxPackages_6_14;
boot.kernelPackages = pkgs.linuxPackages_6_12;
}

View File

@ -29,8 +29,7 @@
}
.search-wrapper .logo-and-wordmark .logo {
background:
url("zen-logo-mocha.svg"),
background: url("zen-logo-mocha.svg"),
url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg")
no-repeat center !important;
display: inline-block !important;

View File

@ -5,7 +5,7 @@ let
in
{
networking.nat = {
enable = true;
enable = false;
internalInterfaces = [ "ve-*" ];
externalInterface = "wlan0";
# Lazy IPv6 connectivity for the container
@ -13,7 +13,7 @@ in
};
containers.actual = {
autoStart = true;
autoStart = false;
privateNetwork = true;
hostAddress = "192.168.10.188";
localAddress = "192.168.10.11";
@ -23,7 +23,7 @@ in
networking.firewall.allowedTCPPorts = [ port ];
services = {
actual = {
enable = true;
enable = false;
settings = {
inherit port;
loginMethod = "password";

View File

@ -9,6 +9,7 @@
./forgejo.nix
./hardware.nix
./headscale.nix
./home-assitant.nix
./mailserver.nix
./nextcloud.nix
./nginx.nix

View File

@ -0,0 +1,73 @@
{ pkgs, common, ... }:
let
dbName = "hass";
domain = "beta.home.${common.domain}";
port = 8085;
in
{
services = {
home-assistant = {
enable = true;
package =
(pkgs.home-assistant.override {
extraPackages =
py: with py; [
# Postgres
psycopg2
# Roomba
roombapy
];
}).overrideAttrs
(oldAttrs: {
# Avoid long install checks
doInstallCheck = false;
});
extraComponents = [
# Components required to complete the onboarding
"esphome"
"met"
"radio_browser"
];
config = {
# Includes dependencies for a basic setup
# https://www.home-assistant.io/integrations/default_config/
default_config = { };
homeassistant = {
name = "Hjem";
unit_system = "metric";
temperature_unit = "C";
};
http = {
server_host = "::1";
trusted_proxies = [ "::1" ];
use_x_forwarded_for = true;
server_port = port;
};
recorder.db_url = "postgresql://@/${dbName}";
};
};
nginx.virtualHosts.${domain} = {
forceSSL = true;
enableACME = true;
extraConfig = ''
proxy_buffering off;
'';
locations."/" = {
proxyPass = "http://[::1]:${toString port}";
proxyWebsockets = true;
};
};
postgresql = {
enable = true;
ensureDatabases = [ dbName ];
ensureUsers = [
{
name = dbName;
ensureDBOwnership = true;
}
];
};
};
}

View File

@ -14,7 +14,7 @@ in
];
mailserver = {
enable = true;
enable = false;
# stateVersion = 1; TODO uncomment on 25.11
fqdn = "mail.${common.domain}";
domains = [

View File

@ -1,7 +1,22 @@
{ systemConfig, ... }:
{
imports = [
./firewall.nix
];
security.sudo.extraRules = [
{
users = [ systemConfig.username ];
runAs = "ALL:ALL";
commands = [
{
command = "ALL";
options = [ "NOPASSWD" ];
}
];
}
];
services.pcscd.enable = true;
}

View File

@ -4,7 +4,7 @@
}:
{
programs.hyprpanel.settings.layout."bar.layouts"."*".right = lib.mkForce [
programs.hyprpanel.settings.bar.layouts."*".right = lib.mkForce [
"kbinput"
"volume"
"network"

View File

@ -29,8 +29,7 @@
}
.search-wrapper .logo-and-wordmark .logo {
background:
url("zen-logo-mocha.svg"),
background: url("zen-logo-mocha.svg"),
url("https://raw.githubusercontent.com/IAmJafeth/zen-browser/main/themes/Mocha/Blue/zen-logo-mocha.svg")
no-repeat center !important;
display: inline-block !important;

View File

@ -6,6 +6,14 @@ default:
fmt:
treefmt --on-unmatched info
# Clean user files
clean-user:
nh clean user
# Clean all files
clean-all:
nh clean all
# Build a specific host but don't activate it. Host must use same system as target system
build HOST:
git add .

View File

@ -16,12 +16,20 @@
helix =
let
prettier = format: {
command = "prettier";
command = lib.getExe pkgs.nodePackages.prettier;
args = [
"--stdin-filepath"
"file.${format}"
];
};
biome = format: {
command = lib.getExe pkgs.biome;
args = [
"check"
"--stdin-file-path=file.${format}"
"--write"
];
};
in
{
enable = true;
@ -60,7 +68,7 @@
languages.language = [
{
name = "css";
formatter = prettier "css";
formatter = biome "css";
auto-format = true;
}
{
@ -68,14 +76,14 @@
language-servers = [
"vscode-json-language-server"
];
formatter = prettier "json";
formatter = biome "json";
auto-format = true;
}
{
name = "jsonc";
language-servers = [
];
formatter = prettier "jsonc";
formatter = biome "jsonc";
file-types = [
"jsonc"
];

View File

@ -2,7 +2,7 @@
{
environment.systemPackages = with pkgs; [
nodePackages.prettier
biome # Linter + formatter
nixfmt-rfc-style
treefmt
shfmt

View File

@ -12,6 +12,7 @@
"nix"
"git-firefly"
"just"
"biome"
];
userSettings =
let
@ -24,14 +25,13 @@
provider = "ollama";
model = "deepseek-r1:8b";
};
version = "2";
};
autosave = "on_focus_change";
auto_update = false;
base_keymap = "JetBrains";
buffer_font_family = font;
features = {
edit_completion_provider = "zed";
edit_prediction_provider = "zed";
};
icon_theme = {
mode = theme.mode;

View File

@ -1,13 +1,6 @@
{ theme, ... }:
{ ... }:
{
# TODO deprecated, remove
catppuccin.gtk = {
enable = true;
flavor = theme.flavor;
icon.enable = true;
};
dconf = {
enable = true;
settings = {

View File

@ -5,6 +5,5 @@
jetbrains.webstorm
nodejs_22
pnpm
nodePackages.prettier
];
}

View File

@ -1,4 +1,4 @@
{ pkgs, inputs, ... }:
{ pkgs, ... }:
{
environment.systemPackages = with pkgs; [
@ -6,6 +6,6 @@
gimp
vlc
vdhcoapp
inputs.grayjay.packages.${system}.grayjay
grayjay
];
}

View File

@ -13,7 +13,7 @@
# Formatters needed for 'just fmt'
format = pkgs.mkShell {
packages = with pkgs; [
nodePackages.prettier
biome
nixfmt-rfc-style
treefmt
shfmt

View File

@ -2,17 +2,13 @@
command = "nixfmt"
includes = ["*.nix"]
[formatter.prettier]
command = "prettier"
includes = ["*.css", "*.json", "*.jsonc", "*.yaml"]
options = ["--write"]
[formatter.biome]
command = "biome"
includes = ["*.css", "*.json", "*.jsonc"]
options = ["check", "--write"]
[formatter.shell]
command = "shfmt"
includes = ["fmt", "test", "switch"]
excludes = []
options = [
"--indent", "2",
"--simplify",
"--write",
]
options = ["--indent", "2", "--simplify", "--write"]