clean(systems/optional/networking): reorder, refactor ios -> iphone

This commit is contained in:
madmin 2024-08-09 10:08:51 +02:00
parent 4cde826c0d
commit b746f5ad37
2 changed files with 48 additions and 12 deletions

View File

@ -1,12 +0,0 @@
#https://nixos.wiki/wiki/IOS
{ pkgs }:
{
services.usbmuxd = {
enable = true;
#package = pkgs.usbmuxd2;
};
environment.systemPackages = with pkgs; [
libimobiledevice
#ifuse # optional, to mount using 'ifuse'
];
}

View File

@ -0,0 +1,48 @@
# ...
# imports = [ /path/to/iphone.nix ];
# iphone.enable = true;
# iphone.user = "yourusername";
# ...
# Then rebuild system. Attach iPhone via cable, open terminal and run command `iphone`
# It will fail, but there will occure a dialog on your iPhone to "trust this computer"
# Press OK there and run `iphone` again. If it succeeds it will open a freshly mounted folder
{ config, pkgs, lib, ... }:
let
cfg = config.iphone;
in {
options.iphone = {
enable = lib.mkOption { default = false; };
directory = lib.mkOption { default = "/run/media/iPhone"; };
user = lib.mkOption { };
};
config = lib.mkIf cfg.enable {
environment.systemPackages = [
pkgs.libimobiledevice
pkgs.usbmuxd
(pkgs.writeScriptBin "iphone" ''
sudo systemctl restart iphone \
&& ${pkgs.gnome2.libgnome}/bin/gnome-open ${cfg.directory}
'')
];
services.usbmuxd = {
enable = true;
user = cfg.user;
#https://nixos.wiki/wiki/IOS
#package = pkgs.usbmuxd2
};
systemd.services.iphone = {
preStart = "mkdir -p ${cfg.directory}; chown ${cfg.user} ${cfg.directory}";
script = ''
${pkgs.libimobiledevice}/bin/idevicepair pair \
&& exec ${pkgs.ifuse}/bin/ifuse ${cfg.directory}
'';
serviceConfig = {
PermissionsStartOnly = true;
User = cfg.user;
Type = "forking";
};
};
};
}