<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>rail</title>
    <link rel="self" type="application/atom+xml" href="https://flufftech.net/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://flufftech.net"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2025-05-11T00:00:00+00:00</updated>
    <id>https://flufftech.net/atom.xml</id>
    <entry xml:lang="en">
        <title>This website is now using Zola</title>
        <published>2025-05-11T00:00:00+00:00</published>
        <updated>2025-05-11T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              rail
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://flufftech.net/posts/this-website-now-uses-zola/"/>
        <id>https://flufftech.net/posts/this-website-now-uses-zola/</id>
        
        <content type="html" xml:base="https://flufftech.net/posts/this-website-now-uses-zola/">&lt;p&gt;After writing the &lt;a href=&quot;..&#x2F;signal-desktop-natively-on-wayland&#x2F;&quot;&gt;last blog post&lt;&#x2F;a&gt; it became obvious to me that migrating to a proper static site generator with templates and all the fancy stuff is necessary, so that&#x27;s what I&#x27;ve been working on for the past few days.&lt;&#x2F;p&gt;
&lt;p&gt;Historically this website has always been just raw HTML with a bunch of CSS thrown at it. That had it&#x27;s benefits like me being able to just tinker with everything and maintain a sense of absolute minimalism (which to be honest was completely fine back when it used to be just a front page), but as the site grew a bit, it became a massive chore and a pain in the ass every time I wanted to change or add anything.&lt;&#x2F;p&gt;
&lt;p&gt;So anyways, my choice was mostly limited to &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;gohugo.io&quot;&gt;Hugo&lt;&#x2F;a&gt; (written in Go) and &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.getzola.org&quot;&gt;Zola&lt;&#x2F;a&gt; (written in Rust). Ultimately I decided to give Zola a go and stuck with that choice.&lt;&#x2F;p&gt;
&lt;p&gt;I still decided to not use any of the publicly available templates and just re-created the whole layout of my original page with some changes, because why not.&lt;&#x2F;p&gt;
&lt;p&gt;In this post I will yap a little bit about my experience with this transition, what improvements happened, what it means for this blog and which things annoyed me in the process. Enjoy.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;changes&quot;&gt;Changes&lt;&#x2F;h2&gt;
&lt;p&gt;For the starters, while migrating to Zola i decided to make some changes to the website. Some content got dropped. It may come back at some point in a slightly different form but my photography showcase and a somewhat already outdated &quot;my hardware&quot; pages are gone. This is not an accident.&lt;&#x2F;p&gt;
&lt;p&gt;Also, the &lt;a href=&quot;&#x2F;about&#x2F;&quot;&gt;about me&lt;&#x2F;a&gt; page has been refreshed. Go give a look if you want.&lt;&#x2F;p&gt;
&lt;p&gt;Lastly, the theme while mostly unmodified (not without trying, I wanted to give the color scheme a refresh but hit a creative wall) has some more-or-less minor changes too. Honestly I like it better now :3&lt;&#x2F;p&gt;
&lt;h2 id=&quot;benefits-for-me-and-maybe-for-you&quot;&gt;Benefits for me and (maybe) for you&lt;&#x2F;h2&gt;
&lt;p&gt;So, why do I even bothered so much?&lt;&#x2F;p&gt;
&lt;p&gt;Well, mainly because I wanted to write more blogs for a while and one of the things stopping me (besides ADHD) has been the painstaking process of manually working with HTML to post anything and then very carefully verifying that everything works.&lt;&#x2F;p&gt;
&lt;p&gt;In a sense, every blog post means writing a website from the scratch 🥴&lt;&#x2F;p&gt;
&lt;p&gt;Now I can work with a &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Markdown&quot;&gt;regular markdown&lt;&#x2F;a&gt; to write content which is way faster and less annoying, so you can (maybe! pls don&#x27;t hold me liable here!) expect more posts coming in the foreseeable future.&lt;&#x2F;p&gt;
&lt;p&gt;In addition to that the &lt;a href=&quot;&#x2F;atom.xml&quot;&gt;Atom&#x2F;RSS feed&lt;&#x2F;a&gt; is now automatically generated, so the chance of me forgetting to update it when I publish new content drastically drops ^^&lt;&#x2F;p&gt;
&lt;p&gt;Also finally I decided to publish the source code of this site publicly now that it&#x27;s a bit less of a hot mess – it&#x27;s &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;git.vulpinecitrus.info&#x2F;rail&#x2F;flufftech-net&quot;&gt;available here&lt;&#x2F;a&gt; on the &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;forgejo.org&#x2F;&quot;&gt;Forgejo&lt;&#x2F;a&gt; instance hosted by my &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;vulpinecitrus.info&#x2F;&quot;&gt;partner&lt;&#x2F;a&gt; :3&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-the-switch-was-a-little-annoying&quot;&gt;Why the switch was a little annoying&lt;&#x2F;h2&gt;
&lt;p&gt;Some things with getting into static site generators with their own templating engines are a bit annoying. Honestly what made me struggle a lot here especially at the very beginning was the documentation.&lt;&#x2F;p&gt;
&lt;p&gt;I&#x27;m mostly mentioning it here at all to remind those of you reading this about something I find very important while writing good docs.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Please, for the love of gods, make sure you don&#x27;t write it for yourself, actually&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Zola&#x27;s documentation in many aspects strikes me as a text written by the developers for themselves, without even realizing that. It makes a lot of assumptions about the knowledge of the reader that for many (most?) of them won&#x27;t be true.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s very hard to find basic information about the syntax of templating language and how different elements of the site interact with each other, and those bits that mention it are very technical in a way that might be difficult to understand for many people.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;summary&quot;&gt;Summary&lt;&#x2F;h2&gt;
&lt;p&gt;So yeah to end this too-long-for-its-own-good blog, I had fun. And now my site is better and easier to deploy new content. I will probably make some updates to it and improve it further soon, but for now I&#x27;m satisfied enough to show it to the world.&lt;&#x2F;p&gt;
&lt;p&gt;Cya!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Running Signal desktop app natively on Wayland</title>
        <published>2025-05-04T00:00:00+00:00</published>
        <updated>2025-05-04T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              rail
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://flufftech.net/posts/signal-desktop-natively-on-wayland/"/>
        <id>https://flufftech.net/posts/signal-desktop-natively-on-wayland/</id>
        
        <content type="html" xml:base="https://flufftech.net/posts/signal-desktop-natively-on-wayland/">&lt;p&gt;Signal, the private messaging app, ships an Electron-based desktop application available for Windows, Mac and Linux computers.&lt;&#x2F;p&gt;
