113 lines
3 KiB
Nix
113 lines
3 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
systemd.user.sessionVariables = {
|
|
XCURSOR_THEME = config.userOptions.cursor.name;
|
|
XCURSOR_SIZE = toString config.userOptions.cursor.size;
|
|
XCURSOR_PATH = config.userOptions.cursor.path;
|
|
};
|
|
|
|
xdg.configFile."rclone/synology.conf".text = ''
|
|
[synology]
|
|
type = sftp
|
|
user = sckova
|
|
host = nas.taila30609.ts.net
|
|
key_file = ~/.ssh/key
|
|
shell_type = unix
|
|
root = home
|
|
md5sum_command = "${pkgs.coreutils}/bin/md5sum";
|
|
sha1sum_command = "${pkgs.coreutils}/bin/sha1sum";
|
|
'';
|
|
|
|
systemd.user.services.synology-mount = {
|
|
Unit = {
|
|
Description = "Mount Synology NAS with Rclone and Home Manager.";
|
|
After = [ "tailscaled.service" ];
|
|
Wants = [ "tailscaled.service" ];
|
|
};
|
|
|
|
Service = {
|
|
Type = "simple";
|
|
# ExecStartPre = "${pkgs.writeShellScript "synology-prep" ''
|
|
# if mountpoint -q %h/Synology; then
|
|
# /run/wrappers/bin/fusermount -uz %h/Synology
|
|
# fi
|
|
# ${pkgs.coreutils}/bin/mkdir -p %h/Synology
|
|
# ''}";
|
|
ExecStart = "${pkgs.writeShellScript "synology-mount" ''
|
|
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# Ensure mount point exists
|
|
mkdir -p $HOME/Synology || true
|
|
|
|
# Unmount stale mount if present
|
|
/run/wrappers/bin/umount "$HOME/Synology" || true
|
|
|
|
# Mount rclone in foreground
|
|
${pkgs.rclone}/bin/rclone \
|
|
--config=$HOME/.config/rclone/synology.conf \
|
|
--ignore-checksum \
|
|
--log-level INFO \
|
|
--rc --rc-serve \
|
|
mount "synology:" "$HOME/Synology"
|
|
''}";
|
|
ExecStop = "/run/wrappers/bin/fusermount -uz %h/Synology/%i";
|
|
StandardOutput = "journal";
|
|
StandardError = "journal";
|
|
};
|
|
|
|
Install = {
|
|
WantedBy = [ "default.target" ];
|
|
};
|
|
};
|
|
|
|
# systemd.user.services.synology-prefill = {
|
|
# Unit = {
|
|
# Description = "Prefill Synology NAS rclone cache";
|
|
# After = [ "synology-mount.service" ];
|
|
# Wants = [ "synology-mount.service" ];
|
|
# };
|
|
|
|
# Service = {
|
|
# Type = "simple";
|
|
# ExecStart = "${pkgs.writeShellScript "synology-prefill" ''
|
|
# #!/usr/bin/env bash
|
|
# set -euo pipefail
|
|
# ${pkgs.rclone}/bin/rclone rc vfs/refresh -v --fast-list recursive=true >/dev/null
|
|
# ''}";
|
|
# StandardOutput = "journal";
|
|
# StandardError = "journal";
|
|
# Restart = "on-failure";
|
|
# };
|
|
|
|
# Install = {
|
|
# WantedBy = [ "default.target" ];
|
|
# };
|
|
# };
|
|
|
|
# systemd.user.services.input-leap = {
|
|
# Unit = {
|
|
# Description = "Autostart Input Leap";
|
|
# After = [ "graphical-session.target" ];
|
|
# };
|
|
|
|
# Service = {
|
|
# Type = "oneshot";
|
|
# RemainAfterExit = true;
|
|
# PassEnvironment = "DISPLAY";
|
|
# ExecStart = "${pkgs.writeShellScript "input-leap-start" ''
|
|
# sleep 5
|
|
# ${pkgs.input-leap}/bin/input-leap
|
|
# ''}";
|
|
# };
|
|
|
|
# Install = {
|
|
# WantedBy = [ "graphical-session.target" ];
|
|
# };
|
|
# };
|
|
}
|