{
  "template": {
    "bin": {
      "link": {
        "from": "shared/bin",
        "to": "~/bin"
      }
    },
    "barg": {
      "link": {
        "from": "shared/barg-parser/barg",
        "to": "~/.local/bin/barg"
      }
    },
    "addpaths": {
      "link": {
        "from": "shared/addpaths",
        "to": "~/.local/bin/addpaths"
      }
    },
    "htop": {
      "link": {
        "from": "shared/htop",
        "to": "~/.config/htop"
      }
    },
    "git": {
      "link": {
        "from": "shared/git",
        "to": "~/.gitconfig"
      }
    },
    "gitignore": {
      "link": {
        "from": "shared/gitignore",
        "to": "~/.gitignore"
      }
    },
    "zsh": {
      "link": {
        "from": "shared/zsh",
        "to": "~/.zshrc"
      }
    },
    "tmux": {
      "link": {
        "from": "shared/tmux",
        "to": "~/.tmux.conf"
      }
    },
    "nvim": {
      "link": {
        "from": "shared/nvim",
        "to": "~/.config/nvim"
      }
    }
  },
  "environments": {
    "linux": [
      {
        "package": "window-tagger",
        "link": {
          "from": "linux/kwin_window-tagger",
          "to": "~/.config/window-tagger"
        }
      }
    ],
    "macos": [
      "git",
      "gitignore",
      "zsh",
      "tmux",
      "nvim",
      "bin",
      "barg",
      {
        "package": "sol",
        "link": {
          "from": "macos/sol",
          "to": "~/.config/sol"
        }
      },
      {
        "package": "borders",
        "link": {
          "from": "macos/borders",
          "to": "~/.config/borders"
        }
      },
      {
        "package": "karabiner",
        "link": {
          "from": "macos/karabiner",
          "to": "~/.config/karabiner"
        }
      },
      {
        "package": "linearmouse",
        "link": {
          "from": "macos/linearmouse",
          "to": "~/.config/linearmouse"
        }
      },
      {
        "package": "rectangle",
        "link-comment": "Needs manual import from config/macos/linearmouse"
      },
      {
        "package": "wezterm",
        "link": {
          "from": "macos/wezterm",
          "to": "~/.config/wezterm"
        }
      },
      {
        "package": "alacritty",
        "link": {
          "from": "macos/alacritty",
          "to": "~/.config/alacritty"
        }
      },
      {
        "package": "ghostty",
        "link": {
          "from": "macos/ghostty",
          "to": "~/.config/ghostty"
        }
      },
      {
        "package": "kitty",
        "link": {
          "from": "macos/kitty",
          "to": "~/.config/kitty"
        }
      }
    ],
    "linux-vm": [
      "bin",
      "barg",
      "addpaths",
      "gitignore",
      {
        "package": "htop",
        "install": "sudo apt install -y htop"
      },
      {
        "package": "git",
        "install": "sudo apt install -y git"
      },
      {
        "package": "zsh",
        "install": "sudo apt install -y zsh",
        "post-link": "./scripts/linux-setup_zsh.sh"
      },
      {
        "package": "tmux",
        "install": "sudo apt install -y tmux"
      },
      {
        "package": "nvim",
        "post-install": "echo 'Neovim needs setup'"
      }
    ],
    "container": [
      "bin",
      "barg",
      "gitignore",
      {
        "package": "htop",
        "install": "sudo apt install -y htop"
      },
      {
        "package": "git",
        "install": "sudo apt install -y git"
      },
      {
        "package": "zsh",
        "install": "sudo apt install -y zsh",
        "post-link": "./scripts/linux-setup_zsh.sh"
      },
      {
        "package": "tmux",
        "install": "sudo apt install -y tmux"
      },
      {
        "package": "nvim",
        "post-install": "echo 'Neovim needs setup'"
      }
    ]
  }
}
