<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotfiles/run_onchange_after_deploy-flatpak-overrides.sh.tmpl, branch master</title>
<subtitle>My linux config and rc files</subtitle>
<id>https://git.sommerfeld.dev/dotfiles/atom/run_onchange_after_deploy-flatpak-overrides.sh.tmpl?h=master</id>
<link rel='self' href='https://git.sommerfeld.dev/dotfiles/atom/run_onchange_after_deploy-flatpak-overrides.sh.tmpl?h=master'/>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/'/>
<updated>2026-05-13T12:43:41Z</updated>
<entry>
<title>feat(teams): distinct tray icons for Sii (blue S) and XSight (orange X)</title>
<updated>2026-05-13T12:43:41Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:41Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=6efbd1cd57f72f80808c7992ea03642f65c7aa2a'/>
<id>urn:sha1:6efbd1cd57f72f80808c7992ea03642f65c7aa2a</id>
<content type='text'>
Adds two generated 256x256 hicolor PNG icons under
~/.local/share/icons/hicolor/256x256/apps/ and wires them up:

  * Icon=teams-{sii,xsight}  -&gt; launcher / waybar / sway use them
  * --appIcon=&lt;absolute path&gt; -&gt; electron tray icon picks them up
                                  (teams-for-linux respects this flag)

The flatpak override script gains a --filesystem=xdg-data/icons:ro
binding for com.github.IsmaelMartinez.teams_for_linux so the absolute
icon path is reachable from inside the sandbox.
</content>
</entry>
<entry>
<title>feat(udev,flatpak): allow ungoogled-chromium to talk to ZSA keyboards</title>
<updated>2026-05-13T12:43:39Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=6ab4b0faef22b4fda4b6a3b45dca4c3858eb8802'/>
<id>urn:sha1:6ab4b0faef22b4fda4b6a3b45dca4c3858eb8802</id>
<content type='text'>
usevia.app uses WebHID to talk to /dev/hidraw* directly. Two layers
were blocking it:

1. Host: no udev rule existed for ZSA boards, so /dev/hidraw nodes
   were root-only. Add etc/udev/rules.d/50-zsa.rules covering the ZSA
   VID 3297 (ErgoDox EZ / Moonlander / Voyager) with TAG+=uaccess so
   logind grants the active session user access. Also include the two
   bootloader VIDs used during firmware flashing for completeness.

2. Sandbox: the chromium flatpak only sees /dev/dri by default. Add a
   --device=all override (flatpak has no finer-grained device knob).
   The host udev rule still gates which hidraw nodes the user can
   actually open, so this isn't a meaningful escalation.

Also wire `udevadm control --reload &amp;&amp; udevadm trigger` into the etc
deploy script so rule changes apply without a reboot or replug.
</content>
</entry>
<entry>
<title>revert(flatpak): drop font filesystem override (flatpak auto-shares)</title>
<updated>2026-05-13T12:43:30Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=7c0e7252eefd539345b7bd5b3ce955bc75307162'/>
<id>urn:sha1:7c0e7252eefd539345b7bd5b3ce955bc75307162</id>
<content type='text'>
flatpak refuses '/usr/share/fonts' ("Path /usr is reserved") and
auto-mounts host fonts to /run/host/fonts and ~/.local/share/fonts to
/run/host/user-fonts already. The override was a no-op. The remaining
emoji/nerd-glyph rendering issue in browsers is browser-side font
fallback, not flatpak sandboxing.
</content>
</entry>
<entry>
<title>feat(flatpak): expose host fonts globally so browsers render emoji</title>
<updated>2026-05-13T12:43:30Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=6bc872c28d44f42fe53b755be661257e8533df0f'/>
<id>urn:sha1:6bc872c28d44f42fe53b755be661257e8533df0f</id>
<content type='text'>
LibreWolf and ungoogled-chromium were rendering emoji and nerd-font
glyphs as tofu because flatpaks don't see /usr/share/fonts by default.
Apply a global override (no app argument) granting read-only access to
the system font dirs and the user's fontconfig. noto-fonts-emoji is
already in meta/fonts.txt.
</content>
</entry>
<entry>
<title>feat: vim nav in wofi, bemoji, clip picker, webcam glyph fix</title>
<updated>2026-05-13T12:43:30Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=651ec1f8b7470e2ffac848b4fe99ce7ccdb826dd'/>
<id>urn:sha1:651ec1f8b7470e2ffac848b4fe99ce7ccdb826dd</id>
<content type='text'>
- wofi config: key_up/key_down accept Up,k / Down,j; Ctrl-u/Ctrl-d for
  page jumps. Picker scripts auto-load this since they only pass --style.

- waybar webcam glyph: U+F0D5D (camera/photo, looked Instagram-y) -&gt;
  U+F0567 nf-md-video (handheld video camera).

- Clipboard picker migrated from fuzzel to wofi for consistency with the
  notification picker. New driver dot_config/waybar/clip-picker.sh:
    pick   (Mod+p)        Enter pastes, Alt-d deletes
    delete (Mod+Shift+p)  Enter deletes
  No clipboard "read" indicator: Wayland has no API for observing reads.

- Emoji picker: bemoji on Mod+period, driven through wofi (so vim nav
  applies there too) and configured to type + copy via wtype.

- LibreWolf flatpak: --device=all override so v4l2 webcams work. Flatpak
  has no finer-grained device flag.

- KEYBINDS.md updated: Mod+p / Mod+Shift+p now describe wofi behavior;
  Mod+period documented.
</content>
</entry>
<entry>
<title>feat(flatpak): sandbox zathura + add mpv hybrid for browser/mail handoffs</title>
<updated>2026-05-13T12:43:25Z</updated>
<author>
<name>sommerfeld</name>
<email>sommerfeld@sommerfeld.dev</email>
</author>
<published>2026-05-13T12:43:25Z</published>
<link rel='alternate' type='text/html' href='https://git.sommerfeld.dev/dotfiles/commit/?id=db229deaef3b0c88f9930bd168e1779f7a4c6074'/>
<id>urn:sha1:db229deaef3b0c88f9930bd168e1779f7a4c6074</id>
<content type='text'>
Defense-in-depth for the cross-sandbox handoff vector: when the
LibreWolf/Thunderbird flatpaks open a downloaded PDF or video via the
OpenURI portal, the receiving app currently runs natively with full
$HOME access — defeating part of the browser/mail isolation.

- meta/flatpak.txt: add org.pwmt.zathura, io.mpv.Mpv
- meta/wayland.txt: drop native zathura + zathura-pdf-mupdf
- meta/media.txt: keep native mpv (streamlink, /tmp/mpvsocket IPC,
  fast yt-dlp) — flatpak mpv is *additional*, only as the mimeapps
  default for video/audio to receive sandboxed handoffs
- dot_config/mimeapps.list: rewrite mpv.desktop -&gt; io.mpv.Mpv.desktop,
  zathura-pdf-mupdf.desktop -&gt; org.pwmt.zathura.desktop, and replace
  stale userapp-Thunderbird-* entries with org.mozilla.Thunderbird.desktop
- run_onchange_after_deploy-flatpak-overrides.sh.tmpl (new):
  --filesystem=xdg-config/{zathura,mpv}:ro so the flatpaks read our
  chezmoi-managed configs as a single source of truth
- README: media row + new deploy-script row

Manual one-shot on host: chezmoi apply -v.
The pteid bridge already iterates a flatpak app list, so cartão de
cidadão remains correctly registered for the Mozilla flatpaks. Native
mpv config (input-ipc-server) keeps working since each flatpak has its
own /tmp; no socket collision.
</content>
</entry>
</feed>
