From d2e7573bea11ab12955b4ef9124c21f6fba79873 Mon Sep 17 00:00:00 2001 From: Matt Nish-Lapidus Date: Mon, 10 Mar 2025 13:52:39 -0400 Subject: [PATCH] setting up media server --- flake.lock | 54 +-- homes/emenel/default.nix | 58 ++- .../fish/completions/borgmatic.fish | 439 ------------------ hosts/eddie/configuration.nix | 61 +-- hosts/media-server/configuration.nix | 109 ++++- hosts/media-server/hardware-configuration.nix | 41 ++ modules/home/desktop.nix | 21 +- modules/home/shell-conf.nix | 73 +-- 8 files changed, 269 insertions(+), 587 deletions(-) delete mode 100644 homes/emenel/dotfiles/dot_config/fish/completions/borgmatic.fish create mode 100644 hosts/media-server/hardware-configuration.nix diff --git a/flake.lock b/flake.lock index 8513b42..ba98ad6 100644 --- a/flake.lock +++ b/flake.lock @@ -70,11 +70,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1741540370, - "narHash": "sha256-TNXVcJY1A3tr4hclP/p4OtNAsMqTP+LEE8J4rYvKPfY=", + "lastModified": 1741623701, + "narHash": "sha256-fN1LYtj3hWyOhJ11r/u47CWLIxGwC8q5qevwSHRU2kw=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "70dcaaf21a78253742d3caae56dadc5447d85c15", + "rev": "6a25d3f956603e1f18499f33951ad6f2a9fa2f6e", "type": "github" }, "original": { @@ -339,11 +339,11 @@ ] }, "locked": { - "lastModified": 1741540808, - "narHash": "sha256-KSOHzP9gnxaF9YdtwFOPwnFvJEikg/uAvZ6M6VA/FQc=", + "lastModified": 1741613526, + "narHash": "sha256-HUEfRLqCy47BQ7kOG4SRVhqE7J6lkFzAagnd13I17qk=", "owner": "nix-community", "repo": "home-manager", - "rev": "2967de4d1146f1b6aa820eed85b823ea2ebfd0fa", + "rev": "3593ee59a44974b8518829a5239b2f77222e3c81", "type": "github" }, "original": { @@ -726,11 +726,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1741525992, - "narHash": "sha256-5lV6G2BQTHsdUV7bmJutbILEw/1VnSAFgUDIaI4PimU=", + "lastModified": 1741589763, + "narHash": "sha256-F0LYLKX2jaUIs+/sPYjSLVtVfgsfwsdkbb5WoMkSlmQ=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "1c8957d41095ea14e5d0ef775d62aa47e7d6bf4b", + "rev": "aab4ffcc1d43e8a0fb02f84c2a88c25fd0528110", "type": "github" }, "original": { @@ -759,11 +759,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1741519464, - "narHash": "sha256-IA5A8qpg8OYk1kWxyOPHmmI5KC64zLgOkL28KrHhJf0=", + "lastModified": 1741582754, + "narHash": "sha256-lS1bn4Eq94xbOfkxq2RbpohqME99H7k/8i0yq62I6ms=", "owner": "YaLTeR", "repo": "niri", - "rev": "eda43b2b935b75f3e8d2041be1bd25413787b1c3", + "rev": "b351f6ff220560d96a260d8dd3ad794000923481", "type": "github" }, "original": { @@ -907,11 +907,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1741332913, - "narHash": "sha256-ri1e8ZliWS3Jnp9yqpKApHaOo7KBN33W8ECAKA4teAQ=", + "lastModified": 1741445498, + "narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "20755fa05115c84be00b04690630cb38f0a203ad", + "rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634", "type": "github" }, "original": { @@ -923,11 +923,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1741332913, - "narHash": "sha256-ri1e8ZliWS3Jnp9yqpKApHaOo7KBN33W8ECAKA4teAQ=", + "lastModified": 1741445498, + "narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "20755fa05115c84be00b04690630cb38f0a203ad", + "rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634", "type": "github" }, "original": { @@ -955,11 +955,11 @@ }, "nixpkgs-stable_4": { "locked": { - "lastModified": 1741332913, - "narHash": "sha256-ri1e8ZliWS3Jnp9yqpKApHaOo7KBN33W8ECAKA4teAQ=", + "lastModified": 1741445498, + "narHash": "sha256-F5Em0iv/CxkN5mZ9hRn3vPknpoWdcdCyR0e4WklHwiE=", "owner": "nixos", "repo": "nixpkgs", - "rev": "20755fa05115c84be00b04690630cb38f0a203ad", + "rev": "52e3095f6d812b91b22fb7ad0bfc1ab416453634", "type": "github" }, "original": { @@ -1337,11 +1337,11 @@ }, "locked": { "dir": "nix", - "lastModified": 1741531071, - "narHash": "sha256-QDk2apqZjdTsehLzyB8h5G61a7bpf9GGWJQRxYO2XtI=", + "lastModified": 1741559821, + "narHash": "sha256-LWD3DlXIRXnv5hS4i9Z84qIrwxMertI60TxmAc8veRw=", "owner": "wez", "repo": "wezterm", - "rev": "46cfda66654670e97c834cdb064035336a36e9a5", + "rev": "12b971ac44738f37c120160da165cd9072c0e6d2", "type": "github" }, "original": { @@ -1393,11 +1393,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1741518481, - "narHash": "sha256-wz8stirM1Inr4bgYbo8UvPRgytIOlpGIjG/eE4qLkVA=", + "lastModified": 1741588862, + "narHash": "sha256-U6kDZBdSyRYo08WnmZbqKkuzYNy/V8Ht6HhRvdnY1BA=", "owner": "sxyazi", "repo": "yazi", - "rev": "22980cf00018013fb6a688dc5385fb38868bd7a4", + "rev": "c8bf2c507a1ff4b4051d018833b659edc3ddf637", "type": "github" }, "original": { diff --git a/homes/emenel/default.nix b/homes/emenel/default.nix index b301d78..6eb2015 100644 --- a/homes/emenel/default.nix +++ b/homes/emenel/default.nix @@ -21,14 +21,14 @@ ] (with pkgs; [ - samba4Full + # samba4Full dconf - xorg.libX11 - xorg.libxcb - freetype - alsa-utils - alsa-oss - dbus + # xorg.libX11 + # xorg.libxcb + # freetype + # alsa-utils + # alsa-oss + # dbus cifs-utils sops @@ -36,11 +36,13 @@ (aspellWithDicts (dicts: with dicts; [ en en-computers en-science es fr ])) texlive.combined.scheme-full - spice - spice-gtk - spice-protocol - virt-viewer - virt-manager + # spice + # spice-gtk + # spice-protocol + # virt-viewer + + + # borgbackup ]) ]; @@ -137,6 +139,38 @@ p = "push"; }; }; + + borgmatic = { + enable = true; + backups = { + eddie = { + location = { + patterns = [ + "R /home/emenel" + "- home/emenel/.cache" + "- home/emenel/.nix*" + "- home/emenel/.steam*" + "- home/emenel/Dropbox" + "- home/emenel/Sync" + "- home/emenel/.dropbox*" + "- home/emenel/.BitwigStudio" + "- home/emenel/.local/share/bitwig" + ]; + repositories = [ + { + "path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo"; + "label" = "eddie on borgbase"; + } + ]; + }; + retention = { + keepDaily = 3; + keepHourly = 3; + keepMonthly = 2; + }; + }; + }; + }; }; services = { diff --git a/homes/emenel/dotfiles/dot_config/fish/completions/borgmatic.fish b/homes/emenel/dotfiles/dot_config/fish/completions/borgmatic.fish deleted file mode 100644 index fe2458d..0000000 --- a/homes/emenel/dotfiles/dot_config/fish/completions/borgmatic.fish +++ /dev/null @@ -1,439 +0,0 @@ - function __borgmatic_check_version - set -fx this_filename (status current-filename) - fish -c ' - if test -f "$this_filename" - set this_script (cat $this_filename 2> /dev/null) - set installed_script (borgmatic --fish-completion 2> /dev/null) - if [ "$this_script" != "$installed_script" ] && [ "$installed_script" != "" ] - echo " -Your fish completions script is from a different version of borgmatic than is -currently installed. Please upgrade your script so your completions match the -command-line flags in your installed borgmatic! Try this to upgrade: - - borgmatic --fish-completion | sudo tee $this_filename - source $this_filename -" - end - end - ' & - end - __borgmatic_check_version - - function __borgmatic_current_arg --description 'Check if any of the given arguments are the last on the command line before the cursor' - set -l all_args (commandline -poc) - # premature optimization to avoid iterating all args if there aren't enough - # to have a last arg beyond borgmatic - if [ (count $all_args) -lt 2 ] - return 1 - end - for arg in $argv - if [ "$arg" = "$all_args[-1]" ] - return 0 - end - end - return 1 - end - - set --local action_parser_condition "not __fish_seen_subcommand_from rcreate init -I transfer prune -p compact create -C check -k delete extract -x config export-tar mount -m umount -u rdelete restore -r rlist list -l rinfo info -i break-lock key borg" - set --local exact_option_condition "not __borgmatic_current_arg -e --encryption -e --encryption -e --encryption --source-repository -a --match-archives --glob-archives --sort-by --first --last --threshold -a --match-archives --glob-archives --only -a --match-archives --glob-archives --only --checkpoint-interval -a --match-archives --glob-archives --sort-by --first --last --archive --path --restore-path --destination --strip-components --archive --path --restore-path --destination --strip-components --archive --path --destination --strip-components --mount-point --path --first --last --mount-point --path --first --last --mount-point --mount-point --archive --archive -a --match-archives --glob-archives --sort-by --first --last --path --find -a --match-archives --glob-archives --sort-by --first --last -e --exclude --exclude-from --patterns-from --path --find -a --match-archives --glob-archives --sort-by --first --last -e --exclude --exclude-from --patterns-from -a --match-archives --glob-archives --sort-by --first --last -a --match-archives --glob-archives --sort-by --first --last -- -c --config -v --verbosity --syslog-verbosity --log-file-verbosity --monitoring-verbosity --log-file --log-file-format" - -# action_parser completions -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'rcreate' -d 'Create a new, empty Borg repository' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'init' -d 'Create a new, empty Borg repository' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-I' -d 'Create a new, empty Borg repository' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'transfer' -d 'Transfer archives from one repository to another, optionally upgrading the transferred data [Borg 2.0+ only]' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'prune' -d 'Prune archives according to the retention policy (with Borg 1.2+, you must run compact afterwards to actually free space)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-p' -d 'Prune archives according to the retention policy (with Borg 1.2+, you must run compact afterwards to actually free space)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'compact' -d 'Compact segments to free space [Borg 1.2+, borgmatic 1.5.23+ only]' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'create' -d 'Create an archive (actually perform a backup)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-C' -d 'Create an archive (actually perform a backup)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'check' -d 'Check archives for consistency' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-k' -d 'Check archives for consistency' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'delete' -d 'Delete an archive from a repository or delete an entire repository (with Borg 1.2+, you must run compact afterwards to actually free space)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'extract' -d 'Extract a named archive to the current directory' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-x' -d 'Extract a named archive to the current directory' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'config' -d 'Perform configuration file related operations' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'export-tar' -d 'Export an archive to a tar-formatted file or stream' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'mount' -d 'Mount a named archive as a FUSE filesystem' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-m' -d 'Mount a named archive as a FUSE filesystem' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'umount' -d 'Unmount a mounted FUSE filesystem' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-u' -d 'Unmount a mounted FUSE filesystem' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'rdelete' -d 'Delete an entire repository (with Borg 1.2+, you must run compact afterwards to actually free space)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'restore' -d 'Restore data source (e.g. database) dumps from a named archive. (To extract files instead, use "borgmatic extract".)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-r' -d 'Restore data source (e.g. database) dumps from a named archive. (To extract files instead, use "borgmatic extract".)' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'rlist' -d 'List the archives in a repository' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'list' -d 'List the files in an archive or search for a file across archives' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-l' -d 'List the files in an archive or search for a file across archives' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'rinfo' -d 'Show repository summary information such as disk space used' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'info' -d 'Show archive summary information such as disk space used' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a '-i' -d 'Show archive summary information such as disk space used' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'break-lock' -d 'Break Borg repository and cache locks left behind by Borg aborting' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'key' -d 'Perform repository key related operations' -complete -c borgmatic -f -n "$action_parser_condition" -n "$exact_option_condition" -a 'borg' -d 'Run an arbitrary Borg command based on borgmatic'"'"'s configuration' - -# global flags -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'show this help message and exit' -complete -c borgmatic -f -n "$exact_option_condition" -a '-c --config' -d 'Configuration filename or directory, can specify flag multiple times, defaults to: /etc/borgmatic/config.yaml /etc/borgmatic.d /home/emenel/.config/borgmatic/config.yaml /home/emenel/.config/borgmatic.d' -complete -c borgmatic -Fr -n "__borgmatic_current_arg -c --config" -complete -c borgmatic -f -n "$exact_option_condition" -a '-n --dry-run' -d 'Go through the motions, but do not actually write to any repositories' -complete -c borgmatic -f -n "$exact_option_condition" -a '-nc --no-color' -d 'Disable colored output' -complete -c borgmatic -f -n "$exact_option_condition" -a '-v --verbosity' -d 'Display verbose progress to the console: -2 (disabled), -1 (errors only), 0 (responses to actions, the default), 1 (info about steps borgmatic is taking), or 2 (debug)' -complete -c borgmatic -f -a '-2 -1 0 1 2' -n "__borgmatic_current_arg -v --verbosity" -complete -c borgmatic -f -n "$exact_option_condition" -a '--syslog-verbosity' -d 'Log verbose progress to syslog: -2 (disabled, the default), -1 (errors only), 0 (responses to actions), 1 (info about steps borgmatic is taking), or 2 (debug)' -complete -c borgmatic -f -a '-2 -1 0 1 2' -n "__borgmatic_current_arg --syslog-verbosity" -complete -c borgmatic -f -n "$exact_option_condition" -a '--log-file-verbosity' -d 'When --log-file is given, log verbose progress to file: -2 (disabled), -1 (errors only), 0 (responses to actions), 1 (info about steps borgmatic is taking, the default), or 2 (debug)' -complete -c borgmatic -f -a '-2 -1 0 1 2' -n "__borgmatic_current_arg --log-file-verbosity" -complete -c borgmatic -f -n "$exact_option_condition" -a '--monitoring-verbosity' -d 'When a monitoring integration supporting logging is configured, log verbose progress to it: -2 (disabled), -1 (errors only), responses to actions (0), 1 (info about steps borgmatic is taking, the default), or 2 (debug)' -complete -c borgmatic -f -a '-2 -1 0 1 2' -n "__borgmatic_current_arg --monitoring-verbosity" -complete -c borgmatic -f -n "$exact_option_condition" -a '--log-file' -d 'Write log messages to this file instead of syslog' -complete -c borgmatic -x -n "__borgmatic_current_arg --log-file" -complete -c borgmatic -f -n "$exact_option_condition" -a '--log-file-format' -d 'Log format string used for log messages written to the log file' -complete -c borgmatic -x -n "__borgmatic_current_arg --log-file-format" -complete -c borgmatic -f -n "$exact_option_condition" -a '--log-json' -d 'Write log messages and console output as one JSON object per log line instead of formatted text' -complete -c borgmatic -f -n "$exact_option_condition" -a '--override' -d 'Configuration file option to override with specified value, see documentation for overriding list or key/value options, can specify flag multiple times' -complete -c borgmatic -f -n "$exact_option_condition" -a '--no-environment-interpolation' -d 'Do not resolve environment variables in configuration file' -complete -c borgmatic -f -n "$exact_option_condition" -a '--bash-completion' -d 'Show bash completion script and exit' -complete -c borgmatic -f -n "$exact_option_condition" -a '--fish-completion' -d 'Show fish completion script and exit' -complete -c borgmatic -f -n "$exact_option_condition" -a '--version' -d 'Display installed version number of borgmatic and exit' - -# action_parser flags -complete -c borgmatic -f -n "$exact_option_condition" -a '-e --encryption' -d 'Borg repository encryption mode' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -x -n "__borgmatic_current_arg -e --encryption" -complete -c borgmatic -f -n "$exact_option_condition" -a '--source-repository --other-repo' -d 'Path to an existing Borg repository whose key material should be reused [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of the new repository to create (must be already specified in a borgmatic configuration file), defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '--copy-crypt-key' -d 'Copy the crypt key used for authenticated encryption from the source repository, defaults to a new random key [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '--append-only' -d 'Create an append-only repository' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '--storage-quota' -d 'Create a repository with a fixed storage quota' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '--make-parent-dirs' -d 'Create any missing parent directories of the repository directory' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from rcreate" -complete -c borgmatic -f -n "$exact_option_condition" -a '-e --encryption' -d 'Borg repository encryption mode' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -x -n "__borgmatic_current_arg -e --encryption" -complete -c borgmatic -f -n "$exact_option_condition" -a '--source-repository --other-repo' -d 'Path to an existing Borg repository whose key material should be reused [Borg 2.x+ only]' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of the new repository to create (must be already specified in a borgmatic configuration file), defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '--copy-crypt-key' -d 'Copy the crypt key used for authenticated encryption from the source repository, defaults to a new random key [Borg 2.x+ only]' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '--append-only' -d 'Create an append-only repository' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '--storage-quota' -d 'Create a repository with a fixed storage quota' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '--make-parent-dirs' -d 'Create any missing parent directories of the repository directory' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from init" -complete -c borgmatic -f -n "$exact_option_condition" -a '-e --encryption' -d 'Borg repository encryption mode' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -x -n "__borgmatic_current_arg -e --encryption" -complete -c borgmatic -f -n "$exact_option_condition" -a '--source-repository --other-repo' -d 'Path to an existing Borg repository whose key material should be reused [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of the new repository to create (must be already specified in a borgmatic configuration file), defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--copy-crypt-key' -d 'Copy the crypt key used for authenticated encryption from the source repository, defaults to a new random key [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--append-only' -d 'Create an append-only repository' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--storage-quota' -d 'Create a repository with a fixed storage quota' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--make-parent-dirs' -d 'Create any missing parent directories of the repository directory' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -I" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of existing destination repository to transfer archives to, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--source-repository' -d 'Path of existing source repository to transfer archives from' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -x -n "__borgmatic_current_arg --source-repository" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of single archive to transfer (or "latest"), defaults to transferring all archives' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--upgrader' -d 'Upgrader type used to convert the transferred data, e.g. "From12To20" to upgrade data from Borg 1.2 to 2.0 format, defaults to no conversion' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress as each archive is transferred' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only transfer archives with names matching this pattern' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Only transfer first N archives after other filters are applied' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Only transfer last N archives after other filters are applied' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Transfer archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Transfer archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Transfer archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Transfer archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from transfer" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to prune (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--stats' -d 'Display statistics of the pruned archive' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list' -d 'List archives kept/pruned' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Prune archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Prune archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Prune archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Prune archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from prune" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to prune (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--stats' -d 'Display statistics of the pruned archive' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list' -d 'List archives kept/pruned' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Prune archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Prune archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Prune archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Prune archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -p" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to compact (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from compact" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress as each segment is compacted' -n "__fish_seen_subcommand_from compact" -complete -c borgmatic -f -n "$exact_option_condition" -a '--cleanup-commits' -d 'Cleanup commit-only 17-byte segment files left behind by Borg 1.1 [flag in Borg 1.2 only]' -n "__fish_seen_subcommand_from compact" -complete -c borgmatic -f -n "$exact_option_condition" -a '--threshold' -d 'Minimum saved space percentage threshold for compacting a segment, defaults to 10' -n "__fish_seen_subcommand_from compact" -complete -c borgmatic -x -n "__borgmatic_current_arg --threshold" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from compact" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to backup to (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is backed up' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '--stats' -d 'Display statistics of archive' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list --files' -d 'Show per-file details' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from create" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to backup to (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is backed up' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '--stats' -d 'Display statistics of archive' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list --files' -d 'Show per-file details' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -C" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to check (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is checked' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repair' -d 'Attempt to repair any inconsistencies found (for interactive use)' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '--max-duration' -d 'How long to check the repository before interrupting the check, defaults to no interruption' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only check archives with names matching this pattern' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--only' -d 'Run a particular consistency check (repository, archives, data, extract, or spot) instead of configured checks (subject to configured frequency, can specify flag multiple times)' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -a 'repository archives data extract spot' -n "__borgmatic_current_arg --only" -complete -c borgmatic -f -n "$exact_option_condition" -a '--force' -d 'Ignore configured check frequencies and run checks unconditionally' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from check" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of specific existing repository to check (must be already specified in a borgmatic configuration file), quoted globs supported' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is checked' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repair' -d 'Attempt to repair any inconsistencies found (for interactive use)' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '--max-duration' -d 'How long to check the repository before interrupting the check, defaults to no interruption' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only check archives with names matching this pattern' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--only' -d 'Run a particular consistency check (repository, archives, data, extract, or spot) instead of configured checks (subject to configured frequency, can specify flag multiple times)' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -a 'repository archives data extract spot' -n "__borgmatic_current_arg --only" -complete -c borgmatic -f -n "$exact_option_condition" -a '--force' -d 'Ignore configured check frequencies and run checks unconditionally' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -k" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to delete or delete archives from, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Archive to delete' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list' -d 'Show details for the deleted archives' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--stats' -d 'Display statistics for the deleted archives' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--cache-only' -d 'Delete only the local cache for the given repository' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--force' -d 'Force deletion of corrupted archives, can be given twice if once does not work' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--keep-security-info' -d 'Do not delete the local security info when deleting a repository' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--save-space' -d 'Work slower, but using less space [Not supported in Borg 2.x+]' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--checkpoint-interval' -d 'Write a checkpoint at the given interval, defaults to 1800 seconds (30 minutes)' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -x -n "__borgmatic_current_arg --checkpoint-interval" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only delete archives matching this pattern' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Delete first N archives after other filters are applied' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Delete last N archives after other filters are applied' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Delete archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Delete archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Delete archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Delete archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from delete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to extract, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to extract (or "latest")' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -x -n "__borgmatic_current_arg --archive" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path --restore-path' -d 'Path to extract from archive, can specify flag multiple times, defaults to the entire archive' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path --restore-path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--destination' -d 'Directory to extract files into, defaults to the current directory' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --destination" -complete -c borgmatic -f -n "$exact_option_condition" -a '--strip-components' -d 'Number of leading path components to remove from each extracted path or "all" to strip all leading path components. Skip paths with fewer elements' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -x -n "__borgmatic_current_arg --strip-components" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is extracted' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from extract" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to extract, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to extract (or "latest")' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -x -n "__borgmatic_current_arg --archive" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path --restore-path' -d 'Path to extract from archive, can specify flag multiple times, defaults to the entire archive' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path --restore-path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--destination' -d 'Directory to extract files into, defaults to the current directory' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --destination" -complete -c borgmatic -f -n "$exact_option_condition" -a '--strip-components' -d 'Number of leading path components to remove from each extracted path or "all" to strip all leading path components. Skip paths with fewer elements' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -x -n "__borgmatic_current_arg --strip-components" -complete -c borgmatic -f -n "$exact_option_condition" -a '--progress' -d 'Display progress for each file as it is extracted' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -x" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from config" -complete -c borgmatic -f -n "$exact_option_condition" -a '' -d '' -n "__fish_seen_subcommand_from config" -complete -c borgmatic -f -a 'bootstrap generate validate' -n "__borgmatic_current_arg " -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to export from, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to export (or "latest")' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -x -n "__borgmatic_current_arg --archive" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path' -d 'Path to export from archive, can specify flag multiple times, defaults to the entire archive' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--destination' -d 'Path to destination export tar file, or "-" for stdout (but be careful about dirtying output with --verbosity or --list)' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --destination" -complete -c borgmatic -f -n "$exact_option_condition" -a '--tar-filter' -d 'Name of filter program to pipe data through' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list --files' -d 'Show per-file details' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -f -n "$exact_option_condition" -a '--strip-components' -d 'Number of leading path components to remove from each exported path. Skip paths with fewer elements' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -x -n "__borgmatic_current_arg --strip-components" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from export-tar" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to use, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to mount (or "latest")' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--mount-point' -d 'Path where filesystem is to be mounted' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --mount-point" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path' -d 'Path to mount from archive, can specify multiple times, defaults to the entire archive' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--foreground' -d 'Stay in foreground until ctrl-C is pressed' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Mount first N archives after other filters are applied' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Mount last N archives after other filters are applied' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Mount archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Mount archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Mount archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Mount archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--options' -d 'Extra Borg mount options' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from mount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to use, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to mount (or "latest")' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--mount-point' -d 'Path where filesystem is to be mounted' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --mount-point" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path' -d 'Path to mount from archive, can specify multiple times, defaults to the entire archive' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--foreground' -d 'Stay in foreground until ctrl-C is pressed' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Mount first N archives after other filters are applied' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Mount last N archives after other filters are applied' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Mount archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Mount archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Mount archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Mount archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--options' -d 'Extra Borg mount options' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -m" -complete -c borgmatic -f -n "$exact_option_condition" -a '--mount-point' -d 'Path of filesystem to unmount' -n "__fish_seen_subcommand_from umount" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --mount-point" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from umount" -complete -c borgmatic -f -n "$exact_option_condition" -a '--mount-point' -d 'Path of filesystem to unmount' -n "__fish_seen_subcommand_from -u" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --mount-point" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -u" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to delete, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--list' -d 'Show details for the archives in the given repository' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--force' -d 'Force deletion of corrupted archives, can be given twice if once does not work' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--cache-only' -d 'Delete only the local cache for the given repository' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--keep-security-info' -d 'Do not delete the local security info when deleting a repository' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from rdelete" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to restore from, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to restore from (or "latest")' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -x -n "__borgmatic_current_arg --archive" -complete -c borgmatic -f -n "$exact_option_condition" -a '--data-source --database' -d 'Name of data source (e.g. database) to restore from archive, must be defined in borgmatic'"'"'s configuration, can specify flag multiple times, defaults to all data sources in the archive' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--schema' -d 'Name of schema to restore from the data source, can specify flag multiple times, defaults to all schemas. Schemas are only supported for PostgreSQL and MongoDB databases' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--hostname' -d 'Database hostname to restore to. Defaults to the "restore_hostname" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--port' -d 'Database port to restore to. Defaults to the "restore_port" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--username' -d 'Username with which to connect to the database. Defaults to the "restore_username" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--password' -d 'Password with which to connect to the restore database. Defaults to the "restore_password" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--restore-path' -d 'Path to restore SQLite database dumps to. Defaults to the "restore_path" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from restore" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to restore from, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to restore from (or "latest")' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -x -n "__borgmatic_current_arg --archive" -complete -c borgmatic -f -n "$exact_option_condition" -a '--data-source --database' -d 'Name of data source (e.g. database) to restore from archive, must be defined in borgmatic'"'"'s configuration, can specify flag multiple times, defaults to all data sources in the archive' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--schema' -d 'Name of schema to restore from the data source, can specify flag multiple times, defaults to all schemas. Schemas are only supported for PostgreSQL and MongoDB databases' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--hostname' -d 'Database hostname to restore to. Defaults to the "restore_hostname" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--port' -d 'Database port to restore to. Defaults to the "restore_port" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--username' -d 'Username with which to connect to the database. Defaults to the "restore_username" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--password' -d 'Password with which to connect to the restore database. Defaults to the "restore_password" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--restore-path' -d 'Path to restore SQLite database dumps to. Defaults to the "restore_path" option in borgmatic'"'"'s configuration' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -r" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to list, defaults to the configured repositories, quoted globs supported' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--short' -d 'Output only archive names' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--format' -d 'Format for archive listing' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only list archive names matching this pattern' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'List first N archives after other filters are applied' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'List last N archives after other filters are applied' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'List archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'List archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'List archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'List archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from rlist" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository containing archive to list, defaults to the configured repositories, quoted globs supported' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of the archive to list (or "latest")' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path' -d 'Path or pattern to list from a single selected archive (via "--archive"), can specify flag multiple times, defaults to listing the entire archive' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--find' -d 'Partial path or pattern to search for and list across multiple archives, can specify flag multiple times' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --find" -complete -c borgmatic -f -n "$exact_option_condition" -a '--short' -d 'Output only path names' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--format' -d 'Format for file listing' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only list archive names matching this pattern' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'List first N archives after other filters are applied' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'List last N archives after other filters are applied' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '-e --exclude' -d 'Exclude paths matching the pattern' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -x -n "__borgmatic_current_arg -e --exclude" -complete -c borgmatic -f -n "$exact_option_condition" -a '--exclude-from' -d 'Exclude paths from exclude file, one per line' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --exclude-from" -complete -c borgmatic -f -n "$exact_option_condition" -a '--pattern' -d 'Include or exclude paths matching a pattern' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--patterns-from' -d 'Include or exclude paths matching patterns from pattern file, one per line' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --patterns-from" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from list" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository containing archive to list, defaults to the configured repositories, quoted globs supported' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of the archive to list (or "latest")' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--path' -d 'Path or pattern to list from a single selected archive (via "--archive"), can specify flag multiple times, defaults to listing the entire archive' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --path" -complete -c borgmatic -f -n "$exact_option_condition" -a '--find' -d 'Partial path or pattern to search for and list across multiple archives, can specify flag multiple times' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --find" -complete -c borgmatic -f -n "$exact_option_condition" -a '--short' -d 'Output only path names' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--format' -d 'Format for file listing' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only list archive names matching this pattern' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'List first N archives after other filters are applied' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'List last N archives after other filters are applied' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '-e --exclude' -d 'Exclude paths matching the pattern' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -x -n "__borgmatic_current_arg -e --exclude" -complete -c borgmatic -f -n "$exact_option_condition" -a '--exclude-from' -d 'Exclude paths from exclude file, one per line' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --exclude-from" -complete -c borgmatic -f -n "$exact_option_condition" -a '--pattern' -d 'Include or exclude paths matching a pattern' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--patterns-from' -d 'Include or exclude paths matching patterns from pattern file, one per line' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -Fr -n "__borgmatic_current_arg --patterns-from" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -l" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to show info for, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from rinfo" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from rinfo" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from rinfo" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository containing archive to show info for, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to show info for (or "latest")' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only show info for archive names matching this pattern' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Show info for first N archives after other filters are applied' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Show info for last N archives after other filters are applied' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Show info for archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Show info for archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Show info for archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Show info for archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from info" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository containing archive to show info for, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to show info for (or "latest")' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--json' -d 'Output results as JSON' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '-a --match-archives --glob-archives' -d 'Only show info for archive names matching this pattern' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -x -n "__borgmatic_current_arg -a --match-archives --glob-archives" -complete -c borgmatic -f -n "$exact_option_condition" -a '--sort-by' -d 'Comma-separated list of sorting keys' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -x -n "__borgmatic_current_arg --sort-by" -complete -c borgmatic -f -n "$exact_option_condition" -a '--first' -d 'Show info for first N archives after other filters are applied' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -x -n "__borgmatic_current_arg --first" -complete -c borgmatic -f -n "$exact_option_condition" -a '--last' -d 'Show info for last N archives after other filters are applied' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -x -n "__borgmatic_current_arg --last" -complete -c borgmatic -f -n "$exact_option_condition" -a '--oldest' -d 'Show info for archives within a specified time range starting from the timestamp of the oldest archive (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newest' -d 'Show info for archives within a time range that ends at timestamp of the newest archive and starts a specified time range ago (e.g. 7d or 12m) [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--older' -d 'Show info for archives that are older than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--newer' -d 'Show info for archives that are newer than the specified time range (e.g. 7d or 12m) from the current time [Borg 2.x+ only]' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from -i" -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to break the lock for, defaults to the configured repository if there is only one, quoted globs supported' -n "__fish_seen_subcommand_from break-lock" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from break-lock" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from key" -complete -c borgmatic -f -n "$exact_option_condition" -a '' -d '' -n "__fish_seen_subcommand_from key" -complete -c borgmatic -f -a 'export' -n "__borgmatic_current_arg " -complete -c borgmatic -f -n "$exact_option_condition" -a '--repository' -d 'Path of repository to pass to Borg, defaults to the configured repositories, quoted globs supported' -n "__fish_seen_subcommand_from borg" -complete -c borgmatic -f -n "$exact_option_condition" -a '--archive' -d 'Name of archive to pass to Borg (or "latest")' -n "__fish_seen_subcommand_from borg" -complete -c borgmatic -f -n "$exact_option_condition" -a '--' -d 'Options to pass to Borg, command first ("create", "list", etc). "--" is optional. To specify the repository or the archive, you must use --repository or --archive instead of providing them here.' -n "__fish_seen_subcommand_from borg" -complete -c borgmatic -x -n "__borgmatic_current_arg --" -complete -c borgmatic -f -n "$exact_option_condition" -a '-h --help' -d 'Show this help message and exit' -n "__fish_seen_subcommand_from borg" diff --git a/hosts/eddie/configuration.nix b/hosts/eddie/configuration.nix index c2add59..8bbac5d 100644 --- a/hosts/eddie/configuration.nix +++ b/hosts/eddie/configuration.nix @@ -126,39 +126,39 @@ environment.systemPackages = with pkgs; [ wget - libGL.out + # libGL.out home-manager curl git-lfs - tailscale + # tailscale rsync gnupg - clinfo + # clinfo alsa-utils - alsa-oss + # alsa-oss alsa-tools - psutils + # psutils util-linux - libgtop - fontconfig - freetype - egl-wayland - glfw-wayland - openssl + # libgtop + # fontconfig + # freetype + # egl-wayland + # glfw-wayland + # openssl appimage-run xwayland-satellite xwayland-run cifs-utils - samba + # samba ddcutil - ddcui + # ddcui greetd.tuigreet bluez-tools bluetuith qemu quickemu + borgbackup - # virt-manager virt-viewer spice spice-gtk @@ -519,33 +519,6 @@ services.qemuGuest.enable = true; services.spice-vdagentd.enable = true; - # systemd.network.enable = true; - - # systemd.network.networks."10-lan" = { - # matchConfig.Name = ["eno1" "vm-*"]; - # networkConfig = { - # Bridge = "br0"; - # }; - # }; - - # systemd.network.netdevs."br0" = { - # netdevConfig = { - # Name = "br0"; - # Kind = "bridge"; - # }; - # }; - - # systemd.network.networks."10-lan-bridge" = { - # matchConfig.Name = "br0"; - # networkConfig = { - # Address = ["192.168.1.2/24" "2001:db8::a/64"]; - # Gateway = "192.168.1.1"; - # DNS = ["192.168.1.1"]; - # IPv6AcceptRA = true; - # }; - # linkConfig.RequiredForOnline = "routable"; - # }; - programs.appimage = { enable = true; binfmt = true; @@ -678,6 +651,12 @@ ]; }; + + + + + + #do not change system.stateVersion = "24.05"; diff --git a/hosts/media-server/configuration.nix b/hosts/media-server/configuration.nix index f16ae1a..986bdeb 100644 --- a/hosts/media-server/configuration.nix +++ b/hosts/media-server/configuration.nix @@ -1,5 +1,112 @@ { config, lib, pkgs, ... }: { - config.facter.reportPath = ./facter.json; + imports = + [ # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + # Use the systemd-boot EFI boot loader. + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + networking.hostName = "media-server"; # Define your hostname. + # Pick only one of the below networking options. + # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. + networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + + # Set your time zone. + time.timeZone = "America/Toronto"; + + # Define a user account. Don't forget to set a password with ‘passwd’. + users.users.media = { + isNormalUser = true; + extraGroups = [ "wheel" "input" "audio" "video" "network" "networkmanager" ]; # Enable ‘sudo’ for the user. + packages = with pkgs; [ + tree + ]; + }; + + environment.systemPackages = with pkgs; [ + wget + curl + ]; + + fonts = { + enableDefaultPackages = true; + fontDir.enable = true; + fontconfig = { + enable = true; + useEmbeddedBitmaps = true; + }; + + powerManagement = { + enable = true; + }; + + hardware = { + amdgpu.initrd.enable = true; + enableAllFirmware = true; + uinput.enable = true; + }; + + services.power-profiles-daemon = { + enable = true; + package = pkgs.power-profiles-daemon; + }; + + # enable the OpenSSH daemon. + services.openssh.enable = true; + programs.ssh.startAgent = true; + + services.resolved = { + enable = true; + extraConfig = '' + LLMNR=no + ReadEtcHosts=no + DNSSEC=no + ''; + }; + services.avahi = { + enable = true; + publish.enable = true; + publish.userServices = true; + openFirewall = true; + nssmdns4 = true; + }; + services.samba = { + enable = true; + package = pkgs.sambaFull; + openFirewall = true; + }; + services.samba-wsdd = { + enable = true; + openFirewall = true; + }; + + + # enable fish and launch it from bash for interactive shells + programs.fish.enable = true; + environment.pathsToLink = [ "/share/fish" ]; + programs.bash = { + interactiveShellInit = '' + if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]] + then + shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION="" + exec ${pkgs.fish}/bin/fish $LOGIN_OPTION + fi + ''; + }; + + + programs.git.enable = true; + + + + + # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . + system.stateVersion = "25.05"; # Did you read the comment? + } diff --git a/hosts/media-server/hardware-configuration.nix b/hosts/media-server/hardware-configuration.nix new file mode 100644 index 0000000..d26c37b --- /dev/null +++ b/hosts/media-server/hardware-configuration.nix @@ -0,0 +1,41 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" "sdhci_acpi" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/46b17417-d7b2-442a-8a99-de89495f20fa"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/DD4A-05C6"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/70a2e22b-aae8-4245-9884-bb6533c7682d"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/modules/home/desktop.nix b/modules/home/desktop.nix index 0c425ba..6315015 100644 --- a/modules/home/desktop.nix +++ b/modules/home/desktop.nix @@ -30,7 +30,7 @@ rpi-imager freecad flatpak - gst_all_1.gstreamer + # gst_all_1.gstreamer prusa-slicer via vial @@ -56,7 +56,6 @@ trayscale font-manager - squirreldisk papers newsflash @@ -79,7 +78,6 @@ discord slack signal-desktop - eyedropper libreoffice hyphenDicts.en_US plex-mpv-shim @@ -90,7 +88,7 @@ blender davinci-resolve-studio - steam + # steam processing zotero fractal @@ -109,12 +107,9 @@ plugdata pavucontrol qpwgraph - helvum - coppwr clapper ardour oculante - farge halloy paleta wayback @@ -124,7 +119,7 @@ librewolf vivaldi - gst_all_1.gstreamer + wl-color-picker # screen recording and streaming kooha @@ -135,6 +130,8 @@ wineWowPackages.stagingFull winetricks + virt-manager + nautilus nautilus-open-any-terminal turtle @@ -230,6 +227,14 @@ name = "Bluetuith (bluetooth manager)"; exec = "/home/emenel/.local/bin/wezapp bluetuith"; }; + color-picker-clip = { + name = "wl color picker (clipboard)"; + exec = "${pkgs.wl-color-picker}/bin/wl-color-picker clipboard"; + }; + color-picker = { + name = "wl color picker"; + exec = "${pkgs.wl-color-picker}/bin/wl-color-picker"; + }; }; xdg.configFile."halloy/config.toml".source = ../../homes/emenel/dotfiles/dot_config/halloy/config.toml; diff --git a/modules/home/shell-conf.nix b/modules/home/shell-conf.nix index d1c79d9..6ae87d4 100644 --- a/modules/home/shell-conf.nix +++ b/modules/home/shell-conf.nix @@ -2,8 +2,6 @@ { home.packages = with pkgs; [ - - inputs.isd.packages.x86_64-linux.default cmake @@ -13,7 +11,6 @@ readline rlwrap yt-dlp - erdtree age figlet ffmpeg-full @@ -24,15 +21,13 @@ libnotify unzip zip - stdenv tldr rich-cli - delta (btop-rocm.override { cudaSupport = true; }) gnupg imagemagick gnutls - gettext + # gettext gnumake nix-du nix-melt @@ -42,31 +37,30 @@ coreutils binutils editorconfig-core-c - openssl exiftool libsecret shellcheck - libffi.dev - nodejs_18 - platformio-core + # libffi.dev + # nodejs_18 + # platformio-core icloudpd pkg-config - ftgl - gperf + # ftgl + # gperf numbat - glpng + # glpng nurl fastfetch nvd - # ripgrep-all + ripgrep-all silver-searcher - powertop + # powertop age - kdotool + # kdotool manix caligula - sqlite + # sqlite yaml-language-server typescript-language-server @@ -93,7 +87,6 @@ zstd - black jsbeautifier typescript @@ -105,10 +98,9 @@ nix-init alejandra - ncdu dua - git-annex + # git-annex bfg-repo-cleaner delta tree @@ -126,19 +118,13 @@ playerctl tesseract - alsa-utils - alsa-tools + # alsa-utils + # alsa-tools dockfmt - icloudpd - borgbackup trash-cli poppler_utils - - faircamp - - ]; programs = { @@ -196,37 +182,6 @@ bat = { enable = true; }; - borgmatic = { - enable = true; - backups = { - eddie = { - location = { - patterns = [ - "R /home/emenel" - "- home/emenel/.cache" - "- home/emenel/.nix*" - "- home/emenel/.steam*" - "- home/emenel/Dropbox" - "- home/emenel/Sync" - "- home/emenel/.dropbox*" - "- home/emenel/.BitwigStudio" - "- home/emenel/.local/share/bitwig" - ]; - repositories = [ - { - "path" = "ssh://oyi3ydnz@oyi3ydnz.repo.borgbase.com/./repo"; - "label" = "eddie on borgbase"; - } - ]; - }; - retention = { - keepDaily = 3; - keepHourly = 3; - keepMonthly = 2; - }; - }; - }; - }; eza = { enable = true; git = true;