&lt;p&gt;The Linux version by default does not support Wayland natively and will run through XWayland in a Wayland environment despite generally accepted system-wide configuration that should cause a different behavior.&lt;&#x2F;p&gt;
&lt;p&gt;That is not without a reason. Signal desktop for Linux ships its own packaged Electron build which does not respect &lt;code&gt;$HOME&#x2F;.config&#x2F;electron-flags.conf&lt;&#x2F;code&gt; configuration nor has any custom &lt;code&gt;-flags.conf&lt;&#x2F;code&gt; file to pull configuration from. I can speculate this behavior is due to (understandable) security concerns that would come from using external system-wide Electron and its configurations.&lt;&#x2F;p&gt;
&lt;p&gt;In this post I will summarize my journey into configuring Signal to work natively on Wayland and issues I encountered along the way.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;making-signal-not-use-xwayland&quot;&gt;Making Signal not use XWayland&lt;&#x2F;h2&gt;
&lt;div class=&quot;side-note&quot;&gt;
    &lt;strong&gt;Note:&lt;&#x2F;strong&gt;&amp;nbsp;At the beginning of writing this blog, I was not aware of Signal actually respecting an environment variable and wanted to suggest a different, more complicated solution. The things you get to know ^^
&lt;&#x2F;div&gt;
&lt;p&gt;Setting &lt;code&gt;ELECTRON_OZONE_PLATFORM_HINT&lt;&#x2F;code&gt; environment variable to &lt;code&gt;&quot;auto&quot;&lt;&#x2F;code&gt; will make Signal start without using XWayland.&lt;&#x2F;p&gt;
&lt;p&gt;This behavior didn&#x27;t use to be the case in the past, and since Signal doesn&#x27;t respect Electron flags set in a config file, the only option of making it run on Wayland was adding command-line flags directly into the &lt;code&gt;.desktop&lt;&#x2F;code&gt; file. That obviously had its implications for example for window managers such as Sway, because they don&#x27;t use those files to start applications.&lt;&#x2F;p&gt;
&lt;p&gt;Usually the easiest way to set up an environmental variable for your system is by creating a file in &lt;code&gt;~&#x2F;.config&#x2F;environment.d&#x2F;&lt;&#x2F;code&gt; folder. I will assume you never set it up before, so here is what you need to do:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; mkdir&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ~&#x2F;.config&#x2F;environment.d&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; echo&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;ELECTRON_OZONE_PLATFORM_HINT=&amp;quot;auto&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;&amp;#39;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt; &amp;gt;&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ~&#x2F;.config&#x2F;environment.d&#x2F;variables.conf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;div class=&quot;side-note&quot;&gt;
    &lt;strong&gt;Note:&lt;&#x2F;strong&gt;&amp;nbsp;This solution only works for distributions using systemd. If you don&#x27;t use one of those, I&#x27;m sure you know best how to set up env variables on your system!
