[
  {
    "path": ".eslintrc.js",
    "content": "const path = require(\"path\")\n\nmodule.exports = {\n  env: {\n    browser: true,\n    es6: true,\n  },\n  extends: [\n    \"standard-with-typescript\",\n    \"plugin:prettier/recommended\",\n    \"prettier\",\n    \"prettier/@typescript-eslint\",\n    \"prettier/babel\",\n    \"prettier/standard\",\n  ],\n  parser: \"@typescript-eslint/parser\",\n  parserOptions: {\n    ecmaFeatures: {},\n    ecmaVersion: 2018,\n    project: path.resolve(__dirname, \"./tsconfig.json\"),\n    tsconfigRootDir: __dirname,\n    sourceType: \"module\",\n  },\n  plugins: [\"@typescript-eslint\", \"babel\", \"prettier\", \"standard\"],\n  rules: {\n    \"@typescript-eslint/consistent-type-definitions\": [\"error\", \"type\"],\n    \"@typescript-eslint/no-explicit-any\": \"off\",\n    \"quote-props\": [\"error\", \"as-needed\"],\n    \"object-shorthand\": [\"error\", \"always\"],\n    \"no-console\": [\"warn\", { allow: [\"warn\", \"error\", \"info\"] }],\n  },\n}\n"
  },
  {
    "path": ".github/pull_request_template.md",
    "content": "## Description\n\nShort description of the changes:\n\n## Checklist\n\nI have:\n\n- [ ] 🤳 made sure that what I am adding is an app for end users, not a developer tool / library (no \"wl-clipboard-rs\")\n- [ ] 🔗 checked that the link I am using refers to the root of the project (example, https://mpv.io) or GitHub repo **if the first is not available**\n- [ ] 🤓 checked BOTH the name and the casing of the project(s) I am adding (\"GNOME Terminal\" and not \"gnome-terminal\", \"bemenu\" and not \"Bemenu\", etc.)\n- [ ] 💣 checked that I am using spaces for indentation and that my levels are correct (**no tabs!**)\n- [ ] ✋ checked that my section has the correct casing (\"My section\", and not \"My Section\")\n- [ ] 📝 checked that the projects and / or the section are alphabetically sorted (\"Clipboard manager\" then \"Color picker\", \"bemenu\" then \"Fuzzel\")\n"
  },
  {
    "path": ".github/workflows/hugo-ci.yml",
    "content": "name: Hugo CI\n\non: [push]\n\njobs:\n  check:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@v2\n\n    - name: Setup Hugo\n      uses: peaceiris/actions-hugo@v2\n\n    - name: Test build\n      run: hugo\n"
  },
  {
    "path": ".github/workflows/typescript-ci.yml",
    "content": "name: TypeScript CI\n\non: [push]\n\njobs:\n  check:\n\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@v2\n\n    - name: Setup NodeJS\n      uses: actions/setup-node@v1\n      with:\n        node-version: 12.x\n\n    - name: Install dependencies\n      run: npm install\n\n    - name: Linting\n      run: npm run ci:lint\n      env:\n        CI: true\n\n    - name: Type checking\n      run: npm run ci:type-check\n      env:\n        CI: true\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\n/.log\n/public\n/resources"
  },
  {
    "path": ".ignore",
    "content": "package-lock.json"
  },
  {
    "path": "CODEOWNERS",
    "content": "* @mpsq\n"
  },
  {
    "path": "LICENSE.md",
    "content": "The MIT License\n\nCopyright (c) 2020 Méril P.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# [Are we Wayland yet?](https://arewewaylandyet.com)\n\nI think so... This is an opinionated answer, if you disagree or if you think\nsomething is missing, I would love to hear about it, please open an issue or a\npull request.\n\n# Discussion\n\nI posted this website on the\n[Arch Linux subreddit](https://www.reddit.com/r/archlinux/). The post has many\ninteresting comments and valuable links, it is worth\n[having a look](https://www.reddit.com/r/archlinux/comments/jm8743/are_we_wayland_yet/).\n\n# How to build\n\n## Prerequisites\n\n- [Hugo](https://github.com/gohugoio/hugo) 0.78+\n- [NodeJS](https://nodejs.org) 12 with `npm` or `yarn`\n\n## Steps\n\n1. Get the code\n\n```bash\ngit clone git@github.com:mpsq/arewewaylandyet.git\ncd arewewaylandyet\n```\n\n2. Install dependencies\n\n```bash\nnpm install # yarn will work too\n```\n\n3. Run the development server\n\n```bash\nhugo server -D\n```\n\nThe server should be accessible at http://localhost:1313.\n"
  },
  {
    "path": "archetypes/default.md",
    "content": "---\ntitle: \"{{ replace .Name \"-\" \" \" | title }}\"\ndate: {{ .Date }}\ndraft: true\n---\n\n"
  },
  {
    "path": "config.toml",
    "content": "baseURL = \"https://arewewaylandyet.com/\"\nlanguageCode = \"en-us\"\ntitle = \"Are we Wayland yet?\"\n\ndisableKinds = [\"taxonomy\", \"taxonomyTerm\"]\n\nenableRobotsTXT = true\n\nassetDir = \"src\"\n\n[sitemap]\n  changefreq = \"monthly\"\n  filename = \"sitemap.xml\"\n  priority = 0.5\n\n[build]\n  noJSConfigInAssets = true"
  },
  {
    "path": "content/.gitkeep",
    "content": ""
  },
  {
    "path": "husky.config.js",
    "content": "module.exports = {\n  hooks: {\n    \"pre-commit\": \"lint-staged\",\n  },\n}\n"
  },
  {
    "path": "layouts/404.html",
    "content": "{{ define \"main\"}}\n<main aria-role=\"main\">\n\t{{ partial \"title\" . }}\n  <h2 class=\"title--answer\">\n    404\n  </h2>\n  <h2 class=\"title--not-found weight--400\">\n    If you want to know if Wayland is ready, check <a href=\"/\">this page</a> instead.\n  </h2>\n</main>\n{{ end }}\n"
  },
  {
    "path": "layouts/_default/baseof.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n\t{{ partial \"head\" . }}\n\t<body>\n\t\t{{ partial \"header\" . }}\n\t\t{{ block \"main\" . }}{{ end }}\n\t\t{{ partial \"footer\" . }}\n\t</body>\n</html>\n"
  },
  {
    "path": "layouts/index.html",
    "content": "{{ define \"main\" }}\n<main aria-role=\"main\">\n\n\t{{ partial \"title\" . }}\n\n  <h2 class=\"title--answer\">Mostly...</h2>\n\n  <section class=\"section\">\n    <p class=\"section__title\">OK, but where is my:</p>\n    <ul class=\"section__list\">\n      <li class=\"list__item--ok\">\n        Application launcher:\n        <a href=\"https://github.com/Kirottu/anyrun\">Anyrun</a>,\n        <a href=\"https://github.com/Cloudef/bemenu\">bemenu</a>,\n        <a href=\"https://codeberg.org/dnkl/fuzzel\">Fuzzel</a>,\n        <a href=\"https://code.rocketnine.space/tslocum/gmenu\">gmenu</a>,\n        <a href=\"https://github.com/nwg-piotr/nwg-launchers\">nwg-launchers</a>,\n        <a href=\"https://github.com/oknozor/onagre\">Onagre</a>,\n        <a href=\"https://github.com/lbonn/rofi\">Rofi (lbonn's fork)</a>,\n        <a href=\"https://github.com/philj56/tofi\">Tofi</a>,\n        <a href=\"https://ulauncher.io\">Ulauncher</a>,\n        <a href=\"https://sr.ht/~adnano/wmenu/\">wmenu</a>,\n        <a href=\"https://hg.sr.ht/~scoopta/wofi\">Wofi</a>,\n        <a href=\"https://github.com/l4l/yofi\">yofi</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Clipboard manager:\n        <a href=\"https://github.com/sentriz/cliphist\">cliphist</a>,\n        <a href=\"https://github.com/yory8/clipman\">Clipman</a>,\n        <a href=\"https://github.com/bugaevc/wl-clipboard\">wl-clipboard</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Color picker:\n        <a href=\"https://github.com/nwg-piotr/azote\">Azote</a>,\n        <a href=\"https://gitlab.gnome.org/World/gcolor3\">gcolor3</a>,\n        <a href=\"https://github.com/emersion/grim\">grim</a>,\n        <a href=\"https://github.com/hyprwm/hyprpicker\">hyprpicker</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Compiz support:\n        <a href=\"https://github.com/WayfireWM/wayfire\">Wayfire</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Desktop environment:\n        <a href=\"https://www.enlightenment.org\">Enlightenment (experimental)</a>,\n        <a href=\"https://www.gnome.org/\">GNOME</a>,\n        <a href=\"https://kde.org/plasma-desktop\">KDE Plasma</a>,\n        <a href=\"https://mate-desktop.org\">MATE Desktop (partial)</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Dock:\n        <a href=\"https://sr.ht/~leon_plickat/LavaLauncher/\">LavaLauncher</a>,\n        <a href=\"https://github.com/nwg-piotr/nwg-dock\">nwg-dock</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Document viewer:\n        <a href=\"https://git.pwmt.org/pwmt/zathura\">zathura</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Email client (GUI):\n        <a href=\"https://help.gnome.org/users/evolution/stable/\">Evolution</a>,\n        <a href=\"https://www.thunderbird.net/en-US/\">Thunderbird</a>\n      </li>\n      <li class=\"list__item--ok\">\n        File manager:\n        <a href=\"https://github.com/linuxmint/nemo\">Nemo</a>,\n        <a href=\"https://github.com/lxde/pcmanfm\">PCManFM</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Gamma & day/night adjustment tool:\n        <a href=\"https://gitlab.com/chinstrap/gammastep\">Gammastep</a>,\n        <a href=\"https://sr.ht/~kennylevinsen/wlsunset/\">wlsunset</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Image editor:\n        <a href=\"https://gimp.org/\">GIMP</a>,\n        <a href=\"https://inkscape.org/\">Inkscape</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Image viewer:\n        <a href=\"https://sr.ht/~exec64/imv/\">imv</a>,\n        <a href=\"https://nomacs.org/\">nomacs</a>,\n        <a href=\"https://github.com/artemsen/swayimg\">swayimg</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Keyboard remapper:\n        <a href=\"https://github.com/snyball/Hawck\">Hawck</a>,\n        <a href=\"https://github.com/sezanzeb/input-remapper\">input-remapper</a>,\n        <a href=\"https://gitlab.com/interception/linux/tools\">Interception Tools</a>,\n        <a href=\"https://github.com/samvel1024/kbct\">kbct</a>,\n        <a href=\"https://github.com/rvaiya/keyd\">keyd</a>,\n        <a href=\"https://github.com/kmonad/kmonad\">KMonad</a>,\n        <a href=\"https://github.com/k0kubun/xremap\">xremap</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Login manager:\n        <a href=\"https://sr.ht/~kennylevinsen/greetd/\">greetd</a>,\n        <a href=\"https://github.com/max-moser/lightdm-elephant-greeter\">LightDM Elephant Greeter</a>,\n        <a href=\"https://gitlab.com/marcusbritanicus/QtGreet\">QtGreet</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Network transparency:\n        <a href=\"https://gitlab.freedesktop.org/mstoeckl/waypipe\">Waypipe</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Notification daemon:\n        <a href=\"https://dunst-project.org\">Dunst</a>,\n        <a href=\"https://codeberg.org/dnkl/fnott\">Fnott</a>,\n        <a href=\"https://github.com/emersion/mako\">mako</a>,\n        <a href=\"https://github.com/ErikReider/SwayNotificationCenter\">SwayNotificationCenter</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Output/display configuration tool:\n        <a href=\"https://sr.ht/~emersion/kanshi\">kanshi</a>,\n        <a href=\"https://github.com/nwg-piotr/nwg-displays\">nwg-displays</a>,\n        <a href=\"https://github.com/xyproto/wallutils\">Wallutils</a>,\n        <a href=\"https://github.com/artizirk/wdisplays\">wdisplays</a>,\n        <a href=\"https://sr.ht/~leon_plickat/wlopm\">wlopm</a>,\n        <a href=\"https://sr.ht/~emersion/wlr-randr\">wlr-randr</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Power menu:\n        <a href=\"https://github.com/ArtsyMacaw/wlogout\">wlogout</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Remote desktop utility:\n        <a href=\"https://www.freerdp.com/\">FreeRDP</a>,\n        <a href=\"https://github.com/any1/wayvnc\">wayvnc</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Screen lock tool:\n        <a href=\"https://github.com/jovanlanik/gtklock\">gtklock</a>,\n        <a href=\"https://github.com/swaywm/swaylock\">swaylock</a>,\n        <a href=\"https://github.com/ifreund/waylock\">Waylock</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Screen recording tool:\n        <a href=\"https://github.com/xlmnxp/blue-recorder\">Blue Recorder</a>,\n        <a href=\"https://github.com/SeaDve/Kooha\">Kooha</a>,\n        <a href=\"https://obsproject.com\">OBS Studio</a>,\n        <a href=\"https://github.com/ammen99/wf-recorder\">wf-recorder</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Screen sharing:\n        <a href=\"https://github.com/emersion/xdg-desktop-portal-wlr\">xdg-desktop-portal-wlr</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Screenshot tool:\n        <a href=\"https://flameshot.org/\">Flameshot</a>,\n        <a href=\"https://github.com/emersion/grim\">grim</a>/<a href=\"https://github.com/emersion/slurp\">slurp</a>,\n        <a href=\"https://git.sr.ht/~whynothugo/shotman\">Shotman</a>,\n        <a href=\"https://github.com/jtheoof/swappy\">swappy</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Stacking compositor:\n        <a href=\"https://hikari.acmelabs.space\">hikari</a>,\n        <a href=\"https://github.com/johanmalm/labwc\">Labwc</a>,\n        <a href=\"https://github.com/lirios/shell\">Liri shell</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Status bar:\n        <a href=\"https://github.com/hcsubser/hybridbar\">Hybridbar</a>,\n        <a href=\"https://github.com/nwg-piotr/nwg-panel\">nwg-panel</a>,\n        <a href=\"https://github.com/Alexays/Waybar\">Waybar</a>,\n        <a href=\"https://gitlab.com/dnkl/yambar\">Yambar</a>\n      </li>\n      <li class=\"list__item--ok\">\n        System monitoring widget:\n        <a href=\"https://sr.ht/~kennylevinsen/wldash/\">wldash</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Terminal:\n        <a href=\"https://github.com/alacritty/alacritty\">Alacritty</a>,\n        <a href=\"https://codeberg.org/dnkl/foot/\">foot</a>,\n        <a href=\"https://github.com/Keruspe/Germinal\">Germinal</a>,\n        <a href=\"https://sw.kovidgoyal.net/kitty/\">kitty</a>,\n        <a href=\"https://github.com/realh/roxterm\">ROXTerm</a>,\n        <a href=\"https://launchpad.net/sakura\">Sakura</a>,\n        <a href=\"https://terminator-gtk3.readthedocs.io/en/latest/\">Terminator</a>,\n        <a href=\"https://gnunn1.github.io/tilix-web/\">Tilix</a>,\n        <a href=\"https://wezfurlong.org/wezterm/\">WezTerm</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Tiling compositor:\n        <a href=\"https://github.com/djpohly/dwl\">dwl</a>,\n        <a href=\"https://github.com/hyprwm/Hyprland\">Hyprland</a>,\n        <a href=\"https://www.qtile.org\">Qtile</a>,\n        <a href=\"https://github.com/ifreund/river\">river</a>,\n        <a href=\"https://github.com/swaywm/sway\">Sway</a>,\n        <a href=\"https://github.com/michaelforney/velox\">velox</a>,\n        <a href=\"https://github.com/inclement/vivarium\">vivarium</a>\n      </li>\n      <li class=\"list__item--ok\">\n        User input simulating tool:\n        <a href=\"https://gitlab.freedesktop.org/libinput/libei\">libei</a>,\n        <a href=\"https://github.com/atx/wtype\">wtype</a>,\n        <a href=\"https://github.com/ReimuNotMoe/ydotool\">ydotool</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Video player:\n        <a href=\"https://github.com/Rafostar/clapper\">Clapper</a>,\n        <a href=\"https://mpv.io\">mpv</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Wallpaper manager:\n        <a href=\"https://github.com/nwg-piotr/azote\">Azote</a>,\n        <a href=\"https://github.com/hyprwm/hyprpaper\">hyprpaper</a>,\n        <a href=\"https://github.com/GhostNaN/mpvpaper\">MPVPaper</a>,\n        <a href=\"https://github.com/vilhalmer/oguri\">oguri</a>,\n        <a href=\"https://github.com/swaywm/swaybg\">swaybg</a>,\n        <a href=\"https://github.com/Horus645/swww\">swww</a>,\n        <a href=\"https://github.com/xyproto/wallutils\">Wallutils</a>,\n        <a href=\"https://github.com/danyspin97/wpaperd\">wpaperd</a>\n      </li>\n      <li class=\"list__item--ok\">\n        Web browser:\n        <a href=\"https://www.chromium.org/\">Chromium</a>,\n        <a href=\"https://www.mozilla.org/firefox/\">Firefox</a>,\n        <a href=\"https://nyxt.atlas.engineer\">Nyxt</a>,\n        <a href=\"https://www.opera.com/\">Opera</a>,\n        <a href=\"https://qutebrowser.org/\">qutebrowser</a>\n      </li>\n    </ul>\n  </section>\n\n  <section class=\"section\">\n    <p class=\"section__title\">Missing:</p>\n    <ul class=\"section__list\">\n      <li class=\"list__item--ko\">\n        Color management and HDR:\n        <a href=\"https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/14\">Protocol in development</a>\n      </li>\n      <li class=\"list__item--ko\">\n        Displaylink driver for:\n        <a href=\"https://github.com/swaywm/sway\">Sway</a>/<a href=\"https://gitlab.freedesktop.org/wlroots/wlroots\">wlroots:</a>\n        <a href=\"https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/1823\">Issue on gitlab with a possible patch</a>\n      </li>\n    </ul>\n  </section>\n\n  <section class=\"section\">\n    <p class=\"section__title\">\n      That's great, but you did not mention\n      <span class=\"accent--nvidia\">nvidia</span>...\n    </p>\n    <ul class=\"section__list\">\n      <li class=\"list__item--kinda\">\n        With limitations/caveats it runs, on\n        <a href=\"https://wiki.gnome.org/Initiatives/Wayland/NVIDIA\">GNOME</a>\n      </li>\n      <li class=\"list__item--kinda\">\n        With limitations/caveats it runs, on\n        <a href=\"https://community.kde.org/Plasma/Wayland/Nvidia\">KDE</a>\n      </li>\n      <li class=\"list__item--kinda\">\n        When using the nouveau driver, it runs on\n        <a href=\"https://github.com/swaywm/sway\">Sway</a>/<a href=\"https://gitlab.freedesktop.org/wlroots/wlroots\">wlroots</a>\n      </li>\n    </ul>\n  </section>\n</main>\n{{ end }}\n"
  },
  {
    "path": "layouts/partials/footer.html",
    "content": "<footer class=\"notes\">\n  Powered simply by plain HTML/CSS ❤️\n  <br />\n  This list is by no means exhaustive.\n  If something is missing or wrong, please create a PR/issue on the <a href=\"https://github.com/mpsq/arewewaylandyet\">repository</a>.\n  <br />\n  <span class=\"notes__date\">\n    Last updated: {{ now.Format \"2 January 2006\" }}\n  <span>\n</footer>\n"
  },
  {
    "path": "layouts/partials/head.html",
    "content": "<head>\n  <meta charset=\"utf-8\">\n\n  <meta name=\"description\" content=\"Mostly...\">\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n  <link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"img/apple-touch-icon.png\">\n  <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"img/favicon-32x32.png\">\n  <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"img/favicon-16x16.png\">\n  <link rel=\"manifest\" href=\"img/site.webmanifest\">\n  <link rel=\"shortcut icon\" href=\"img/favicon.ico\">\n  <meta name=\"theme-color\" content=\"#ffffff\">\n\n  <base href=\"{{ .Site.BaseURL }}\">\n  <title> {{ .Title }} </title>\n  <link rel=\"canonical\" href=\"{{ .Permalink }}\">\n\n  {{ $normalizeStyles := resources.Get \"css/normalize.css\" }}\n  {{ $mainStyles := resources.Get \"css/main.css\" }}\n  {{ $themePreload := resources.Get \"scripts/theme-preload.ts\" | js.Build }}\n  {{ $themeSwitcher := resources.Get \"scripts/theme-switcher.ts\" | js.Build }}\n\n  {{ if eq (getenv \"HUGO_ENV\") \"production\" }}\n    {{ $normalizeStyles = $normalizeStyles | resources.Minify | resources.Fingerprint \"sha512\" }}\n    {{ $mainStyles = $mainStyles | resources.Minify | resources.Fingerprint \"sha512\" }}\n    {{ $themePreload = $themePreload | resources.Minify | resources.Fingerprint \"sha512\" }}\n    {{ $themeSwitcher = $themeSwitcher | resources.Minify | resources.Fingerprint \"sha512\" }}\n  {{ end }}\n\n  <link rel=\"stylesheet\" href=\"{{ $normalizeStyles.RelPermalink }}\" integrity=\"{{ $normalizeStyles.Data.Integrity }}\">\n  <link rel=\"stylesheet\" href=\"{{ $mainStyles.RelPermalink }}\" integrity=\"{{ $mainStyles.Data.Integrity }}\">\n  <script type=\"text/javascript\" src=\"{{ $themePreload.RelPermalink }}\" integrity=\"{{ $themePreload.Data.Integrity }}\"></script>\n  <script async type=\"text/javascript\" src=\"{{ $themeSwitcher.RelPermalink }}\" integrity=\"{{ $themeSwitcher.Data.Integrity }}\"></script>\n</head>\n"
  },
  {
    "path": "layouts/partials/header.html",
    "content": "<button id=\"dark-mode\" class=\"btn btn--dark-mode\" type=\"button\">\n  Dark mode\n</button>\n"
  },
  {
    "path": "layouts/partials/title.html",
    "content": "<h1 class=\"title--question\">\n  Are we\n  <a class=\"accent--wayland wayland\" href=\"https://wayland.freedesktop.org/\">Wayland</a>\n  yet?\n</h1>\n"
  },
  {
    "path": "layouts/robots.txt",
    "content": "User-agent: *\n\nAllow: /sitemap.xml\nSitemap: https://arewewaylandyet.com/sitemap.xml\nHost: https://arewewaylandyet.com\n"
  },
  {
    "path": "lint-staged.config.js",
    "content": "module.exports = {\n  \"*.ts\": [\"npm run ci:lint\", \"npm run ci:type-check\"],\n}\n"
  },
  {
    "path": "netlify.toml",
    "content": "[build]\nbase = \"/\"\ncommand = \"hugo --gc --minify\"\npublish = \"public\"\n\n[context.production.environment]\nHUGO_VERSION = \"0.78.0\"\nHUGO_ENV = \"production\"\n\n[context.deploy-preview.environment]\nHUGO_VERSION = \"0.78.0\"\nHUGO_ENV = \"production\""
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"arewewaylandyet.get\",\n  \"version\": \"0.0.1\",\n  \"license\": \"MIT\",\n  \"scripts\": {\n    \"ci:lint\": \"eslint 'src/**/*.ts' --max-warnings=0\",\n    \"ci:type-check\": \"tsc --noEmit\",\n    \"type-check:watch\": \"npm run ci:type-check -- --watch\"\n  },\n  \"dependencies\": {\n    \"typescript\": \"4.0.5\"\n  },\n  \"devDependencies\": {\n    \"@typescript-eslint/eslint-plugin\": \"4.6.1\",\n    \"@typescript-eslint/parser\": \"4.6.1\",\n    \"eslint\": \"7.13.0\",\n    \"eslint-config-prettier\": \"6.15.0\",\n    \"eslint-config-standard\": \"16.0.1\",\n    \"eslint-config-standard-with-typescript\": \"19.0.1\",\n    \"eslint-import-resolver-typescript\": \"2.3.0\",\n    \"eslint-plugin-babel\": \"5.3.1\",\n    \"eslint-plugin-import\": \"2.22.1\",\n    \"eslint-plugin-node\": \"11.1.0\",\n    \"eslint-plugin-prettier\": \"3.1.4\",\n    \"eslint-plugin-promise\": \"4.2.1\",\n    \"eslint-plugin-standard\": \"4.0.2\",\n    \"husky\": \"4.3.0\",\n    \"lint-staged\": \"10.5.1\",\n    \"prettier\": \"2.1.2\"\n  },\n  \"browserslist\": {\n    \"production\": [\n      \">0.2%\",\n      \"not dead\",\n      \"not op_mini all\"\n    ],\n    \"development\": [\n      \"last 1 chrome version\",\n      \"last 1 firefox version\",\n      \"last 1 safari version\"\n    ]\n  }\n}\n"
  },
  {
    "path": "prettier.config.js",
    "content": "module.exports = {\n  arrowParens: \"always\",\n  endOfLine: \"auto\",\n  proseWrap: \"always\",\n  trailingComma: \"all\",\n  semi: false,\n  overrides: [\n    {\n      files: \"*.js\",\n      options: {\n        parser: \"babel\",\n      },\n    },\n    {\n      files: \"*.md\",\n      options: {\n        parser: \"mdx\",\n      },\n    },\n    {\n      files: \"*.ts\",\n      options: {\n        parser: \"typescript\",\n      },\n    },\n  ],\n}\n"
  },
  {
    "path": "src/css/main.css",
    "content": ":root {\n  --palette-black: #222222;\n  --palette-gray: #666666;\n  --palette-light-gray: #666666;\n  --palette-green: #4caf50;\n  --palette-nvidia: #76b900; /* official color */\n  --palette-red: #f44336;\n  --palette-wayland: #ffbc00; /* official color */\n  --palette-white: #fafafa;\n}\n\n[data-theme=\"dark\"] {\n  --palette-black: #fafafa;\n  --palette-white: #222222;\n  --palette-gray: #aaaaaa;\n  --palette-light-gray: #efefef;\n}\n\nhtml {\n  font-size: 16px;\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica,\n    Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  color: var(--palette-black);\n  background: var(--palette-white);\n}\n\na {\n  color: var(--palette-gray);\n}\n\nsmall {\n  font-size: 0.6rem;\n}\n\nbutton {\n  border: none;\n  background: transparent;\n  outline: none;\n}\n\n.title--question {\n  margin-top: 6rem;\n  font-size: 3rem;\n  color: var(--palette-gray);\n}\n\n.title--answer {\n  margin: 4rem 0;\n  font-size: 7rem;\n}\n\n.title--not-found {\n  margin: 4rem 0;\n}\n\n.weight--400 {\n  font-weight: 400;\n}\n\n.btn {\n  padding: 0.25rem 0.5rem;\n  color: var(--palette-black);\n  border: 2px solid transparent;\n}\n\n.btn:hover {\n  cursor: pointer;\n  color: var(--palette-white);\n  background: var(--palette-black);\n}\n\n.btn:focus {\n  outline: 2px dotted var(--palette-black);\n}\n\n.btn:active {\n  border-color: var(--palette-wayland);\n}\n\nmain {\n  max-width: 800px;\n  margin: 0 auto;\n  padding: 0 1rem;\n}\n\n.btn--dark-mode {\n  position: absolute;\n  right: 1rem;\n  top: 1rem;\n}\n\n.wayland {\n  text-decoration: none;\n  color: var(--palette-light-gray);\n}\n\n.wayland:hover {\n  color: var(--palette-white);\n}\n\n.accent--wayland {\n  padding: 0 8px;\n  background: var(--palette-wayland);\n}\n\n.accent--nvidia {\n  padding: 0 8px;\n  background: var(--palette-nvidia);\n}\n\n.section {\n  margin: 0 auto;\n  margin-top: 3rem;\n}\n\n.section__title {\n  font-size: 1.4rem;\n  font-weight: bolder;\n}\n\n.section__list {\n  margin-top: 2rem;\n  padding: 0;\n  font-size: 1.1rem;\n  text-align: left;\n  list-style-type: none;\n}\n\n.list__item--kinda,\n.list__item--ok,\n.list__item--ko {\n  position: relative;\n  margin: 0.75rem 0;\n  padding-left: 20px;\n}\n\n.list__item--kinda:before,\n.list__item--ok:before {\n  position: absolute;\n  display: inline-block;\n  left: 0.25rem;\n  height: 8px;\n  width: 4px;\n  top: 4px;\n  transform: rotate(45deg);\n  content: \" \";\n  border-bottom: 3px solid var(--palette-green);\n  border-right: 3px solid var(--palette-green);\n}\n\n.list__item--ko:before,\n.list__item--ko:after {\n  position: absolute;\n  left: 0.4rem;\n  top: 4px;\n  height: 12px;\n  width: 3px;\n  content: \" \";\n  background: var(--palette-red);\n}\n\n.list__item--ko:before {\n  transform: rotate(45deg);\n}\n\n.list__item--ko:after {\n  transform: rotate(-45deg);\n}\n\n.list__item--kinda:before {\n  border-color: var(--palette-gray);\n}\n\n.notes {\n  max-width: 800px;\n  margin: 0 auto;\n  margin-top: 3rem;\n  padding: 1rem 0;\n  padding-top: 2rem;\n  line-height: 1.5;\n  border-top: 1px solid var(--palette-black);\n  font-size: 0.9rem;\n}\n\n.notes__date {\n  color: var(--palette-gray);\n}\n\n@media (max-width: 812px) {\n  h1 {\n    margin-top: 4rem;\n  }\n\n  h2 {\n    margin: 3rem 0;\n    font-size: 5rem;\n  }\n}\n"
  },
  {
    "path": "src/css/normalize.css",
    "content": "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\nhtml {\n  line-height: 1.15;\n  -webkit-text-size-adjust: 100%;\n}\n\nbody {\n  margin: 0;\n}\n\nmain {\n  display: block;\n}\n\nh1 {\n  font-size: 2em;\n  margin: 0.67em 0;\n}\n\nhr {\n  box-sizing: content-box;\n  height: 0;\n  overflow: visible;\n}\n\npre {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\na {\n  background-color: transparent;\n}\n\nabbr[title] {\n  border-bottom: none;\n  text-decoration: underline;\n  text-decoration: underline dotted;\n}\n\nb,\nstrong {\n  font-weight: bolder;\n}\n\ncode,\nkbd,\nsamp {\n  font-family: monospace, monospace;\n  font-size: 1em;\n}\n\nsmall {\n  font-size: 80%;\n}\n\nsub,\nsup {\n  font-size: 75%;\n  line-height: 0;\n  position: relative;\n  vertical-align: baseline;\n}\n\nsub {\n  bottom: -0.25em;\n}\n\nsup {\n  top: -0.5em;\n}\n\nimg {\n  border-style: none;\n}\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n  font-family: inherit;\n  font-size: 100%;\n  line-height: 1.15;\n  margin: 0;\n}\n\nbutton,\ninput {\n  overflow: visible;\n}\n\nbutton,\nselect {\n  text-transform: none;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n  -webkit-appearance: button;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n  border-style: none;\n  padding: 0;\n}\n\nfieldset {\n  padding: 0.35em 0.75em 0.625em;\n}\n\nlegend {\n  box-sizing: border-box;\n  color: inherit;\n  display: table;\n  max-width: 100%;\n  padding: 0;\n  white-space: normal;\n}\n\ntextarea {\n  overflow: auto;\n}\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n  box-sizing: border-box;\n  padding: 0;\n}\n\ndetails {\n  display: block;\n}\n\nsummary {\n  display: list-item;\n}\n\ntemplate {\n  display: none;\n}\n\n[hidden] {\n  display: none;\n}\n"
  },
  {
    "path": "src/scripts/theme-preload.ts",
    "content": "import themeUtils from \"./theme-utils\"\n\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n  const theme = localStorage.getItem(\"theme\")\n\n  if (\n    window.matchMedia(\"(prefers-color-scheme: dark)\").matches &&\n    (theme == null || theme === \"dark\")\n  ) {\n    themeUtils.set(true)\n    return\n  }\n\n  if (theme != null) {\n    themeUtils.set(/dark/gi.test(theme))\n  }\n})\n"
  },
  {
    "path": "src/scripts/theme-switcher.ts",
    "content": "import themeUtils from \"./theme-utils\"\n\nconst btn = document.getElementById(\"dark-mode\")\n\nfunction switchTheme(): void {\n  if (btn != null) {\n    themeUtils.set(/dark/gi.test(btn.textContent ?? \"\"))\n  }\n}\n\nif (btn != null) {\n  btn.addEventListener(\"click\", switchTheme)\n}\n"
  },
  {
    "path": "src/scripts/theme-utils.ts",
    "content": "const _theme = { dark: [\"Light\", \"dark\"], light: [\"Dark\", \"light\"] }\n\nconst set = (dark: boolean): void => {\n  const [content, theme] = dark ? _theme.dark : _theme.light\n  const btn = document.getElementById(\"dark-mode\")\n\n  if (btn != null) {\n    btn.textContent = `${content} mode`\n    document.documentElement.setAttribute(\"data-theme\", theme)\n    localStorage.setItem(\"theme\", theme)\n  }\n}\n\nexport default {\n  set,\n}\n"
  },
  {
    "path": "static/_headers",
    "content": "/\n  Report-To: {\"group\":\"rui\",\"max_age\":31536000,\"endpoints\":[{\"url\":\"https://mpsq.report-uri.com/a/d/g\"}],\"include_subdomains\":false}\n  Content-Security-Policy: default-src 'none'; style-src 'self'; script-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self' https://fonts.gstatic.com data:; manifest-src 'self'; prefetch-src 'self'; media-src data:; worker-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; report-uri https://mpsq.report-uri.com/r/d/csp/enforce; report-to rui;\n  X-Frame-Options: DENY\n  X-XSS-Protection: 1; mode=block\n  X-Content-Type-Options: nosniff\n  Referrer-Policy: strict-origin-when-cross-origin\n  Permissions-Policy: camera=(), geolocation=(), microphone=()\n  Strict-Transport-Security: max-age=15768000\n  Cache-Control: public, max-age=60\n\n/*\n  Report-To: {\"group\":\"rui\",\"max_age\":31536000,\"endpoints\":[{\"url\":\"https://mpsq.report-uri.com/a/d/g\"}],\"include_subdomains\":false}\n  Content-Security-Policy: default-src 'none'; style-src 'self'; script-src 'self'; img-src 'self' data:; connect-src 'self'; font-src 'self' https://fonts.gstatic.com data:; manifest-src 'self'; prefetch-src 'self'; media-src data:; worker-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; report-uri https://mpsq.report-uri.com/r/d/csp/enforce; report-to rui;\n  X-Frame-Options: DENY\n  X-XSS-Protection: 1; mode=block\n  X-Content-Type-Options: nosniff\n  Referrer-Policy: strict-origin-when-cross-origin\n  Permissions-Policy: camera=(), geolocation=(), microphone=()\n  Strict-Transport-Security: max-age=15768000\n  Cache-Control: public, max-age=60\n\n/*.html\n  NEL: {\"report_to\":\"report-uri\",\"max_age\":31536000,\"include_subdomains\":false}\n\n/*.*.js\n  Cache-Control: public, max-age=31536000\n\n/*.*.txt\n  Cache-Control: public, max-age=31536000\n\n/*.*.css\n  Cache-Control: public, max-age=31536000\n\n/img/*\n  Cache-Control: public, max-age=172800\n\n/manifest.webmanifest\n  Cache-Control: public, max-age=172800\n"
  },
  {
    "path": "static/img/site.webmanifest",
    "content": "{\n    \"name\": \"\",\n    \"short_name\": \"\",\n    \"icons\": [\n        {\n            \"src\": \"android-chrome-96x96.png\",\n            \"sizes\": \"96x96\",\n            \"type\": \"image/png\"\n        }\n    ],\n    \"theme_color\": \"#ffffff\",\n    \"background_color\": \"#ffffff\",\n    \"display\": \"standalone\"\n}\n"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"allowJs\": false,\n    \"target\": \"es5\",\n    \"module\": \"esnext\",\n    \"lib\": [\"esnext\", \"DOM\"],\n    \"declaration\": true,\n    \"declarationMap\": true,\n\n    \"strict\": true,\n    \"strictNullChecks\": true,\n    \"strictFunctionTypes\": true,\n    \"strictBindCallApply\": true,\n    \"strictPropertyInitialization\": true,\n    \"noImplicitThis\": true,\n    \"alwaysStrict\": true,\n\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n\n    \"moduleResolution\": \"node\",\n    \"allowSyntheticDefaultImports\": true,\n    \"esModuleInterop\": true,\n    \"isolatedModules\": true,\n\n    \"resolveJsonModule\": true,\n    \"jsx\": \"react\",\n    \"noEmit\": true,\n    \"noImplicitAny\": false,\n    \"skipLibCheck\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"baseUrl\": \"./\",\n  },\n  \"include\": [\"src/\"]\n}\n"
  }
]