Compare commits

..

4 commits

Author SHA1 Message Date
3f95cc7bc2 Fix netatalk. 2025-07-12 16:00:14 +08:00
dc17db04f5 Fix duplicate user config entry 2025-07-12 15:37:38 +08:00
8907f2f16a Add gruvbox theme for yazi 2025-07-12 15:37:22 +08:00
f89b492dc9 Open ports for Netatalk & WebOne 2025-07-12 15:36:55 +08:00
5 changed files with 55 additions and 17 deletions

View file

@ -43,6 +43,7 @@ with inputs.nixpkgs.lib; {
fluffychat = (import nixpkgs-pr-fluffychat {inherit system;}).fluffychat;
feishin = (import nixpkgs-pr-feishin {inherit system;}).feishin;
webone = pkgs.callPackage ./packages/webone {};
yazi-flavour-gruvbox-dark = pkgs.callPackage ./packages/yazi-flavour-gruvbox {};
};
in
{

View file

@ -20,12 +20,6 @@
};
};
# Open ports for DHCP server.
networking.firewall.allowedUDPPorts = [
53
67
];
# Enable WebOne HTTP proxy.
services.webone.enable = true;
@ -33,11 +27,22 @@
services.netatalk = {
enable = true;
settings = {
Global."uam list" = "uams_guest.so";
Global = {
"uam list" = "uams_guest.so";
};
iMac = {
path = "/srv/iMac";
"read-only" = true;
browsable = "yes";
"read-only" = "yes";
};
};
};
# Open ports for services.
networking.firewall = {
allowedUDPPorts = [
53 # DHCP server.
67 # DHCP server.
];
allowedTCPPorts = [8080 548]; # WebOne & Netatalk.
};
}

View file

@ -0,0 +1,21 @@
{
pkgs,
fetchFromGitHub,
}: let
flavor = "gruvbox-dark";
in
pkgs.stdenv.mkDerivation {
pname = "yazi-flavor-${flavor}";
version = "2025.04.24";
src = fetchFromGitHub {
owner = "bennyyip";
repo = "${flavor}.yazi";
rev = "91fdfa70f6d593934e62aba1e449f4ec3d3ccc90";
hash = "sha256-RWqyAdETD/EkDVGcnBPiMcw1mSd78Aayky9yoxSsry4=";
};
installPhase = ''
mkdir -p $out
cp $src/* $out/
'';
}

View file

@ -1,5 +1,6 @@
{
nixpkgs,
userPackages,
pkgs,
lib,
hostname,
@ -70,7 +71,7 @@ with lib; {
enable = true;
interactiveShellInit = ''
# set gruvbox theme
theme_gruvbox
theme_gruvbox dark hard
# yazi cd on quit.
function y
@ -217,6 +218,14 @@ with lib; {
};
};
programs.yazi = {
enable = true;
flavors."gruvbox-dark.yazi" = userPackages.yazi-flavour-gruvbox-dark;
settings.theme = {
flavor.dark = "gruvbox-dark";
};
};
environment.systemPackages = with pkgs; [
aria2
btop
@ -226,7 +235,6 @@ with lib; {
rsync
tmux
trash-cli
yazi
];
# Enable avahi hostname resolution.
@ -237,6 +245,7 @@ with lib; {
enable = true;
addresses = true;
domain = true;
userServices = true;
};
};
}

View file

@ -20,14 +20,16 @@ with lib; {
};
};
users.users.${user}.openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETPyuxUVEmYyEW6PVC6BXqkhULHd/RvMm8fMbYhjTMV fern@muskduck"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKzW4epTmK01kGVXcuAXUNJQPltnogf4uab9FA5m8S3n fern@pardalote"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBEJYq1fMxVOzCMfE/td6DtWS8nUk76U9seYD3Z9RYAz u0_a399@fairywren"
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIMoJvPcUJDVVzO4dHROCFNlgJdDZSP5xyPx2s40zcx5QAAAABHNzaDo= YubiKey5NFC"
];
users.users.${user} = {
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIETPyuxUVEmYyEW6PVC6BXqkhULHd/RvMm8fMbYhjTMV fern@muskduck"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKzW4epTmK01kGVXcuAXUNJQPltnogf4uab9FA5m8S3n fern@pardalote"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBEJYq1fMxVOzCMfE/td6DtWS8nUk76U9seYD3Z9RYAz u0_a399@fairywren"
"sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIMoJvPcUJDVVzO4dHROCFNlgJdDZSP5xyPx2s40zcx5QAAAABHNzaDo= YubiKey5NFC"
];
extraGroups = mkIf (user == "docker") ["docker"]; # if docker is enabled.
};
# Enable docker.
virtualisation.docker.enable = mkIf (user == "docker") true;
users.users.${user}.extraGroups = mkIf (user == "docker") ["docker"];
}