&lt;&#x2F;div&gt;
&lt;p&gt;After variables from the configuration file are loaded, Signal (and other Electron applications) should start without using XWayland. You can verify that by running &lt;code&gt;xlsclients&lt;&#x2F;code&gt; (&lt;code&gt;signal-desktop&lt;&#x2F;code&gt; should &lt;strong&gt;not&lt;&#x2F;strong&gt; appear there).&lt;&#x2F;p&gt;
&lt;p&gt;However, this does not mean there are no issues…&lt;&#x2F;p&gt;
&lt;h2 id=&quot;problems-ahead&quot;&gt;Problems ahead&lt;&#x2F;h2&gt;
&lt;p&gt;There are &lt;em&gt;some&lt;&#x2F;em&gt; problems&lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;signalapp&#x2F;Signal-Desktop&#x2F;issues?q=state%3Aopen%20label%3A%22Wayland%22&quot;&gt;&lt;sup&gt;[1]&lt;&#x2F;sup&gt;&lt;&#x2F;a&gt; with running Signal natively on Wayland. I will only cover some of them here, consult GitHub if you encounter different ones.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;problem-1-starting-minimized&quot;&gt;Problem 1: Starting minimized&lt;&#x2F;h3&gt;
&lt;div class=&quot;side-note&quot;&gt;
    &lt;strong&gt;Note:&lt;&#x2F;strong&gt;&amp;nbsp;Check if GitHub issue &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;signalapp&#x2F;Signal-Desktop&#x2F;issues&#x2F;6368&quot;&gt;#6368&lt;&#x2F;a&gt; hasn&#x27;t been fixed at the time of reading. Maybe you don&#x27;t need to do anything!
&lt;&#x2F;div&gt;
&lt;p&gt;Trying to run Signal, you may notice it seems to not work initially, or only starts in system tray, not launching the window and you need to start the application twice or more to actually get it running. This might not be a desired behavior and does not normally happen under X11.&lt;&#x2F;p&gt;
&lt;p&gt;This problem can be approached in a few different ways.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;solution-1-json-config&quot;&gt;Solution 1: JSON config&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;The first solution&lt;&#x2F;strong&gt; is changing the &lt;code&gt;maximized&lt;&#x2F;code&gt; key within &lt;code&gt;~&#x2F;.config&#x2F;Signal&#x2F;ephemeral.json&lt;&#x2F;code&gt; file from &lt;code&gt;false&lt;&#x2F;code&gt; to &lt;code&gt;true&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;But this does not fully solve the issue, as contents of &lt;code&gt;~&#x2F;.config&#x2F;Signal&#x2F;ephemeral.json&lt;&#x2F;code&gt; are overwritten by Signal on every startup. To solve this, you may need to create a script that will be run every time the app is closed or before it is started, setting the window maximization key to &lt;code&gt;true&lt;&#x2F;code&gt; every time.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;solution-2-desktop-file&quot;&gt;Solution 2: &lt;code&gt;.desktop&lt;&#x2F;code&gt; file&lt;&#x2F;h4&gt;
&lt;div class=&quot;side-note&quot;&gt;
    &lt;strong&gt;Note:&lt;&#x2F;strong&gt;&amp;nbsp;If you use a window manager, ignore this section entirely and skip to the &lt;a href=&quot;#solution-3-patched-build&quot;&gt;section below&lt;&#x2F;a&gt; instead.
