Index: src/views/partials/view-switcher.ejs
===================================================================
--- src/views/partials/view-switcher.ejs	(revision 3a3a88292d6219f0e396972813875179f0cfba37)
+++ src/views/partials/view-switcher.ejs	(revision e46ebaa7d0ba257f3e7916d2a4ecfa52e68617da)
@@ -23,4 +23,22 @@
   var _leesUit = _bc.indexOf('on-cirkel') >= 0;
   var _gridStandaard = (typeof site !== 'undefined' && site && site.feed_view_default === 'grid');
+  // Welke tweede weergave biedt deze site aan? Bij 'auto' tekenen we ZE ALLEBEI
+  // en laat de CSS er per viewport een zien -- Lezen op mobiel, Tijdlijn op
+  // desktop. Dat scheelt een resize-afhandeling en een knop die van naam
+  // verspringt terwijl je kijkt.
+  var _alt = (typeof site !== 'undefined' && site && site.feed_alt_view) || 'reader';
+  if (['reader', 'timeline', 'auto'].indexOf(_alt) < 0) _alt = 'reader';
+  var _tweede = _alt === 'auto' ? ['reader', 'timeline'] : [_alt];
+  // De tijdlijn WERKT wel in de cirkel -- dat is er zelfs de natuurlijke vorm.
+  // Alleen Lezen kan daar niet, want dat zijn berichten van anderen.
+  var _dood = function (v) { return v === 'reader' && _leesUit; };
+  // Staat er GEEN levende tweede knop, dan is Grid het enige dat overblijft en
+  // hoort die aan te staan. Bij een tijdlijn-site is dat in de cirkel niet zo:
+  // daar werkt de tijdlijn gewoon.
+  var _alleenGrid = _tweede.every(_dood);
+  var _icoon = {
+    reader: '<path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/>',
+    timeline: '<line x1="8" y1="6" x2="21" y2="6"/><line x1="8" y1="12" x2="21" y2="12"/><line x1="8" y1="18" x2="21" y2="18"/><line x1="3" y1="6" x2="3.01" y2="6"/><line x1="3" y1="12" x2="3.01" y2="12"/><line x1="3" y1="18" x2="3.01" y2="18"/>',
+  };
 %>
 <div class="view-switcher-wrap">
@@ -49,16 +67,18 @@
     <div class="view-switcher" role="tablist" aria-label="Weergave">
 
-      <%# Lezen is de standaardweergave sinds Tijdlijn weg is: hele berichten,
-          één per scherm. De chronologische lijst bestaat nog wel als opmaak
-          (.feed-timeline, ook op de cirkel en het archief), maar is geen KEUZE
-          meer -- daar was Lezen de betere vorm van. %>
-      <button type="button" class="view-switch-btn" data-view="reader" role="tab"
-              <%- _leesUit ? 'disabled aria-disabled="true" tabindex="-1" title="' + t('switch.reader_solo_only') + '"' : '' %>
-              aria-selected="<%= (!_leesUit && !_neutral && !_gridStandaard) ? 'true' : 'false' %>">
-        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>
-        <span><%= t('switch.reader') %></span>
+      <%# De tweede weergave naast Grid. Welke dat is, staat in de instellingen
+          van de site (feed_alt_view). Bij 'auto' staan ze er allebei en kiest
+          een mediaquery; vandaar de klasse vs-alleen-*. %>
+      <% _tweede.forEach(function (v) { %>
+      <button type="button" class="view-switch-btn<%= _alt === 'auto' ? ' vs-alleen-' + (v === 'reader' ? 'mobiel' : 'desktop') : '' %>"
+              data-view="<%= v %>" role="tab"
+              <%- _dood(v) ? 'disabled aria-disabled="true" tabindex="-1" title="' + t('switch.reader_solo_only') + '"' : '' %>
+              aria-selected="<%= (!_dood(v) && !_neutral && !_gridStandaard) ? 'true' : 'false' %>">
+        <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><%- _icoon[v] %></svg>
+        <span><%= t('switch.' + v) %></span>
       </button>
+      <% }); %>
       <button type="button" class="view-switch-btn" data-view="grid" role="tab"
-              aria-selected="<%= (!_neutral && (_leesUit || _gridStandaard)) ? 'true' : 'false' %>">
+              aria-selected="<%= (!_neutral && (_alleenGrid || _gridStandaard)) ? 'true' : 'false' %>">
         <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>
         <span><%= t('switch.grid') %></span>
