- defaults:
    link:
      relink: true

- clean: ["~"]

- create:
    # Common organizational dirs
    - ~/Downloads
    - ~/bin
    - ~/projects
    - ~/services
    - ~/src
    - ~/www
    - ~/pkg
    # Config dirs
    - ~/.config/nvim
    - ~/.config/termux
    - ~/.config/logid
    - ~/.config/systemd/user
    - ~/.config/autostart
    - ~/.config/git
    - ~/.cargo
    - ~/.config/user-tmpfiles.d
    # Program plugins
    - ~/.local/share/nautilus/scripts/
    - ~/houdini19.5

- link:
    # Git
    ~/.gitconfig: configs/git/.gitconfig
    ~/.config/git/.mailmap: configs/git/.mailmap
    ~/.ssh/allowed_signers: configs/ssh/allowed_signers

    # Shell
    ~/.zshrc:
      path: configs/zsh/.zshrc
      force: true
    ~/.bashrc:
      path: configs/bash/.bashrc
      force: true

    # Vim
    ~/.config/nvim/init.vim: configs/nvim/init.vim
    ~/.config/nvim/pack: configs/nvim/pack
    ~/.config/nvim/third_party: configs/nvim/third_party

    # Scripts
    ~/bin/catto: configs/scripts/catto
    ~/bin/aspath: configs/scripts/aspath
    ~/bin/fetch-steamdeck-screenshots: configs/scripts/fetch-steamdeck-screenshots
    ~/bin/houdini-tool: configs/scripts/houdini-tool.py
    ~/bin/hython-latest: configs/scripts/hython-latest
    ~/bin/usdnc-to-usd: configs/scripts/usdnc-to-usd.py
    ~/bin/guru-vpn: configs/scripts/guru-vpn.py
    ~/bin/wg-handshakes: configs/scripts/wg-handshakes.py
    ~/bin/wg-genzone: configs/scripts/wg-genzone.py
    ~/bin/ewp-sendmail: configs/scripts/ewp-sendmail.py

    # Nautilus right-click scripts
    ~/.local/share/nautilus/scripts/Copy to web:
      path: configs/nautilus/scripts/Copy to web
      mode: 755
    ~/.local/share/nautilus/scripts/Open in Video Trimmer:
      path: configs/nautilus/scripts/Open in Video Trimmer
      mode: 755
    ~/.local/share/nautilus/scripts/Open with USDView:
      path: configs/nautilus/scripts/Open with USDView
      mode: 755

    # XDG Autostart
    ~/.config/autostart/gnome-keyring-ssh.desktop: configs/autostart/gnome-keyring-ssh.desktop
    ~/.config/autostart/logid.desktop: configs/autostart/logid.desktop

    # Others
    ~/.config/tabset: configs/tabset
    ~/.config/rofi: configs/rofi
    # ~/.local/share/remmina: configs/remmina/hosts
    ~/.cargo/config.toml: configs/cargo/config.toml
    ~/.config/termux/termux.properties: configs/termux/termux.properties
    ~/.config/user-tmpfiles.d/discord-rpc.conf: configs/user-tmpfiles.d/discord-rpc.conf
    ~/.config/logid/logid.cfg: configs/logid/logid.cfg
    ~/houdini19.5/scripts: configs/houdini19.5/scripts
    ~/sln: solutions

- shell:
    # Make sure we have our git modules
    - [git submodule update --init --recursive, Installing submodules]
    # Install SSH config
    - [sh ./helpers/install-ssh-config.sh, Installing SSH config]
    # Ensure that all downloaded scripts are executable
    - [chmod +x configs/scripts/*, Making bin scripts executable]
    - [chmod +x configs/nautilus/scripts/*, Making nautilus scripts executable]
    - [chmod +x solutions/*, Making solution scripts executable]
    # Configure GNOME
    - [sh ./helpers/configure-gnome.sh, Configuring GNOME]
    # Configure Termux if on Android
    - [termux-reload-settings || true, Trying to reload Termux]
    # Configure Git
    - [
        bash ./helpers/git-config-features.sh,
        Setting up optional git-config features,
      ]