mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-08-08 12:54:38 -05:00
feat: set up sshfs on deimos
This commit is contained in:
parent
27781d3d0f
commit
2b4ad99e25
8 changed files with 54 additions and 8 deletions
|
@ -90,6 +90,7 @@ let
|
||||||
}
|
}
|
||||||
// genOptions mountConfig "folder"
|
// genOptions mountConfig "folder"
|
||||||
// genOptions mountConfig "samba"
|
// genOptions mountConfig "samba"
|
||||||
|
// genOptions mountConfig "remote"
|
||||||
// genOptions mountConfig "storage";
|
// genOptions mountConfig "storage";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
{ devicesFunctions }:
|
{ devicesFunctions }:
|
||||||
let
|
let
|
||||||
inherit (devicesFunctions)
|
inherit (devicesFunctions)
|
||||||
|
sshfsOptions
|
||||||
fileModeAndDirMode
|
fileModeAndDirMode
|
||||||
|
ceresStorageDriveName
|
||||||
ownerExclusiveReadWriteMask
|
ownerExclusiveReadWriteMask
|
||||||
readWritePermissions
|
readWritePermissions
|
||||||
sambaPermissions
|
sambaPermissions
|
||||||
|
@ -9,7 +11,6 @@ let
|
||||||
ceresIP
|
ceresIP
|
||||||
;
|
;
|
||||||
ceresName = "ceres";
|
ceresName = "ceres";
|
||||||
ceresStorageDriveName = "NAS1";
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
label = "Ceres";
|
label = "Ceres";
|
||||||
|
@ -33,4 +34,9 @@ in
|
||||||
device = "//${ceresIP}";
|
device = "//${ceresIP}";
|
||||||
options = sambaPermissions ++ fileModeAndDirMode ++ userIdForUser0;
|
options = sambaPermissions ++ fileModeAndDirMode ++ userIdForUser0;
|
||||||
};
|
};
|
||||||
|
remote0 = {
|
||||||
|
mount = "/mnt/media/remote";
|
||||||
|
device = "nick@24.76.173.0:/mnt/media/${ceresStorageDriveName}";
|
||||||
|
options = sshfsOptions;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,15 @@ let
|
||||||
"x-systemd.automount"
|
"x-systemd.automount"
|
||||||
"x-systemd.requires=network-online.target"
|
"x-systemd.requires=network-online.target"
|
||||||
];
|
];
|
||||||
|
sshfsOptions = [
|
||||||
|
"allow_other"
|
||||||
|
"_netdev"
|
||||||
|
"x-systemd.automount"
|
||||||
|
"reconnect"
|
||||||
|
"user"
|
||||||
|
"ServerAliveInterval=15"
|
||||||
|
"IdentityFile=/var/run/secrets/ssh/private"
|
||||||
|
];
|
||||||
fileModeAndDirMode = [
|
fileModeAndDirMode = [
|
||||||
"file_mode=0644"
|
"file_mode=0644"
|
||||||
"dir_mode=0755"
|
"dir_mode=0755"
|
||||||
|
@ -36,6 +45,7 @@ let
|
||||||
];
|
];
|
||||||
dummy = [
|
dummy = [
|
||||||
];
|
];
|
||||||
|
ceresStorageDriveName = "NAS1";
|
||||||
ceresIP = "192.168.50.140";
|
ceresIP = "192.168.50.140";
|
||||||
charonIP = "192.168.50.42";
|
charonIP = "192.168.50.42";
|
||||||
deimosIP = "192.168.50.142";
|
deimosIP = "192.168.50.142";
|
||||||
|
|
|
@ -40,7 +40,7 @@ in
|
||||||
};
|
};
|
||||||
fonts = {
|
fonts = {
|
||||||
names = {
|
names = {
|
||||||
name0 = "MonaspiceNe Nerd Font"; # User0 Font
|
name0 = "MonaspiceRn Nerd Font"; # User0 Font
|
||||||
name1 = ""; # User1 Font
|
name1 = ""; # User1 Font
|
||||||
name2 = ""; # User2 Font
|
name2 = ""; # User2 Font
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,14 @@
|
||||||
home.packages = builtins.attrValues {
|
home.packages = builtins.attrValues {
|
||||||
inherit (pkgs.kdePackages)
|
inherit (pkgs.kdePackages)
|
||||||
dolphin
|
dolphin
|
||||||
|
kio-extras
|
||||||
|
baloo
|
||||||
|
kdegraphics-thumbnailers
|
||||||
|
ffmpegthumbs
|
||||||
|
breeze
|
||||||
|
breeze-icons
|
||||||
|
oxygen
|
||||||
|
polkit-kde-agent-1
|
||||||
;
|
;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
{ flake, osConfig, ... }:
|
||||||
|
let
|
||||||
|
inherit (flake.config.machines.devices) deimos;
|
||||||
|
hostname = osConfig.networking.hostName;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
services.wpaperd = {
|
services.wpaperd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -7,7 +12,7 @@
|
||||||
apply-shadow = true;
|
apply-shadow = true;
|
||||||
duration = "1m";
|
duration = "1m";
|
||||||
sorting = "random";
|
sorting = "random";
|
||||||
};
|
} // (if hostname == deimos.name then { mode = "center"; } else { });
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
ssh:
|
ssh:
|
||||||
private: ENC[AES256_GCM,data:XJk/gjPkFeSZtPkKYS2vRHqMY/X5zRaDlS4UwzUvjm9MvTgdhoXUlqvFC0Dl5SZhRlY+XXAuG7gIIUESzCFWQKdOoUcto3r0WSuIm9EwLKXnnaHemeFVHYgZU9Rz45PK6yFWUC06+n56b2A1dFXftjeXcCqaQrT/jk3RDSHmhW9u7QgDmhhaybxXOrzkup2U8kjhrMmRBcf4xP//nihuzHcyYX75ONr56bgkjl6gpZTfZrn2ad8b+4iGn+rElzf7RHAG0mwTeEX2kYRyafaanGuc2xTnZubBAYDnc1eM6T99PXC0iWh/lUKc1zG1l18UchWzgvl3sPK0Cb2/5aaFMUk2ET6kVOlpKyGc94MRpyv3iUi8soFjh34sWH3mFtec2OWfIxDhoVfZoc2hmP2Hflfjp7acwaMskFBHaCSO2DGtNmN3hSUhAAeLx8OZupSIJmDVpq00qKUbN+5z4K78AdGuUOP07cE889evNniCHLP6yPav7tIulnBS9lD2U+CbqF7vMtdZx/eYFwJjmMtE,iv:JxSytvXKWLHDedlE0Wq5YpPUnfb0HoQgKJ2bt1Z8yqk=,tag:MjOoUSWsHWHgxp0yu9YQFA==,type:str]
|
private: ENC[AES256_GCM,data:XJk/gjPkFeSZtPkKYS2vRHqMY/X5zRaDlS4UwzUvjm9MvTgdhoXUlqvFC0Dl5SZhRlY+XXAuG7gIIUESzCFWQKdOoUcto3r0WSuIm9EwLKXnnaHemeFVHYgZU9Rz45PK6yFWUC06+n56b2A1dFXftjeXcCqaQrT/jk3RDSHmhW9u7QgDmhhaybxXOrzkup2U8kjhrMmRBcf4xP//nihuzHcyYX75ONr56bgkjl6gpZTfZrn2ad8b+4iGn+rElzf7RHAG0mwTeEX2kYRyafaanGuc2xTnZubBAYDnc1eM6T99PXC0iWh/lUKc1zG1l18UchWzgvl3sPK0Cb2/5aaFMUk2ET6kVOlpKyGc94MRpyv3iUi8soFjh34sWH3mFtec2OWfIxDhoVfZoc2hmP2Hflfjp7acwaMskFBHaCSO2DGtNmN3hSUhAAeLx8OZupSIJmDVpq00qKUbN+5z4K78AdGuUOP07cE889evNniCHLP6yPav7tIulnBS9lD2U+CbqF7vMtdZx/eYFwJjmMtE,iv:JxSytvXKWLHDedlE0Wq5YpPUnfb0HoQgKJ2bt1Z8yqk=,tag:MjOoUSWsHWHgxp0yu9YQFA==,type:str]
|
||||||
public: ENC[AES256_GCM,data:Cn4hutHHeptbefHOKK7zv5TmveGOqfHAwGHogDq9sRmeb+b1lzHwj7qvg8lcnlJtIo4qS+TrKtSj5ZCsPNXOhWG1rkk97gTfPMbcxj5f1O3WJigL2wsrB2cQgc5UsA==,iv:ID4zRdr/efClOAHbXzxG1bNuJR0A2qbydzGlMhvEcRE=,tag:qbIoaGb+RXxRRkkQtuX7/A==,type:str]
|
public: ENC[AES256_GCM,data:Cn4hutHHeptbefHOKK7zv5TmveGOqfHAwGHogDq9sRmeb+b1lzHwj7qvg8lcnlJtIo4qS+TrKtSj5ZCsPNXOhWG1rkk97gTfPMbcxj5f1O3WJigL2wsrB2cQgc5UsA==,iv:ID4zRdr/efClOAHbXzxG1bNuJR0A2qbydzGlMhvEcRE=,tag:qbIoaGb+RXxRRkkQtuX7/A==,type:str]
|
||||||
hosts: ENC[AES256_GCM,data:trhzR1gQvSFsI0AdGlestwFU4HbocBjLS5b8Vmlv5tOHR47JlMCVekDEtkQ9DTl/OGXB/5AynGtd2vUkso37noPiqhPXCNwGfhc3np6IKGYA5vYd3xxZdH3XCJDTjG046VhYX5MA/d6kbReX9PtOxfnglGFLIxwPB0GZ7WZdPDqGf97HHb0ivdRho8UzC3ea2IcDpUwkRo30r+wMzCO2oKB7A3alcXHRi5UuYQ5mW1zDhUC/NS7Q9xkyOztZ++E6pH77crnPI5Z41M96mWkbVu65/kW4NOAp1t7B5VL6qi8XBt6QL9pM/u3a93QuCOZ6uN+JwbEYQt87Y7vPrvcO8711OyMyyNJKm+0Rr8Li+Lp/X5dS++at5eP3NXJhCBpG0cNa1DM/2PwQbs+5shslDfkssR8RAdIgigWQeIVSsUBZcAwU+YwFtPC5sXO1Julmey+KBv/+9dOmlJ3pmRLoGa0KkQixzZZzfRErXfMSn+DJpsZtMzBFzd0AwULw6opAOWCdlk9rWMd4JInDusf7p3PdpCm2Sv31zlBCGWUNxWv59+PdTZoLuL6yAxj+qdNpqzJdLSSKEcPB1whrxwiVlR44B6Ws0vuqhPxuEhd/BIcwPzrD9u7i2hYR+Ox4FItBmwuysiyNqfPs8/FgOOwpB4WjhbxwVr95W9o5N3QZGoTqGKYLEcmOwcYo7b86GLbwpxB0PPgVFWoZUqBZDC6nBIkCCGv/4xWBrQlzftyfcDOE+qlZARPdssixo4BZ4q6KJ+hbcwXGNnJub2t043LVuoOOM/OazcNe3T2eftvFM2TKJEHO6VdJ0G3foxwtGvysMp4R08ysgcr/VZ/tjcRp8FO/2LIR68f+ZtY4nIQBLTis+5JVqbUbMMZAjNSWuj2MNfcE6DWAcj8P4druqA0539KXtc4xDCqZu30IzfAkyOWvHnTaNHLw1xhv5gF/07sHqk+QxhpDKJrwUwQfZVYCrsBAJjBDAGwEfyQKlZBchI4zFAJ3Xs43WbwXQR35+5HTF1ZTwakJ9MqwQxD+jN24wNm9XAPKzvRoy/LAAtLpoH/spylBF7+CjZpGxXkO/Y8vhzPnw7WB7BnNsn4mqP7gFltNL6dHNA3i+mfZSCJkqieqIhKa1LoWgbvdVcQAs7VGVvNPaRsjZVYFvezxvem7AAsIxa/imQ6r17Tmcy3/50FjeoAlE8+Lxp4wDyLZjtX8rTfOjS4B1O3vfa4q6wnbOeuep+AWnA4U4qyr+KrzJnmGCnVpnbqKoy5k26odvU29sM7m1ZWE+uEAatUfSu432vLbzj6jct5wzyKJFIylpPXj3IeojrmISbPB9P8/l2I5au5zyQWW6nAZ5E6c7w23i8X6/Kc9u2XR9BQTg/eznzwKhExLnR9HOWiE4lqQkXPzTWqzfDDt3Fxya+Lu7YbrYVfAN/pf963kKjw1T5LTcLWBmR0WZTMnLprtBAI1LoBQaxE9pkfIx4NMTfWBP23IppkM11HBktvzmR3sM/F0lX7aAPLCA75nmSoa1BdC5dPFZRmFqxRI9TtHeh26PBXugZ7Bgemr7QBh1+dqgWyTjkw/FB100/yVtqvnb5qoTUyidd5oH9331TS2YXkNAB2jjfBytpfw5ReMfmXxYon5XS56J5/ghl6ZmV5XhoZZ56H9xrDFYrsVvoAHv6o77Ojh3IxXEFaJ9Wx2D/bzX0zks1LTIM4lkrRT9gwjx/WF2YEfhcx8s8XjjAPOR6uCxvlc4GxQ4rWbdTIq,iv:l4WIY3l7UBTY3Dkt2lLJ8DLf2f8zWFGtq/3IXj5rfdo=,tag:Ni6q4YAzd+Y/BPM8tKL2HA==,type:str]
|
hosts: ENC[AES256_GCM,data:OC2i3Kr4cg1bNE7Usc4ydTCsaO8ET03JsiJG4UqV+BzeBDmontsZ1VH6zlFF8YFnAlBjiFmmQgKxQtFMntwWs4W0q6zqDdXcyMmgmdiHW7OkdKB2PzNvKkdhDszTgsSigAB3FtHyJqv8WtcOBGzXnjoT1LXcErazO2+utk+t0sSyMwuCpcNbTXROmyUEDVTJ46Hf+cG1URkMIqPL4fwwN0RX1M5DkXGoLXrVk6DUfJZOn+fNiLBDUNPgOTqeQSdklIcCvRQBvy3BYrFPbgmPz5IaplqF/DdsscSKfFLTsc1WbLuuaoV08y6q5RKapsckoVmffdNxfZ+CrYTy7ftOBP3OBxwPuF9Xj2uKhoUSg9R0quS6G5Hmz9+nLsqILCEnAZmn8XVR9XIRtrI38AC/hWjtTss4tQ94yUdedKjNnUSgTZvpS6BfYxiTDch9ZEGwyfDYkWD8Cfpyrfu6XRSfOgaNq6JGUyOpt5CA6vPizAMuHYRNvM5xL00iz7ZuqF39LUxZ+2YHmqHE5z+19Upd3BUCmyqrehMk7Ls7xwbLQX9h6GZ4CFNKWlCpN3DCw/Fio6AhhmPrutvW9aeGCQ0htF2nOKOMJymLHOl6X/2nVTr6H8j49hKlHqnRQ6fOTXNEv3d9MYEETyG1bwxdhnFoqvfEbDT3eU1s80eT0bkNNcRz/5Xlum1EsF6vSU4s6gI9+7OwnV9KqhRrghZlJB+Ln0JzEuehwxdvCA3ZbFdiwOoLgqcZogphtozSjgN+M2Grf1IwbJt+nJFg4BRYrCMNlB3iv5NyO4paWUdVDTUuBcfbgXDfSpuC2oL0wIi4pvsfAsRJ4Qzq9SZD1fs19xgQfU7PN+AXcIRxtJrZv26mSzo3nA5WRfWzlo8y8DPMRNGkHO0RSln8wDMMQCb00QG5U7TJfZ59lqVD78TDPGKph3dPAmsF0c9RUQvinbjUevl1DJlU9wd3mMB5ZVdUQLv66uLRHQAJqufwhaBS4AZAScZR0jz5iyVxb2W3IHYXD1Mv7IuoKwWHaZq42DFjKFY3jKUjvZ3KOQFqZKtiCxzJWSi4oFZ3Y4QLY34Eif8fGnNgsbBt/Y52rw8bVFfcxQn6F0YTR4/fjz3uViuM6Ce1kFtXhp/nl+Bks9O4F6grcmdPTerxkvjQqWSihesEbO8I2Oc+wOdBW0tTQ9MzzaTbDLjZB8OgkDTmnjdcxsgmQRrHaqomyOd3gLrMXYG91W2sOuC+SMv9MiPw1tHiESUnQlg1tK3ytuhB3M4h0rxn6AKVsXUNTQFOoKu5/a54S3pmLABztEP9DCzOFzl2+OgxLBL3loZImW9R2aYqBUac4uUGR3Ip3sI4wwYgkqm3T5b7fVmuDfJF2EYEW2OisnkAFlRl7JAqIfCzXCGxlHNDofomQl8zqUwUi1r+vZfGeLpSJyBHPDidYLcp3zkh/vayaNJJvfu0tbvKXsJwOuwcYLglsnqQPdN+KsDiZzDz6/GX2VRedL9NlRD8IwHm9ENqS6bs6/DN6SL79IdQ4udr0svgg8iZ+RUCCc98vBmwoveD6VpV6LmUCxThxmA6mp6jk27VS8bIsvScrvaUR8yIkqRgURpMmsiKab/69t1FGAO1sGKkpWFErTuwUjrb0O2MZYCiMG0erW4EYzROrgpe+Nvnd25hYoC+P+ga6xlPhVluBFFNA66MS662SGVLNSXQTi8fu/jX+rLCECM+e/SjQtkwT5s6VXxWfjgwOB16n0PMqngthJGz8HXhZhK0Cl5z1+7d/RoUXr0iPGoP1dLOB59x6TO/ZmtrKz7fuwamRmdlHBX6BWcsLvgUEw6TwhLkbEjb0QxNxK6qmBEkckLtDVk0EAlJiPnYpfqXBSBf+wG3C+Ctzl4j,iv:3VP3yinYidbjCNzX473E11NmniLnV3H4sKlxgnoqyu8=,tag:NB0NmAHT/MfOQ9sowIAAyg==,type:str]
|
||||||
network:
|
network:
|
||||||
synology: ENC[AES256_GCM,data:r0Aor25K6IuywAq5Px9JasWpnYzAA87ffA1k/97GEqMRkb6V6VYW1Q1EoEGNnBoa5o6KBtHk0WY=,iv:IeZMBwKGOevgB3bgnSsF6JJ6ntcJa5fe5irVUuMOGwY=,tag:9JWqeKa0g7YzqpKy1VLFEA==,type:str]
|
synology: ENC[AES256_GCM,data:r0Aor25K6IuywAq5Px9JasWpnYzAA87ffA1k/97GEqMRkb6V6VYW1Q1EoEGNnBoa5o6KBtHk0WY=,iv:IeZMBwKGOevgB3bgnSsF6JJ6ntcJa5fe5irVUuMOGwY=,tag:9JWqeKa0g7YzqpKy1VLFEA==,type:str]
|
||||||
server: ENC[AES256_GCM,data:EFsmXNkuf5OAMh8hjfZTixmmdjqBNIME9JjQC8azeCwcMVInm8bWdxE4OqFmxOk9MAU=,iv:pI6WeM2aQC+7vx1Xmp5O2rikqNLgzuEOg+Lo7TqFQxU=,tag:ElcA8mn9dx+IjIf38nKT5A==,type:str]
|
server: ENC[AES256_GCM,data:EFsmXNkuf5OAMh8hjfZTixmmdjqBNIME9JjQC8azeCwcMVInm8bWdxE4OqFmxOk9MAU=,iv:pI6WeM2aQC+7vx1Xmp5O2rikqNLgzuEOg+Lo7TqFQxU=,tag:ElcA8mn9dx+IjIf38nKT5A==,type:str]
|
||||||
|
@ -48,7 +48,7 @@ sops:
|
||||||
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
|
bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD
|
||||||
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
|
aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-06-22T17:49:20Z"
|
lastmodified: "2025-06-25T21:19:21Z"
|
||||||
mac: ENC[AES256_GCM,data:xaNgww0DTuVdPtVy9oTmn0HKmDKpiOnjFnSBjJ7YxqV8R2c+VWEnA6P1vBrR5L9xG/nXvBhMm7XMOA/z0eZRWM2CfjNyrk6KOFyLArvJLyzj8zRZThe6rFNAiSjndwVNBHtYSYid3Bisupuagp1HuYXK1JDlgc9a93c7rlbG1OI=,iv:OBl0hhf0T+I7FuXAkgUrJOkJHN2H0LR+JKp1KsyyMD0=,tag:+PE51+dUw9erKChmvl6j/w==,type:str]
|
mac: ENC[AES256_GCM,data:bCdXkiK+gEgdz+MG4Npne7s3PjZL135U4H8vWWxtDoOnCXi+gbKzPMKzwpFkAflfAwWttiswb2I4dfiFFIaEezILmCA5dE48WMZFccyMdCrU30FscQ2x1b41AGrQdiZK4ZwVR7iWSNbcmOJMjIXA8c97Q4ldIInYaSleEt1kvuk=,iv:RNH6cRUOKGfuHaWeNhIsibdpX6ULEtw8KuApTdZb4Vg=,tag:p9CzqXZDxk6hVIL/BK/8Rw==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.10.2
|
version: 3.10.2
|
||||||
|
|
|
@ -35,7 +35,11 @@ in
|
||||||
"samba0"
|
"samba0"
|
||||||
];
|
];
|
||||||
|
|
||||||
sambaFolders = [
|
remoteDrives = [
|
||||||
|
"remote0"
|
||||||
|
];
|
||||||
|
|
||||||
|
remoteFolders = [
|
||||||
audiobookshelf.name
|
audiobookshelf.name
|
||||||
jellyfin.name
|
jellyfin.name
|
||||||
];
|
];
|
||||||
|
@ -61,6 +65,15 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
sshfsMounts = sshfsDrive: folder: {
|
||||||
|
name = "${ceres.${sshfsDrive}.mount}/${folder}";
|
||||||
|
value = {
|
||||||
|
device = "${ceres.${sshfsDrive}.device}/${folder}";
|
||||||
|
fsType = "sshfs";
|
||||||
|
options = ceres.${sshfsDrive}.options;
|
||||||
|
};
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"/" = {
|
"/" = {
|
||||||
|
@ -75,7 +88,10 @@ in
|
||||||
}
|
}
|
||||||
// (builtins.listToAttrs (map synologyMounts synologyDrives))
|
// (builtins.listToAttrs (map synologyMounts synologyDrives))
|
||||||
// (builtins.listToAttrs (
|
// (builtins.listToAttrs (
|
||||||
builtins.concatMap (drive: map (folder: sambaMounts drive folder) sambaFolders) sambaDrives
|
builtins.concatMap (drive: map (folder: sambaMounts drive folder) remoteFolders) sambaDrives
|
||||||
|
))
|
||||||
|
// (builtins.listToAttrs (
|
||||||
|
builtins.concatMap (drive: map (folder: sshfsMounts drive folder) remoteFolders) remoteDrives
|
||||||
));
|
));
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue