assert node.os == 'arch' defaults = { 'backups': { 'paths': { '/etc/netctl', }, }, 'icinga_options': { 'exclude_from_monitoring': True, }, 'nftables': { 'input': { '50-avahi': { 'udp dport 5353 accept', 'udp sport 5353 accept', }, }, }, 'pacman': { 'packages': { # fonts 'fontconfig': {}, 'ttf-dejavu': { 'needed_by': { 'pkg_pacman:sddm', }, }, # login management 'sddm': {}, # networking 'avahi': {}, 'netctl': {}, 'rfkill': {}, 'wpa_supplicant': {}, 'wpa_actiond': {}, # shell and other gui stuff 'dunst': {}, 'fish': {}, 'kitty': {}, 'libnotify': {}, # provides notify-send 'light': {}, 'redshift': {}, 'rofi': {}, # sound 'calf': {}, 'easyeffects': {}, 'lsp-plugins': {}, 'pavucontrol': {}, 'pipewire': {}, 'pipewire-jack': {}, 'pipewire-pulse': {}, 'pipewire-zeroconf': {}, 'qpwgraph': {}, # window management 'i3-wm': {}, 'i3lock': {}, 'xss-lock': {}, # i3pystatus dependencies 'iw': {}, 'wireless_tools': {}, # Xorg 'xf86-input-libinput': {}, 'xf86-input-wacom': {}, 'xorg-server': {}, 'xorg-setxkbmap': {}, 'xorg-xev': {}, 'xorg-xinput': {}, 'xorg-xset': {}, # all them apps 'browserpass': {}, 'browserpass-firefox': {}, 'ffmpeg': {}, 'firefox': {}, 'gimp': {}, 'imagemagick': {}, 'inkscape': {}, 'kdenlive': {}, 'maim': {}, 'mosh': {}, 'mosquitto': {}, 'mpv': {}, 'pass': {}, 'pass-otp': {}, 'pdftk': {}, 'pwgen': {}, 'qpdfview': {}, 'samba': {}, 'shotcut': {}, 'sipcalc': {}, 'the_silver_searcher': {}, 'tlp': {}, 'virt-manager': {}, 'xclip': {}, 'xdotool': {}, # needed for maim window selection }, }, } @metadata_reactor.provides( 'backups/paths', ) def backup_every_user_home(metadata): paths = set() for user, config in metadata.get('users', {}).items(): if config.get('delete', False): continue paths.add(config.get('home', f'/home/{user}')) return { 'backups': { 'paths': paths, }, }