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; fluffychat = (import nixpkgs-pr-fluffychat {inherit system;}).fluffychat;
feishin = (import nixpkgs-pr-feishin {inherit system;}).feishin; feishin = (import nixpkgs-pr-feishin {inherit system;}).feishin;
webone = pkgs.callPackage ./packages/webone {}; webone = pkgs.callPackage ./packages/webone {};
yazi-flavour-gruvbox-dark = pkgs.callPackage ./packages/yazi-flavour-gruvbox {};
}; };
in in
{ {

View file

@ -20,12 +20,6 @@
}; };
}; };
# Open ports for DHCP server.
networking.firewall.allowedUDPPorts = [
53
67
];
# Enable WebOne HTTP proxy. # Enable WebOne HTTP proxy.
services.webone.enable = true; services.webone.enable = true;
@ -33,11 +27,22 @@
services.netatalk = { services.netatalk = {
enable = true; enable = true;
settings = { settings = {
Global."uam list" = "uams_guest.so"; Global = {
"uam list" = "uams_guest.so";
};
iMac = { iMac = {
path = "/srv/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, nixpkgs,
userPackages,
pkgs, pkgs,
lib, lib,
hostname, hostname,
@ -70,7 +71,7 @@ with lib; {
enable = true; enable = true;
interactiveShellInit = '' interactiveShellInit = ''
# set gruvbox theme # set gruvbox theme
theme_gruvbox theme_gruvbox dark hard
# yazi cd on quit. # yazi cd on quit.
function y 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; [ environment.systemPackages = with pkgs; [
aria2 aria2
btop btop
@ -226,7 +235,6 @@ with lib; {
rsync rsync
tmux tmux
trash-cli trash-cli
yazi
]; ];
# Enable avahi hostname resolution. # Enable avahi hostname resolution.
@ -237,6 +245,7 @@ with lib; {
enable = true; enable = true;
addresses = true; addresses = true;
domain = true; domain = true;
userServices = true;
}; };
}; };
} }

View file

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