Compare commits
11 Commits
efaaa3d724
...
main
Author | SHA1 | Date | |
---|---|---|---|
c4c7e95e7d
|
|||
cb6e38604d
|
|||
859a0e22c2
|
|||
db3e754114
|
|||
51413f3896
|
|||
9557d9a6e6
|
|||
c4160fef76
|
|||
49c60b3519
|
|||
383fb19b59
|
|||
28ab51d4bf
|
|||
56cb89cb65
|
@ -1 +0,0 @@
|
||||
trailingComma = "none"
|
12
biome.jsonc
Normal file
12
biome.jsonc
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"$schema": "https://biomejs.dev/schemas/2.0.5/schema.json",
|
||||
|
||||
"formatter": {
|
||||
"enabled": true,
|
||||
"indentStyle": "space"
|
||||
},
|
||||
|
||||
"linter": {
|
||||
"enabled": false
|
||||
}
|
||||
}
|
48
flake.lock
generated
48
flake.lock
generated
@ -21,11 +21,11 @@
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753702336,
|
||||
"narHash": "sha256-IVFUQV6egGQHnm+I183OT+4ct/ka1IWA5u/0A9I/YV4=",
|
||||
"lastModified": 1754727511,
|
||||
"narHash": "sha256-iRqRCeeXEQ5HSB6zI6Wja7ZfY0PPRx5yelgjtoX2iMo=",
|
||||
"owner": "catppuccin",
|
||||
"repo": "nix",
|
||||
"rev": "b32de96c3c5384c83b0f4d741ec58a7f97c9ab11",
|
||||
"rev": "7b55c4947c02f79dfd249432ccb0ada2726c29e2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -142,11 +142,11 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1753250450,
|
||||
"narHash": "sha256-i+CQV2rPmP8wHxj0aq4siYyohHwVlsh40kV89f3nw1s=",
|
||||
"lastModified": 1753694789,
|
||||
"narHash": "sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fc02ee70efb805d3b2865908a13ddd4474557ecf",
|
||||
"rev": "dc9637876d0dcc8c9e5e22986b857632effeb727",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -174,11 +174,11 @@
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1753489912,
|
||||
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
|
||||
"lastModified": 1754689972,
|
||||
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
|
||||
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -190,11 +190,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1753549186,
|
||||
"narHash": "sha256-Znl7rzuxKg/Mdm6AhimcKynM7V3YeNDIcLjBuoBcmNs=",
|
||||
"lastModified": 1754498491,
|
||||
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "17f6bd177404d6d43017595c5264756764444ab8",
|
||||
"rev": "c2ae88e026f9525daf89587f3cbee584b92b6134",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -206,11 +206,11 @@
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1753489912,
|
||||
"narHash": "sha256-uDCFHeXdRIgJpYmtcUxGEsZ+hYlLPBhR83fdU+vbC1s=",
|
||||
"lastModified": 1754689972,
|
||||
"narHash": "sha256-eogqv6FqZXHgqrbZzHnq43GalnRbLTkbBbFtEfm1RSc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "13e8d35b7d6028b7198f8186bc0347c6abaa2701",
|
||||
"rev": "fc756aa6f5d3e2e5666efcf865d190701fef150a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -295,11 +295,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1752544651,
|
||||
"narHash": "sha256-GllP7cmQu7zLZTs9z0J2gIL42IZHa9CBEXwBY9szT0U=",
|
||||
"lastModified": 1754328224,
|
||||
"narHash": "sha256-glPK8DF329/dXtosV7YSzRlF4n35WDjaVwdOMEoEXHA=",
|
||||
"owner": "mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "2c8def626f54708a9c38a5861866660395bb3461",
|
||||
"rev": "49021900e69812ba7ddb9e40f9170218a7eca9f4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -316,11 +316,11 @@
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753591727,
|
||||
"narHash": "sha256-Ow+qyFckroPS4SQFHcFZ8mKh3HIQ2pQdC6DRjiYF9EE=",
|
||||
"lastModified": 1754196919,
|
||||
"narHash": "sha256-0zATw65mNql9H8e7HWVBPpijMSbDVeK7JNivRBcUScM=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "spicetify-nix",
|
||||
"rev": "26c488b60360e15db372483d826cec89ac532980",
|
||||
"rev": "24fcb94f7792ab755b933e1c9516996530ac1fbd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -350,11 +350,11 @@
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1753674409,
|
||||
"narHash": "sha256-jhBdIc802upDu3S/Nu0rgVlIJ39E8KWugQwm/a74MBY=",
|
||||
"lastModified": 1754713785,
|
||||
"narHash": "sha256-/XEjh0nXEzHX5H84AAEP1vJopIGf0Z4sbfqKklwQaHk=",
|
||||
"owner": "0xc000022070",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "e1bf71a0eb5ff9fdcfe83f6e4676ce19dd87f468",
|
||||
"rev": "7564df093b5d6aac0be47a0cd6336e5a36ece598",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -37,8 +37,6 @@
|
||||
};
|
||||
# Browser
|
||||
zen-browser.url = "github:0xc000022070/zen-browser-flake";
|
||||
# Video aggregator
|
||||
# grayjay.url = "github:rishabh5321/grayjay-flake";
|
||||
};
|
||||
|
||||
outputs =
|
||||
|
@ -11,5 +11,5 @@
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
boot.kernelPackages = pkgs.linuxPackages_6_12;
|
||||
}
|
||||
|
@ -29,10 +29,9 @@
|
||||
}
|
||||
|
||||
.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;
|
||||
no-repeat center !important;
|
||||
display: inline-block !important;
|
||||
height: 82px !important;
|
||||
width: 82px !important;
|
||||
|
@ -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";
|
||||
|
@ -9,6 +9,7 @@
|
||||
./forgejo.nix
|
||||
./hardware.nix
|
||||
./headscale.nix
|
||||
./home-assitant.nix
|
||||
./mailserver.nix
|
||||
./nextcloud.nix
|
||||
./nginx.nix
|
||||
|
73
hosts/pi4/home-assitant.nix
Normal file
73
hosts/pi4/home-assitant.nix
Normal 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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -4,7 +4,7 @@
|
||||
}:
|
||||
|
||||
{
|
||||
programs.hyprpanel.settings.layout."bar.layouts"."*".right = lib.mkForce [
|
||||
programs.hyprpanel.settings.bar.layouts."*".right = lib.mkForce [
|
||||
"kbinput"
|
||||
"volume"
|
||||
"network"
|
||||
|
@ -29,10 +29,9 @@
|
||||
}
|
||||
|
||||
.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;
|
||||
no-repeat center !important;
|
||||
display: inline-block !important;
|
||||
height: 82px !important;
|
||||
width: 82px !important;
|
||||
|
8
justfile
8
justfile
@ -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 .
|
||||
|
@ -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"
|
||||
];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
nodePackages.prettier
|
||||
biome # Linter + formatter
|
||||
nixfmt-rfc-style
|
||||
treefmt
|
||||
shfmt
|
||||
|
@ -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;
|
||||
|
@ -1,13 +1,6 @@
|
||||
{ theme, ... }:
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
# TODO deprecated, remove
|
||||
catppuccin.gtk = {
|
||||
enable = true;
|
||||
flavor = theme.flavor;
|
||||
icon.enable = true;
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -5,6 +5,5 @@
|
||||
jetbrains.webstorm
|
||||
nodejs_22
|
||||
pnpm
|
||||
nodePackages.prettier
|
||||
];
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ pkgs, inputs, ... }:
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
@ -6,6 +6,6 @@
|
||||
gimp
|
||||
vlc
|
||||
vdhcoapp
|
||||
# inputs.grayjay.packages.${system}.grayjay
|
||||
grayjay
|
||||
];
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
# Formatters needed for 'just fmt'
|
||||
format = pkgs.mkShell {
|
||||
packages = with pkgs; [
|
||||
nodePackages.prettier
|
||||
biome
|
||||
nixfmt-rfc-style
|
||||
treefmt
|
||||
shfmt
|
||||
|
14
treefmt.toml
14
treefmt.toml
@ -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"]
|
||||
|
Reference in New Issue
Block a user