Compare commits
4 Commits
1eddde2bdb
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
2624e68a7c
|
|||
|
4335687f48
|
|||
|
44cd77e46f
|
|||
|
5b66eb3049
|
+42
-2
@@ -105,6 +105,10 @@
|
||||
adwaita-icon-theme
|
||||
pkgs-unstable.claude-code # Use unstable for latest version
|
||||
yubikey-manager
|
||||
# iOS interop
|
||||
uxplay
|
||||
libimobiledevice
|
||||
ifuse
|
||||
];
|
||||
|
||||
# Some programs need SUID wrappers, can be configured further or are
|
||||
@@ -116,6 +120,12 @@
|
||||
pinentryPackage = pkgs.pinentry-gnome3;
|
||||
};
|
||||
|
||||
# AirDrop-style file transfer (LocalSend)
|
||||
programs.localsend = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
|
||||
# List services that you want to enable:
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
@@ -225,11 +235,12 @@
|
||||
};
|
||||
|
||||
|
||||
# Open firewall for Tailscale
|
||||
# Open firewall for Tailscale + UxPlay AirPlay receiver
|
||||
networking.firewall = {
|
||||
checkReversePath = "loose";
|
||||
trustedInterfaces = [ "tailscale0" "wg0" ];
|
||||
allowedUDPPorts = [ config.services.tailscale.port ];
|
||||
allowedTCPPorts = [ 7000 7001 7100 ];
|
||||
allowedUDPPorts = [ config.services.tailscale.port 6000 6001 7011 ];
|
||||
};
|
||||
|
||||
# Auto-connect tailscale on boot
|
||||
@@ -267,6 +278,35 @@
|
||||
|
||||
services.pcscd.enable = true;
|
||||
|
||||
# iPhone USB mount (libimobiledevice)
|
||||
services.usbmuxd.enable = true;
|
||||
|
||||
# mDNS for AirPlay receiver (UxPlay) discovery from iPhone
|
||||
services.avahi = {
|
||||
enable = true;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
publish = {
|
||||
enable = true;
|
||||
addresses = true;
|
||||
userServices = true;
|
||||
};
|
||||
};
|
||||
|
||||
# Auto-start UxPlay with the graphical session so iOS Screen Mirroring
|
||||
# can find this host without manually launching it.
|
||||
systemd.user.services.uxplay = {
|
||||
description = "UxPlay AirPlay Mirror Receiver";
|
||||
partOf = [ "graphical-session.target" ];
|
||||
after = [ "graphical-session.target" "pipewire.service" ];
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.uxplay}/bin/uxplay";
|
||||
Restart = "on-failure";
|
||||
RestartSec = 5;
|
||||
};
|
||||
};
|
||||
|
||||
security.pam.services = {
|
||||
login.u2fAuth = true;
|
||||
sudo.u2fAuth = true;
|
||||
|
||||
Generated
+3
-3
@@ -92,11 +92,11 @@
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1778869304,
|
||||
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
|
||||
"lastModified": 1779536132,
|
||||
"narHash": "sha256-q+fF42iv/geEbHfgSzy3tS0FF/EyD6XTZ98E6yxiBO8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
|
||||
"rev": "3d8f0f3f72a6cd4d93d0ad13203f2ea1cb7e1456",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
@@ -271,6 +271,7 @@
|
||||
|
||||
home.file.".claude/settings.json" = {
|
||||
text = builtins.toJSON {
|
||||
hasCompletedOnboarding = true;
|
||||
permissions = {
|
||||
allow = [
|
||||
"Edit"
|
||||
@@ -283,6 +284,7 @@
|
||||
"WebSearch"
|
||||
"Agent"
|
||||
"NotebookEdit"
|
||||
"Monitor"
|
||||
];
|
||||
};
|
||||
alwaysThinkingEnabled = true;
|
||||
@@ -294,6 +296,8 @@
|
||||
env = {
|
||||
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS = "1";
|
||||
OMC_PLUGIN_ROOT = "${oh-my-claudecode}";
|
||||
#ANTHROPIC_BASE_URL = "http://10.0.1.16:20128/v1";
|
||||
#ANTHROPIC_AUTH_TOKEN = "sk-634d6ea8670969de-qzxian-1a74cc97";
|
||||
};
|
||||
teammateMode = "tmux";
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user