&lt;&#x2F;div&gt;
&lt;p&gt;Another solution is less elegant and involves modifying the &lt;code&gt;.desktop&lt;&#x2F;code&gt; file used to run the application in a desktop environment. That file controls entries in the application list!&lt;&#x2F;p&gt;
&lt;p&gt;First, you need to copy a system-wide &lt;code&gt;.desktop&lt;&#x2F;code&gt; file and make a local copy of it. Then open it using a text editor:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; cp&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; &#x2F;usr&#x2F;share&#x2F;applications&#x2F;signal-desktop.desktop&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ~&#x2F;.local&#x2F;share&#x2F;applications&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; nano&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ~&#x2F;.local&#x2F;share&#x2F;applications&#x2F;signal-desktop.desktop&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Once you have the file opened, find a line starting with &lt;code&gt;Exec=&lt;&#x2F;code&gt;. It should be somewhere in the upper half of the file. &lt;strong&gt;Replace it&lt;&#x2F;strong&gt; with:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Exec&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#D73A49, #F97583);&quot;&gt;=&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;i&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;g&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;n&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;a&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;l&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;-&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;d&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;e&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;s&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;k&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;t&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;o&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt;p&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; sleep&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#005CC5, #79B8FF);&quot;&gt; 1&lt;&#x2F;span&gt;&lt;span&gt; &amp;amp;&amp;amp;&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt; signal-desktop&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;After saving, you need to update the database of &lt;code&gt;.desktop&lt;&#x2F;code&gt; files:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: light-dark(#6F42C1, #B392F0);&quot;&gt;$&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; update-desktop-database&lt;&#x2F;span&gt;&lt;span style=&quot;color: light-dark(#032F62, #9ECBFF);&quot;&gt; ~&#x2F;.local&#x2F;share&#x2F;applications&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;That should result in the Signal application being called twice, once to start it minimized and once more to make it show up.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;solution-3-patched-build&quot;&gt;Solution 3: Patched build&lt;&#x2F;h4&gt;
&lt;p&gt;&lt;strong&gt;Third way&lt;&#x2F;strong&gt; of fixing this is, if available on your distribution, installing &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;aur.archlinux.org&#x2F;packages&#x2F;signal-desktop-fix-sway&quot;&gt;&lt;code&gt;signal-desktop-fix-sway&lt;&#x2F;code&gt;&lt;&#x2F;a&gt; build of Signal. It does fix this issue. Said package is available for example on Arch Linux through AUR.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;problem-2-visual-glitches&quot;&gt;Problem 2: Visual glitches&lt;&#x2F;h3&gt;
&lt;p&gt;Running Signal on Wayland not through XWayland may also cause a bunch of different visual glitches such as visual stuttering, glitchy shadows around the window or blurriness (e.g. with UI fractional scaling enabled). Unfortunately I do not know a way of fixing those. We probably need to wait for the developers to fix this :&#x2F;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;If you have any questions, feel free to reach out to me on the fediverse – you can find me there under &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;social.flufftech.net&#x2F;@rail&quot;&gt;&lt;code&gt;@rail@flufftech.net&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;If you enjoyed this blog post you can share it or support me by &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ko-fi.com&#x2F;railthefop&quot;&gt;buying me a coffee&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Jak skonfigurować własny router z internetem od Orange (i włączyć dual-stack IPv6)</title>
        <published>2025-01-17T00:00:00+00:00</published>
        <updated>2025-01-17T00:00:00+00:00</updated>
        
        <author>
          <name>
            
              rail
            
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://flufftech.net/posts/orange-wlasny-router-dualstack-ipv6/"/>
        <id>https://flufftech.net/posts/orange-wlasny-router-dualstack-ipv6/</id>
        
        <content type="html" xml:base="https://flufftech.net/posts/orange-wlasny-router-dualstack-ipv6/">&lt;p&gt;Każdy mający mniej więcej jakieś pojęcie na temat sieci, albo chcący nauczyć się o nich więcej bardzo szybko zauważa pewną niemal uniwersalną prawdę – sprzęt wypożyczany klientom przed dostawców internetu jest generalnie na granicy używalności.&lt;&#x2F;p&gt;
