diff --git a/modules/config/default.nix b/modules/config/default.nix index 1beb130..3570690 100755 --- a/modules/config/default.nix +++ b/modules/config/default.nix @@ -90,6 +90,7 @@ let } // genOptions mountConfig "folder" // genOptions mountConfig "samba" + // genOptions mountConfig "remote" // genOptions mountConfig "storage"; }; diff --git a/modules/config/devices/config/ceres.nix b/modules/config/devices/config/ceres.nix index 78e4b1d..d9e9bfb 100755 --- a/modules/config/devices/config/ceres.nix +++ b/modules/config/devices/config/ceres.nix @@ -1,7 +1,9 @@ { devicesFunctions }: let inherit (devicesFunctions) + sshfsOptions fileModeAndDirMode + ceresStorageDriveName ownerExclusiveReadWriteMask readWritePermissions sambaPermissions @@ -9,7 +11,6 @@ let ceresIP ; ceresName = "ceres"; - ceresStorageDriveName = "NAS1"; in { label = "Ceres"; @@ -33,4 +34,9 @@ in device = "//${ceresIP}"; options = sambaPermissions ++ fileModeAndDirMode ++ userIdForUser0; }; + remote0 = { + mount = "/mnt/media/remote"; + device = "nick@24.76.173.0:/mnt/media/${ceresStorageDriveName}"; + options = sshfsOptions; + }; } diff --git a/modules/config/devices/default.nix b/modules/config/devices/default.nix index 60bd6f8..ec9b76c 100755 --- a/modules/config/devices/default.nix +++ b/modules/config/devices/default.nix @@ -21,6 +21,15 @@ let "x-systemd.automount" "x-systemd.requires=network-online.target" ]; + sshfsOptions = [ + "allow_other" + "_netdev" + "x-systemd.automount" + "reconnect" + "user" + "ServerAliveInterval=15" + "IdentityFile=/var/run/secrets/ssh/private" + ]; fileModeAndDirMode = [ "file_mode=0644" "dir_mode=0755" @@ -36,6 +45,7 @@ let ]; dummy = [ ]; + ceresStorageDriveName = "NAS1"; ceresIP = "192.168.50.140"; charonIP = "192.168.50.42"; deimosIP = "192.168.50.142"; diff --git a/modules/config/themes/default.nix b/modules/config/themes/default.nix index 77db2b8..e0458c1 100755 --- a/modules/config/themes/default.nix +++ b/modules/config/themes/default.nix @@ -40,7 +40,7 @@ in }; fonts = { names = { - name0 = "MonaspiceNe Nerd Font"; # User0 Font + name0 = "MonaspiceRn Nerd Font"; # User0 Font name1 = ""; # User1 Font name2 = ""; # User2 Font }; diff --git a/modules/home/gui/apps/tools/dolphin/default.nix b/modules/home/gui/apps/tools/dolphin/default.nix index b7525ef..3caf73c 100755 --- a/modules/home/gui/apps/tools/dolphin/default.nix +++ b/modules/home/gui/apps/tools/dolphin/default.nix @@ -6,6 +6,14 @@ home.packages = builtins.attrValues { inherit (pkgs.kdePackages) dolphin + kio-extras + baloo + kdegraphics-thumbnailers + ffmpegthumbs + breeze + breeze-icons + oxygen + polkit-kde-agent-1 ; }; } diff --git a/modules/home/gui/desktop/wayland/wpaperd/default.nix b/modules/home/gui/desktop/wayland/wpaperd/default.nix index 2968e9b..ee12926 100755 --- a/modules/home/gui/desktop/wayland/wpaperd/default.nix +++ b/modules/home/gui/desktop/wayland/wpaperd/default.nix @@ -1,3 +1,8 @@ +{ flake, osConfig, ... }: +let + inherit (flake.config.machines.devices) deimos; + hostname = osConfig.networking.hostName; +in { services.wpaperd = { enable = true; @@ -7,7 +12,7 @@ apply-shadow = true; duration = "1m"; sorting = "random"; - }; + } // (if hostname == deimos.name then { mode = "center"; } else { }); }; }; } diff --git a/secrets/secrets.yaml b/secrets/secrets.yaml index fd5a283..8b2a778 100755 --- a/secrets/secrets.yaml +++ b/secrets/secrets.yaml @@ -1,7 +1,7 @@ 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] 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: 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] @@ -48,7 +48,7 @@ sops: bXBOa1VSakoyaWxpODJEOU11QUZCaUEK8Ch9Ten3DdrPHF1DTH2qei85AlHUOaLD aNfzakake7ej+MxJYdKEU0bcWofNMKzIlZa2uM10KZSENDP8d8qlig== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-06-22T17:49:20Z" - mac: ENC[AES256_GCM,data:xaNgww0DTuVdPtVy9oTmn0HKmDKpiOnjFnSBjJ7YxqV8R2c+VWEnA6P1vBrR5L9xG/nXvBhMm7XMOA/z0eZRWM2CfjNyrk6KOFyLArvJLyzj8zRZThe6rFNAiSjndwVNBHtYSYid3Bisupuagp1HuYXK1JDlgc9a93c7rlbG1OI=,iv:OBl0hhf0T+I7FuXAkgUrJOkJHN2H0LR+JKp1KsyyMD0=,tag:+PE51+dUw9erKChmvl6j/w==,type:str] + lastmodified: "2025-06-25T21:19:21Z" + mac: ENC[AES256_GCM,data:bCdXkiK+gEgdz+MG4Npne7s3PjZL135U4H8vWWxtDoOnCXi+gbKzPMKzwpFkAflfAwWttiswb2I4dfiFFIaEezILmCA5dE48WMZFccyMdCrU30FscQ2x1b41AGrQdiZK4ZwVR7iWSNbcmOJMjIXA8c97Q4ldIInYaSleEt1kvuk=,iv:RNH6cRUOKGfuHaWeNhIsibdpX6ULEtw8KuApTdZb4Vg=,tag:p9CzqXZDxk6hVIL/BK/8Rw==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2 diff --git a/systems/deimos/config/filesystem.nix b/systems/deimos/config/filesystem.nix index 8f1f5a3..b43d12e 100755 --- a/systems/deimos/config/filesystem.nix +++ b/systems/deimos/config/filesystem.nix @@ -35,7 +35,11 @@ in "samba0" ]; - sambaFolders = [ + remoteDrives = [ + "remote0" + ]; + + remoteFolders = [ audiobookshelf.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 { "/" = { @@ -75,7 +88,10 @@ in } // (builtins.listToAttrs (map synologyMounts synologyDrives)) // (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 = [