&lt;p&gt;Nie inaczej jest z internetem stacjonarnym od Orange, gdzie wydawane przed pomarańczowego operatora routery „wszystko w jednym” są skrajnie ograniczone pod względem możliwości konfiguracji (nie można zmienić serwerów DNS, możliwości firewalla i tworzenia podsieci są bardzo podstawowe), a sam operator swoimi praktykami zdaje się bardzo chcieć zniechęcać użytkowników do wszelkiego kombinowania.&lt;&#x2F;p&gt;
&lt;p&gt;Dopóki nie nastąpi odpowiednia &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;fsfe.org&#x2F;activities&#x2F;routers&#x2F;routers.en.html&quot;&gt;regulacja&lt;&#x2F;a&gt;, zignorujmy wszystkie poprzednie instrukcje i się tym nie przejmujmy. Okazuje się, że własny sprzęt nie tylko daje większą swobodę, ale też umożliwia dość ciekawe rzeczy. O tym za moment.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;co-jest-ci-potrzebne&quot;&gt;Co jest ci potrzebne&lt;&#x2F;h2&gt;
&lt;p&gt;Zacznijmy od tego, co jest niezbędne, aby kontynuować:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Kablowy internet od Orange (FTTH&#x2F;xDSL)&lt;&#x2F;li&gt;
&lt;li&gt;Router z obsługą VLAN-ów i PPPoE (właściwie każdy na rynku, włączając nawet proste i tanie konsumenckie egzemplarze)
&lt;ul&gt;
&lt;li&gt;W przypadku DSL-a: router ze wbudowanym modemem (i opcjonalnie funkcją bridge)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;W przypadku światłowodu: &lt;strong&gt;dedykowany terminal światłowodowy&lt;&#x2F;strong&gt; (ONT) – i cierpliwość do obsługi klienta Orange, aby go dostać&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Jeśli czytasz ten wpis i instalacja światłowodu od Orange dopiero przed tobą upewnij się, aby &lt;strong&gt;poprosić o dedykowany ONT&lt;&#x2F;strong&gt;. Przypomnij o tym technikowi przy potwierdzaniu wizyty. W takiej sytuacji otrzymasz go od ręki i bez żadnych dodatkowych opłat.&lt;&#x2F;p&gt;

&lt;figure class=&quot;image&quot;&gt;
    &lt;a href=&quot;&amp;#x2F;assets&amp;#x2F;blogs&amp;#x2F;orange-wlasny-router-dualstack-ipv6&amp;#x2F;huawei-ont-hackgpon.jpg&quot;&gt;
        &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;flufftech.net&amp;#x2F;processed_images&amp;#x2F;huawei-ont-hackgpon.f411815a4c5d0139.webp&quot; alt=&quot;Fotografia przedstawiajace trzy białe urządzenia Huawei w plastikowych obudowach wyłożone na stole&quot; load=&quot;lazy&quot;&gt;
    &lt;&#x2F;a&gt;
    
    &lt;figcaption&gt;Terminale światłowodowe firmy Huawei. &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;hack-gpon.org&#x2F;ont-huawei-hg8010h&#x2F;&quot;&gt;hack-gpon.org&lt;&#x2F;a&gt;&lt;&#x2F;figcaption&gt;
    
&lt;&#x2F;figure&gt;
&lt;p&gt;Jeśli masz już zainstalowany światłowód a twoim jedynym urządzeniem końcowym jest FunBox, to przed Tobą telefon do obsługi klienta, podczas którego z dużym prawdopodobieństwem spróbują cię przekonać, że wcale go nie potrzebujesz. Gdy zrozumieją, że jednak potrzebujesz, to jedyną opcją dostawy ONT do ciebie będzie &lt;strong&gt;odpłatna&lt;&#x2F;strong&gt; wizyta technika. Tylko po to, żeby dostarczyć ci pudełko.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;istotne-uwagi-inne-uslugi-orange&quot;&gt;Istotne uwagi – inne usługi Orange&lt;&#x2F;h2&gt;
&lt;p&gt;W przypadku korzystania z telewizji i&#x2F;lub telefonii internetowej od Orange przejście na własny sprzęt może być bardziej skomplikowane.&lt;&#x2F;p&gt;
&lt;p&gt;Samemu mam tylko internet od Orange. Korzystając z VoIP, niezbędna będzie osobna bramka SIP bądź router z taką wbudowaną oraz wywalczenie od Orange danych konfiguracji tej usługi.&lt;&#x2F;p&gt;
&lt;p&gt;W przypadku IPTV niezbędne może być odpowiednie skonfigurowanie VLAN-ów w sieci lokalnej – nie mam wiedzy na ten temat, polecam ten wpis na trzepaku: „&lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;trzepak.pl&#x2F;viewtopic.php?t=51177&quot;&gt;Orange FTTH Triple Play na własnym sprzęcie&lt;&#x2F;a&gt;”.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;konfiguracja-podstawowa&quot;&gt;Konfiguracja podstawowa&lt;&#x2F;h2&gt;
&lt;p&gt;Dokładne kroki będą się różnić w zależności od używanego routera, ale ogólna zasada jest dość prosta i identyczna dla światłowodu i DSL-a&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Konfigurujemy VLAN 35.0 na interfejsie WAN – tym, do którego podłączysz ONT&lt;&#x2F;li&gt;
&lt;li&gt;Ustawiamy rodzaj połączenia z internetem na PPPoE (PPPoA w DSL-u)&lt;&#x2F;li&gt;
&lt;li&gt;Logujemy się do sieci operatora (dane logowania do znalezienia m.in. w aplikacji Mój Orange), np. &lt;code&gt;XXXXXXX@neostrada.pl&lt;&#x2F;code&gt;. Polecam dodanie przedrostka &lt;code&gt;BEZ_OCHRONY-&lt;&#x2F;code&gt; do nazwy użytkownika, co poskutkuje wyłączeniem (większości) firewalla po stronie ISP.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;W większości wypadków to tyle. Połączenie z internetem powinno być aktywne, pozostawiając wszystkie inne ustawienia jak DNS, DHCP, firewall, itd. do twojej dyspozycji.&lt;&#x2F;p&gt;

&lt;figure class=&quot;image&quot;&gt;
    &lt;a href=&quot;&amp;#x2F;assets&amp;#x2F;blogs&amp;#x2F;orange-wlasny-router-dualstack-ipv6&amp;#x2F;setup-internet-orange.webp&quot;&gt;
        &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;flufftech.net&amp;#x2F;processed_images&amp;#x2F;setup-internet-orange.6343eafb7dcf6efd.webp&quot; alt=&quot;Zakurzona metalowa szafka z pułkami, a na nich kolejno: terminal światłowodowy, mały 5-cio portowy switch, mały komputer Fujitsu oraz stojący na nim router Huawei&quot; load=&quot;lazy&quot;&gt;
    &lt;&#x2F;a&gt;
    
    &lt;figcaption&gt;Własny router i access point podłączony do ONT Orange. Praca własna, CC BY-NC-SA 4.0&lt;&#x2F;figcaption&gt;
    
&lt;&#x2F;figure&gt;
&lt;h2 id=&quot;inne-ciekawe-opcje-ipv6-i-dual-stack&quot;&gt;Inne ciekawe opcje – IPv6 i dual-stack&lt;&#x2F;h2&gt;
&lt;p&gt;Orange jest de facto jedynym operatorem w Polsce traktującym IPv6 choćby w połowie poważnie. Wszyscy klienci sieci mobilnej Orange od kilku lat otrzymują wyłącznie adresy IPv6 (z translacją adresów IPv4), a każdy klient sieci stacjonarnej może otrzymać blok adresów IPv6 o rozmiarze &lt;code&gt;&#x2F;56&lt;&#x2F;code&gt;. Nie oznacza to jednak, że konfiguracja i praktyki po stronie operatora względem IPv6 są całkowicie dobre.&lt;&#x2F;p&gt;
&lt;p&gt;Jednym z problemów jest choćby to, że wsparcie IPv6 działa na zasadzie dobrowolnej aktywacji (opt-in), a gdy klient się na taką zdecyduje dodając do danych logowania PPPoE sufiks &lt;code&gt;&#x2F;ipv6&lt;&#x2F;code&gt;, automatycznie &lt;strong&gt;traci przez to dostęp do publicznego adresu IPv4&lt;&#x2F;strong&gt; (Dual-Stack Lite).&lt;&#x2F;p&gt;
&lt;p&gt;Korzystając z własnego routera można obejść to ograniczenie FunBoxów i skonfigurować prawdziwy dual-stack z publicznymi zarówno adresami IPv6, jak i IPv4.&lt;&#x2F;p&gt;
&lt;p&gt;Większość routerów na rynku pozwala na ustawienie konfiguracji połączenia z internetem przez IPv6 całkowicie odrębnie od IPv4. Będzie to potrzebne w tym przypadku. Wystarczy skonfigurować połączenie IPv6 przez PPPoE i wprowadzić te same dane logowania, ale z sufiksem
&lt;code&gt;&#x2F;ipv6&lt;&#x2F;code&gt; na końcu nazwy użytkownika, na przykład
&lt;code&gt;BEZ_OCHRONY-XXXXXXX@neostrada.pl&#x2F;ipv6&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;

&lt;figure class=&quot;image&quot;&gt;
    &lt;a href=&quot;&amp;#x2F;assets&amp;#x2F;blogs&amp;#x2F;orange-wlasny-router-dualstack-ipv6&amp;#x2F;setup-openwrt-network.webp&quot;&gt;
        &lt;img src=&quot;https:&amp;#x2F;&amp;#x2F;flufftech.net&amp;#x2F;processed_images&amp;#x2F;setup-openwrt-network.087f9edaf81b6f2f.webp&quot; alt=&quot;Zawartość pliku &amp;#x2F;etc&amp;#x2F;config&amp;#x2F;network na OpenWRT odnosząca się do konfiguracji interfejsów sieciowych „WANv4” oraz „WANv6”.&quot; load=&quot;lazy&quot;&gt;
    &lt;&#x2F;a&gt;
    
    &lt;figcaption&gt;Konfiguracja dual-stack na routerze z OpenWRT. Praca własna, CC BY-NC-SA 4.0&lt;&#x2F;figcaption&gt;
    
&lt;&#x2F;figure&gt;
&lt;p&gt;Wówczas router sam powinien zestawić tunel PPPoE oraz klienta DHCPv6-PD przekazującego adresy do sieci lokalnej. Warto zaznaczyć, że przydział adresów IPv6 jest dynamiczny, tak samo jak adres IPv4 – będzie ulegał zmianie co jakiś czas. Jeśli potrzebujesz stałych adresów IPv6 lub chcesz wystawiać usługi do internetu, będzie ci potrzebny adres &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Unique_local_address&quot;&gt;ULA&lt;&#x2F;a&gt; bądź usługa &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Dynamic_DNS&quot;&gt;DDNS&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;zobacz-tez&quot;&gt;Zobacz też&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=42Hy4JtBeQA&quot;&gt;IPv6: Why End-to-End Connectivity Matters and How It Benefits You&lt;&#x2F;a&gt;&lt;&#x2F;em&gt; – praktyczne korzyści z używania IPv6 w amatorskich projektach&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;&lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;idea.popcount.org&#x2F;2020-08-02-orange-ftth-on-a-custom-router&#x2F;&quot;&gt;Orange FTTH on a custom router&lt;&#x2F;a&gt;&lt;&#x2F;em&gt; oraz &lt;em&gt;&lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;idea.popcount.org&#x2F;2023-04-01-orange-ftth-and-ipv6---part-two&#x2F;&quot;&gt;Orange FTTH and IPv6 – part two&lt;&#x2F;a&gt;&lt;&#x2F;em&gt; – bardziej techniczne przedstawienie metod konfiguracji, oraz konfiguracja DS-lite przez tunel IPIP (jak w FunBoxie)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Jeśli masz jakieś pytania albo uwagi, napisz do mnie na fediwersum – można mnie tam znaleźć jako &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;social.flufftech.net&#x2F;@rail&quot;&gt;&lt;code&gt;@rail@flufftech.net&lt;&#x2F;code&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Jeżeli podobał ci się ten wpis, możesz udostępnić go dalej lub wesprzeć moją działalność &lt;a class=&quot;link-external&quot; rel=&quot;noopener nofollow external&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;ko-fi.com&#x2F;railthefop&quot;&gt;stawiając mi kawę&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</content>
        
    </entry>
</feed>
