From bf9f588ff89c96c8d35eb9120d57e6f54ada2358 Mon Sep 17 00:00:00 2001 From: DarkXero-dev Date: Wed, 22 Jan 2025 11:06:05 +0400 Subject: [PATCH] Link --- docs/tech/gpu-fund.md | 2 +- site/feed.xml | 2 +- site/feed_json_created.json | 2 +- site/feed_json_updated.json | 2 +- site/feed_rss_updated.xml | 2 +- site/search/search_index.json | 2 +- site/tech/gpu-fund/index.html | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/tech/gpu-fund.md b/docs/tech/gpu-fund.md index 648f702..e3eeafd 100644 --- a/docs/tech/gpu-fund.md +++ b/docs/tech/gpu-fund.md @@ -5,7 +5,7 @@ tags: - Hardware --- -Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games. +Since getting myself a nice Christmas gift, the [**Ryzen 9 5950X**](https://www.amd.com/en/products/processors/desktops/ryzen/5000-series/amd-ryzen-9-5950x.html){:target="_blank"} CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.
diff --git a/site/feed.xml b/site/feed.xml index 743f422..ddca60d 100644 --- a/site/feed.xml +++ b/site/feed.xml @@ -1 +1 @@ - DarkXero's BytesThoughts, Opinions, Documentation, and more...https://bytes.xerolinux.xyz/en Wed, 22 Jan 2025 07:02:09 -0000 Wed, 22 Jan 2025 07:02:09 -0000 60 MkDocs RSS plugin - v1.17.1 https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png DarkXero's Byteshttps://bytes.xerolinux.xyz/ GPU Fundraiser Hardware Linux <p>Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.</p><div align="center"> <script type='text/javascript' src='https://storage.ko-fi.com/cdn/widget/Widget_2.js'></script><script type='text/javascript'>kofiwidget2.init('Support me on Ko-fi', '#8073f5', 'I2I4K55AA');kofiwidget2.draw();</script> </div><p>With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.</p><p align="center"> <img width="360" src="https://i.imgur.com/JCpfCS8.png"> <img width="360" src="https://i.imgur.com/ojsENRr.png"></p><p>Thank you for your continuous support. Without you none of this would have been possible. <strong>XeroLinux</strong> owes its existence to you. Let's get 2025 on the road shall we ?</p>https://bytes.xerolinux.xyz/tech/gpu-fund/ Wed, 22 Jan 2025 07:02:10 +0000DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/gpu-fund/ SDDM Display Display Linux SDDM <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Login session appears on an unexpected display. It can happen that the <strong>SDDM</strong> login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use <code>xrandr</code> to configure the displays before the login session using Xsetup script. E.g. here <code>xrandr</code> reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).</p><p align="center"> <img src="https://i.imgur.com/c6fj1u4.png"></p><h3 id="lets-fix-it">Let's fix it 🚀<a class="headerlink" href="#lets-fix-it" title="Permanent link">&para;</a></h3><p>We need to be logged in to an <em>X-Session</em> meaning <code>X11</code> to gat the correct display names, we cannot use display names from <code>Wayland</code> session won't work for some reason, maybe because <strong>SDDM</strong> runs in <code>X11</code> ? No idea, now run this command in terminal to get their names. Need to have <code>xrandr</code> package installed.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>xrandr<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-w<span class="w"> </span>connected</span></code></pre></div><p>Output should be like this (mine)</p><blockquote><p>HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm <br /> DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm <br /> HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm</p></blockquote><p>This is my own <code>Xsetup</code> for the login window, yours may differ :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="ch">#!/bin/sh</span></span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="c1"># Xsetup - run as root before the login dialog appears</span></span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a></span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>DP-2<span class="w"> </span>--auto<span class="w"> </span>--primary</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-1<span class="w"> </span>--auto<span class="w"> </span>--left-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-0<span class="w"> </span>--auto<span class="w"> </span>--right-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span></code></pre></div><p>If you want to manually edit the file</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>nano<span class="w"> </span>/usr/share/sddm/scripts/Xsetup</span></code></pre></div><p>Paste the output of your <code>xrandr</code> command as I did above in there save &amp; reboot.</p><p>That's it y'all..</p>https://bytes.xerolinux.xyz/docs/sddm-display/ Sat, 12 Oct 2024 14:29:56 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/sddm-display/ RiP GamerKing Lebanon Warzone <h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>In Memoriam</strong></p><p>It is with a heavy heart that I share the passing of <strong>GamerKing</strong>, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant <strong>Linux</strong> enthusiast but also a vibrant soul who played a significant role in shaping the future of <strong>XeroLinux</strong>. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.</p><p align="center"> <img src="https://i.imgur.com/37Ew8GN.jpeg" alt="avatar"></p><p>I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. <strong>XeroLinux</strong> carries his imprint, and his contributions will forever be woven into its fabric. In a place like <strong>Lebanon</strong>, where <strong>Linux</strong> is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.</p><p>For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and <strong>GamerKing</strong> was caught in the crossfire.</p><p>Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.</p><p align="center"> <img src="https://i.imgur.com/vQFu6YT.jpeg" alt="rip"></p><p>As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.</p><p>Yesterday, as I write this, a massive bombing destroyed a six-building complex near <strong>GamerKing</strong>'s location. Soon after, I received a message from his younger brother. At first, I believed it was <strong>GamerKing</strong> himself, and my immediate question was, "<strong>Are you OK?</strong>" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: "<strong>He told me that if anything happened to me, open Discord and tell Dark</strong>." I asked, trembling, "<strong>Why? What happened?</strong>" After what felt like an eternity, he delivered the words that shattered my world: "<strong>He just left us</strong>."</p><p>I still don’t know what took him from us, whether it was his injuries or the bombing—but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.</p><p>I will always remember his infectious energy, his humor, and his brilliance. He was the light of <strong>XeroLinux</strong>, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. <strong>Rest in peace, little brother</strong>.</p>https://bytes.xerolinux.xyz/priv/rip-gamerking/ Sun, 29 Sep 2024 15:32:44 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/rip-gamerking/ FOSS Fundraising ArchLinux Fundraising Linux <h3 id="backstory">Backstory<a class="headerlink" href="#backstory" title="Permanent link">&para;</a></h3><p>Before I begin, I would like to clarify that, when I say <strong>Linux</strong> in this context I mean <strong>Desktop Linux</strong>.</p><p>When I started this whole <strong>Linux</strong> endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with <a href="https://kde.org" target="_blank"><strong>KDE Plasma</strong></a> while using the now infamous <a href="https://manjaro.org" target="_blank"><strong>Manjaro</strong></a> Distrobution. Yes, this is when I got hooked to <strong>Linux</strong>. Now don't get me wrong, I have since tried many DEs and WMs. But alas only <strong>KDE Plasma</strong> answered my needs.</p><p>Since then I started getting the urge to build my own <em>Distro</em> my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called <a href="https://arcolinux.info" target="_blank"><strong>ArcoLinux</strong></a>. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro <a href="https://archlinux.org" target="_blank"><strong>ArchLinux</strong></a>.</p><h3 id="fundraising">Fundraising<a class="headerlink" href="#fundraising" title="Permanent link">&para;</a></h3><p>Now we get to the meat and potatoes of this post, why ask for money when it's <strong>FOSS</strong> ? Well in case you did not know, the <em>Free</em> in <em>Free Open Source</em> does <strong>NOT</strong> mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our <strong>TIME</strong>.</p><p>Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a <em>real</em> job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.</p><p>Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the <em>Fundraising</em> or <em>Donation</em> methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the <strong>Donate</strong> button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)</p><h3 id="hate-in-foss">Hate in FOSS<a class="headerlink" href="#hate-in-foss" title="Permanent link">&para;</a></h3><p>Now let's address the <em>other</em> elephant in the room, the hate in the <strong>FOSS</strong> community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word <em>Free</em> in <em>Free Open Source</em>. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they <em>despise</em> others, the ones we call <em>Protest Distros</em>. Now am not going to name any names here, but the longer this goes on, the slower <strong>Linux</strong> will grow.</p><p>So if you love <strong>Linux</strong> as much as you say you do, please help your favorite projects grow in any way shape or form, either <em>Donating</em> for financial support if you can and are not a developer, or by simply <em>Reporting Issues</em> upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.</p><p>Anyways, thanks for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p><p>See ya there</p>https://bytes.xerolinux.xyz/priv/foss-fundraising/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/foss-fundraising/ Plans for other spins ArchLinux Distribution Linux XeroLinux <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if <strong>XeroLinux</strong> did the same, I was once asked. For example <strong>Cosmic</strong>, <strong>Hyprland</strong>, <strong>XFCE</strong> and so on.</p><h3 id="its-complicated">It's Complicated<a class="headerlink" href="#its-complicated" title="Permanent link">&para;</a></h3><p>As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?</p><p>But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind <strong>XeroLinux</strong>. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.</p><p>That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for <em>Free</em> right now.</p><p>I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the <strong>KDE</strong> version to me, there's not much I can do. I hope you understand.</p><h3 id="the-good-news">The Good News<a class="headerlink" href="#the-good-news" title="Permanent link">&para;</a></h3><p>There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the <a href="https://wiki.xerolinux.xyz/cosmic/" target="_blank"><strong>Cosmic</strong></a> and <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma</strong></a> ones.</p><p>I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.</p><p>Some of you might be asking, <em>What's the catch?</em> Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of <strong>ArchInstall</strong> to get a minimal system set up, after which you will be able to run my scripts.</p><p>That's it really. That's why I chose <strong>Arch</strong>. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.</p><h3 id="the-future">The Future<a class="headerlink" href="#the-future" title="Permanent link">&para;</a></h3><p>In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough <em>Install Scripts</em>, why not combine them all into a single easy to use <em>Mega Script</em> of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?</p><p>That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, <strong>HyprLand</strong>, <strong>Gnome</strong> and maybe <strong>DWM</strong> or <strong>BSPWM</strong> I dunno yet. Don't hold me on that though, please, just ideas for now.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/other-xero-spins/ Thu, 26 Sep 2024 14:07:52 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/other-xero-spins/ Current Situation Lebanon Situation Struggles War <div class="admonition info"><p class="admonition-title">Info</p><p>Situation in <strong>Lebanon</strong> has escalatated to a ptotential war. If you’re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.</p></div><h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>Hello everyone,</strong></p><p>It's one of those times where words fall short. The past few days have been incredibly difficult for us here in <strong>Lebanon</strong>, and it feels like things are only getting worse, spiraling out of control. Close friends, people I’ve known for years, have been injured, and some have even been forced to flee their homes. We’re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It’s something straight out of a dystopian novel, but it's happening right here, right now.</p><p><img alt="type:video" src="https://www.youtube.com/embed/OmeKpICXiBA" /></p><p>We are terrified to carry even the most basic tech devices, and it's surreal to say the least.</p><p>For the first time in my life, I genuinely don’t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn’t get worse? I’ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we’re on the edge of something catastrophic.</p><p>Your help and support would be, potentially life saving !</p>https://bytes.xerolinux.xyz/priv/current-situation/ Sat, 21 Sep 2024 13:17:28 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/current-situation/ Reset Password Linux Recovery Reset <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>I have lost my root pass on <strong>Linux</strong> more times than I can count. This guide is here so I do not have to <em>Google</em> it lol. Might be useful to you I dunno. But it's here.</p><p align="center"> <img src="https://i.imgur.com/VFXV09r.jpeg"></p><h3 id="lets-do-this">Let's do this 🚀<a class="headerlink" href="#lets-do-this" title="Permanent link">&para;</a></h3><p>How to reset forgotten root password in a <strong>GNU/Linux</strong> distribution with <code>GRUB</code>?</p><p>If this is a laptop or a desktop which you have next to you then follow these steps.</p><ol><li>Shut down the device.</li><li>Start it again. When you see GRUB menu, press the <code>e</code> key on the keyboard before the system starts booting.</li><li>In the <code>GRUB</code> boot options, scroll down and locate the line that begins with <code>linux</code>. In this line move the cursor to the end, right after <code>ro quiet</code>. Delete everything after that. Change <code>ro</code> to <code>rw</code>. Append the parameter <code>init=/bin/bash</code></li><li>Press Ctrl+x, or F10, to boot.</li><li>You will see a root prompt.</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>:#</span></code></pre></div><p>Remount the filesystem in read/write mode:</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>:#<span class="w"> </span>mount<span class="w"> </span>-no<span class="w"> </span>remount,rw<span class="w"> </span>/</span></code></pre></div><ol><li>Set the password of any user(s).</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>:#<span class="w"> </span>passwd<span class="w"> </span>joe</span></code></pre></div><ol><li>Reboot with the command <code>reboot -f</code>.</li></ol><p>That's it ! The new password should work now.</p>https://bytes.xerolinux.xyz/docs/passwd-reset/ Tue, 17 Sep 2024 13:47:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/passwd-reset/ FFmpeg Cheat Sheet CheatSheet FFmpeg Linux <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the use of <a href="https://www.ffmpeg.org/ffmpeg.html" target="_blank"><strong>FFmpeg</strong></a> on <strong>Linux</strong>.</p><p align="center"> <img src="https://i.imgur.com/TweW8fW.png"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to install <code>FFmpeg</code>. I will be doing it on <strong>ArchLinux</strong> since that's what I use. Look for packages on your distro if you don't use it.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>--needed<span class="w"> </span>ffmpeg<span class="w"> </span>ffmpegthumbnailer<span class="w"> </span>ffmpegthumbs<span class="w"> </span>qt6-multimedia-ffmpeg</span></code></pre></div><p>Now that we have it, it's time for the cheat sheet.</p><hr /><h1 align="center">.// The Cheat Sheet \\.</h1><h2 id="basic-conversion">Basic conversion<a class="headerlink" href="#basic-conversion" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ffmpeg -i in.mp4 out.avi</span></code></pre></div><h3 id="remux-an-mkv-file-into-mp4">Remux an MKV file into MP4<a class="headerlink" href="#remux-an-mkv-file-into-mp4" title="Permanent link">&para;</a></h3><div class="language-text highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="high-quality-encoding">High-quality encoding<a class="headerlink" href="#high-quality-encoding" title="Permanent link">&para;</a></h3><p>Use the <code>crf</code> (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to <code>-crf 18</code>. Use the <code>preset</code> parameter to control the speed of the compression process. <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>Additional info</strong></a>.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4</span></code></pre></div><h2 id="trimming">Trimming<a class="headerlink" href="#trimming" title="Permanent link">&para;</a></h2><p>Without re-encoding:<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4</span></code></pre></div>- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-ss</code></a> specifies the start time, e.g. <code>00:01:23.000</code> or <code>83</code> (in seconds)- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-t</code></a> specifies the duration of the clip (same format).- Recent <code>ffmpeg</code> also has a flag to supply the end time with <code>-to</code>.- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-c</code></a> copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.</p><p>With re-encoding:</p><p>If you leave out the <code>-c copy</code> option, <code>ffmpeg</code> will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the <a href="https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide" target="_blank"><strong>x264 Encoding Guide</strong></a> and the <a href="http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide" target="_blank"><strong>AAC Encoding Guide</strong></a>, respectively.</p><p>For example:<div class="language-text highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4</span></code></pre></div></p><h2 id="mux-video-and-audio-from-another-video">Mux video and audio from another video<a class="headerlink" href="#mux-video-and-audio-from-another-video" title="Permanent link">&para;</a></h2><p>To copy the video from in0.mp4 and audio from in1.mp4:<div class="language-text highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4</span></code></pre></div>- With <a href="http://ffmpeg.org/ffmpeg.html#Stream-copy" target="_blank">-c copy</a> the streams will be <code>stream copied</code>, not re-encoded, so there will be no quality loss. If you want to re-encode, see <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>FFmpeg Wiki: H.264 Encoding Guide</strong></a>.- The <code>-shortest</code> option will cause the output duration to match the duration of the shortest input stream.- See the <a href="http://ffmpeg.org/ffmpeg.html#Advanced-options" target="_blank"><code>-map</code> option documentation</a> for more info.</p><h2 id="concat-demuxer">Concat demuxer<a class="headerlink" href="#concat-demuxer" title="Permanent link">&para;</a></h2><p>First, make a text file.<div class="language-text highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>file &#39;in1.mp4&#39;</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>file &#39;in2.mp4&#39;</span><span id="__span-7-3"><a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>file &#39;in3.mp4&#39;</span><span id="__span-7-4"><a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>file &#39;in4.mp4&#39;</span></code></pre></div>Then, run <code>ffmpeg</code>:<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ffmpeg -f concat -i list.txt -c copy out.mp4</span></code></pre></div></p><h2 id="delay-audiovideo">Delay audio/video<a class="headerlink" href="#delay-audiovideo" title="Permanent link">&para;</a></h2><p>Delay video by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4</span></code></pre></div>Delay audio by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4</span></code></pre></div></p><h2 id="burn-subtitles">Burn subtitles<a class="headerlink" href="#burn-subtitles" title="Permanent link">&para;</a></h2><p>Use the <a href="http://ffmpeg.org/ffmpeg.html#ass" target="_blank">libass</a> library (make sure your ffmpeg install has the library in the configuration <code>--enable-libass</code>).</p><p>First convert the subtitles to .ass format:<div class="language-text highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>ffmpeg -i sub.srt sub.ass</span></code></pre></div>Then add them using a video filter:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4</span></code></pre></div><h2 id="extract-the-frames-from-a-video">Extract the frames from a video<a class="headerlink" href="#extract-the-frames-from-a-video" title="Permanent link">&para;</a></h2><p>To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>ffmpeg -i in.mp4 -vf select=&#39;between(t,1,5)+between(t,11,15)&#39; -vsync 0 out%d.png</span></code></pre></div><p>To extract one frame per second only:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png</span></code></pre></div><h2 id="rotate-a-video">Rotate a video<a class="headerlink" href="#rotate-a-video" title="Permanent link">&para;</a></h2><p>Rotate 90 clockwise:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>ffmpeg -i in.mov -vf &quot;transpose=1&quot; out.mov</span></code></pre></div><p>For the transpose parameter you can pass:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>0 = 90CounterCLockwise and Vertical Flip (default)</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>1 = 90Clockwise</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>2 = 90CounterClockwise</span><span id="__span-16-4"><a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>3 = 90Clockwise and Vertical Flip</span></code></pre></div><p>Use <code>-vf "transpose=2,transpose=2"</code> for 180 degrees.</p><h2 id="download-transport-stream-video-streams">Download "Transport Stream" video streams<a class="headerlink" href="#download-transport-stream-video-streams" title="Permanent link">&para;</a></h2><ol><li>Locate the playlist file, e.g. using Chrome &gt; F12 &gt; Network &gt; Filter: m3u8</li><li>Download and concatenate the video fragments:</li></ol><div class="language-text highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>ffmpeg -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><p>If you get a "Protocol 'https not on whitelist 'file,crypto'!" error, add the <code>protocol_whitelist</code> option:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>ffmpeg -protocol_whitelist &quot;file,http,https,tcp,tls&quot; -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><h2 id="mute-some-of-the-audio">Mute some of the audio<a class="headerlink" href="#mute-some-of-the-audio" title="Permanent link">&para;</a></h2><p>To replace the first 90 seconds of audio with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;lte(t,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><p>To replace all audio between 1'20" and 1'30" with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;between(t,80,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><h2 id="deinterlace">Deinterlace<a class="headerlink" href="#deinterlace" title="Permanent link">&para;</a></h2><p>Deinterlacing using "yet another deinterlacing filter".</p><div class="language-text highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>ffmpeg -i in.mp4 -vf yadif out.mp4</span></code></pre></div><h2 id="create-a-video-slideshow-from-images">Create a video slideshow from images<a class="headerlink" href="#create-a-video-slideshow-from-images" title="Permanent link">&para;</a></h2><p>Parameters: <code>-r</code> marks the image framerate (inverse time of each image); <code>-vf fps=25</code> marks the true framerate of the output.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4</span></code></pre></div><h2 id="extract-images-from-a-video">Extract images from a video<a class="headerlink" href="#extract-images-from-a-video" title="Permanent link">&para;</a></h2><ul><li>Extract all frames: <code>ffmpeg -i input.mp4 thumb%04d.jpg -hide_banner</code></li><li>Extract a frame each second: <code>ffmpeg -i input.mp4 -vf fps=1 thumb%04d.jpg -hide_banner</code></li><li>Extract only one frame: <code>ffmpeg -i input.mp4 -ss 00:00:10.000 -vframes 1 thumb.jpg</code></li></ul><h2 id="display-the-frame-number-on-each-frame">Display the frame number on each frame<a class="headerlink" href="#display-the-frame-number-on-each-frame" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>ffmpeg -i in.mov -vf &quot;drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72&quot; -y out.mov</span></code></pre></div><h2 id="metadata-change-the-title">Metadata: Change the title<a class="headerlink" href="#metadata-change-the-title" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>ffmpeg -i in.mp4 -map_metadata -1 -metadata title=&quot;My Title&quot; -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.</p>https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ Tue, 17 Sep 2024 13:36:31 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ My Cosmic Experience ArchLinux Cosmic Linux <div class="admonition note"><p class="admonition-title">Note</p><p>Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.</p></div><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>The <a href="https://xerolinux.xyz/posts/arch-cosmic/" target="_blank"><strong>Cosmic DE</strong></a> hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.</p><p align="center"> <img src="https://i.imgur.com/Fvl9uRU.png"></p><p>Since I am an avid <strong>ArchLinux</strong> user, that's how I installed it. I did not use the <strong>Pop!_OS 24.04 LTS alpha</strong> ISO from &gt;&gt; <a href="https://system76.com/cosmic" target="_blank"><strong>Cosmic Downloads</strong></a>. So my views come from there. So I cannot compare.</p><p>Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the <strong>ArchInstall</strong> profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.</p><p>Now on to the more detailed things I have done to install <strong>Cosmic</strong>. I first installed <strong>Arch Minimal</strong> using the <strong>ArchInstall</strong> script, meaning that I avoided the profiles, &amp; drivers sections completely, I always choose <code>Grub</code> as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in <code>chroot</code> I installed the DE the following way, knowing that, we can skip the use of <code>sudo</code> since we are still logged in as root...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>pacman<span class="w"> </span>-Syy<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>cosmic<span class="w"> </span>linux-headers<span class="w"> </span>pacman-contrib<span class="w"> </span>xdg-user-dirs<span class="w"> </span>power-profiles-daemon<span class="w"> </span>wayland-protocols<span class="w"> </span>wayland-utils</span></code></pre></div><p align="center"> <img src="https://i.imgur.com/tR8WJJI.png"></p><p>Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because <a href="https://archlinux.org/packages/?sort=&amp;q=cosmic&amp;maintainer=&amp;flagged=" target="_blank"><strong>cosmic</strong></a> is not a single one, it's a <em>Group</em> of packages or a <em>meta-package</em> as it is known as. That said, the reason I installed <code>linux-headers</code> is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially <code>xdg-user-dirs</code> without which no <code>Documents, Pictures, Videos...</code> folders will be created. Strange I know.</p><p>What I also found weird, is the fact that <code>cosmic-greeter</code> service was not being enabled after install which was netting me a boot to <code>TTY</code> session. So I had to enable it while at the same time generating the <code>user-dirs</code> via...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>cosmic-greeter.service<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>xdg-user-dirs-update</span></code></pre></div><p>Keep in mind that I am doing all this while still in <code>chroot</code> post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.</p><h3 id="experience">Experience<a class="headerlink" href="#experience" title="Permanent link">&para;</a></h3><p>Now on to what y'all came here for. All was good, well sorta, system rebooted into <code>Grub</code>, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some <code>TTY dmsg</code> errors, flickering on and off. But after a few seconds I finally saw the <strong>Cosmic Greeter</strong> login screen, relief finally.</p><p align="center"> <img src="https://i.imgur.com/TPjWMjR.png"></p><p>I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an <strong>nVidia</strong> user, I thought could be a driver issue since on first boot it uses the not so great <code>nouveau</code> ones. That's why my first reflex was to install them, so I did.</p><p align="center"> <img src="https://i.imgur.com/VotUyBS.jpeg"></p><p>After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about <code>EGL drm</code> crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?</p><p>As it turns out I had forgotten to include the <code>nVidia drm kernel modules</code> lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>sed<span class="w"> </span>-i<span class="w"> </span><span class="s1">&#39;/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/&#39;</span><span class="w"> </span>/etc/mkinitcpio.conf</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>nvidia-suspend.service<span class="w"> </span>nvidia-hibernate.service<span class="w"> </span>nvidia-resume.service<span class="w"> </span>nvidia-powerd.service</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf</span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia_drm modeset=1 fbdev=1&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>mkinitcpio<span class="w"> </span>-P</span></code></pre></div><p>After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like <strong>XFCE</strong>. Fired up <code>top</code> to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than <strong>KDE Plasma</strong> ! Nice !</p><p>Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run <code>nmtui</code> and deactivate it from there making sure it doesn't automatically reconnect on login.</p><p>Now on to the <code>System Settings</code>. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..</p><p>That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.</p><p>Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean <strong>Cosmic-Notes</strong> was there, just not handling documents...</p><p>I try to right-click &gt; open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself "It's Alpha Software, calm down Steve".</p><p>To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a <code>CLI</code> and no default app set ? I dunno.</p><p>Finally I decided to try out the thing that almost everyone's raving about, <strong>Tiling/Stacking</strong>. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...</p><p>That's where I gave up and decided to go back home to <strong>KDE Plasma</strong>.</p><h3 id="final-words">Final words<a class="headerlink" href="#final-words" title="Permanent link">&para;</a></h3><p>Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.</p><p>It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.</p><p>I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. <strong>Cosmic</strong> has come a long way in such a short time. I mean, writing a DE from scratch using <strong>Rust</strong> a sorta new programming language is no easy feat.</p><p>I will end the post by congratulating the <strong>System76</strong> dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a <strong>XeroCosmic</strong> to the family.. Just don't hold your breath on that, it ain't set in stone.</p>https://bytes.xerolinux.xyz/tech/cosmic-experience/ Wed, 11 Sep 2024 13:33:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/cosmic-experience/ Affinity on Linux Affinity Linux Photoshop <div class="admonition warning"><p class="admonition-title">Warning</p><p>This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.</p></div><h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://affinity.serif.com/en-us/" target="_blank"><strong>Affinity Apps</strong></a> on <strong>Linux</strong> thanks to <a href="https://github.com/Twig6943" target="_blank"><strong>Twig6943</strong></a>.</p><p align="center"> <img src="https://i.imgur.com/MABHj31.jpeg"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to download the <a href="https://store.serif.com/update/windows/photo/2/" target="_blank"><strong>Photo</strong></a>, <a href="https://store.serif.com/update/windows/designer/2/" target="_blank"><strong>Designer</strong></a> or <a href="https://store.serif.com/update/windows/publisher/2/" target="_blank"><strong>Publisher</strong></a> <code>exe</code> from the dropdown. Once we have it/them, follow the guide over on maintainer's <a href="https://github.com/Twig6943/AffinityOnLinux" target="_blank"><strong>Github</strong></a></p><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to <strong>Photoshop</strong> I have ever gotten, without having to go through <em>WinBlows</em> if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.</p>https://bytes.xerolinux.xyz/docs/affinity-linux/ Tue, 10 Sep 2024 22:53:38 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/affinity-linux/ SUMMARY <ul><li><a href="../">🏠Home</a></li><li><a href="/docs/">🗒️Documentation</a></li><li><a href="/priv/">🗨️Communication</a></li><li><a href="/projects/">💻Xero Projects</a></li><li><a href="/tech/">🖱️Technology</a></li></ul>https://bytes.xerolinux.xyz/SUMMARY/ Thu, 05 Sep 2024 20:30:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/SUMMARY/ Linux in a Nutshell Kernel Linux Packages <p>I thought I'd share this explanation about <strong>Linux</strong> a good friend and fellow Linux enthusiast <a href="https://github.com/REALERvolker1" target="_blank"><strong>REALERvolker1</strong></a> recently posted on <strong>Discord</strong>.</p><div class="admonition tip"><p class="admonition-title">Tip</p><p>The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various <em>Desktop Environments</em> or <em>Window Managers</em>. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...</p></div><h3 id="what-is-linux">What is Linux ?<a class="headerlink" href="#what-is-linux" title="Permanent link">&para;</a></h3><p>Since not everyone's super familiar with Linux, here's a quick crash course.</p><p>Linux is a <a href="https://en.wikipedia.org/wiki/Monolithic_kernel#:~:text=A%20monolithic%20kernel%20is%20an,virtual%20interface%20over%20computer%20hardware." target="_blank"><strong>Monolithic Kernel</strong></a>, so all the drivers and whatnot are compiled into the binary. The <a href="https://www.fsf.org/about/what-is-free-software" target="_blank"><strong>Nonfree software</strong></a> is usually put in the actual source repo as binary blobs, or in the case of <strong>nVidia</strong> drivers, built using a system called <a href="https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support" target="_blank"><strong>DKMS</strong></a> and compiled into the kernel binary.</p><p>Once the computer boots up, an init process is started (the default is <code>/sbin/init</code>, usually a symlink to your init system), which is <code>PID 1</code>. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having <em>too</em> much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.</p><p>Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being <a href="https://en.wikipedia.org/wiki/POSIX" target="_blank"><strong>POSIX</strong></a> compliant, and not really caring about file extensions.</p><p align="center"> <img width="600" src="https://i.imgur.com/Mu7NHx9.png" alt="logo"></p><h3 id="distros-pkg-managers">Distros &amp; PKG Managers<a class="headerlink" href="#distros-pkg-managers" title="Permanent link">&para;</a></h3><p>On <a href="https://www.debian.org" target="_blank"><strong>Debian</strong></a>, you install packages with <code>apt</code>. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a <em>GUI</em> frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the <a href="https://wiki.debian.org/DontBreakDebian" target="_blank"><strong>Debian Wiki</strong></a> is pretty mid, but the <a href="https://wiki.archlinux.org" target="_blank"><strong>Arch Wiki</strong></a> is amazing.</p><p>Since <a href="https://archlinux.org" target="_blank"><strong>Arch Linux</strong></a> aims to be the most generic <em>Linux distro</em> ever, information written for it should also help with <strong>Debian</strong>, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:</p><ul><li><strong>Flatpak:</strong> Sandboxed apps that "just work" on every distribution.</li><li><strong>Snap:</strong> <em>Ubuntu</em>'s sandboxed apps that are supposed to work on every distribution but have had mixed results.</li><li><strong>AppImages:</strong> These are like <code>.exe</code> files on <strong>Windows</strong>, but they require adding executable permissions and manually launching them. They also won't have a desktop entry by default.</li></ul><h3 id="filesystem-updates">Filesystem &amp; Updates<a class="headerlink" href="#filesystem-updates" title="Permanent link">&para;</a></h3><p>If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not—it might fix a bug.</p><p>As for the filesystem:</p><ul><li><code>/etc</code> is where your Editable Text Configurations go.</li><li><code>/usr</code> is where program files go.</li><li><code>/usr/local</code> is where program files go for programs you manually installed.</li><li><code>/home</code> is where your personal files go.</li><li><code>/dev</code> is for device files.</li><li>There is no <code>C</code> or <code>D</code> drive; instead, you mount external drives to a location, like <code>/mnt</code>. A GUI file manager mounts flash drives somewhere in <code>/run</code> since it is temporary.</li><li><code>/opt</code> is where miscellaneous stuff goes.</li><li><code>/var</code> is for variable data like system logs.</li><li><code>/tmp</code> is for temporary files.</li><li><code>/dev/null</code> is a "black hole" for data you want to discard.</li><li><code>/dev/urandom</code> is an IO-based random number generator.</li></ul><p>In <a href="https://en.wikipedia.org/wiki/Unix" target="_blank"><strong>UNIX</strong></a>, everything is a file. This means you can:</p><ul><li>See process details by reading files in <code>/proc</code>.</li><li>Check system settings or driver configurations in <code>/sys</code>.</li><li>View your bootloader in <code>/boot</code>.</li></ul><h3 id="wrapping-it-all-up">Wrapping it all up<a class="headerlink" href="#wrapping-it-all-up" title="Permanent link">&para;</a></h3><p>This was a quick run-through explaining what <strong>GNU/Linux</strong> is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.</p>https://bytes.xerolinux.xyz/docs/linux-explained/ Thu, 05 Sep 2024 20:30:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/linux-explained/ MKDocs Install Blogging Linux MKDocs <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://www.mkdocs.org" target="_blank"><strong>MKDocs</strong></a> the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for <strong>ArchLinux</strong> if you don't use that distro, well, their site shows how to install for your distro.</p><p><img alt="type:video" src="https://www.youtube.com/embed/9V0NpLPXS-Y" /></p><h3 id="installing-mkdocs">Installing MKDocs<a class="headerlink" href="#installing-mkdocs" title="Permanent link">&para;</a></h3><p>We will need to install it with some extras. The 2 main packages exist on the <strong>Arch</strong> repos. The rest are on the <strong>AUR</strong>, so to grab everything in one go, I will be using <strong>Paru</strong>. Compiling might take a while, so sit back wile it finishes.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs<span class="w"> </span>mkdocs-get-deps<span class="w"> </span>mkdocs-material<span class="w"> </span>python-pipx<span class="w"> </span>python-pillow<span class="w"> </span>python-cairosvg<span class="w"> </span>mkdocs-material-extensions<span class="w"> </span>python-regex<span class="w"> </span>pymdown-extensions<span class="w"> </span>mkdocs-material-pymdownx-extras</span></code></pre></div><p>Donce that's done we need to create the site. There's a command for that.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>mkdocs<span class="w"> </span>new<span class="w"> </span>my-project</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nb">cd</span><span class="w"> </span>my-project</span></code></pre></div><p>Now that we initialized the new site we need to configure it. We do so by editing the <code>mkdocs.yml</code> file putting in the following info :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">site_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Sitename</span></span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a></span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nt">theme</span><span class="p">:</span></span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">material</span></span><span id="__span-2-5"><a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="nt">logo</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/Tux.gif</span></span><span id="__span-2-6"><a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="nt">favicon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/favicon.ico</span></span><span id="__span-2-7"><a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="nt">palette</span><span class="p">:</span></span><span id="__span-2-8"><a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="nt">scheme</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slate</span></span><span id="__span-2-9"><a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="nt">primary</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">deep purple</span></span><span id="__span-2-10"><a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="nt">features</span><span class="p">:</span></span><span id="__span-2-11"><a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.top</span></span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.footer</span></span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.indexes</span></span><span id="__span-2-14"><a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">content.code.copy</span></span><span id="__span-2-15"><a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.suggest</span></span><span id="__span-2-16"><a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.highlight</span></span><span id="__span-2-17"><a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.share</span></span><span id="__span-2-18"><a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.expand</span></span></code></pre></div><p>This will make it use the <strong>Slate Material</strong> Theme with <strong>Deep Purple</strong> accents. To know more about the theme check the <a href="https://squidfunk.github.io/mkdocs-material/getting-started/" target="_blank"><strong>MKDocs Material Wiki</strong></a>. That's it go from there.</p><h3 id="plugins-extra-stuff">Plugins &amp; Extra Stuff<a class="headerlink" href="#plugins-extra-stuff" title="Permanent link">&para;</a></h3><p>I have found a few that I liked on the <strong>AUR</strong>, let's install them via :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs-rss-plugin<span class="w"> </span>mkdocs-video<span class="w"> </span>mkdocs-autorefs<span class="w"> </span>mkdocs-section-index<span class="w"> </span>mkdocs-glightbox<span class="w"> </span>mkdocs-backlinks-plugin<span class="w"> </span>mkdocs-redirects<span class="w"> </span>mkdocs-ezlinks-plugin<span class="w"> </span>mkdocs-literate-nav</span></code></pre></div><p>To activate them we edit the same <code>mkdocs.yml</code> file as before like so :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">plugins</span><span class="p">:</span></span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rss</span></span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">social</span></span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search</span></span><span id="__span-4-5"><a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">autorefs</span></span><span id="__span-4-6"><a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">glightbox</span></span></code></pre></div><p>There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">markdown_extensions</span><span class="p">:</span></span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a></span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="c1"># Python Markdown</span></span><span id="__span-5-4"><a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">abbr</span></span><span id="__span-5-5"><a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admonition</span></span><span id="__span-5-6"><a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">attr_list</span></span><span id="__span-5-7"><a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">def_list</span></span><span id="__span-5-8"><a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">footnotes</span></span><span id="__span-5-9"><a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">md_in_html</span></span><span id="__span-5-10"><a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">toc</span><span class="p">:</span></span><span id="__span-5-11"><a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w"> </span><span class="nt">permalink</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-12"><a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a></span><span id="__span-5-13"><a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w"> </span><span class="c1"># Python Markdown Extensions</span></span><span id="__span-5-14"><a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.arithmatex</span><span class="p">:</span></span><span id="__span-5-15"><a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w"> </span><span class="nt">generic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-16"><a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.betterem</span><span class="p">:</span></span><span id="__span-5-17"><a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w"> </span><span class="nt">smart_enable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">all</span></span><span id="__span-5-18"><a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.caret</span></span><span id="__span-5-19"><a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.details</span></span><span id="__span-5-20"><a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.emoji</span><span class="p">:</span></span><span id="__span-5-21"><a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="w"> </span><span class="nt">emoji_index</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.twemoji</span></span><span id="__span-5-22"><a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a><span class="w"> </span><span class="nt">emoji_generator</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.to_svg</span></span><span id="__span-5-23"><a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.highlight</span><span class="p">:</span></span><span id="__span-5-24"><a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a><span class="w"> </span><span class="nt">anchor_linenums</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-25"><a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a><span class="w"> </span><span class="nt">line_spans</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">__span</span></span><span id="__span-5-26"><a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a><span class="w"> </span><span class="nt">pygments_lang_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-27"><a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.inlinehilite</span></span><span id="__span-5-28"><a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.keys</span></span><span id="__span-5-29"><a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.mark</span></span><span id="__span-5-30"><a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.smartsymbols</span></span><span id="__span-5-31"><a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.superfences</span></span><span id="__span-5-32"><a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tabbed</span><span class="p">:</span></span><span id="__span-5-33"><a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a><span class="w"> </span><span class="nt">alternate_style</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-34"><a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tasklist</span><span class="p">:</span></span><span id="__span-5-35"><a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a><span class="w"> </span><span class="nt">custom_checkbox</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-36"><a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.tilde</span></span><span id="__span-5-37"><a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a></span><span id="__span-5-38"><a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a><span class="nt">extra</span><span class="p">:</span></span><span id="__span-5-39"><a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a><span class="w"> </span><span class="nt">social</span><span class="p">:</span></span><span id="__span-5-40"><a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/github</span></span><span id="__span-5-41"><a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/darkxero-dev</span></span><span id="__span-5-42"><a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/youtube</span></span><span id="__span-5-43"><a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://youtube.com/XeroLinuxOfficial</span></span><span id="__span-5-44"><a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/x-twitter</span></span><span id="__span-5-45"><a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://twitter.com/xerolinuxop</span></span><span id="__span-5-46"><a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/mastodon</span></span><span id="__span-5-47"><a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://fosstodon.org/@xerolinux</span></span></code></pre></div><p>That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to <a href="https://github.com/drewgrif" target="_blank"><strong>@JustAGuyLinux</strong></a> for helping out a little hehe.</p>https://bytes.xerolinux.xyz/docs/mkdocs-install/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/mkdocs-install/ Be Thankful Content Creation Linux YouTube <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.</p><h3 id="content-creators">Content Creators<a class="headerlink" href="#content-creators" title="Permanent link">&para;</a></h3><p>Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.</p><p>YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.</p><p>Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.</p><h3 id="writers-blog-posters">Writers / Blog Posters<a class="headerlink" href="#writers-blog-posters" title="Permanent link">&para;</a></h3><p>This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.</p><p>One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I’ve learned to improve, and I thank them for that.</p><h3 id="appreciating-ccs-and-writers">Appreciating CCs and Writers<a class="headerlink" href="#appreciating-ccs-and-writers" title="Permanent link">&para;</a></h3><p>We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.</p><p>Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.</p><p>As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.</p><h3 id="fostering-a-positive-community">Fostering a Positive Community<a class="headerlink" href="#fostering-a-positive-community" title="Permanent link">&para;</a></h3><p>The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.</p><p>When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.</p><p>Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.</p><h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3><p>Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.</p>https://bytes.xerolinux.xyz/priv/be-thankful/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/be-thankful/ Developing is fun Developer Development Linux <h3 id="am-i-a-developer">Am I a Developer ?<a class="headerlink" href="#am-i-a-developer" title="Permanent link">&para;</a></h3><p>Lol, yeah, I know—it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code—specifically <strong>Bash</strong>. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.</p><p><img alt="type:video" src="https://www.youtube.com/embed/8_K-NOu-STs" /></p><p>And if it does work, I'm happy and share the result with the <strong>FOSS</strong> community.</p><h3 id="its-fun-until">It's fun until...<a class="headerlink" href="#its-fun-until" title="Permanent link">&para;</a></h3><p>Doing this is super fun and fulfilling—until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.</p><p>Now, I know I can reach out to the <strong>FOSS</strong> community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.</p><p>Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere—not just in <strong>FOSS</strong>. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.</p><p>Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.</p><h3 id="sharing-is-caring">Sharing is caring<a class="headerlink" href="#sharing-is-caring" title="Permanent link">&para;</a></h3><p>This is the part where I say: please, don't keep your work to yourself. Share it with the community—who knows, maybe you'll find someone who can help take your project to another level.</p><p>I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.</p><p>"Sharing is caring," as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)</p>https://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/developing-is-fun-but/ FOSS Struggles FOSS Fundraising Health Linux Struggles <h3 id="hello-everyone">Hello everyone,<a class="headerlink" href="#hello-everyone" title="Permanent link">&para;</a></h3><p>Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.</p><p>Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.</p><blockquote><p>P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let’s dive in.</p></blockquote><p><img alt="type:video" src="https://www.youtube.com/embed/BpmAFwZy0Gg" /></p><h3 id="my-frustration">My Frustration<a class="headerlink" href="#my-frustration" title="Permanent link">&para;</a></h3><p>Recently, I’ve been investing a lot of time and effort into my projects and contributing to <strong>FOSS</strong> (Free and Open Source Software) wherever possible. While I find this work rewarding, it’s also been increasingly frustrating. Why? Let me explain.</p><p>I spend countless hours working behind the scenes to make everyone’s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it’s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I’m making a real impact.</p><h3 id="seeking-purpose">Seeking Purpose<a class="headerlink" href="#seeking-purpose" title="Permanent link">&para;</a></h3><p>Initially, I embarked on this journey for fun and to learn new things. However, lately, I’ve been questioning the purpose behind my efforts. It feels like I’m stuck in a cycle of constant work with little to show for it. This isn’t about blaming anyone; it’s about seeking the motivation to keep going.</p><h3 id="monetization-attempts">Monetization Attempts<a class="headerlink" href="#monetization-attempts" title="Permanent link">&para;</a></h3><p>As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a "pay what you can" model, hoping it would help sustain my work. However, this didn’t go as planned.</p><p>The <strong>FOSS</strong> community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It’s a complex issue, and while some have been supportive, overall, the response hasn’t been enough to make a significant difference.</p><h3 id="health-concerns">Health Concerns<a class="headerlink" href="#health-concerns" title="Permanent link">&para;</a></h3><p>On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn’t cheap, and without stable income, it’s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.</p><h3 id="mental-health-struggles">Mental Health Struggles<a class="headerlink" href="#mental-health-struggles" title="Permanent link">&para;</a></h3><p>The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.</p><h3 id="the-way-forward">The Way Forward<a class="headerlink" href="#the-way-forward" title="Permanent link">&para;</a></h3><p>Given these circumstances, I’m focusing more on forums and this blog. Writing provides a creative outlet that isn’t constrained by algorithms or view counts. I’ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.</p><p>My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.</p><h3 id="closing-thoughts">Closing Thoughts<a class="headerlink" href="#closing-thoughts" title="Permanent link">&para;</a></h3><p>I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.</p><p>For now, I need to prioritize my well-being and financial stability. Once those are in place, I’ll be back with future projects. Right now, I’m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.</p><p>Thank you for understanding and supporting me through this journey.</p>https://bytes.xerolinux.xyz/priv/real-foss-struggles/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/real-foss-struggles/ Docker A Love Story Containers Docker Linux <h3 id="what-is-docker">What is Docker ?<a class="headerlink" href="#what-is-docker" title="Permanent link">&para;</a></h3><p><a href="https://docker.com/" target="_blank"><strong>Docker</strong></a> is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.</p><p align="center"> <img width="500" src="https://i.imgur.com/bbD4JDy.png" alt="logo"></p><h3 id="how-it-all-started">How it all started<a class="headerlink" href="#how-it-all-started" title="Permanent link">&para;</a></h3><p>It all started with <a href="https://distrobox.it/" target="_blank"><strong>Distrobox</strong></a>. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered <strong>Docker</strong> containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like <a href="https://immich.app/" target="_blank"><strong>Immich</strong></a> for images and videos, which would allow me to sync my devices locally rather than with <a href="https://icloud.com" target="_blank"><strong>Apple iCloud</strong></a> or <strong>Google</strong> making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...</p><p>With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3<sup>rd</sup> party conglomerates made me fall in love more and more as time went by...</p><h3 id="my-setup-so-far">My setup so far<a class="headerlink" href="#my-setup-so-far" title="Permanent link">&para;</a></h3><p>Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive <strong>MY</strong> setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.</p><p align="center"> <img width="500" src="https://i.imgur.com/DhfbUBs.png" alt="logo"></p><ul><li><strong>Homepage</strong></li></ul><p>To start off, let me tell you what am using for the page you see in the image, it's simply called <a href="https://gethomepage.dev" target="_blank"><strong>Homepage</strong></a>. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via <a href="https://en.wikipedia.org/wiki/YAML" target="_blank"><strong>YAML</strong></a> configurations files, and that the community behind it are so damn friendly ! Yep, there is no <em>dumb</em> question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their <a href="https://discord.gg/k4ruYNrudu" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>File Browser</strong></li></ul><p>As for the File Browser I use to share files between PCs, it's also has a <em>creative</em> name lol, just called <a href="https://filebrowser.org" target="_blank"><strong>FileBrowser</strong></a>, it serves one purpose, browsing files, with ability to upload &amp; download from/to any PC. That's it. It just works nothing else to say about that.</p><ul><li><strong>Search Engine (Xoogle)</strong></li></ul><p>Hehe, the only reason I called it <em>Xoogle</em> is coz it's Xero + Google, get it ? Anyway, this is using something called <a href="https://whoogle.io" target="_blank"><strong>Whoogle</strong></a>, weird name I know, loogs damn ugly too. It's just a search engine that uses <strong>Google</strong> stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of <strong>Google</strong> the way it was back in the day..</p><ul><li><strong>Vaultwarden</strong></li></ul><p>That's a 3<sup>rd</sup>-party <a href="https://bitwarden.com" target="_blank"><strong>Bitwarden</strong></a> server-as-a-container, endorsed by them so can be trusted called <a href="https://github.com/dani-garcia/vaultwarden" target="_blank"><strong>Vaultwarden</strong></a>. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.</p><ul><li><strong>ShareX</strong></li></ul><p>This one is not for everyone. It uses <a href="https://zipline.diced.sh" target="_blank"><strong>Zipline</strong></a>. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.</p><ul><li><strong>My Comics</strong></li></ul><p>I am a big fan of comic books, especially the ones from my childhood. This container uses <a href="https://kavitareader.com/" target="_blank"><strong>Kavita</strong></a>. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their <a href="https://discord.gg/b52wT37kt7" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>Audiobookshelf</strong></li></ul><p>I guess I do not need to explain that one. It's just a docker container for <a href="https://www.audiobookshelf.org" target="_blank"><strong>Audiobookshelf</strong></a>. In case you have some Audio books or podcasts. Have fun.</p><ul><li><strong>FreshRSS</strong></li></ul><p>That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called <a href="https://www.freshrss.org" target="_blank"><strong>FreshRSS</strong></a>. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.</p><ul><li><strong>Immich</strong></li></ul><p>Now, this is one of the big ones, <a href="https://immich.app" target="_blank"><strong>Immich</strong></a> is an amazing image cloud like service. Allowing you to move away from <strong>Apple</strong> and <strong>Google</strong>. I love that as I said at the beginning of this long post. They even have companion apps for both <a href="https://play.google.com/store/apps/details?id=app.alextran.immich" target="_blank"><strong>Android</strong></a> and <a href="https://apps.apple.com/sg/app/immich/id1613945652" target="_blank"><strong>iOS</strong></a> which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.</p><h3 id="you-get-the-idea">You get the idea<a class="headerlink" href="#you-get-the-idea" title="Permanent link">&para;</a></h3><p>Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's <strong>BIG</strong> rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.</p><ul><li><a href="https://plex.tv" target="_blank"><strong>Plex Server</strong></a></li><li><a href="https://github.com/alexta69/metube" target="_blank"><strong>meTube</strong></a></li><li><a href="https://koel.dev" target="_blank"><strong>Koel</strong></a></li><li><a href="https://tautulli.com" target="_blank"><strong>Tautulli</strong></a></li><li><a href="https://www.portainer.io" target="_blank"><strong>Portainer</strong></a></li><li><a href="https://github.com/schlagmichdoch/pairdrop" target="_blank"><strong>PairDrop</strong></a></li><li><a href="https://github.com/CorentinTh/it-tools" target="_blank"><strong>IT-Tools</strong></a></li><li><a href="https://cockpit-project.org" target="_blank"><strong>Cockpit</strong></a></li></ul><h3 id="where-to-find-more-containers">Where to find more containers ?<a class="headerlink" href="#where-to-find-more-containers" title="Permanent link">&para;</a></h3><p>Well, there are many places, but my favorite has to be <a href="https://selfh.st/apps/" target="_blank"><strong>Selfh.st</strong></a> hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.</p><h3 id="closing-words">Closing words<a class="headerlink" href="#closing-words" title="Permanent link">&para;</a></h3><p>Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.</p><p>Thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ XeroLinux Channel ArchLinux Linux XeroLinux YouTube <h3 id="youtube-channel">YouTube Channel ?<a class="headerlink" href="#youtube-channel" title="Permanent link">&para;</a></h3><p>Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, <strong>Nice!</strong>.</p><p>But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.</p><h3 id="what-now-xero">What now Xero ?<a class="headerlink" href="#what-now-xero" title="Permanent link">&para;</a></h3><p>Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since <strong>YouTube</strong> and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.</p><h3 id="whats-the-catch">What's the Catch ?<a class="headerlink" href="#whats-the-catch" title="Permanent link">&para;</a></h3><p>This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the <a href="https://ko-fi.com/XeroLinux" target="_blank"><strong>XeroLinux Ko-Fi</strong></a> fundraiser for the forseeable future.</p><p>Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to <em>donate</em>, however would be highly appreciated if you do.</p><h3 id="future-plans">Future Plans<a class="headerlink" href="#future-plans" title="Permanent link">&para;</a></h3><p>When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.</p><p>Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.</p><p>Anyways, thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Wed, 04 Sep 2024 21:51:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Why Revive XeroLinux ArchLinux Distribution Linux XeroLinux <div class="admonition info"><p class="admonition-title">Info</p><p>This post will explain why I decided to bring back <strong>XeroLinux</strong> and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the <a href="https://wiki.xerolinux.xyz/distro/" target="_blank"><strong>XeroLinux Wiki</strong></a></p></div><h3 id="what-is-xerolinux">What is XeroLinux<a class="headerlink" href="#what-is-xerolinux" title="Permanent link">&para;</a></h3><p>In short, it's just an alternative to the <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma Install Script</strong></a>, making it easier to install <strong>Arch</strong>, bypassing the need for <strong>ArchInstall</strong>. The ISO includes my toolkit as well as my famous <a href="https://wiki.xerolinux.xyz/rice/" target="_blank"><strong>Xero Layan Rice</strong></a> all-in-one shot.</p><p align="center"> <img src="https://i.imgur.com/ejZ1ZQv.png"></p><p>You can use the included <a href="https://wiki.xerolinux.xyz/xlapit/" target="_blank"><strong>Xero Toolkit</strong></a>, 1<sup>st</sup> icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the <a href="https://aur.chaotic.cx" target="_blank"><strong>Chaotic-AUR</strong></a> repository so it's easier for you to install <strong>AUR</strong> packages rather from having to compile them.</p><h3 id="why-is-xerolinux-back">Why is XeroLinux back<a class="headerlink" href="#why-is-xerolinux-back" title="Permanent link">&para;</a></h3><p>To explain why, let me set the stage. As you may already know, I’m going through significant financial difficulties. Living in Lebanon, finding a job—especially a remote one—is extremely challenging, and the situation continues to worsen. I won’t rehash the entire story here, but if you’re not familiar, you can read more about it in this <a href="https://blog.techxero.com/index.php/2024/06/07/actively-looking-for-a-job/" target="_blank"><strong>BlogPost</strong></a>.</p><p>After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro’s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it—and make it a way to sustain myself?</p><p><img alt="type:video" src="https://www.youtube.com/embed/lsYg6-wUWXw" /></p><p>Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the <a href="https://distrowatch.com" target="_blank"><strong>DistroWatch</strong></a> rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!</p><p>That answers the why.</p><h3 id="how-to-get-it">How to get it<a class="headerlink" href="#how-to-get-it" title="Permanent link">&para;</a></h3><p>I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO—a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the <a href="https://xerolinux.xyz/iso/" target="_blank"><strong>Release Post</strong></a></p><p>Now, I know that some of you will say, "But it's FOSS; you shouldn't charge for it." To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the <a href="https://github.com/XeroLinuxDev" target="_blank"><strong>Source Code</strong></a> and do with it as you wish. I am simply charging for my time.</p><p>The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up… well, let's not dwell on that. Let’s focus on keeping it alive and thriving for a long and happy journey together!</p><h3 id="is-it-any-special">Is it any Special<a class="headerlink" href="#is-it-any-special" title="Permanent link">&para;</a></h3><p>This is a common question I get. To be honest, there’s no groundbreaking advantage—it simply provides an easier way to install <strong>Arch</strong> with a polished <strong>KDE</strong> experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.</p><p>Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that <strong>XeroLinux</strong> is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.</p><h3 id="how-to-get-it-for-free">How to get it for free<a class="headerlink" href="#how-to-get-it-for-free" title="Permanent link">&para;</a></h3><p>If you can’t support me financially but still want <strong>XeroLinux</strong>, while the ISO isn't available for free right now, you can still achieve similar results with my <a href="https://xerolinux.xyz/news/xerolinux-plasma/" target="_blank"><strong>PlasmaInstall</strong></a> script, which will always be free of charge. It just requires a bit more elbow grease on your part—that’s all there is to it!</p><h3 id="i-dont-like-arch">I don't like Arch<a class="headerlink" href="#i-dont-like-arch" title="Permanent link">&para;</a></h3><p>In case you don't like <strong>Arch</strong> for whatever reason, but still want to support me, I have put up a <a href="https://shop.xerolinux.xyz" target="_blank"><strong>Merch Store</strong></a> where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.</p><h3 id="private-donations">Private Donations<a class="headerlink" href="#private-donations" title="Permanent link">&para;</a></h3><p>Did you know I have a private fundraiser account? It’s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at <a href="https://fundrazr.com/xerolinux" target="_blank"><strong>FundRazr</strong></a>.</p><p>Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving <strong>XeroLinux</strong>, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn’t been getting much support. Ideally, I’d love to keep these funds separate, but ultimately, it’s your choice.</p><h3 id="wrapping-up">Wrapping up<a class="headerlink" href="#wrapping-up" title="Permanent link">&para;</a></h3><p>That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/why-is-distro-back/ Wed, 04 Sep 2024 21:51:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/why-is-distro-back/ 🏠Home <h1 id="welcome">Welcome<a class="headerlink" href="#welcome" title="Permanent link">&para;</a></h1><div class="admonition info"><p class="admonition-title">Info</p><p>All the documentation found herein, will be for <strong>ArchLinux</strong> since that's the distro I use. Some will be general <strong>Linux</strong> ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.</p></div><p>Welcome to <strong>DarkXero's Bytes</strong> ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the <a href="https://xerolinux.xyz" target="_blank"><strong>XeroLinux</strong></a> main site.</p><p align="center"> <img src="https://i.imgur.com/ZAvPAkx.png" alt="logo"></p><p>Documenting my learning journey has become an essential part of my <strong>Linux</strong> experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.</p><p align="center"> <img src="https://i.imgur.com/TgVQf9z.png" alt="ArchPorn"></p>https://bytes.xerolinux.xyz/ Wed, 04 Sep 2024 19:37:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/ \ No newline at end of file + DarkXero's BytesThoughts, Opinions, Documentation, and more...https://bytes.xerolinux.xyz/en Wed, 22 Jan 2025 07:06:00 -0000 Wed, 22 Jan 2025 07:06:00 -0000 60 MkDocs RSS plugin - v1.17.1 https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png DarkXero's Byteshttps://bytes.xerolinux.xyz/ GPU Fundraiser Hardware Linux <p>Since getting myself a nice Christmas gift, the <a href="https://www.amd.com/en/products/processors/desktops/ryzen/5000-series/amd-ryzen-9-5950x.html" target="_blank"><strong>Ryzen 9 5950X</strong></a> CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.</p><div align="center"> <script type='text/javascript' src='https://storage.ko-fi.com/cdn/widget/Widget_2.js'></script><script type='text/javascript'>kofiwidget2.init('Support me on Ko-fi', '#8073f5', 'I2I4K55AA');kofiwidget2.draw();</script> </div><p>With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.</p><p align="center"> <img width="360" src="https://i.imgur.com/JCpfCS8.png"> <img width="360" src="https://i.imgur.com/ojsENRr.png"></p><p>Thank you for your continuous support. Without you none of this would have been possible. <strong>XeroLinux</strong> owes its existence to you. Let's get 2025 on the road shall we ?</p>https://bytes.xerolinux.xyz/tech/gpu-fund/ Wed, 22 Jan 2025 11:02:16 +0200DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/gpu-fund/ SDDM Display Display Linux SDDM <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Login session appears on an unexpected display. It can happen that the <strong>SDDM</strong> login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use <code>xrandr</code> to configure the displays before the login session using Xsetup script. E.g. here <code>xrandr</code> reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).</p><p align="center"> <img src="https://i.imgur.com/c6fj1u4.png"></p><h3 id="lets-fix-it">Let's fix it 🚀<a class="headerlink" href="#lets-fix-it" title="Permanent link">&para;</a></h3><p>We need to be logged in to an <em>X-Session</em> meaning <code>X11</code> to gat the correct display names, we cannot use display names from <code>Wayland</code> session won't work for some reason, maybe because <strong>SDDM</strong> runs in <code>X11</code> ? No idea, now run this command in terminal to get their names. Need to have <code>xrandr</code> package installed.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>xrandr<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-w<span class="w"> </span>connected</span></code></pre></div><p>Output should be like this (mine)</p><blockquote><p>HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm <br /> DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm <br /> HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm</p></blockquote><p>This is my own <code>Xsetup</code> for the login window, yours may differ :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="ch">#!/bin/sh</span></span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="c1"># Xsetup - run as root before the login dialog appears</span></span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a></span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>DP-2<span class="w"> </span>--auto<span class="w"> </span>--primary</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-1<span class="w"> </span>--auto<span class="w"> </span>--left-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-0<span class="w"> </span>--auto<span class="w"> </span>--right-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span></code></pre></div><p>If you want to manually edit the file</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>nano<span class="w"> </span>/usr/share/sddm/scripts/Xsetup</span></code></pre></div><p>Paste the output of your <code>xrandr</code> command as I did above in there save &amp; reboot.</p><p>That's it y'all..</p>https://bytes.xerolinux.xyz/docs/sddm-display/ Sat, 12 Oct 2024 14:29:56 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/sddm-display/ RiP GamerKing Lebanon Warzone <h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>In Memoriam</strong></p><p>It is with a heavy heart that I share the passing of <strong>GamerKing</strong>, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant <strong>Linux</strong> enthusiast but also a vibrant soul who played a significant role in shaping the future of <strong>XeroLinux</strong>. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.</p><p align="center"> <img src="https://i.imgur.com/37Ew8GN.jpeg" alt="avatar"></p><p>I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. <strong>XeroLinux</strong> carries his imprint, and his contributions will forever be woven into its fabric. In a place like <strong>Lebanon</strong>, where <strong>Linux</strong> is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.</p><p>For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and <strong>GamerKing</strong> was caught in the crossfire.</p><p>Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.</p><p align="center"> <img src="https://i.imgur.com/vQFu6YT.jpeg" alt="rip"></p><p>As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.</p><p>Yesterday, as I write this, a massive bombing destroyed a six-building complex near <strong>GamerKing</strong>'s location. Soon after, I received a message from his younger brother. At first, I believed it was <strong>GamerKing</strong> himself, and my immediate question was, "<strong>Are you OK?</strong>" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: "<strong>He told me that if anything happened to me, open Discord and tell Dark</strong>." I asked, trembling, "<strong>Why? What happened?</strong>" After what felt like an eternity, he delivered the words that shattered my world: "<strong>He just left us</strong>."</p><p>I still don’t know what took him from us, whether it was his injuries or the bombing—but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.</p><p>I will always remember his infectious energy, his humor, and his brilliance. He was the light of <strong>XeroLinux</strong>, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. <strong>Rest in peace, little brother</strong>.</p>https://bytes.xerolinux.xyz/priv/rip-gamerking/ Sun, 29 Sep 2024 15:32:44 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/rip-gamerking/ FOSS Fundraising ArchLinux Fundraising Linux <h3 id="backstory">Backstory<a class="headerlink" href="#backstory" title="Permanent link">&para;</a></h3><p>Before I begin, I would like to clarify that, when I say <strong>Linux</strong> in this context I mean <strong>Desktop Linux</strong>.</p><p>When I started this whole <strong>Linux</strong> endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with <a href="https://kde.org" target="_blank"><strong>KDE Plasma</strong></a> while using the now infamous <a href="https://manjaro.org" target="_blank"><strong>Manjaro</strong></a> Distrobution. Yes, this is when I got hooked to <strong>Linux</strong>. Now don't get me wrong, I have since tried many DEs and WMs. But alas only <strong>KDE Plasma</strong> answered my needs.</p><p>Since then I started getting the urge to build my own <em>Distro</em> my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called <a href="https://arcolinux.info" target="_blank"><strong>ArcoLinux</strong></a>. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro <a href="https://archlinux.org" target="_blank"><strong>ArchLinux</strong></a>.</p><h3 id="fundraising">Fundraising<a class="headerlink" href="#fundraising" title="Permanent link">&para;</a></h3><p>Now we get to the meat and potatoes of this post, why ask for money when it's <strong>FOSS</strong> ? Well in case you did not know, the <em>Free</em> in <em>Free Open Source</em> does <strong>NOT</strong> mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our <strong>TIME</strong>.</p><p>Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a <em>real</em> job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.</p><p>Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the <em>Fundraising</em> or <em>Donation</em> methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the <strong>Donate</strong> button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)</p><h3 id="hate-in-foss">Hate in FOSS<a class="headerlink" href="#hate-in-foss" title="Permanent link">&para;</a></h3><p>Now let's address the <em>other</em> elephant in the room, the hate in the <strong>FOSS</strong> community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word <em>Free</em> in <em>Free Open Source</em>. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they <em>despise</em> others, the ones we call <em>Protest Distros</em>. Now am not going to name any names here, but the longer this goes on, the slower <strong>Linux</strong> will grow.</p><p>So if you love <strong>Linux</strong> as much as you say you do, please help your favorite projects grow in any way shape or form, either <em>Donating</em> for financial support if you can and are not a developer, or by simply <em>Reporting Issues</em> upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.</p><p>Anyways, thanks for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p><p>See ya there</p>https://bytes.xerolinux.xyz/priv/foss-fundraising/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/foss-fundraising/ Plans for other spins ArchLinux Distribution Linux XeroLinux <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if <strong>XeroLinux</strong> did the same, I was once asked. For example <strong>Cosmic</strong>, <strong>Hyprland</strong>, <strong>XFCE</strong> and so on.</p><h3 id="its-complicated">It's Complicated<a class="headerlink" href="#its-complicated" title="Permanent link">&para;</a></h3><p>As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?</p><p>But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind <strong>XeroLinux</strong>. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.</p><p>That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for <em>Free</em> right now.</p><p>I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the <strong>KDE</strong> version to me, there's not much I can do. I hope you understand.</p><h3 id="the-good-news">The Good News<a class="headerlink" href="#the-good-news" title="Permanent link">&para;</a></h3><p>There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the <a href="https://wiki.xerolinux.xyz/cosmic/" target="_blank"><strong>Cosmic</strong></a> and <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma</strong></a> ones.</p><p>I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.</p><p>Some of you might be asking, <em>What's the catch?</em> Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of <strong>ArchInstall</strong> to get a minimal system set up, after which you will be able to run my scripts.</p><p>That's it really. That's why I chose <strong>Arch</strong>. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.</p><h3 id="the-future">The Future<a class="headerlink" href="#the-future" title="Permanent link">&para;</a></h3><p>In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough <em>Install Scripts</em>, why not combine them all into a single easy to use <em>Mega Script</em> of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?</p><p>That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, <strong>HyprLand</strong>, <strong>Gnome</strong> and maybe <strong>DWM</strong> or <strong>BSPWM</strong> I dunno yet. Don't hold me on that though, please, just ideas for now.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/other-xero-spins/ Thu, 26 Sep 2024 14:07:52 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/other-xero-spins/ Current Situation Lebanon Situation Struggles War <div class="admonition info"><p class="admonition-title">Info</p><p>Situation in <strong>Lebanon</strong> has escalatated to a ptotential war. If you’re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.</p></div><h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>Hello everyone,</strong></p><p>It's one of those times where words fall short. The past few days have been incredibly difficult for us here in <strong>Lebanon</strong>, and it feels like things are only getting worse, spiraling out of control. Close friends, people I’ve known for years, have been injured, and some have even been forced to flee their homes. We’re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It’s something straight out of a dystopian novel, but it's happening right here, right now.</p><p><img alt="type:video" src="https://www.youtube.com/embed/OmeKpICXiBA" /></p><p>We are terrified to carry even the most basic tech devices, and it's surreal to say the least.</p><p>For the first time in my life, I genuinely don’t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn’t get worse? I’ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we’re on the edge of something catastrophic.</p><p>Your help and support would be, potentially life saving !</p>https://bytes.xerolinux.xyz/priv/current-situation/ Sat, 21 Sep 2024 13:17:28 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/current-situation/ Reset Password Linux Recovery Reset <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>I have lost my root pass on <strong>Linux</strong> more times than I can count. This guide is here so I do not have to <em>Google</em> it lol. Might be useful to you I dunno. But it's here.</p><p align="center"> <img src="https://i.imgur.com/VFXV09r.jpeg"></p><h3 id="lets-do-this">Let's do this 🚀<a class="headerlink" href="#lets-do-this" title="Permanent link">&para;</a></h3><p>How to reset forgotten root password in a <strong>GNU/Linux</strong> distribution with <code>GRUB</code>?</p><p>If this is a laptop or a desktop which you have next to you then follow these steps.</p><ol><li>Shut down the device.</li><li>Start it again. When you see GRUB menu, press the <code>e</code> key on the keyboard before the system starts booting.</li><li>In the <code>GRUB</code> boot options, scroll down and locate the line that begins with <code>linux</code>. In this line move the cursor to the end, right after <code>ro quiet</code>. Delete everything after that. Change <code>ro</code> to <code>rw</code>. Append the parameter <code>init=/bin/bash</code></li><li>Press Ctrl+x, or F10, to boot.</li><li>You will see a root prompt.</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>:#</span></code></pre></div><p>Remount the filesystem in read/write mode:</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>:#<span class="w"> </span>mount<span class="w"> </span>-no<span class="w"> </span>remount,rw<span class="w"> </span>/</span></code></pre></div><ol><li>Set the password of any user(s).</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>:#<span class="w"> </span>passwd<span class="w"> </span>joe</span></code></pre></div><ol><li>Reboot with the command <code>reboot -f</code>.</li></ol><p>That's it ! The new password should work now.</p>https://bytes.xerolinux.xyz/docs/passwd-reset/ Tue, 17 Sep 2024 13:47:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/passwd-reset/ FFmpeg Cheat Sheet CheatSheet FFmpeg Linux <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the use of <a href="https://www.ffmpeg.org/ffmpeg.html" target="_blank"><strong>FFmpeg</strong></a> on <strong>Linux</strong>.</p><p align="center"> <img src="https://i.imgur.com/TweW8fW.png"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to install <code>FFmpeg</code>. I will be doing it on <strong>ArchLinux</strong> since that's what I use. Look for packages on your distro if you don't use it.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>--needed<span class="w"> </span>ffmpeg<span class="w"> </span>ffmpegthumbnailer<span class="w"> </span>ffmpegthumbs<span class="w"> </span>qt6-multimedia-ffmpeg</span></code></pre></div><p>Now that we have it, it's time for the cheat sheet.</p><hr /><h1 align="center">.// The Cheat Sheet \\.</h1><h2 id="basic-conversion">Basic conversion<a class="headerlink" href="#basic-conversion" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ffmpeg -i in.mp4 out.avi</span></code></pre></div><h3 id="remux-an-mkv-file-into-mp4">Remux an MKV file into MP4<a class="headerlink" href="#remux-an-mkv-file-into-mp4" title="Permanent link">&para;</a></h3><div class="language-text highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="high-quality-encoding">High-quality encoding<a class="headerlink" href="#high-quality-encoding" title="Permanent link">&para;</a></h3><p>Use the <code>crf</code> (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to <code>-crf 18</code>. Use the <code>preset</code> parameter to control the speed of the compression process. <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>Additional info</strong></a>.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4</span></code></pre></div><h2 id="trimming">Trimming<a class="headerlink" href="#trimming" title="Permanent link">&para;</a></h2><p>Without re-encoding:<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4</span></code></pre></div>- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-ss</code></a> specifies the start time, e.g. <code>00:01:23.000</code> or <code>83</code> (in seconds)- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-t</code></a> specifies the duration of the clip (same format).- Recent <code>ffmpeg</code> also has a flag to supply the end time with <code>-to</code>.- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-c</code></a> copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.</p><p>With re-encoding:</p><p>If you leave out the <code>-c copy</code> option, <code>ffmpeg</code> will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the <a href="https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide" target="_blank"><strong>x264 Encoding Guide</strong></a> and the <a href="http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide" target="_blank"><strong>AAC Encoding Guide</strong></a>, respectively.</p><p>For example:<div class="language-text highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4</span></code></pre></div></p><h2 id="mux-video-and-audio-from-another-video">Mux video and audio from another video<a class="headerlink" href="#mux-video-and-audio-from-another-video" title="Permanent link">&para;</a></h2><p>To copy the video from in0.mp4 and audio from in1.mp4:<div class="language-text highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4</span></code></pre></div>- With <a href="http://ffmpeg.org/ffmpeg.html#Stream-copy" target="_blank">-c copy</a> the streams will be <code>stream copied</code>, not re-encoded, so there will be no quality loss. If you want to re-encode, see <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>FFmpeg Wiki: H.264 Encoding Guide</strong></a>.- The <code>-shortest</code> option will cause the output duration to match the duration of the shortest input stream.- See the <a href="http://ffmpeg.org/ffmpeg.html#Advanced-options" target="_blank"><code>-map</code> option documentation</a> for more info.</p><h2 id="concat-demuxer">Concat demuxer<a class="headerlink" href="#concat-demuxer" title="Permanent link">&para;</a></h2><p>First, make a text file.<div class="language-text highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>file &#39;in1.mp4&#39;</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>file &#39;in2.mp4&#39;</span><span id="__span-7-3"><a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>file &#39;in3.mp4&#39;</span><span id="__span-7-4"><a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>file &#39;in4.mp4&#39;</span></code></pre></div>Then, run <code>ffmpeg</code>:<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ffmpeg -f concat -i list.txt -c copy out.mp4</span></code></pre></div></p><h2 id="delay-audiovideo">Delay audio/video<a class="headerlink" href="#delay-audiovideo" title="Permanent link">&para;</a></h2><p>Delay video by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4</span></code></pre></div>Delay audio by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4</span></code></pre></div></p><h2 id="burn-subtitles">Burn subtitles<a class="headerlink" href="#burn-subtitles" title="Permanent link">&para;</a></h2><p>Use the <a href="http://ffmpeg.org/ffmpeg.html#ass" target="_blank">libass</a> library (make sure your ffmpeg install has the library in the configuration <code>--enable-libass</code>).</p><p>First convert the subtitles to .ass format:<div class="language-text highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>ffmpeg -i sub.srt sub.ass</span></code></pre></div>Then add them using a video filter:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4</span></code></pre></div><h2 id="extract-the-frames-from-a-video">Extract the frames from a video<a class="headerlink" href="#extract-the-frames-from-a-video" title="Permanent link">&para;</a></h2><p>To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>ffmpeg -i in.mp4 -vf select=&#39;between(t,1,5)+between(t,11,15)&#39; -vsync 0 out%d.png</span></code></pre></div><p>To extract one frame per second only:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png</span></code></pre></div><h2 id="rotate-a-video">Rotate a video<a class="headerlink" href="#rotate-a-video" title="Permanent link">&para;</a></h2><p>Rotate 90 clockwise:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>ffmpeg -i in.mov -vf &quot;transpose=1&quot; out.mov</span></code></pre></div><p>For the transpose parameter you can pass:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>0 = 90CounterCLockwise and Vertical Flip (default)</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>1 = 90Clockwise</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>2 = 90CounterClockwise</span><span id="__span-16-4"><a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>3 = 90Clockwise and Vertical Flip</span></code></pre></div><p>Use <code>-vf "transpose=2,transpose=2"</code> for 180 degrees.</p><h2 id="download-transport-stream-video-streams">Download "Transport Stream" video streams<a class="headerlink" href="#download-transport-stream-video-streams" title="Permanent link">&para;</a></h2><ol><li>Locate the playlist file, e.g. using Chrome &gt; F12 &gt; Network &gt; Filter: m3u8</li><li>Download and concatenate the video fragments:</li></ol><div class="language-text highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>ffmpeg -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><p>If you get a "Protocol 'https not on whitelist 'file,crypto'!" error, add the <code>protocol_whitelist</code> option:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>ffmpeg -protocol_whitelist &quot;file,http,https,tcp,tls&quot; -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><h2 id="mute-some-of-the-audio">Mute some of the audio<a class="headerlink" href="#mute-some-of-the-audio" title="Permanent link">&para;</a></h2><p>To replace the first 90 seconds of audio with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;lte(t,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><p>To replace all audio between 1'20" and 1'30" with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;between(t,80,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><h2 id="deinterlace">Deinterlace<a class="headerlink" href="#deinterlace" title="Permanent link">&para;</a></h2><p>Deinterlacing using "yet another deinterlacing filter".</p><div class="language-text highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>ffmpeg -i in.mp4 -vf yadif out.mp4</span></code></pre></div><h2 id="create-a-video-slideshow-from-images">Create a video slideshow from images<a class="headerlink" href="#create-a-video-slideshow-from-images" title="Permanent link">&para;</a></h2><p>Parameters: <code>-r</code> marks the image framerate (inverse time of each image); <code>-vf fps=25</code> marks the true framerate of the output.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4</span></code></pre></div><h2 id="extract-images-from-a-video">Extract images from a video<a class="headerlink" href="#extract-images-from-a-video" title="Permanent link">&para;</a></h2><ul><li>Extract all frames: <code>ffmpeg -i input.mp4 thumb%04d.jpg -hide_banner</code></li><li>Extract a frame each second: <code>ffmpeg -i input.mp4 -vf fps=1 thumb%04d.jpg -hide_banner</code></li><li>Extract only one frame: <code>ffmpeg -i input.mp4 -ss 00:00:10.000 -vframes 1 thumb.jpg</code></li></ul><h2 id="display-the-frame-number-on-each-frame">Display the frame number on each frame<a class="headerlink" href="#display-the-frame-number-on-each-frame" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>ffmpeg -i in.mov -vf &quot;drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72&quot; -y out.mov</span></code></pre></div><h2 id="metadata-change-the-title">Metadata: Change the title<a class="headerlink" href="#metadata-change-the-title" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>ffmpeg -i in.mp4 -map_metadata -1 -metadata title=&quot;My Title&quot; -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.</p>https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ Tue, 17 Sep 2024 13:36:31 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ My Cosmic Experience ArchLinux Cosmic Linux <div class="admonition note"><p class="admonition-title">Note</p><p>Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.</p></div><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>The <a href="https://xerolinux.xyz/posts/arch-cosmic/" target="_blank"><strong>Cosmic DE</strong></a> hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.</p><p align="center"> <img src="https://i.imgur.com/Fvl9uRU.png"></p><p>Since I am an avid <strong>ArchLinux</strong> user, that's how I installed it. I did not use the <strong>Pop!_OS 24.04 LTS alpha</strong> ISO from &gt;&gt; <a href="https://system76.com/cosmic" target="_blank"><strong>Cosmic Downloads</strong></a>. So my views come from there. So I cannot compare.</p><p>Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the <strong>ArchInstall</strong> profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.</p><p>Now on to the more detailed things I have done to install <strong>Cosmic</strong>. I first installed <strong>Arch Minimal</strong> using the <strong>ArchInstall</strong> script, meaning that I avoided the profiles, &amp; drivers sections completely, I always choose <code>Grub</code> as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in <code>chroot</code> I installed the DE the following way, knowing that, we can skip the use of <code>sudo</code> since we are still logged in as root...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>pacman<span class="w"> </span>-Syy<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>cosmic<span class="w"> </span>linux-headers<span class="w"> </span>pacman-contrib<span class="w"> </span>xdg-user-dirs<span class="w"> </span>power-profiles-daemon<span class="w"> </span>wayland-protocols<span class="w"> </span>wayland-utils</span></code></pre></div><p align="center"> <img src="https://i.imgur.com/tR8WJJI.png"></p><p>Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because <a href="https://archlinux.org/packages/?sort=&amp;q=cosmic&amp;maintainer=&amp;flagged=" target="_blank"><strong>cosmic</strong></a> is not a single one, it's a <em>Group</em> of packages or a <em>meta-package</em> as it is known as. That said, the reason I installed <code>linux-headers</code> is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially <code>xdg-user-dirs</code> without which no <code>Documents, Pictures, Videos...</code> folders will be created. Strange I know.</p><p>What I also found weird, is the fact that <code>cosmic-greeter</code> service was not being enabled after install which was netting me a boot to <code>TTY</code> session. So I had to enable it while at the same time generating the <code>user-dirs</code> via...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>cosmic-greeter.service<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>xdg-user-dirs-update</span></code></pre></div><p>Keep in mind that I am doing all this while still in <code>chroot</code> post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.</p><h3 id="experience">Experience<a class="headerlink" href="#experience" title="Permanent link">&para;</a></h3><p>Now on to what y'all came here for. All was good, well sorta, system rebooted into <code>Grub</code>, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some <code>TTY dmsg</code> errors, flickering on and off. But after a few seconds I finally saw the <strong>Cosmic Greeter</strong> login screen, relief finally.</p><p align="center"> <img src="https://i.imgur.com/TPjWMjR.png"></p><p>I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an <strong>nVidia</strong> user, I thought could be a driver issue since on first boot it uses the not so great <code>nouveau</code> ones. That's why my first reflex was to install them, so I did.</p><p align="center"> <img src="https://i.imgur.com/VotUyBS.jpeg"></p><p>After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about <code>EGL drm</code> crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?</p><p>As it turns out I had forgotten to include the <code>nVidia drm kernel modules</code> lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>sed<span class="w"> </span>-i<span class="w"> </span><span class="s1">&#39;/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/&#39;</span><span class="w"> </span>/etc/mkinitcpio.conf</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>nvidia-suspend.service<span class="w"> </span>nvidia-hibernate.service<span class="w"> </span>nvidia-resume.service<span class="w"> </span>nvidia-powerd.service</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf</span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia_drm modeset=1 fbdev=1&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>mkinitcpio<span class="w"> </span>-P</span></code></pre></div><p>After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like <strong>XFCE</strong>. Fired up <code>top</code> to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than <strong>KDE Plasma</strong> ! Nice !</p><p>Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run <code>nmtui</code> and deactivate it from there making sure it doesn't automatically reconnect on login.</p><p>Now on to the <code>System Settings</code>. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..</p><p>That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.</p><p>Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean <strong>Cosmic-Notes</strong> was there, just not handling documents...</p><p>I try to right-click &gt; open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself "It's Alpha Software, calm down Steve".</p><p>To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a <code>CLI</code> and no default app set ? I dunno.</p><p>Finally I decided to try out the thing that almost everyone's raving about, <strong>Tiling/Stacking</strong>. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...</p><p>That's where I gave up and decided to go back home to <strong>KDE Plasma</strong>.</p><h3 id="final-words">Final words<a class="headerlink" href="#final-words" title="Permanent link">&para;</a></h3><p>Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.</p><p>It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.</p><p>I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. <strong>Cosmic</strong> has come a long way in such a short time. I mean, writing a DE from scratch using <strong>Rust</strong> a sorta new programming language is no easy feat.</p><p>I will end the post by congratulating the <strong>System76</strong> dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a <strong>XeroCosmic</strong> to the family.. Just don't hold your breath on that, it ain't set in stone.</p>https://bytes.xerolinux.xyz/tech/cosmic-experience/ Wed, 11 Sep 2024 13:33:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/cosmic-experience/ Affinity on Linux Affinity Linux Photoshop <div class="admonition warning"><p class="admonition-title">Warning</p><p>This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.</p></div><h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://affinity.serif.com/en-us/" target="_blank"><strong>Affinity Apps</strong></a> on <strong>Linux</strong> thanks to <a href="https://github.com/Twig6943" target="_blank"><strong>Twig6943</strong></a>.</p><p align="center"> <img src="https://i.imgur.com/MABHj31.jpeg"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to download the <a href="https://store.serif.com/update/windows/photo/2/" target="_blank"><strong>Photo</strong></a>, <a href="https://store.serif.com/update/windows/designer/2/" target="_blank"><strong>Designer</strong></a> or <a href="https://store.serif.com/update/windows/publisher/2/" target="_blank"><strong>Publisher</strong></a> <code>exe</code> from the dropdown. Once we have it/them, follow the guide over on maintainer's <a href="https://github.com/Twig6943/AffinityOnLinux" target="_blank"><strong>Github</strong></a></p><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to <strong>Photoshop</strong> I have ever gotten, without having to go through <em>WinBlows</em> if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.</p>https://bytes.xerolinux.xyz/docs/affinity-linux/ Tue, 10 Sep 2024 22:53:38 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/affinity-linux/ SUMMARY <ul><li><a href="../">🏠Home</a></li><li><a href="/docs/">🗒️Documentation</a></li><li><a href="/priv/">🗨️Communication</a></li><li><a href="/projects/">💻Xero Projects</a></li><li><a href="/tech/">🖱️Technology</a></li></ul>https://bytes.xerolinux.xyz/SUMMARY/ Thu, 05 Sep 2024 20:30:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/SUMMARY/ Linux in a Nutshell Kernel Linux Packages <p>I thought I'd share this explanation about <strong>Linux</strong> a good friend and fellow Linux enthusiast <a href="https://github.com/REALERvolker1" target="_blank"><strong>REALERvolker1</strong></a> recently posted on <strong>Discord</strong>.</p><div class="admonition tip"><p class="admonition-title">Tip</p><p>The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various <em>Desktop Environments</em> or <em>Window Managers</em>. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...</p></div><h3 id="what-is-linux">What is Linux ?<a class="headerlink" href="#what-is-linux" title="Permanent link">&para;</a></h3><p>Since not everyone's super familiar with Linux, here's a quick crash course.</p><p>Linux is a <a href="https://en.wikipedia.org/wiki/Monolithic_kernel#:~:text=A%20monolithic%20kernel%20is%20an,virtual%20interface%20over%20computer%20hardware." target="_blank"><strong>Monolithic Kernel</strong></a>, so all the drivers and whatnot are compiled into the binary. The <a href="https://www.fsf.org/about/what-is-free-software" target="_blank"><strong>Nonfree software</strong></a> is usually put in the actual source repo as binary blobs, or in the case of <strong>nVidia</strong> drivers, built using a system called <a href="https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support" target="_blank"><strong>DKMS</strong></a> and compiled into the kernel binary.</p><p>Once the computer boots up, an init process is started (the default is <code>/sbin/init</code>, usually a symlink to your init system), which is <code>PID 1</code>. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having <em>too</em> much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.</p><p>Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being <a href="https://en.wikipedia.org/wiki/POSIX" target="_blank"><strong>POSIX</strong></a> compliant, and not really caring about file extensions.</p><p align="center"> <img width="600" src="https://i.imgur.com/Mu7NHx9.png" alt="logo"></p><h3 id="distros-pkg-managers">Distros &amp; PKG Managers<a class="headerlink" href="#distros-pkg-managers" title="Permanent link">&para;</a></h3><p>On <a href="https://www.debian.org" target="_blank"><strong>Debian</strong></a>, you install packages with <code>apt</code>. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a <em>GUI</em> frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the <a href="https://wiki.debian.org/DontBreakDebian" target="_blank"><strong>Debian Wiki</strong></a> is pretty mid, but the <a href="https://wiki.archlinux.org" target="_blank"><strong>Arch Wiki</strong></a> is amazing.</p><p>Since <a href="https://archlinux.org" target="_blank"><strong>Arch Linux</strong></a> aims to be the most generic <em>Linux distro</em> ever, information written for it should also help with <strong>Debian</strong>, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:</p><ul><li><strong>Flatpak:</strong> Sandboxed apps that "just work" on every distribution.</li><li><strong>Snap:</strong> <em>Ubuntu</em>'s sandboxed apps that are supposed to work on every distribution but have had mixed results.</li><li><strong>AppImages:</strong> These are like <code>.exe</code> files on <strong>Windows</strong>, but they require adding executable permissions and manually launching them. They also won't have a desktop entry by default.</li></ul><h3 id="filesystem-updates">Filesystem &amp; Updates<a class="headerlink" href="#filesystem-updates" title="Permanent link">&para;</a></h3><p>If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not—it might fix a bug.</p><p>As for the filesystem:</p><ul><li><code>/etc</code> is where your Editable Text Configurations go.</li><li><code>/usr</code> is where program files go.</li><li><code>/usr/local</code> is where program files go for programs you manually installed.</li><li><code>/home</code> is where your personal files go.</li><li><code>/dev</code> is for device files.</li><li>There is no <code>C</code> or <code>D</code> drive; instead, you mount external drives to a location, like <code>/mnt</code>. A GUI file manager mounts flash drives somewhere in <code>/run</code> since it is temporary.</li><li><code>/opt</code> is where miscellaneous stuff goes.</li><li><code>/var</code> is for variable data like system logs.</li><li><code>/tmp</code> is for temporary files.</li><li><code>/dev/null</code> is a "black hole" for data you want to discard.</li><li><code>/dev/urandom</code> is an IO-based random number generator.</li></ul><p>In <a href="https://en.wikipedia.org/wiki/Unix" target="_blank"><strong>UNIX</strong></a>, everything is a file. This means you can:</p><ul><li>See process details by reading files in <code>/proc</code>.</li><li>Check system settings or driver configurations in <code>/sys</code>.</li><li>View your bootloader in <code>/boot</code>.</li></ul><h3 id="wrapping-it-all-up">Wrapping it all up<a class="headerlink" href="#wrapping-it-all-up" title="Permanent link">&para;</a></h3><p>This was a quick run-through explaining what <strong>GNU/Linux</strong> is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.</p>https://bytes.xerolinux.xyz/docs/linux-explained/ Thu, 05 Sep 2024 20:30:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/linux-explained/ MKDocs Install Blogging Linux MKDocs <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://www.mkdocs.org" target="_blank"><strong>MKDocs</strong></a> the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for <strong>ArchLinux</strong> if you don't use that distro, well, their site shows how to install for your distro.</p><p><img alt="type:video" src="https://www.youtube.com/embed/9V0NpLPXS-Y" /></p><h3 id="installing-mkdocs">Installing MKDocs<a class="headerlink" href="#installing-mkdocs" title="Permanent link">&para;</a></h3><p>We will need to install it with some extras. The 2 main packages exist on the <strong>Arch</strong> repos. The rest are on the <strong>AUR</strong>, so to grab everything in one go, I will be using <strong>Paru</strong>. Compiling might take a while, so sit back wile it finishes.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs<span class="w"> </span>mkdocs-get-deps<span class="w"> </span>mkdocs-material<span class="w"> </span>python-pipx<span class="w"> </span>python-pillow<span class="w"> </span>python-cairosvg<span class="w"> </span>mkdocs-material-extensions<span class="w"> </span>python-regex<span class="w"> </span>pymdown-extensions<span class="w"> </span>mkdocs-material-pymdownx-extras</span></code></pre></div><p>Donce that's done we need to create the site. There's a command for that.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>mkdocs<span class="w"> </span>new<span class="w"> </span>my-project</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nb">cd</span><span class="w"> </span>my-project</span></code></pre></div><p>Now that we initialized the new site we need to configure it. We do so by editing the <code>mkdocs.yml</code> file putting in the following info :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">site_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Sitename</span></span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a></span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nt">theme</span><span class="p">:</span></span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">material</span></span><span id="__span-2-5"><a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="nt">logo</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/Tux.gif</span></span><span id="__span-2-6"><a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="nt">favicon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/favicon.ico</span></span><span id="__span-2-7"><a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="nt">palette</span><span class="p">:</span></span><span id="__span-2-8"><a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="nt">scheme</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slate</span></span><span id="__span-2-9"><a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="nt">primary</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">deep purple</span></span><span id="__span-2-10"><a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="nt">features</span><span class="p">:</span></span><span id="__span-2-11"><a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.top</span></span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.footer</span></span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.indexes</span></span><span id="__span-2-14"><a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">content.code.copy</span></span><span id="__span-2-15"><a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.suggest</span></span><span id="__span-2-16"><a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.highlight</span></span><span id="__span-2-17"><a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.share</span></span><span id="__span-2-18"><a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.expand</span></span></code></pre></div><p>This will make it use the <strong>Slate Material</strong> Theme with <strong>Deep Purple</strong> accents. To know more about the theme check the <a href="https://squidfunk.github.io/mkdocs-material/getting-started/" target="_blank"><strong>MKDocs Material Wiki</strong></a>. That's it go from there.</p><h3 id="plugins-extra-stuff">Plugins &amp; Extra Stuff<a class="headerlink" href="#plugins-extra-stuff" title="Permanent link">&para;</a></h3><p>I have found a few that I liked on the <strong>AUR</strong>, let's install them via :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs-rss-plugin<span class="w"> </span>mkdocs-video<span class="w"> </span>mkdocs-autorefs<span class="w"> </span>mkdocs-section-index<span class="w"> </span>mkdocs-glightbox<span class="w"> </span>mkdocs-backlinks-plugin<span class="w"> </span>mkdocs-redirects<span class="w"> </span>mkdocs-ezlinks-plugin<span class="w"> </span>mkdocs-literate-nav</span></code></pre></div><p>To activate them we edit the same <code>mkdocs.yml</code> file as before like so :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">plugins</span><span class="p">:</span></span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rss</span></span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">social</span></span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search</span></span><span id="__span-4-5"><a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">autorefs</span></span><span id="__span-4-6"><a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">glightbox</span></span></code></pre></div><p>There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">markdown_extensions</span><span class="p">:</span></span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a></span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="c1"># Python Markdown</span></span><span id="__span-5-4"><a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">abbr</span></span><span id="__span-5-5"><a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admonition</span></span><span id="__span-5-6"><a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">attr_list</span></span><span id="__span-5-7"><a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">def_list</span></span><span id="__span-5-8"><a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">footnotes</span></span><span id="__span-5-9"><a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">md_in_html</span></span><span id="__span-5-10"><a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">toc</span><span class="p">:</span></span><span id="__span-5-11"><a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w"> </span><span class="nt">permalink</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-12"><a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a></span><span id="__span-5-13"><a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w"> </span><span class="c1"># Python Markdown Extensions</span></span><span id="__span-5-14"><a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.arithmatex</span><span class="p">:</span></span><span id="__span-5-15"><a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w"> </span><span class="nt">generic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-16"><a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.betterem</span><span class="p">:</span></span><span id="__span-5-17"><a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w"> </span><span class="nt">smart_enable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">all</span></span><span id="__span-5-18"><a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.caret</span></span><span id="__span-5-19"><a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.details</span></span><span id="__span-5-20"><a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.emoji</span><span class="p">:</span></span><span id="__span-5-21"><a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="w"> </span><span class="nt">emoji_index</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.twemoji</span></span><span id="__span-5-22"><a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a><span class="w"> </span><span class="nt">emoji_generator</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.to_svg</span></span><span id="__span-5-23"><a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.highlight</span><span class="p">:</span></span><span id="__span-5-24"><a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a><span class="w"> </span><span class="nt">anchor_linenums</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-25"><a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a><span class="w"> </span><span class="nt">line_spans</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">__span</span></span><span id="__span-5-26"><a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a><span class="w"> </span><span class="nt">pygments_lang_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-27"><a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.inlinehilite</span></span><span id="__span-5-28"><a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.keys</span></span><span id="__span-5-29"><a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.mark</span></span><span id="__span-5-30"><a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.smartsymbols</span></span><span id="__span-5-31"><a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.superfences</span></span><span id="__span-5-32"><a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tabbed</span><span class="p">:</span></span><span id="__span-5-33"><a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a><span class="w"> </span><span class="nt">alternate_style</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-34"><a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tasklist</span><span class="p">:</span></span><span id="__span-5-35"><a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a><span class="w"> </span><span class="nt">custom_checkbox</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-36"><a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.tilde</span></span><span id="__span-5-37"><a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a></span><span id="__span-5-38"><a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a><span class="nt">extra</span><span class="p">:</span></span><span id="__span-5-39"><a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a><span class="w"> </span><span class="nt">social</span><span class="p">:</span></span><span id="__span-5-40"><a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/github</span></span><span id="__span-5-41"><a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/darkxero-dev</span></span><span id="__span-5-42"><a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/youtube</span></span><span id="__span-5-43"><a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://youtube.com/XeroLinuxOfficial</span></span><span id="__span-5-44"><a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/x-twitter</span></span><span id="__span-5-45"><a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://twitter.com/xerolinuxop</span></span><span id="__span-5-46"><a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/mastodon</span></span><span id="__span-5-47"><a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://fosstodon.org/@xerolinux</span></span></code></pre></div><p>That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to <a href="https://github.com/drewgrif" target="_blank"><strong>@JustAGuyLinux</strong></a> for helping out a little hehe.</p>https://bytes.xerolinux.xyz/docs/mkdocs-install/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/mkdocs-install/ Be Thankful Content Creation Linux YouTube <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.</p><h3 id="content-creators">Content Creators<a class="headerlink" href="#content-creators" title="Permanent link">&para;</a></h3><p>Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.</p><p>YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.</p><p>Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.</p><h3 id="writers-blog-posters">Writers / Blog Posters<a class="headerlink" href="#writers-blog-posters" title="Permanent link">&para;</a></h3><p>This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.</p><p>One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I’ve learned to improve, and I thank them for that.</p><h3 id="appreciating-ccs-and-writers">Appreciating CCs and Writers<a class="headerlink" href="#appreciating-ccs-and-writers" title="Permanent link">&para;</a></h3><p>We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.</p><p>Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.</p><p>As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.</p><h3 id="fostering-a-positive-community">Fostering a Positive Community<a class="headerlink" href="#fostering-a-positive-community" title="Permanent link">&para;</a></h3><p>The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.</p><p>When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.</p><p>Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.</p><h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3><p>Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.</p>https://bytes.xerolinux.xyz/priv/be-thankful/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/be-thankful/ Developing is fun Developer Development Linux <h3 id="am-i-a-developer">Am I a Developer ?<a class="headerlink" href="#am-i-a-developer" title="Permanent link">&para;</a></h3><p>Lol, yeah, I know—it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code—specifically <strong>Bash</strong>. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.</p><p><img alt="type:video" src="https://www.youtube.com/embed/8_K-NOu-STs" /></p><p>And if it does work, I'm happy and share the result with the <strong>FOSS</strong> community.</p><h3 id="its-fun-until">It's fun until...<a class="headerlink" href="#its-fun-until" title="Permanent link">&para;</a></h3><p>Doing this is super fun and fulfilling—until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.</p><p>Now, I know I can reach out to the <strong>FOSS</strong> community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.</p><p>Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere—not just in <strong>FOSS</strong>. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.</p><p>Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.</p><h3 id="sharing-is-caring">Sharing is caring<a class="headerlink" href="#sharing-is-caring" title="Permanent link">&para;</a></h3><p>This is the part where I say: please, don't keep your work to yourself. Share it with the community—who knows, maybe you'll find someone who can help take your project to another level.</p><p>I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.</p><p>"Sharing is caring," as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)</p>https://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/developing-is-fun-but/ FOSS Struggles FOSS Fundraising Health Linux Struggles <h3 id="hello-everyone">Hello everyone,<a class="headerlink" href="#hello-everyone" title="Permanent link">&para;</a></h3><p>Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.</p><p>Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.</p><blockquote><p>P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let’s dive in.</p></blockquote><p><img alt="type:video" src="https://www.youtube.com/embed/BpmAFwZy0Gg" /></p><h3 id="my-frustration">My Frustration<a class="headerlink" href="#my-frustration" title="Permanent link">&para;</a></h3><p>Recently, I’ve been investing a lot of time and effort into my projects and contributing to <strong>FOSS</strong> (Free and Open Source Software) wherever possible. While I find this work rewarding, it’s also been increasingly frustrating. Why? Let me explain.</p><p>I spend countless hours working behind the scenes to make everyone’s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it’s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I’m making a real impact.</p><h3 id="seeking-purpose">Seeking Purpose<a class="headerlink" href="#seeking-purpose" title="Permanent link">&para;</a></h3><p>Initially, I embarked on this journey for fun and to learn new things. However, lately, I’ve been questioning the purpose behind my efforts. It feels like I’m stuck in a cycle of constant work with little to show for it. This isn’t about blaming anyone; it’s about seeking the motivation to keep going.</p><h3 id="monetization-attempts">Monetization Attempts<a class="headerlink" href="#monetization-attempts" title="Permanent link">&para;</a></h3><p>As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a "pay what you can" model, hoping it would help sustain my work. However, this didn’t go as planned.</p><p>The <strong>FOSS</strong> community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It’s a complex issue, and while some have been supportive, overall, the response hasn’t been enough to make a significant difference.</p><h3 id="health-concerns">Health Concerns<a class="headerlink" href="#health-concerns" title="Permanent link">&para;</a></h3><p>On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn’t cheap, and without stable income, it’s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.</p><h3 id="mental-health-struggles">Mental Health Struggles<a class="headerlink" href="#mental-health-struggles" title="Permanent link">&para;</a></h3><p>The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.</p><h3 id="the-way-forward">The Way Forward<a class="headerlink" href="#the-way-forward" title="Permanent link">&para;</a></h3><p>Given these circumstances, I’m focusing more on forums and this blog. Writing provides a creative outlet that isn’t constrained by algorithms or view counts. I’ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.</p><p>My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.</p><h3 id="closing-thoughts">Closing Thoughts<a class="headerlink" href="#closing-thoughts" title="Permanent link">&para;</a></h3><p>I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.</p><p>For now, I need to prioritize my well-being and financial stability. Once those are in place, I’ll be back with future projects. Right now, I’m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.</p><p>Thank you for understanding and supporting me through this journey.</p>https://bytes.xerolinux.xyz/priv/real-foss-struggles/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/real-foss-struggles/ Docker A Love Story Containers Docker Linux <h3 id="what-is-docker">What is Docker ?<a class="headerlink" href="#what-is-docker" title="Permanent link">&para;</a></h3><p><a href="https://docker.com/" target="_blank"><strong>Docker</strong></a> is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.</p><p align="center"> <img width="500" src="https://i.imgur.com/bbD4JDy.png" alt="logo"></p><h3 id="how-it-all-started">How it all started<a class="headerlink" href="#how-it-all-started" title="Permanent link">&para;</a></h3><p>It all started with <a href="https://distrobox.it/" target="_blank"><strong>Distrobox</strong></a>. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered <strong>Docker</strong> containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like <a href="https://immich.app/" target="_blank"><strong>Immich</strong></a> for images and videos, which would allow me to sync my devices locally rather than with <a href="https://icloud.com" target="_blank"><strong>Apple iCloud</strong></a> or <strong>Google</strong> making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...</p><p>With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3<sup>rd</sup> party conglomerates made me fall in love more and more as time went by...</p><h3 id="my-setup-so-far">My setup so far<a class="headerlink" href="#my-setup-so-far" title="Permanent link">&para;</a></h3><p>Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive <strong>MY</strong> setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.</p><p align="center"> <img width="500" src="https://i.imgur.com/DhfbUBs.png" alt="logo"></p><ul><li><strong>Homepage</strong></li></ul><p>To start off, let me tell you what am using for the page you see in the image, it's simply called <a href="https://gethomepage.dev" target="_blank"><strong>Homepage</strong></a>. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via <a href="https://en.wikipedia.org/wiki/YAML" target="_blank"><strong>YAML</strong></a> configurations files, and that the community behind it are so damn friendly ! Yep, there is no <em>dumb</em> question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their <a href="https://discord.gg/k4ruYNrudu" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>File Browser</strong></li></ul><p>As for the File Browser I use to share files between PCs, it's also has a <em>creative</em> name lol, just called <a href="https://filebrowser.org" target="_blank"><strong>FileBrowser</strong></a>, it serves one purpose, browsing files, with ability to upload &amp; download from/to any PC. That's it. It just works nothing else to say about that.</p><ul><li><strong>Search Engine (Xoogle)</strong></li></ul><p>Hehe, the only reason I called it <em>Xoogle</em> is coz it's Xero + Google, get it ? Anyway, this is using something called <a href="https://whoogle.io" target="_blank"><strong>Whoogle</strong></a>, weird name I know, loogs damn ugly too. It's just a search engine that uses <strong>Google</strong> stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of <strong>Google</strong> the way it was back in the day..</p><ul><li><strong>Vaultwarden</strong></li></ul><p>That's a 3<sup>rd</sup>-party <a href="https://bitwarden.com" target="_blank"><strong>Bitwarden</strong></a> server-as-a-container, endorsed by them so can be trusted called <a href="https://github.com/dani-garcia/vaultwarden" target="_blank"><strong>Vaultwarden</strong></a>. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.</p><ul><li><strong>ShareX</strong></li></ul><p>This one is not for everyone. It uses <a href="https://zipline.diced.sh" target="_blank"><strong>Zipline</strong></a>. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.</p><ul><li><strong>My Comics</strong></li></ul><p>I am a big fan of comic books, especially the ones from my childhood. This container uses <a href="https://kavitareader.com/" target="_blank"><strong>Kavita</strong></a>. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their <a href="https://discord.gg/b52wT37kt7" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>Audiobookshelf</strong></li></ul><p>I guess I do not need to explain that one. It's just a docker container for <a href="https://www.audiobookshelf.org" target="_blank"><strong>Audiobookshelf</strong></a>. In case you have some Audio books or podcasts. Have fun.</p><ul><li><strong>FreshRSS</strong></li></ul><p>That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called <a href="https://www.freshrss.org" target="_blank"><strong>FreshRSS</strong></a>. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.</p><ul><li><strong>Immich</strong></li></ul><p>Now, this is one of the big ones, <a href="https://immich.app" target="_blank"><strong>Immich</strong></a> is an amazing image cloud like service. Allowing you to move away from <strong>Apple</strong> and <strong>Google</strong>. I love that as I said at the beginning of this long post. They even have companion apps for both <a href="https://play.google.com/store/apps/details?id=app.alextran.immich" target="_blank"><strong>Android</strong></a> and <a href="https://apps.apple.com/sg/app/immich/id1613945652" target="_blank"><strong>iOS</strong></a> which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.</p><h3 id="you-get-the-idea">You get the idea<a class="headerlink" href="#you-get-the-idea" title="Permanent link">&para;</a></h3><p>Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's <strong>BIG</strong> rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.</p><ul><li><a href="https://plex.tv" target="_blank"><strong>Plex Server</strong></a></li><li><a href="https://github.com/alexta69/metube" target="_blank"><strong>meTube</strong></a></li><li><a href="https://koel.dev" target="_blank"><strong>Koel</strong></a></li><li><a href="https://tautulli.com" target="_blank"><strong>Tautulli</strong></a></li><li><a href="https://www.portainer.io" target="_blank"><strong>Portainer</strong></a></li><li><a href="https://github.com/schlagmichdoch/pairdrop" target="_blank"><strong>PairDrop</strong></a></li><li><a href="https://github.com/CorentinTh/it-tools" target="_blank"><strong>IT-Tools</strong></a></li><li><a href="https://cockpit-project.org" target="_blank"><strong>Cockpit</strong></a></li></ul><h3 id="where-to-find-more-containers">Where to find more containers ?<a class="headerlink" href="#where-to-find-more-containers" title="Permanent link">&para;</a></h3><p>Well, there are many places, but my favorite has to be <a href="https://selfh.st/apps/" target="_blank"><strong>Selfh.st</strong></a> hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.</p><h3 id="closing-words">Closing words<a class="headerlink" href="#closing-words" title="Permanent link">&para;</a></h3><p>Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.</p><p>Thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ XeroLinux Channel ArchLinux Linux XeroLinux YouTube <h3 id="youtube-channel">YouTube Channel ?<a class="headerlink" href="#youtube-channel" title="Permanent link">&para;</a></h3><p>Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, <strong>Nice!</strong>.</p><p>But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.</p><h3 id="what-now-xero">What now Xero ?<a class="headerlink" href="#what-now-xero" title="Permanent link">&para;</a></h3><p>Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since <strong>YouTube</strong> and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.</p><h3 id="whats-the-catch">What's the Catch ?<a class="headerlink" href="#whats-the-catch" title="Permanent link">&para;</a></h3><p>This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the <a href="https://ko-fi.com/XeroLinux" target="_blank"><strong>XeroLinux Ko-Fi</strong></a> fundraiser for the forseeable future.</p><p>Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to <em>donate</em>, however would be highly appreciated if you do.</p><h3 id="future-plans">Future Plans<a class="headerlink" href="#future-plans" title="Permanent link">&para;</a></h3><p>When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.</p><p>Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.</p><p>Anyways, thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Wed, 04 Sep 2024 21:51:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Why Revive XeroLinux ArchLinux Distribution Linux XeroLinux <div class="admonition info"><p class="admonition-title">Info</p><p>This post will explain why I decided to bring back <strong>XeroLinux</strong> and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the <a href="https://wiki.xerolinux.xyz/distro/" target="_blank"><strong>XeroLinux Wiki</strong></a></p></div><h3 id="what-is-xerolinux">What is XeroLinux<a class="headerlink" href="#what-is-xerolinux" title="Permanent link">&para;</a></h3><p>In short, it's just an alternative to the <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma Install Script</strong></a>, making it easier to install <strong>Arch</strong>, bypassing the need for <strong>ArchInstall</strong>. The ISO includes my toolkit as well as my famous <a href="https://wiki.xerolinux.xyz/rice/" target="_blank"><strong>Xero Layan Rice</strong></a> all-in-one shot.</p><p align="center"> <img src="https://i.imgur.com/ejZ1ZQv.png"></p><p>You can use the included <a href="https://wiki.xerolinux.xyz/xlapit/" target="_blank"><strong>Xero Toolkit</strong></a>, 1<sup>st</sup> icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the <a href="https://aur.chaotic.cx" target="_blank"><strong>Chaotic-AUR</strong></a> repository so it's easier for you to install <strong>AUR</strong> packages rather from having to compile them.</p><h3 id="why-is-xerolinux-back">Why is XeroLinux back<a class="headerlink" href="#why-is-xerolinux-back" title="Permanent link">&para;</a></h3><p>To explain why, let me set the stage. As you may already know, I’m going through significant financial difficulties. Living in Lebanon, finding a job—especially a remote one—is extremely challenging, and the situation continues to worsen. I won’t rehash the entire story here, but if you’re not familiar, you can read more about it in this <a href="https://blog.techxero.com/index.php/2024/06/07/actively-looking-for-a-job/" target="_blank"><strong>BlogPost</strong></a>.</p><p>After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro’s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it—and make it a way to sustain myself?</p><p><img alt="type:video" src="https://www.youtube.com/embed/lsYg6-wUWXw" /></p><p>Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the <a href="https://distrowatch.com" target="_blank"><strong>DistroWatch</strong></a> rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!</p><p>That answers the why.</p><h3 id="how-to-get-it">How to get it<a class="headerlink" href="#how-to-get-it" title="Permanent link">&para;</a></h3><p>I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO—a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the <a href="https://xerolinux.xyz/iso/" target="_blank"><strong>Release Post</strong></a></p><p>Now, I know that some of you will say, "But it's FOSS; you shouldn't charge for it." To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the <a href="https://github.com/XeroLinuxDev" target="_blank"><strong>Source Code</strong></a> and do with it as you wish. I am simply charging for my time.</p><p>The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up… well, let's not dwell on that. Let’s focus on keeping it alive and thriving for a long and happy journey together!</p><h3 id="is-it-any-special">Is it any Special<a class="headerlink" href="#is-it-any-special" title="Permanent link">&para;</a></h3><p>This is a common question I get. To be honest, there’s no groundbreaking advantage—it simply provides an easier way to install <strong>Arch</strong> with a polished <strong>KDE</strong> experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.</p><p>Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that <strong>XeroLinux</strong> is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.</p><h3 id="how-to-get-it-for-free">How to get it for free<a class="headerlink" href="#how-to-get-it-for-free" title="Permanent link">&para;</a></h3><p>If you can’t support me financially but still want <strong>XeroLinux</strong>, while the ISO isn't available for free right now, you can still achieve similar results with my <a href="https://xerolinux.xyz/news/xerolinux-plasma/" target="_blank"><strong>PlasmaInstall</strong></a> script, which will always be free of charge. It just requires a bit more elbow grease on your part—that’s all there is to it!</p><h3 id="i-dont-like-arch">I don't like Arch<a class="headerlink" href="#i-dont-like-arch" title="Permanent link">&para;</a></h3><p>In case you don't like <strong>Arch</strong> for whatever reason, but still want to support me, I have put up a <a href="https://shop.xerolinux.xyz" target="_blank"><strong>Merch Store</strong></a> where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.</p><h3 id="private-donations">Private Donations<a class="headerlink" href="#private-donations" title="Permanent link">&para;</a></h3><p>Did you know I have a private fundraiser account? It’s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at <a href="https://fundrazr.com/xerolinux" target="_blank"><strong>FundRazr</strong></a>.</p><p>Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving <strong>XeroLinux</strong>, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn’t been getting much support. Ideally, I’d love to keep these funds separate, but ultimately, it’s your choice.</p><h3 id="wrapping-up">Wrapping up<a class="headerlink" href="#wrapping-up" title="Permanent link">&para;</a></h3><p>That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/why-is-distro-back/ Wed, 04 Sep 2024 21:51:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/why-is-distro-back/ 🏠Home <h1 id="welcome">Welcome<a class="headerlink" href="#welcome" title="Permanent link">&para;</a></h1><div class="admonition info"><p class="admonition-title">Info</p><p>All the documentation found herein, will be for <strong>ArchLinux</strong> since that's the distro I use. Some will be general <strong>Linux</strong> ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.</p></div><p>Welcome to <strong>DarkXero's Bytes</strong> ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the <a href="https://xerolinux.xyz" target="_blank"><strong>XeroLinux</strong></a> main site.</p><p align="center"> <img src="https://i.imgur.com/ZAvPAkx.png" alt="logo"></p><p>Documenting my learning journey has become an essential part of my <strong>Linux</strong> experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.</p><p align="center"> <img src="https://i.imgur.com/TgVQf9z.png" alt="ArchPorn"></p>https://bytes.xerolinux.xyz/ Wed, 04 Sep 2024 19:37:45 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/ \ No newline at end of file diff --git a/site/feed_json_created.json b/site/feed_json_created.json index 8345cde..6f6df85 100644 --- a/site/feed_json_created.json +++ b/site/feed_json_created.json @@ -1 +1 @@ -{"version": "https://jsonfeed.org/version/1", "title": "DarkXero's Bytes", "home_page_url": "https://bytes.xerolinux.xyz/", "feed_url": "https://bytes.xerolinux.xyz/feed_json_created.json", "description": "Thoughts, Opinions, Documentation, and more...", "icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png", "authors": [], "language": "en", "items": [{"id": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "url": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "title": "GPU Fundraiser", "content_html": "

Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

\n
\n \n
\n\n

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

\n

\n \n

\n\n

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/gpu-fund.png", "date_published": "2025-01-22T07:02:10.527211+00:00", "authors": [], "tags": ["Hardware", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/sddm-display/", "url": "https://bytes.xerolinux.xyz/docs/sddm-display/", "title": "SDDM Display", "content_html": "

Information

\n

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

\n

\n \n

\n\n

Let's fix it \ud83d\ude80

\n

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

\n
xrandr | grep -w connected\n
\n

Output should be like this (mine)

\n
\n

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
\n DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
\n HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

\n
\n

This is my own Xsetup for the login window, yours may differ :

\n
#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n
\n

If you want to manually edit the file

\n
sudo nano /usr/share/sddm/scripts/Xsetup\n
\n

Paste the output of your xrandr command as I did above in there save & reboot.

\n

That's it y'all..

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/sddm-display.png", "date_published": "2024-10-12T14:29:56+03:00", "authors": [], "tags": ["Display", "Linux", "SDDM"]}, {"id": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "url": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "title": "RiP GamerKing", "content_html": "

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

In Memoriam

\n

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

\n

\n \"avatar\"\n

\n\n

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

\n

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

\n

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

\n

\n \"rip\"\n

\n\n

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

\n

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

\n

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

\n

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/rip-gamerking.png", "date_published": "2024-09-29T15:32:44+03:00", "authors": [], "tags": ["Lebanon", "Warzone"]}, {"id": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "url": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "title": "FOSS Fundraising", "content_html": "

Backstory

\n

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

\n

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

\n

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

\n

Fundraising

\n

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

\n

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

\n

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

\n

Hate in FOSS

\n

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

\n

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

\n

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

\n

See ya there

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/foss-fundraising.png", "date_published": "2024-09-27T21:57:16+03:00", "authors": [], "tags": ["ArchLinux", "Fundraising", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "url": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "title": "Plans for other spins", "content_html": "

Information

\n

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

\n

It's Complicated

\n

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

\n

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

\n

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

\n

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

\n

The Good News

\n

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

\n

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

\n

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

\n

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

\n

The Future

\n

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

\n

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/other-xero-spins.png", "date_published": "2024-09-26T14:07:52+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/priv/current-situation/", "url": "https://bytes.xerolinux.xyz/priv/current-situation/", "title": "Current Situation", "content_html": "
\n

Info

\n

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\n
\n

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

Hello everyone,

\n

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

\n

\"type:video\"

\n

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

\n

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

\n

Your help and support would be, potentially life saving !

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/current-situation.png", "date_published": "2024-09-21T13:17:28+03:00", "authors": [], "tags": ["Lebanon", "Situation", "Struggles", "War"]}, {"id": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "url": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "title": "Reset Password", "content_html": "

Information

\n

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

\n

\n \n

\n\n

Let's do this \ud83d\ude80

\n

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

\n

If this is a laptop or a desktop which you have next to you then follow these steps.

\n
    \n
  1. Shut down the device.
  2. \n
  3. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  4. \n
  5. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  6. \n
  7. Press Ctrl+x, or F10, to boot.
  8. \n
  9. You will see a root prompt.
  10. \n
\n
:#\n
\n

Remount the filesystem in read/write mode:

\n
:# mount -no remount,rw /\n
\n
    \n
  1. Set the password of any user(s).
  2. \n
\n
:# passwd joe\n
\n
    \n
  1. Reboot with the command reboot -f.
  2. \n
\n

That's it ! The new password should work now.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/passwd-reset.png", "date_published": "2024-09-17T13:47:15+03:00", "authors": [], "tags": ["Linux", "Recovery", "Reset"]}, {"id": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "url": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "title": "FFmpeg Cheat Sheet", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

\n

\n \n

\n\n

Installation

\n

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

\n
sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n
\n

Now that we have it, it's time for the cheat sheet.

\n
\n

.// The Cheat Sheet \\\\.

\n\n

Basic conversion

\n
ffmpeg -i in.mp4 out.avi\n
\n

Remux an MKV file into MP4

\n
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
\n

High-quality encoding

\n

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

\n
ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
\n

Trimming

\n

Without re-encoding:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
\n- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds)\n- -t specifies the duration of the clip (same format).\n- Recent ffmpeg also has a flag to supply the end time with -to.\n- -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

\n

With re-encoding:

\n

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

\n

For example:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n

\n

Mux video and audio from another video

\n

To copy the video from in0.mp4 and audio from in1.mp4:\n

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
\n- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide.\n- The -shortest option will cause the output duration to match the duration of the shortest input stream.\n- See the -map option documentation for more info.

\n

Concat demuxer

\n

First, make a text file.\n

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
\nThen, run ffmpeg:\n
ffmpeg -f concat -i list.txt -c copy out.mp4\n

\n

Delay audio/video

\n

Delay video by 3.84 seconds:\n

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
\nDelay audio by 3.84 seconds:\n
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n

\n

Burn subtitles

\n

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

\n

First convert the subtitles to .ass format:\n

ffmpeg -i sub.srt sub.ass\n
\nThen add them using a video filter:

\n
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
\n

Extract the frames from a video

\n

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

\n
ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n
\n

To extract one frame per second only:

\n
ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
\n

Rotate a video

\n

Rotate 90 clockwise:

\n
ffmpeg -i in.mov -vf "transpose=1" out.mov\n
\n

For the transpose parameter you can pass:

\n
0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n
\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

\n

Download \"Transport Stream\" video streams

\n
    \n
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. \n
  3. Download and concatenate the video fragments:
  4. \n
\n
ffmpeg -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

\n
ffmpeg -protocol_whitelist "file,http,https,tcp,tls" -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

Mute some of the audio

\n

To replace the first 90 seconds of audio with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='lte(t,90)':volume=0" out.mp4\n
\n

To replace all audio between 1'20\" and 1'30\" with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='between(t,80,90)':volume=0" out.mp4\n
\n

Deinterlace

\n

Deinterlacing using \"yet another deinterlacing filter\".

\n
ffmpeg -i in.mp4 -vf yadif out.mp4\n
\n

Create a video slideshow from images

\n

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

\n
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
\n

Extract images from a video

\n\n

Display the frame number on each frame

\n
ffmpeg -i in.mov -vf "drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72" -y out.mov\n
\n

Metadata: Change the title

\n
ffmpeg -i in.mp4 -map_metadata -1 -metadata title="My Title" -c:v copy -c:a copy out.mp4\n
\n

Wrap up

\n

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/ffmpeg-cheats.png", "date_published": "2024-09-17T13:36:31+03:00", "authors": [], "tags": ["CheatSheet", "FFmpeg", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "url": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "title": "My Cosmic Experience", "content_html": "
\n

Note

\n

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

\n
\n

Installation

\n

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

\n

\n \n

\n\n

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

\n

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

\n

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

\n
pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n
\n

\n \n

\n\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

\n

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

\n
systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n
\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

\n

Experience

\n

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

\n

\n \n

\n\n

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

\n

\n \n

\n\n

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

\n

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

\n
sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n
\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

\n

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

\n

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

\n

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

\n

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

\n

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

\n

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

\n

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

\n

That's where I gave up and decided to go back home to KDE Plasma.

\n

Final words

\n

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

\n

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

\n

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

\n

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/cosmic-experience.png", "date_published": "2024-09-11T13:33:00+03:00", "authors": [], "tags": ["ArchLinux", "Cosmic", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "url": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "title": "Affinity on Linux", "content_html": "
\n

Warning

\n

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

\n
\n

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

\n

\n \n

\n\n

Installation

\n

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

\n

Wrap up

\n

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/affinity-linux.png", "date_published": "2024-09-10T22:53:38+03:00", "authors": [], "tags": ["Affinity", "Linux", "Photoshop"]}, {"id": "https://bytes.xerolinux.xyz/SUMMARY/", "url": "https://bytes.xerolinux.xyz/SUMMARY/", "title": "SUMMARY", "content_html": "", "image": "https://bytes.xerolinux.xyz/assets/images/social/SUMMARY.png", "date_published": "2024-09-05T20:30:45+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/docs/linux-explained/", "url": "https://bytes.xerolinux.xyz/docs/linux-explained/", "title": "Linux in a Nutshell", "content_html": "

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

\n
\n

Tip

\n

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

\n
\n

What is Linux ?

\n

Since not everyone's super familiar with Linux, here's a quick crash course.

\n

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

\n

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

\n

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

\n

\n \"logo\"\n

\n\n

Distros & PKG Managers

\n

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

\n

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

\n\n

Filesystem & Updates

\n

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

\n

As for the filesystem:

\n\n

In UNIX, everything is a file. This means you can:

\n\n

Wrapping it all up

\n

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/linux-explained.png", "date_published": "2024-09-05T20:30:45+03:00", "authors": [], "tags": ["Kernel", "Linux", "Packages"]}, {"id": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "url": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "title": "MKDocs Install", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

\n

\"type:video\"

\n

Installing MKDocs

\n

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

\n
paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n
\n

Donce that's done we need to create the site. There's a command for that.

\n
mkdocs new my-project\ncd my-project\n
\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

\n
site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n
\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

\n

Plugins & Extra Stuff

\n

I have found a few that I liked on the AUR, let's install them via :

\n
paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n
\n

To activate them we edit the same mkdocs.yml file as before like so :

\n
plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n
\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

\n
markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n
\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/mkdocs-install.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Blogging", "Linux", "MKDocs"]}, {"id": "https://bytes.xerolinux.xyz/priv/be-thankful/", "url": "https://bytes.xerolinux.xyz/priv/be-thankful/", "title": "Be Thankful", "content_html": "

What's This?

\n

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

\n

Content Creators

\n

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

\n

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

\n

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

\n

Writers / Blog Posters

\n

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

\n

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

\n

Appreciating CCs and Writers

\n

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

\n

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

\n

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

\n

Fostering a Positive Community

\n

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

\n

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

\n

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

\n

Conclusion

\n

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/be-thankful.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Content Creation", "Linux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "url": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "title": "Developing is fun", "content_html": "

Am I a Developer ?

\n

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

\n

\"type:video\"

\n

And if it does work, I'm happy and share the result with the FOSS community.

\n

It's fun until...

\n

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

\n

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

\n

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

\n

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

\n

Sharing is caring

\n

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

\n

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\n

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/developing-is-fun-but.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Developer", "Development", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "url": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "title": "FOSS Struggles", "content_html": "

Hello everyone,

\n

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

\n

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

\n
\n

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

\n
\n

\"type:video\"

\n

My Frustration

\n

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

\n

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

\n

Seeking Purpose

\n

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

\n

Monetization Attempts

\n

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

\n

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

\n

Health Concerns

\n

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

\n

Mental Health Struggles

\n

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

\n

The Way Forward

\n

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

\n

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

\n

Closing Thoughts

\n

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

\n

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

\n

Thank you for understanding and supporting me through this journey.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/real-foss-struggles.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["FOSS", "Fundraising", "Health", "Linux", "Struggles"]}, {"id": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "url": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "title": "Docker A Love Story", "content_html": "

What is Docker ?

\n

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

\n

\n \"logo\"\n

\n\n

How it all started

\n

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

\n

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

\n

My setup so far

\n

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

\n

\n \"logo\"\n

\n\n\n

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

\n\n

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

\n\n

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

\n\n

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

\n\n

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

\n\n

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

\n\n

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

\n\n

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

\n\n

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

\n

You get the idea

\n

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

\n\n

Where to find more containers ?

\n

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

\n

Closing words

\n

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

\n

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/docker-containers-a-love-story.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Containers", "Docker", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "url": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "title": "XeroLinux Channel", "content_html": "

YouTube Channel ?

\n

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

\n

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

\n

What now Xero ?

\n

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

\n

What's the Catch ?

\n

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

\n

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

\n

Future Plans

\n

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

\n

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

\n

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/what-s-up-with-my-channel.png", "date_published": "2024-09-04T21:51:54+03:00", "authors": [], "tags": ["ArchLinux", "Linux", "XeroLinux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "url": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "title": "Why Revive XeroLinux", "content_html": "
\n

Info

\n

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

\n
\n

What is XeroLinux

\n

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

\n

\n \n

\n\n

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

\n

Why is XeroLinux back

\n

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

\n

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

\n

\"type:video\"

\n

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

\n

That answers the why.

\n

How to get it

\n

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

\n

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

\n

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

\n

Is it any Special

\n

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

\n

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

\n

How to get it for free

\n

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

\n

I don't like Arch

\n

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

\n

Private Donations

\n

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

\n

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

\n

Wrapping up

\n

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/why-is-distro-back.png", "date_published": "2024-09-04T21:51:54+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/", "url": "https://bytes.xerolinux.xyz/", "title": "\ud83c\udfe0Home", "content_html": "

Welcome

\n
\n

Info

\n

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

\n
\n

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

\n

\n \"logo\"\n

\n\n

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

\n

\n \"ArchPorn\"\n

", "image": "https://bytes.xerolinux.xyz/assets/images/social/index.png", "date_published": "2024-09-04T19:37:45+03:00", "authors": [], "tags": []}]} \ No newline at end of file +{"version": "https://jsonfeed.org/version/1", "title": "DarkXero's Bytes", "home_page_url": "https://bytes.xerolinux.xyz/", "feed_url": "https://bytes.xerolinux.xyz/feed_json_created.json", "description": "Thoughts, Opinions, Documentation, and more...", "icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png", "authors": [], "language": "en", "items": [{"id": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "url": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "title": "GPU Fundraiser", "content_html": "

Since getting myself a nice Christmas gift, the Ryzen 9 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

\n
\n \n
\n\n

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

\n

\n \n

\n\n

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/gpu-fund.png", "date_published": "2025-01-22T11:02:16+02:00", "authors": [], "tags": ["Hardware", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/sddm-display/", "url": "https://bytes.xerolinux.xyz/docs/sddm-display/", "title": "SDDM Display", "content_html": "

Information

\n

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

\n

\n \n

\n\n

Let's fix it \ud83d\ude80

\n

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

\n
xrandr | grep -w connected\n
\n

Output should be like this (mine)

\n
\n

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
\n DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
\n HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

\n
\n

This is my own Xsetup for the login window, yours may differ :

\n
#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n
\n

If you want to manually edit the file

\n
sudo nano /usr/share/sddm/scripts/Xsetup\n
\n

Paste the output of your xrandr command as I did above in there save & reboot.

\n

That's it y'all..

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/sddm-display.png", "date_published": "2024-10-12T14:29:56+03:00", "authors": [], "tags": ["Display", "Linux", "SDDM"]}, {"id": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "url": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "title": "RiP GamerKing", "content_html": "

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

In Memoriam

\n

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

\n

\n \"avatar\"\n

\n\n

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

\n

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

\n

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

\n

\n \"rip\"\n

\n\n

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

\n

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

\n

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

\n

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/rip-gamerking.png", "date_published": "2024-09-29T15:32:44+03:00", "authors": [], "tags": ["Lebanon", "Warzone"]}, {"id": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "url": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "title": "FOSS Fundraising", "content_html": "

Backstory

\n

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

\n

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

\n

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

\n

Fundraising

\n

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

\n

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

\n

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

\n

Hate in FOSS

\n

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

\n

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

\n

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

\n

See ya there

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/foss-fundraising.png", "date_published": "2024-09-27T21:57:16+03:00", "authors": [], "tags": ["ArchLinux", "Fundraising", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "url": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "title": "Plans for other spins", "content_html": "

Information

\n

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

\n

It's Complicated

\n

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

\n

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

\n

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

\n

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

\n

The Good News

\n

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

\n

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

\n

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

\n

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

\n

The Future

\n

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

\n

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/other-xero-spins.png", "date_published": "2024-09-26T14:07:52+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/priv/current-situation/", "url": "https://bytes.xerolinux.xyz/priv/current-situation/", "title": "Current Situation", "content_html": "
\n

Info

\n

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\n
\n

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

Hello everyone,

\n

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

\n

\"type:video\"

\n

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

\n

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

\n

Your help and support would be, potentially life saving !

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/current-situation.png", "date_published": "2024-09-21T13:17:28+03:00", "authors": [], "tags": ["Lebanon", "Situation", "Struggles", "War"]}, {"id": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "url": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "title": "Reset Password", "content_html": "

Information

\n

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

\n

\n \n

\n\n

Let's do this \ud83d\ude80

\n

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

\n

If this is a laptop or a desktop which you have next to you then follow these steps.

\n
    \n
  1. Shut down the device.
  2. \n
  3. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  4. \n
  5. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  6. \n
  7. Press Ctrl+x, or F10, to boot.
  8. \n
  9. You will see a root prompt.
  10. \n
\n
:#\n
\n

Remount the filesystem in read/write mode:

\n
:# mount -no remount,rw /\n
\n
    \n
  1. Set the password of any user(s).
  2. \n
\n
:# passwd joe\n
\n
    \n
  1. Reboot with the command reboot -f.
  2. \n
\n

That's it ! The new password should work now.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/passwd-reset.png", "date_published": "2024-09-17T13:47:15+03:00", "authors": [], "tags": ["Linux", "Recovery", "Reset"]}, {"id": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "url": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "title": "FFmpeg Cheat Sheet", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

\n

\n \n

\n\n

Installation

\n

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

\n
sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n
\n

Now that we have it, it's time for the cheat sheet.

\n
\n

.// The Cheat Sheet \\\\.

\n\n

Basic conversion

\n
ffmpeg -i in.mp4 out.avi\n
\n

Remux an MKV file into MP4

\n
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
\n

High-quality encoding

\n

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

\n
ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
\n

Trimming

\n

Without re-encoding:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
\n- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds)\n- -t specifies the duration of the clip (same format).\n- Recent ffmpeg also has a flag to supply the end time with -to.\n- -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

\n

With re-encoding:

\n

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

\n

For example:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n

\n

Mux video and audio from another video

\n

To copy the video from in0.mp4 and audio from in1.mp4:\n

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
\n- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide.\n- The -shortest option will cause the output duration to match the duration of the shortest input stream.\n- See the -map option documentation for more info.

\n

Concat demuxer

\n

First, make a text file.\n

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
\nThen, run ffmpeg:\n
ffmpeg -f concat -i list.txt -c copy out.mp4\n

\n

Delay audio/video

\n

Delay video by 3.84 seconds:\n

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
\nDelay audio by 3.84 seconds:\n
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n

\n

Burn subtitles

\n

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

\n

First convert the subtitles to .ass format:\n

ffmpeg -i sub.srt sub.ass\n
\nThen add them using a video filter:

\n
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
\n

Extract the frames from a video

\n

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

\n
ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n
\n

To extract one frame per second only:

\n
ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
\n

Rotate a video

\n

Rotate 90 clockwise:

\n
ffmpeg -i in.mov -vf "transpose=1" out.mov\n
\n

For the transpose parameter you can pass:

\n
0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n
\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

\n

Download \"Transport Stream\" video streams

\n
    \n
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. \n
  3. Download and concatenate the video fragments:
  4. \n
\n
ffmpeg -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

\n
ffmpeg -protocol_whitelist "file,http,https,tcp,tls" -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

Mute some of the audio

\n

To replace the first 90 seconds of audio with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='lte(t,90)':volume=0" out.mp4\n
\n

To replace all audio between 1'20\" and 1'30\" with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='between(t,80,90)':volume=0" out.mp4\n
\n

Deinterlace

\n

Deinterlacing using \"yet another deinterlacing filter\".

\n
ffmpeg -i in.mp4 -vf yadif out.mp4\n
\n

Create a video slideshow from images

\n

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

\n
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
\n

Extract images from a video

\n\n

Display the frame number on each frame

\n
ffmpeg -i in.mov -vf "drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72" -y out.mov\n
\n

Metadata: Change the title

\n
ffmpeg -i in.mp4 -map_metadata -1 -metadata title="My Title" -c:v copy -c:a copy out.mp4\n
\n

Wrap up

\n

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/ffmpeg-cheats.png", "date_published": "2024-09-17T13:36:31+03:00", "authors": [], "tags": ["CheatSheet", "FFmpeg", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "url": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "title": "My Cosmic Experience", "content_html": "
\n

Note

\n

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

\n
\n

Installation

\n

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

\n

\n \n

\n\n

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

\n

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

\n

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

\n
pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n
\n

\n \n

\n\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

\n

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

\n
systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n
\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

\n

Experience

\n

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

\n

\n \n

\n\n

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

\n

\n \n

\n\n

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

\n

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

\n
sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n
\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

\n

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

\n

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

\n

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

\n

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

\n

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

\n

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

\n

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

\n

That's where I gave up and decided to go back home to KDE Plasma.

\n

Final words

\n

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

\n

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

\n

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

\n

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/cosmic-experience.png", "date_published": "2024-09-11T13:33:00+03:00", "authors": [], "tags": ["ArchLinux", "Cosmic", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "url": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "title": "Affinity on Linux", "content_html": "
\n

Warning

\n

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

\n
\n

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

\n

\n \n

\n\n

Installation

\n

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

\n

Wrap up

\n

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/affinity-linux.png", "date_published": "2024-09-10T22:53:38+03:00", "authors": [], "tags": ["Affinity", "Linux", "Photoshop"]}, {"id": "https://bytes.xerolinux.xyz/SUMMARY/", "url": "https://bytes.xerolinux.xyz/SUMMARY/", "title": "SUMMARY", "content_html": "", "image": "https://bytes.xerolinux.xyz/assets/images/social/SUMMARY.png", "date_published": "2024-09-05T20:30:45+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/docs/linux-explained/", "url": "https://bytes.xerolinux.xyz/docs/linux-explained/", "title": "Linux in a Nutshell", "content_html": "

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

\n
\n

Tip

\n

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

\n
\n

What is Linux ?

\n

Since not everyone's super familiar with Linux, here's a quick crash course.

\n

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

\n

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

\n

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

\n

\n \"logo\"\n

\n\n

Distros & PKG Managers

\n

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

\n

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

\n\n

Filesystem & Updates

\n

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

\n

As for the filesystem:

\n\n

In UNIX, everything is a file. This means you can:

\n\n

Wrapping it all up

\n

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/linux-explained.png", "date_published": "2024-09-05T20:30:45+03:00", "authors": [], "tags": ["Kernel", "Linux", "Packages"]}, {"id": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "url": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "title": "MKDocs Install", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

\n

\"type:video\"

\n

Installing MKDocs

\n

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

\n
paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n
\n

Donce that's done we need to create the site. There's a command for that.

\n
mkdocs new my-project\ncd my-project\n
\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

\n
site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n
\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

\n

Plugins & Extra Stuff

\n

I have found a few that I liked on the AUR, let's install them via :

\n
paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n
\n

To activate them we edit the same mkdocs.yml file as before like so :

\n
plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n
\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

\n
markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n
\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/mkdocs-install.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Blogging", "Linux", "MKDocs"]}, {"id": "https://bytes.xerolinux.xyz/priv/be-thankful/", "url": "https://bytes.xerolinux.xyz/priv/be-thankful/", "title": "Be Thankful", "content_html": "

What's This?

\n

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

\n

Content Creators

\n

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

\n

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

\n

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

\n

Writers / Blog Posters

\n

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

\n

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

\n

Appreciating CCs and Writers

\n

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

\n

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

\n

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

\n

Fostering a Positive Community

\n

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

\n

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

\n

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

\n

Conclusion

\n

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/be-thankful.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Content Creation", "Linux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "url": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "title": "Developing is fun", "content_html": "

Am I a Developer ?

\n

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

\n

\"type:video\"

\n

And if it does work, I'm happy and share the result with the FOSS community.

\n

It's fun until...

\n

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

\n

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

\n

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

\n

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

\n

Sharing is caring

\n

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

\n

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\n

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/developing-is-fun-but.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Developer", "Development", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "url": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "title": "FOSS Struggles", "content_html": "

Hello everyone,

\n

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

\n

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

\n
\n

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

\n
\n

\"type:video\"

\n

My Frustration

\n

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

\n

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

\n

Seeking Purpose

\n

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

\n

Monetization Attempts

\n

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

\n

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

\n

Health Concerns

\n

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

\n

Mental Health Struggles

\n

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

\n

The Way Forward

\n

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

\n

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

\n

Closing Thoughts

\n

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

\n

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

\n

Thank you for understanding and supporting me through this journey.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/real-foss-struggles.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["FOSS", "Fundraising", "Health", "Linux", "Struggles"]}, {"id": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "url": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "title": "Docker A Love Story", "content_html": "

What is Docker ?

\n

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

\n

\n \"logo\"\n

\n\n

How it all started

\n

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

\n

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

\n

My setup so far

\n

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

\n

\n \"logo\"\n

\n\n\n

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

\n\n

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

\n\n

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

\n\n

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

\n\n

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

\n\n

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

\n\n

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

\n\n

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

\n\n

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

\n

You get the idea

\n

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

\n\n

Where to find more containers ?

\n

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

\n

Closing words

\n

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

\n

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/docker-containers-a-love-story.png", "date_published": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Containers", "Docker", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "url": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "title": "XeroLinux Channel", "content_html": "

YouTube Channel ?

\n

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

\n

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

\n

What now Xero ?

\n

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

\n

What's the Catch ?

\n

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

\n

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

\n

Future Plans

\n

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

\n

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

\n

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/what-s-up-with-my-channel.png", "date_published": "2024-09-04T21:51:54+03:00", "authors": [], "tags": ["ArchLinux", "Linux", "XeroLinux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "url": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "title": "Why Revive XeroLinux", "content_html": "
\n

Info

\n

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

\n
\n

What is XeroLinux

\n

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

\n

\n \n

\n\n

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

\n

Why is XeroLinux back

\n

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

\n

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

\n

\"type:video\"

\n

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

\n

That answers the why.

\n

How to get it

\n

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

\n

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

\n

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

\n

Is it any Special

\n

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

\n

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

\n

How to get it for free

\n

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

\n

I don't like Arch

\n

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

\n

Private Donations

\n

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

\n

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

\n

Wrapping up

\n

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/why-is-distro-back.png", "date_published": "2024-09-04T21:51:54+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/", "url": "https://bytes.xerolinux.xyz/", "title": "\ud83c\udfe0Home", "content_html": "

Welcome

\n
\n

Info

\n

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

\n
\n

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

\n

\n \"logo\"\n

\n\n

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

\n

\n \"ArchPorn\"\n

", "image": "https://bytes.xerolinux.xyz/assets/images/social/index.png", "date_published": "2024-09-04T19:37:45+03:00", "authors": [], "tags": []}]} \ No newline at end of file diff --git a/site/feed_json_updated.json b/site/feed_json_updated.json index 81131a6..f584648 100644 --- a/site/feed_json_updated.json +++ b/site/feed_json_updated.json @@ -1 +1 @@ -{"version": "https://jsonfeed.org/version/1", "title": "DarkXero's Bytes", "home_page_url": "https://bytes.xerolinux.xyz/", "feed_url": "https://bytes.xerolinux.xyz/feed_json_updated.json", "description": "Thoughts, Opinions, Documentation, and more...", "icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png", "authors": [], "language": "en", "items": [{"id": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "url": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "title": "GPU Fundraiser", "content_html": "

Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

\n
\n \n
\n\n

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

\n

\n \n

\n\n

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/gpu-fund.png", "date_modified": "2025-01-22T07:02:10.527221+00:00", "authors": [], "tags": ["Hardware", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "url": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "title": "Affinity on Linux", "content_html": "
\n

Warning

\n

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

\n
\n

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

\n

\n \n

\n\n

Installation

\n

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

\n

Wrap up

\n

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/affinity-linux.png", "date_modified": "2024-11-15T15:58:32+02:00", "authors": [], "tags": ["Affinity", "Linux", "Photoshop"]}, {"id": "https://bytes.xerolinux.xyz/docs/sddm-display/", "url": "https://bytes.xerolinux.xyz/docs/sddm-display/", "title": "SDDM Display", "content_html": "

Information

\n

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

\n

\n \n

\n\n

Let's fix it \ud83d\ude80

\n

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

\n
xrandr | grep -w connected\n
\n

Output should be like this (mine)

\n
\n

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
\n DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
\n HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

\n
\n

This is my own Xsetup for the login window, yours may differ :

\n
#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n
\n

If you want to manually edit the file

\n
sudo nano /usr/share/sddm/scripts/Xsetup\n
\n

Paste the output of your xrandr command as I did above in there save & reboot.

\n

That's it y'all..

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/sddm-display.png", "date_modified": "2024-10-12T14:33:10+03:00", "authors": [], "tags": ["Display", "Linux", "SDDM"]}, {"id": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "url": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "title": "RiP GamerKing", "content_html": "

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

In Memoriam

\n

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

\n

\n \"avatar\"\n

\n\n

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

\n

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

\n

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

\n

\n \"rip\"\n

\n\n

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

\n

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

\n

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

\n

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/rip-gamerking.png", "date_modified": "2024-10-02T21:00:39+03:00", "authors": [], "tags": ["Lebanon", "Warzone"]}, {"id": "https://bytes.xerolinux.xyz/SUMMARY/", "url": "https://bytes.xerolinux.xyz/SUMMARY/", "title": "SUMMARY", "content_html": "", "image": "https://bytes.xerolinux.xyz/assets/images/social/SUMMARY.png", "date_modified": "2024-09-27T21:57:16+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "url": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "title": "FOSS Fundraising", "content_html": "

Backstory

\n

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

\n

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

\n

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

\n

Fundraising

\n

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

\n

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

\n

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

\n

Hate in FOSS

\n

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

\n

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

\n

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

\n

See ya there

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/foss-fundraising.png", "date_modified": "2024-09-27T21:57:16+03:00", "authors": [], "tags": ["ArchLinux", "Fundraising", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "url": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "title": "MKDocs Install", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

\n

\"type:video\"

\n

Installing MKDocs

\n

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

\n
paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n
\n

Donce that's done we need to create the site. There's a command for that.

\n
mkdocs new my-project\ncd my-project\n
\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

\n
site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n
\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

\n

Plugins & Extra Stuff

\n

I have found a few that I liked on the AUR, let's install them via :

\n
paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n
\n

To activate them we edit the same mkdocs.yml file as before like so :

\n
plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n
\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

\n
markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n
\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/mkdocs-install.png", "date_modified": "2024-09-27T21:23:23+03:00", "authors": [], "tags": ["Blogging", "Linux", "MKDocs"]}, {"id": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "url": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "title": "Plans for other spins", "content_html": "

Information

\n

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

\n

It's Complicated

\n

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

\n

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

\n

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

\n

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

\n

The Good News

\n

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

\n

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

\n

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

\n

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

\n

The Future

\n

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

\n

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/other-xero-spins.png", "date_modified": "2024-09-26T14:07:52+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/priv/current-situation/", "url": "https://bytes.xerolinux.xyz/priv/current-situation/", "title": "Current Situation", "content_html": "
\n

Info

\n

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\n
\n

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

Hello everyone,

\n

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

\n

\"type:video\"

\n

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

\n

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

\n

Your help and support would be, potentially life saving !

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/current-situation.png", "date_modified": "2024-09-25T22:59:13+03:00", "authors": [], "tags": ["Lebanon", "Situation", "Struggles", "War"]}, {"id": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "url": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "title": "Why Revive XeroLinux", "content_html": "
\n

Info

\n

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

\n
\n

What is XeroLinux

\n

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

\n

\n \n

\n\n

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

\n

Why is XeroLinux back

\n

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

\n

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

\n

\"type:video\"

\n

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

\n

That answers the why.

\n

How to get it

\n

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

\n

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

\n

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

\n

Is it any Special

\n

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

\n

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

\n

How to get it for free

\n

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

\n

I don't like Arch

\n

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

\n

Private Donations

\n

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

\n

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

\n

Wrapping up

\n

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/why-is-distro-back.png", "date_modified": "2024-09-17T15:32:35+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "url": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "title": "XeroLinux Channel", "content_html": "

YouTube Channel ?

\n

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

\n

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

\n

What now Xero ?

\n

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

\n

What's the Catch ?

\n

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

\n

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

\n

Future Plans

\n

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

\n

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

\n

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/what-s-up-with-my-channel.png", "date_modified": "2024-09-17T14:41:54+03:00", "authors": [], "tags": ["ArchLinux", "Linux", "XeroLinux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/", "url": "https://bytes.xerolinux.xyz/", "title": "\ud83c\udfe0Home", "content_html": "

Welcome

\n
\n

Info

\n

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

\n
\n

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

\n

\n \"logo\"\n

\n\n

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

\n

\n \"ArchPorn\"\n

", "image": "https://bytes.xerolinux.xyz/assets/images/social/index.png", "date_modified": "2024-09-17T14:08:59+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "url": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "title": "Reset Password", "content_html": "

Information

\n

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

\n

\n \n

\n\n

Let's do this \ud83d\ude80

\n

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

\n

If this is a laptop or a desktop which you have next to you then follow these steps.

\n
    \n
  1. Shut down the device.
  2. \n
  3. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  4. \n
  5. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  6. \n
  7. Press Ctrl+x, or F10, to boot.
  8. \n
  9. You will see a root prompt.
  10. \n
\n
:#\n
\n

Remount the filesystem in read/write mode:

\n
:# mount -no remount,rw /\n
\n
    \n
  1. Set the password of any user(s).
  2. \n
\n
:# passwd joe\n
\n
    \n
  1. Reboot with the command reboot -f.
  2. \n
\n

That's it ! The new password should work now.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/passwd-reset.png", "date_modified": "2024-09-17T13:47:15+03:00", "authors": [], "tags": ["Linux", "Recovery", "Reset"]}, {"id": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "url": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "title": "FFmpeg Cheat Sheet", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

\n

\n \n

\n\n

Installation

\n

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

\n
sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n
\n

Now that we have it, it's time for the cheat sheet.

\n
\n

.// The Cheat Sheet \\\\.

\n\n

Basic conversion

\n
ffmpeg -i in.mp4 out.avi\n
\n

Remux an MKV file into MP4

\n
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
\n

High-quality encoding

\n

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

\n
ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
\n

Trimming

\n

Without re-encoding:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
\n- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds)\n- -t specifies the duration of the clip (same format).\n- Recent ffmpeg also has a flag to supply the end time with -to.\n- -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

\n

With re-encoding:

\n

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

\n

For example:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n

\n

Mux video and audio from another video

\n

To copy the video from in0.mp4 and audio from in1.mp4:\n

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
\n- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide.\n- The -shortest option will cause the output duration to match the duration of the shortest input stream.\n- See the -map option documentation for more info.

\n

Concat demuxer

\n

First, make a text file.\n

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
\nThen, run ffmpeg:\n
ffmpeg -f concat -i list.txt -c copy out.mp4\n

\n

Delay audio/video

\n

Delay video by 3.84 seconds:\n

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
\nDelay audio by 3.84 seconds:\n
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n

\n

Burn subtitles

\n

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

\n

First convert the subtitles to .ass format:\n

ffmpeg -i sub.srt sub.ass\n
\nThen add them using a video filter:

\n
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
\n

Extract the frames from a video

\n

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

\n
ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n
\n

To extract one frame per second only:

\n
ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
\n

Rotate a video

\n

Rotate 90 clockwise:

\n
ffmpeg -i in.mov -vf "transpose=1" out.mov\n
\n

For the transpose parameter you can pass:

\n
0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n
\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

\n

Download \"Transport Stream\" video streams

\n
    \n
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. \n
  3. Download and concatenate the video fragments:
  4. \n
\n
ffmpeg -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

\n
ffmpeg -protocol_whitelist "file,http,https,tcp,tls" -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

Mute some of the audio

\n

To replace the first 90 seconds of audio with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='lte(t,90)':volume=0" out.mp4\n
\n

To replace all audio between 1'20\" and 1'30\" with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='between(t,80,90)':volume=0" out.mp4\n
\n

Deinterlace

\n

Deinterlacing using \"yet another deinterlacing filter\".

\n
ffmpeg -i in.mp4 -vf yadif out.mp4\n
\n

Create a video slideshow from images

\n

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

\n
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
\n

Extract images from a video

\n\n

Display the frame number on each frame

\n
ffmpeg -i in.mov -vf "drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72" -y out.mov\n
\n

Metadata: Change the title

\n
ffmpeg -i in.mp4 -map_metadata -1 -metadata title="My Title" -c:v copy -c:a copy out.mp4\n
\n

Wrap up

\n

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/ffmpeg-cheats.png", "date_modified": "2024-09-17T13:36:31+03:00", "authors": [], "tags": ["CheatSheet", "FFmpeg", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "url": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "title": "My Cosmic Experience", "content_html": "
\n

Note

\n

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

\n
\n

Installation

\n

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

\n

\n \n

\n\n

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

\n

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

\n

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

\n
pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n
\n

\n \n

\n\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

\n

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

\n
systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n
\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

\n

Experience

\n

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

\n

\n \n

\n\n

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

\n

\n \n

\n\n

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

\n

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

\n
sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n
\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

\n

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

\n

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

\n

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

\n

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

\n

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

\n

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

\n

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

\n

That's where I gave up and decided to go back home to KDE Plasma.

\n

Final words

\n

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

\n

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

\n

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

\n

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/cosmic-experience.png", "date_modified": "2024-09-12T13:16:04+03:00", "authors": [], "tags": ["ArchLinux", "Cosmic", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "url": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "title": "Developing is fun", "content_html": "

Am I a Developer ?

\n

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

\n

\"type:video\"

\n

And if it does work, I'm happy and share the result with the FOSS community.

\n

It's fun until...

\n

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

\n

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

\n

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

\n

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

\n

Sharing is caring

\n

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

\n

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\n

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/developing-is-fun-but.png", "date_modified": "2024-09-06T16:15:59+03:00", "authors": [], "tags": ["Developer", "Development", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/linux-explained/", "url": "https://bytes.xerolinux.xyz/docs/linux-explained/", "title": "Linux in a Nutshell", "content_html": "

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

\n
\n

Tip

\n

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

\n
\n

What is Linux ?

\n

Since not everyone's super familiar with Linux, here's a quick crash course.

\n

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

\n

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

\n

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

\n

\n \"logo\"\n

\n\n

Distros & PKG Managers

\n

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

\n

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

\n\n

Filesystem & Updates

\n

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

\n

As for the filesystem:

\n\n

In UNIX, everything is a file. This means you can:

\n\n

Wrapping it all up

\n

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/linux-explained.png", "date_modified": "2024-09-06T13:06:17+03:00", "authors": [], "tags": ["Kernel", "Linux", "Packages"]}, {"id": "https://bytes.xerolinux.xyz/priv/be-thankful/", "url": "https://bytes.xerolinux.xyz/priv/be-thankful/", "title": "Be Thankful", "content_html": "

What's This?

\n

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

\n

Content Creators

\n

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

\n

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

\n

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

\n

Writers / Blog Posters

\n

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

\n

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

\n

Appreciating CCs and Writers

\n

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

\n

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

\n

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

\n

Fostering a Positive Community

\n

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

\n

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

\n

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

\n

Conclusion

\n

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/be-thankful.png", "date_modified": "2024-09-06T12:30:00+03:00", "authors": [], "tags": ["Content Creation", "Linux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "url": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "title": "FOSS Struggles", "content_html": "

Hello everyone,

\n

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

\n

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

\n
\n

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

\n
\n

\"type:video\"

\n

My Frustration

\n

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

\n

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

\n

Seeking Purpose

\n

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

\n

Monetization Attempts

\n

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

\n

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

\n

Health Concerns

\n

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

\n

Mental Health Struggles

\n

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

\n

The Way Forward

\n

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

\n

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

\n

Closing Thoughts

\n

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

\n

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

\n

Thank you for understanding and supporting me through this journey.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/real-foss-struggles.png", "date_modified": "2024-09-06T12:30:00+03:00", "authors": [], "tags": ["FOSS", "Fundraising", "Health", "Linux", "Struggles"]}, {"id": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "url": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "title": "Docker A Love Story", "content_html": "

What is Docker ?

\n

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

\n

\n \"logo\"\n

\n\n

How it all started

\n

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

\n

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

\n

My setup so far

\n

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

\n

\n \"logo\"\n

\n\n\n

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

\n\n

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

\n\n

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

\n\n

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

\n\n

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

\n\n

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

\n\n

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

\n\n

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

\n\n

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

\n

You get the idea

\n

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

\n\n

Where to find more containers ?

\n

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

\n

Closing words

\n

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

\n

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/docker-containers-a-love-story.png", "date_modified": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Containers", "Docker", "Linux"]}]} \ No newline at end of file +{"version": "https://jsonfeed.org/version/1", "title": "DarkXero's Bytes", "home_page_url": "https://bytes.xerolinux.xyz/", "feed_url": "https://bytes.xerolinux.xyz/feed_json_updated.json", "description": "Thoughts, Opinions, Documentation, and more...", "icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png", "authors": [], "language": "en", "items": [{"id": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "url": "https://bytes.xerolinux.xyz/tech/gpu-fund/", "title": "GPU Fundraiser", "content_html": "

Since getting myself a nice Christmas gift, the Ryzen 9 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

\n
\n \n
\n\n

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

\n

\n \n

\n\n

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/gpu-fund.png", "date_modified": "2025-01-22T11:02:16+02:00", "authors": [], "tags": ["Hardware", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "url": "https://bytes.xerolinux.xyz/docs/affinity-linux/", "title": "Affinity on Linux", "content_html": "
\n

Warning

\n

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

\n
\n

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

\n

\n \n

\n\n

Installation

\n

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

\n

Wrap up

\n

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/affinity-linux.png", "date_modified": "2024-11-15T15:58:32+02:00", "authors": [], "tags": ["Affinity", "Linux", "Photoshop"]}, {"id": "https://bytes.xerolinux.xyz/docs/sddm-display/", "url": "https://bytes.xerolinux.xyz/docs/sddm-display/", "title": "SDDM Display", "content_html": "

Information

\n

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

\n

\n \n

\n\n

Let's fix it \ud83d\ude80

\n

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

\n
xrandr | grep -w connected\n
\n

Output should be like this (mine)

\n
\n

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
\n DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm
\n HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

\n
\n

This is my own Xsetup for the login window, yours may differ :

\n
#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n
\n

If you want to manually edit the file

\n
sudo nano /usr/share/sddm/scripts/Xsetup\n
\n

Paste the output of your xrandr command as I did above in there save & reboot.

\n

That's it y'all..

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/sddm-display.png", "date_modified": "2024-10-12T14:33:10+03:00", "authors": [], "tags": ["Display", "Linux", "SDDM"]}, {"id": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "url": "https://bytes.xerolinux.xyz/priv/rip-gamerking/", "title": "RiP GamerKing", "content_html": "

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

In Memoriam

\n

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

\n

\n \"avatar\"\n

\n\n

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

\n

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

\n

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

\n

\n \"rip\"\n

\n\n

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

\n

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

\n

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

\n

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/rip-gamerking.png", "date_modified": "2024-10-02T21:00:39+03:00", "authors": [], "tags": ["Lebanon", "Warzone"]}, {"id": "https://bytes.xerolinux.xyz/SUMMARY/", "url": "https://bytes.xerolinux.xyz/SUMMARY/", "title": "SUMMARY", "content_html": "", "image": "https://bytes.xerolinux.xyz/assets/images/social/SUMMARY.png", "date_modified": "2024-09-27T21:57:16+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "url": "https://bytes.xerolinux.xyz/priv/foss-fundraising/", "title": "FOSS Fundraising", "content_html": "

Backstory

\n

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

\n

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

\n

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

\n

Fundraising

\n

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

\n

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

\n

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

\n

Hate in FOSS

\n

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

\n

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

\n

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

\n

See ya there

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/foss-fundraising.png", "date_modified": "2024-09-27T21:57:16+03:00", "authors": [], "tags": ["ArchLinux", "Fundraising", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "url": "https://bytes.xerolinux.xyz/docs/mkdocs-install/", "title": "MKDocs Install", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

\n

\"type:video\"

\n

Installing MKDocs

\n

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

\n
paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n
\n

Donce that's done we need to create the site. There's a command for that.

\n
mkdocs new my-project\ncd my-project\n
\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

\n
site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n
\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

\n

Plugins & Extra Stuff

\n

I have found a few that I liked on the AUR, let's install them via :

\n
paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n
\n

To activate them we edit the same mkdocs.yml file as before like so :

\n
plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n
\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

\n
markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n
\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/mkdocs-install.png", "date_modified": "2024-09-27T21:23:23+03:00", "authors": [], "tags": ["Blogging", "Linux", "MKDocs"]}, {"id": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "url": "https://bytes.xerolinux.xyz/projects/other-xero-spins/", "title": "Plans for other spins", "content_html": "

Information

\n

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

\n

It's Complicated

\n

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

\n

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

\n

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

\n

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

\n

The Good News

\n

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

\n

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

\n

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

\n

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

\n

The Future

\n

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

\n

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/other-xero-spins.png", "date_modified": "2024-09-26T14:07:52+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/priv/current-situation/", "url": "https://bytes.xerolinux.xyz/priv/current-situation/", "title": "Current Situation", "content_html": "
\n

Info

\n

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\n
\n

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

\n\n

Hello everyone,

\n

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

\n

\"type:video\"

\n

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

\n

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

\n

Your help and support would be, potentially life saving !

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/current-situation.png", "date_modified": "2024-09-25T22:59:13+03:00", "authors": [], "tags": ["Lebanon", "Situation", "Struggles", "War"]}, {"id": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "url": "https://bytes.xerolinux.xyz/projects/why-is-distro-back/", "title": "Why Revive XeroLinux", "content_html": "
\n

Info

\n

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

\n
\n

What is XeroLinux

\n

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

\n

\n \n

\n\n

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

\n

Why is XeroLinux back

\n

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

\n

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

\n

\"type:video\"

\n

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

\n

That answers the why.

\n

How to get it

\n

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

\n

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

\n

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

\n

Is it any Special

\n

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

\n

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

\n

How to get it for free

\n

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

\n

I don't like Arch

\n

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

\n

Private Donations

\n

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

\n

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

\n

Wrapping up

\n

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

\n

Thank you to each and everyone for the support.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/why-is-distro-back.png", "date_modified": "2024-09-17T15:32:35+03:00", "authors": [], "tags": ["ArchLinux", "Distribution", "Linux", "XeroLinux"]}, {"id": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "url": "https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/", "title": "XeroLinux Channel", "content_html": "

YouTube Channel ?

\n

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

\n

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

\n

What now Xero ?

\n

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

\n

What's the Catch ?

\n

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

\n

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

\n

Future Plans

\n

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

\n

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

\n

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/projects/what-s-up-with-my-channel.png", "date_modified": "2024-09-17T14:41:54+03:00", "authors": [], "tags": ["ArchLinux", "Linux", "XeroLinux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/", "url": "https://bytes.xerolinux.xyz/", "title": "\ud83c\udfe0Home", "content_html": "

Welcome

\n
\n

Info

\n

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

\n
\n

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

\n

\n \"logo\"\n

\n\n

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

\n

\n \"ArchPorn\"\n

", "image": "https://bytes.xerolinux.xyz/assets/images/social/index.png", "date_modified": "2024-09-17T14:08:59+03:00", "authors": [], "tags": []}, {"id": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "url": "https://bytes.xerolinux.xyz/docs/passwd-reset/", "title": "Reset Password", "content_html": "

Information

\n

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

\n

\n \n

\n\n

Let's do this \ud83d\ude80

\n

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

\n

If this is a laptop or a desktop which you have next to you then follow these steps.

\n
    \n
  1. Shut down the device.
  2. \n
  3. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  4. \n
  5. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  6. \n
  7. Press Ctrl+x, or F10, to boot.
  8. \n
  9. You will see a root prompt.
  10. \n
\n
:#\n
\n

Remount the filesystem in read/write mode:

\n
:# mount -no remount,rw /\n
\n
    \n
  1. Set the password of any user(s).
  2. \n
\n
:# passwd joe\n
\n
    \n
  1. Reboot with the command reboot -f.
  2. \n
\n

That's it ! The new password should work now.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/passwd-reset.png", "date_modified": "2024-09-17T13:47:15+03:00", "authors": [], "tags": ["Linux", "Recovery", "Reset"]}, {"id": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "url": "https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/", "title": "FFmpeg Cheat Sheet", "content_html": "

What's This?

\n

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

\n

\n \n

\n\n

Installation

\n

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

\n
sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n
\n

Now that we have it, it's time for the cheat sheet.

\n
\n

.// The Cheat Sheet \\\\.

\n\n

Basic conversion

\n
ffmpeg -i in.mp4 out.avi\n
\n

Remux an MKV file into MP4

\n
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
\n

High-quality encoding

\n

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

\n
ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
\n

Trimming

\n

Without re-encoding:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
\n- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds)\n- -t specifies the duration of the clip (same format).\n- Recent ffmpeg also has a flag to supply the end time with -to.\n- -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

\n

With re-encoding:

\n

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

\n

For example:\n

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n

\n

Mux video and audio from another video

\n

To copy the video from in0.mp4 and audio from in1.mp4:\n

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
\n- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide.\n- The -shortest option will cause the output duration to match the duration of the shortest input stream.\n- See the -map option documentation for more info.

\n

Concat demuxer

\n

First, make a text file.\n

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
\nThen, run ffmpeg:\n
ffmpeg -f concat -i list.txt -c copy out.mp4\n

\n

Delay audio/video

\n

Delay video by 3.84 seconds:\n

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
\nDelay audio by 3.84 seconds:\n
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n

\n

Burn subtitles

\n

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

\n

First convert the subtitles to .ass format:\n

ffmpeg -i sub.srt sub.ass\n
\nThen add them using a video filter:

\n
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
\n

Extract the frames from a video

\n

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

\n
ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n
\n

To extract one frame per second only:

\n
ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
\n

Rotate a video

\n

Rotate 90 clockwise:

\n
ffmpeg -i in.mov -vf "transpose=1" out.mov\n
\n

For the transpose parameter you can pass:

\n
0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n
\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

\n

Download \"Transport Stream\" video streams

\n
    \n
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. \n
  3. Download and concatenate the video fragments:
  4. \n
\n
ffmpeg -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

\n
ffmpeg -protocol_whitelist "file,http,https,tcp,tls" -i "path_to_playlist.m3u8" -c copy -bsf:a aac_adtstoasc out.mp4\n
\n

Mute some of the audio

\n

To replace the first 90 seconds of audio with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='lte(t,90)':volume=0" out.mp4\n
\n

To replace all audio between 1'20\" and 1'30\" with silence:

\n
ffmpeg -i in.mp4 -vcodec copy -af "volume=enable='between(t,80,90)':volume=0" out.mp4\n
\n

Deinterlace

\n

Deinterlacing using \"yet another deinterlacing filter\".

\n
ffmpeg -i in.mp4 -vf yadif out.mp4\n
\n

Create a video slideshow from images

\n

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

\n
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
\n

Extract images from a video

\n\n

Display the frame number on each frame

\n
ffmpeg -i in.mov -vf "drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72" -y out.mov\n
\n

Metadata: Change the title

\n
ffmpeg -i in.mp4 -map_metadata -1 -metadata title="My Title" -c:v copy -c:a copy out.mp4\n
\n

Wrap up

\n

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/ffmpeg-cheats.png", "date_modified": "2024-09-17T13:36:31+03:00", "authors": [], "tags": ["CheatSheet", "FFmpeg", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "url": "https://bytes.xerolinux.xyz/tech/cosmic-experience/", "title": "My Cosmic Experience", "content_html": "
\n

Note

\n

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

\n
\n

Installation

\n

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

\n

\n \n

\n\n

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

\n

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

\n

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

\n
pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n
\n

\n \n

\n\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

\n

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

\n
systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n
\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

\n

Experience

\n

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

\n

\n \n

\n\n

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

\n

\n \n

\n\n

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

\n

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

\n
sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n
\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

\n

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

\n

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

\n

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

\n

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

\n

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

\n

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

\n

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

\n

That's where I gave up and decided to go back home to KDE Plasma.

\n

Final words

\n

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

\n

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

\n

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

\n

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/cosmic-experience.png", "date_modified": "2024-09-12T13:16:04+03:00", "authors": [], "tags": ["ArchLinux", "Cosmic", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "url": "https://bytes.xerolinux.xyz/priv/developing-is-fun-but/", "title": "Developing is fun", "content_html": "

Am I a Developer ?

\n

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

\n

\"type:video\"

\n

And if it does work, I'm happy and share the result with the FOSS community.

\n

It's fun until...

\n

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

\n

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

\n

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

\n

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

\n

Sharing is caring

\n

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

\n

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\n

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/developing-is-fun-but.png", "date_modified": "2024-09-06T16:15:59+03:00", "authors": [], "tags": ["Developer", "Development", "Linux"]}, {"id": "https://bytes.xerolinux.xyz/docs/linux-explained/", "url": "https://bytes.xerolinux.xyz/docs/linux-explained/", "title": "Linux in a Nutshell", "content_html": "

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

\n
\n

Tip

\n

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

\n
\n

What is Linux ?

\n

Since not everyone's super familiar with Linux, here's a quick crash course.

\n

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

\n

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

\n

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

\n

\n \"logo\"\n

\n\n

Distros & PKG Managers

\n

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

\n

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

\n\n

Filesystem & Updates

\n

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

\n

As for the filesystem:

\n\n

In UNIX, everything is a file. This means you can:

\n\n

Wrapping it all up

\n

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/docs/linux-explained.png", "date_modified": "2024-09-06T13:06:17+03:00", "authors": [], "tags": ["Kernel", "Linux", "Packages"]}, {"id": "https://bytes.xerolinux.xyz/priv/be-thankful/", "url": "https://bytes.xerolinux.xyz/priv/be-thankful/", "title": "Be Thankful", "content_html": "

What's This?

\n

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

\n

Content Creators

\n

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

\n

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

\n

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

\n

Writers / Blog Posters

\n

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

\n

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

\n

Appreciating CCs and Writers

\n

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

\n

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

\n

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

\n

Fostering a Positive Community

\n

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

\n

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

\n

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

\n

Conclusion

\n

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/be-thankful.png", "date_modified": "2024-09-06T12:30:00+03:00", "authors": [], "tags": ["Content Creation", "Linux", "YouTube"]}, {"id": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "url": "https://bytes.xerolinux.xyz/priv/real-foss-struggles/", "title": "FOSS Struggles", "content_html": "

Hello everyone,

\n

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

\n

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

\n
\n

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

\n
\n

\"type:video\"

\n

My Frustration

\n

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

\n

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

\n

Seeking Purpose

\n

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

\n

Monetization Attempts

\n

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

\n

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

\n

Health Concerns

\n

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

\n

Mental Health Struggles

\n

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

\n

The Way Forward

\n

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

\n

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

\n

Closing Thoughts

\n

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

\n

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

\n

Thank you for understanding and supporting me through this journey.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/priv/real-foss-struggles.png", "date_modified": "2024-09-06T12:30:00+03:00", "authors": [], "tags": ["FOSS", "Fundraising", "Health", "Linux", "Struggles"]}, {"id": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "url": "https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/", "title": "Docker A Love Story", "content_html": "

What is Docker ?

\n

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

\n

\n \"logo\"\n

\n\n

How it all started

\n

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

\n

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

\n

My setup so far

\n

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

\n

\n \"logo\"\n

\n\n\n

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

\n\n

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

\n\n

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

\n\n

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

\n\n

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

\n\n

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

\n\n

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

\n\n

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

\n\n

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

\n

You get the idea

\n

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

\n\n

Where to find more containers ?

\n

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

\n

Closing words

\n

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

\n

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

", "image": "https://bytes.xerolinux.xyz/assets/images/social/tech/docker-containers-a-love-story.png", "date_modified": "2024-09-05T00:31:15+03:00", "authors": [], "tags": ["Containers", "Docker", "Linux"]}]} \ No newline at end of file diff --git a/site/feed_rss_updated.xml b/site/feed_rss_updated.xml index 97f9736..7c652cf 100644 --- a/site/feed_rss_updated.xml +++ b/site/feed_rss_updated.xml @@ -1 +1 @@ - DarkXero's BytesThoughts, Opinions, Documentation, and more...https://bytes.xerolinux.xyz/en Wed, 22 Jan 2025 07:02:09 -0000 Wed, 22 Jan 2025 07:02:09 -0000 60 MkDocs RSS plugin - v1.17.1 https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png DarkXero's Byteshttps://bytes.xerolinux.xyz/ GPU Fundraiser Hardware Linux <p>Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.</p><div align="center"> <script type='text/javascript' src='https://storage.ko-fi.com/cdn/widget/Widget_2.js'></script><script type='text/javascript'>kofiwidget2.init('Support me on Ko-fi', '#8073f5', 'I2I4K55AA');kofiwidget2.draw();</script> </div><p>With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.</p><p align="center"> <img width="360" src="https://i.imgur.com/JCpfCS8.png"> <img width="360" src="https://i.imgur.com/ojsENRr.png"></p><p>Thank you for your continuous support. Without you none of this would have been possible. <strong>XeroLinux</strong> owes its existence to you. Let's get 2025 on the road shall we ?</p>https://bytes.xerolinux.xyz/tech/gpu-fund/ Wed, 22 Jan 2025 07:02:10 +0000DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/gpu-fund/ Affinity on Linux Affinity Linux Photoshop <div class="admonition warning"><p class="admonition-title">Warning</p><p>This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.</p></div><h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://affinity.serif.com/en-us/" target="_blank"><strong>Affinity Apps</strong></a> on <strong>Linux</strong> thanks to <a href="https://github.com/Twig6943" target="_blank"><strong>Twig6943</strong></a>.</p><p align="center"> <img src="https://i.imgur.com/MABHj31.jpeg"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to download the <a href="https://store.serif.com/update/windows/photo/2/" target="_blank"><strong>Photo</strong></a>, <a href="https://store.serif.com/update/windows/designer/2/" target="_blank"><strong>Designer</strong></a> or <a href="https://store.serif.com/update/windows/publisher/2/" target="_blank"><strong>Publisher</strong></a> <code>exe</code> from the dropdown. Once we have it/them, follow the guide over on maintainer's <a href="https://github.com/Twig6943/AffinityOnLinux" target="_blank"><strong>Github</strong></a></p><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to <strong>Photoshop</strong> I have ever gotten, without having to go through <em>WinBlows</em> if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.</p>https://bytes.xerolinux.xyz/docs/affinity-linux/ Fri, 15 Nov 2024 15:58:32 +0200DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/affinity-linux/ SDDM Display Display Linux SDDM <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Login session appears on an unexpected display. It can happen that the <strong>SDDM</strong> login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use <code>xrandr</code> to configure the displays before the login session using Xsetup script. E.g. here <code>xrandr</code> reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).</p><p align="center"> <img src="https://i.imgur.com/c6fj1u4.png"></p><h3 id="lets-fix-it">Let's fix it 🚀<a class="headerlink" href="#lets-fix-it" title="Permanent link">&para;</a></h3><p>We need to be logged in to an <em>X-Session</em> meaning <code>X11</code> to gat the correct display names, we cannot use display names from <code>Wayland</code> session won't work for some reason, maybe because <strong>SDDM</strong> runs in <code>X11</code> ? No idea, now run this command in terminal to get their names. Need to have <code>xrandr</code> package installed.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>xrandr<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-w<span class="w"> </span>connected</span></code></pre></div><p>Output should be like this (mine)</p><blockquote><p>HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm <br /> DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm <br /> HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm</p></blockquote><p>This is my own <code>Xsetup</code> for the login window, yours may differ :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="ch">#!/bin/sh</span></span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="c1"># Xsetup - run as root before the login dialog appears</span></span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a></span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>DP-2<span class="w"> </span>--auto<span class="w"> </span>--primary</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-1<span class="w"> </span>--auto<span class="w"> </span>--left-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-0<span class="w"> </span>--auto<span class="w"> </span>--right-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span></code></pre></div><p>If you want to manually edit the file</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>nano<span class="w"> </span>/usr/share/sddm/scripts/Xsetup</span></code></pre></div><p>Paste the output of your <code>xrandr</code> command as I did above in there save &amp; reboot.</p><p>That's it y'all..</p>https://bytes.xerolinux.xyz/docs/sddm-display/ Sat, 12 Oct 2024 14:33:10 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/sddm-display/ RiP GamerKing Lebanon Warzone <h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>In Memoriam</strong></p><p>It is with a heavy heart that I share the passing of <strong>GamerKing</strong>, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant <strong>Linux</strong> enthusiast but also a vibrant soul who played a significant role in shaping the future of <strong>XeroLinux</strong>. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.</p><p align="center"> <img src="https://i.imgur.com/37Ew8GN.jpeg" alt="avatar"></p><p>I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. <strong>XeroLinux</strong> carries his imprint, and his contributions will forever be woven into its fabric. In a place like <strong>Lebanon</strong>, where <strong>Linux</strong> is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.</p><p>For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and <strong>GamerKing</strong> was caught in the crossfire.</p><p>Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.</p><p align="center"> <img src="https://i.imgur.com/vQFu6YT.jpeg" alt="rip"></p><p>As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.</p><p>Yesterday, as I write this, a massive bombing destroyed a six-building complex near <strong>GamerKing</strong>'s location. Soon after, I received a message from his younger brother. At first, I believed it was <strong>GamerKing</strong> himself, and my immediate question was, "<strong>Are you OK?</strong>" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: "<strong>He told me that if anything happened to me, open Discord and tell Dark</strong>." I asked, trembling, "<strong>Why? What happened?</strong>" After what felt like an eternity, he delivered the words that shattered my world: "<strong>He just left us</strong>."</p><p>I still don’t know what took him from us, whether it was his injuries or the bombing—but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.</p><p>I will always remember his infectious energy, his humor, and his brilliance. He was the light of <strong>XeroLinux</strong>, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. <strong>Rest in peace, little brother</strong>.</p>https://bytes.xerolinux.xyz/priv/rip-gamerking/ Wed, 02 Oct 2024 21:00:39 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/rip-gamerking/ SUMMARY <ul><li><a href="../">🏠Home</a></li><li><a href="/docs/">🗒️Documentation</a></li><li><a href="/priv/">🗨️Communication</a></li><li><a href="/projects/">💻Xero Projects</a></li><li><a href="/tech/">🖱️Technology</a></li></ul>https://bytes.xerolinux.xyz/SUMMARY/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/SUMMARY/ FOSS Fundraising ArchLinux Fundraising Linux <h3 id="backstory">Backstory<a class="headerlink" href="#backstory" title="Permanent link">&para;</a></h3><p>Before I begin, I would like to clarify that, when I say <strong>Linux</strong> in this context I mean <strong>Desktop Linux</strong>.</p><p>When I started this whole <strong>Linux</strong> endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with <a href="https://kde.org" target="_blank"><strong>KDE Plasma</strong></a> while using the now infamous <a href="https://manjaro.org" target="_blank"><strong>Manjaro</strong></a> Distrobution. Yes, this is when I got hooked to <strong>Linux</strong>. Now don't get me wrong, I have since tried many DEs and WMs. But alas only <strong>KDE Plasma</strong> answered my needs.</p><p>Since then I started getting the urge to build my own <em>Distro</em> my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called <a href="https://arcolinux.info" target="_blank"><strong>ArcoLinux</strong></a>. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro <a href="https://archlinux.org" target="_blank"><strong>ArchLinux</strong></a>.</p><h3 id="fundraising">Fundraising<a class="headerlink" href="#fundraising" title="Permanent link">&para;</a></h3><p>Now we get to the meat and potatoes of this post, why ask for money when it's <strong>FOSS</strong> ? Well in case you did not know, the <em>Free</em> in <em>Free Open Source</em> does <strong>NOT</strong> mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our <strong>TIME</strong>.</p><p>Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a <em>real</em> job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.</p><p>Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the <em>Fundraising</em> or <em>Donation</em> methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the <strong>Donate</strong> button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)</p><h3 id="hate-in-foss">Hate in FOSS<a class="headerlink" href="#hate-in-foss" title="Permanent link">&para;</a></h3><p>Now let's address the <em>other</em> elephant in the room, the hate in the <strong>FOSS</strong> community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word <em>Free</em> in <em>Free Open Source</em>. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they <em>despise</em> others, the ones we call <em>Protest Distros</em>. Now am not going to name any names here, but the longer this goes on, the slower <strong>Linux</strong> will grow.</p><p>So if you love <strong>Linux</strong> as much as you say you do, please help your favorite projects grow in any way shape or form, either <em>Donating</em> for financial support if you can and are not a developer, or by simply <em>Reporting Issues</em> upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.</p><p>Anyways, thanks for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p><p>See ya there</p>https://bytes.xerolinux.xyz/priv/foss-fundraising/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/foss-fundraising/ MKDocs Install Blogging Linux MKDocs <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://www.mkdocs.org" target="_blank"><strong>MKDocs</strong></a> the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for <strong>ArchLinux</strong> if you don't use that distro, well, their site shows how to install for your distro.</p><p><img alt="type:video" src="https://www.youtube.com/embed/9V0NpLPXS-Y" /></p><h3 id="installing-mkdocs">Installing MKDocs<a class="headerlink" href="#installing-mkdocs" title="Permanent link">&para;</a></h3><p>We will need to install it with some extras. The 2 main packages exist on the <strong>Arch</strong> repos. The rest are on the <strong>AUR</strong>, so to grab everything in one go, I will be using <strong>Paru</strong>. Compiling might take a while, so sit back wile it finishes.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs<span class="w"> </span>mkdocs-get-deps<span class="w"> </span>mkdocs-material<span class="w"> </span>python-pipx<span class="w"> </span>python-pillow<span class="w"> </span>python-cairosvg<span class="w"> </span>mkdocs-material-extensions<span class="w"> </span>python-regex<span class="w"> </span>pymdown-extensions<span class="w"> </span>mkdocs-material-pymdownx-extras</span></code></pre></div><p>Donce that's done we need to create the site. There's a command for that.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>mkdocs<span class="w"> </span>new<span class="w"> </span>my-project</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nb">cd</span><span class="w"> </span>my-project</span></code></pre></div><p>Now that we initialized the new site we need to configure it. We do so by editing the <code>mkdocs.yml</code> file putting in the following info :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">site_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Sitename</span></span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a></span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nt">theme</span><span class="p">:</span></span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">material</span></span><span id="__span-2-5"><a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="nt">logo</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/Tux.gif</span></span><span id="__span-2-6"><a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="nt">favicon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/favicon.ico</span></span><span id="__span-2-7"><a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="nt">palette</span><span class="p">:</span></span><span id="__span-2-8"><a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="nt">scheme</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slate</span></span><span id="__span-2-9"><a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="nt">primary</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">deep purple</span></span><span id="__span-2-10"><a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="nt">features</span><span class="p">:</span></span><span id="__span-2-11"><a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.top</span></span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.footer</span></span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.indexes</span></span><span id="__span-2-14"><a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">content.code.copy</span></span><span id="__span-2-15"><a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.suggest</span></span><span id="__span-2-16"><a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.highlight</span></span><span id="__span-2-17"><a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.share</span></span><span id="__span-2-18"><a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.expand</span></span></code></pre></div><p>This will make it use the <strong>Slate Material</strong> Theme with <strong>Deep Purple</strong> accents. To know more about the theme check the <a href="https://squidfunk.github.io/mkdocs-material/getting-started/" target="_blank"><strong>MKDocs Material Wiki</strong></a>. That's it go from there.</p><h3 id="plugins-extra-stuff">Plugins &amp; Extra Stuff<a class="headerlink" href="#plugins-extra-stuff" title="Permanent link">&para;</a></h3><p>I have found a few that I liked on the <strong>AUR</strong>, let's install them via :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs-rss-plugin<span class="w"> </span>mkdocs-video<span class="w"> </span>mkdocs-autorefs<span class="w"> </span>mkdocs-section-index<span class="w"> </span>mkdocs-glightbox<span class="w"> </span>mkdocs-backlinks-plugin<span class="w"> </span>mkdocs-redirects<span class="w"> </span>mkdocs-ezlinks-plugin<span class="w"> </span>mkdocs-literate-nav</span></code></pre></div><p>To activate them we edit the same <code>mkdocs.yml</code> file as before like so :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">plugins</span><span class="p">:</span></span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rss</span></span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">social</span></span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search</span></span><span id="__span-4-5"><a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">autorefs</span></span><span id="__span-4-6"><a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">glightbox</span></span></code></pre></div><p>There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">markdown_extensions</span><span class="p">:</span></span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a></span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="c1"># Python Markdown</span></span><span id="__span-5-4"><a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">abbr</span></span><span id="__span-5-5"><a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admonition</span></span><span id="__span-5-6"><a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">attr_list</span></span><span id="__span-5-7"><a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">def_list</span></span><span id="__span-5-8"><a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">footnotes</span></span><span id="__span-5-9"><a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">md_in_html</span></span><span id="__span-5-10"><a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">toc</span><span class="p">:</span></span><span id="__span-5-11"><a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w"> </span><span class="nt">permalink</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-12"><a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a></span><span id="__span-5-13"><a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w"> </span><span class="c1"># Python Markdown Extensions</span></span><span id="__span-5-14"><a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.arithmatex</span><span class="p">:</span></span><span id="__span-5-15"><a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w"> </span><span class="nt">generic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-16"><a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.betterem</span><span class="p">:</span></span><span id="__span-5-17"><a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w"> </span><span class="nt">smart_enable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">all</span></span><span id="__span-5-18"><a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.caret</span></span><span id="__span-5-19"><a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.details</span></span><span id="__span-5-20"><a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.emoji</span><span class="p">:</span></span><span id="__span-5-21"><a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="w"> </span><span class="nt">emoji_index</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.twemoji</span></span><span id="__span-5-22"><a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a><span class="w"> </span><span class="nt">emoji_generator</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.to_svg</span></span><span id="__span-5-23"><a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.highlight</span><span class="p">:</span></span><span id="__span-5-24"><a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a><span class="w"> </span><span class="nt">anchor_linenums</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-25"><a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a><span class="w"> </span><span class="nt">line_spans</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">__span</span></span><span id="__span-5-26"><a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a><span class="w"> </span><span class="nt">pygments_lang_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-27"><a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.inlinehilite</span></span><span id="__span-5-28"><a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.keys</span></span><span id="__span-5-29"><a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.mark</span></span><span id="__span-5-30"><a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.smartsymbols</span></span><span id="__span-5-31"><a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.superfences</span></span><span id="__span-5-32"><a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tabbed</span><span class="p">:</span></span><span id="__span-5-33"><a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a><span class="w"> </span><span class="nt">alternate_style</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-34"><a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tasklist</span><span class="p">:</span></span><span id="__span-5-35"><a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a><span class="w"> </span><span class="nt">custom_checkbox</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-36"><a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.tilde</span></span><span id="__span-5-37"><a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a></span><span id="__span-5-38"><a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a><span class="nt">extra</span><span class="p">:</span></span><span id="__span-5-39"><a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a><span class="w"> </span><span class="nt">social</span><span class="p">:</span></span><span id="__span-5-40"><a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/github</span></span><span id="__span-5-41"><a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/darkxero-dev</span></span><span id="__span-5-42"><a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/youtube</span></span><span id="__span-5-43"><a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://youtube.com/XeroLinuxOfficial</span></span><span id="__span-5-44"><a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/x-twitter</span></span><span id="__span-5-45"><a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://twitter.com/xerolinuxop</span></span><span id="__span-5-46"><a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/mastodon</span></span><span id="__span-5-47"><a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://fosstodon.org/@xerolinux</span></span></code></pre></div><p>That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to <a href="https://github.com/drewgrif" target="_blank"><strong>@JustAGuyLinux</strong></a> for helping out a little hehe.</p>https://bytes.xerolinux.xyz/docs/mkdocs-install/ Fri, 27 Sep 2024 21:23:23 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/mkdocs-install/ Plans for other spins ArchLinux Distribution Linux XeroLinux <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if <strong>XeroLinux</strong> did the same, I was once asked. For example <strong>Cosmic</strong>, <strong>Hyprland</strong>, <strong>XFCE</strong> and so on.</p><h3 id="its-complicated">It's Complicated<a class="headerlink" href="#its-complicated" title="Permanent link">&para;</a></h3><p>As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?</p><p>But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind <strong>XeroLinux</strong>. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.</p><p>That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for <em>Free</em> right now.</p><p>I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the <strong>KDE</strong> version to me, there's not much I can do. I hope you understand.</p><h3 id="the-good-news">The Good News<a class="headerlink" href="#the-good-news" title="Permanent link">&para;</a></h3><p>There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the <a href="https://wiki.xerolinux.xyz/cosmic/" target="_blank"><strong>Cosmic</strong></a> and <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma</strong></a> ones.</p><p>I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.</p><p>Some of you might be asking, <em>What's the catch?</em> Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of <strong>ArchInstall</strong> to get a minimal system set up, after which you will be able to run my scripts.</p><p>That's it really. That's why I chose <strong>Arch</strong>. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.</p><h3 id="the-future">The Future<a class="headerlink" href="#the-future" title="Permanent link">&para;</a></h3><p>In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough <em>Install Scripts</em>, why not combine them all into a single easy to use <em>Mega Script</em> of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?</p><p>That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, <strong>HyprLand</strong>, <strong>Gnome</strong> and maybe <strong>DWM</strong> or <strong>BSPWM</strong> I dunno yet. Don't hold me on that though, please, just ideas for now.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/other-xero-spins/ Thu, 26 Sep 2024 14:07:52 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/other-xero-spins/ Current Situation Lebanon Situation Struggles War <div class="admonition info"><p class="admonition-title">Info</p><p>Situation in <strong>Lebanon</strong> has escalatated to a ptotential war. If you’re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.</p></div><h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>Hello everyone,</strong></p><p>It's one of those times where words fall short. The past few days have been incredibly difficult for us here in <strong>Lebanon</strong>, and it feels like things are only getting worse, spiraling out of control. Close friends, people I’ve known for years, have been injured, and some have even been forced to flee their homes. We’re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It’s something straight out of a dystopian novel, but it's happening right here, right now.</p><p><img alt="type:video" src="https://www.youtube.com/embed/OmeKpICXiBA" /></p><p>We are terrified to carry even the most basic tech devices, and it's surreal to say the least.</p><p>For the first time in my life, I genuinely don’t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn’t get worse? I’ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we’re on the edge of something catastrophic.</p><p>Your help and support would be, potentially life saving !</p>https://bytes.xerolinux.xyz/priv/current-situation/ Wed, 25 Sep 2024 22:59:13 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/current-situation/ Why Revive XeroLinux ArchLinux Distribution Linux XeroLinux <div class="admonition info"><p class="admonition-title">Info</p><p>This post will explain why I decided to bring back <strong>XeroLinux</strong> and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the <a href="https://wiki.xerolinux.xyz/distro/" target="_blank"><strong>XeroLinux Wiki</strong></a></p></div><h3 id="what-is-xerolinux">What is XeroLinux<a class="headerlink" href="#what-is-xerolinux" title="Permanent link">&para;</a></h3><p>In short, it's just an alternative to the <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma Install Script</strong></a>, making it easier to install <strong>Arch</strong>, bypassing the need for <strong>ArchInstall</strong>. The ISO includes my toolkit as well as my famous <a href="https://wiki.xerolinux.xyz/rice/" target="_blank"><strong>Xero Layan Rice</strong></a> all-in-one shot.</p><p align="center"> <img src="https://i.imgur.com/ejZ1ZQv.png"></p><p>You can use the included <a href="https://wiki.xerolinux.xyz/xlapit/" target="_blank"><strong>Xero Toolkit</strong></a>, 1<sup>st</sup> icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the <a href="https://aur.chaotic.cx" target="_blank"><strong>Chaotic-AUR</strong></a> repository so it's easier for you to install <strong>AUR</strong> packages rather from having to compile them.</p><h3 id="why-is-xerolinux-back">Why is XeroLinux back<a class="headerlink" href="#why-is-xerolinux-back" title="Permanent link">&para;</a></h3><p>To explain why, let me set the stage. As you may already know, I’m going through significant financial difficulties. Living in Lebanon, finding a job—especially a remote one—is extremely challenging, and the situation continues to worsen. I won’t rehash the entire story here, but if you’re not familiar, you can read more about it in this <a href="https://blog.techxero.com/index.php/2024/06/07/actively-looking-for-a-job/" target="_blank"><strong>BlogPost</strong></a>.</p><p>After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro’s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it—and make it a way to sustain myself?</p><p><img alt="type:video" src="https://www.youtube.com/embed/lsYg6-wUWXw" /></p><p>Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the <a href="https://distrowatch.com" target="_blank"><strong>DistroWatch</strong></a> rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!</p><p>That answers the why.</p><h3 id="how-to-get-it">How to get it<a class="headerlink" href="#how-to-get-it" title="Permanent link">&para;</a></h3><p>I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO—a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the <a href="https://xerolinux.xyz/iso/" target="_blank"><strong>Release Post</strong></a></p><p>Now, I know that some of you will say, "But it's FOSS; you shouldn't charge for it." To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the <a href="https://github.com/XeroLinuxDev" target="_blank"><strong>Source Code</strong></a> and do with it as you wish. I am simply charging for my time.</p><p>The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up… well, let's not dwell on that. Let’s focus on keeping it alive and thriving for a long and happy journey together!</p><h3 id="is-it-any-special">Is it any Special<a class="headerlink" href="#is-it-any-special" title="Permanent link">&para;</a></h3><p>This is a common question I get. To be honest, there’s no groundbreaking advantage—it simply provides an easier way to install <strong>Arch</strong> with a polished <strong>KDE</strong> experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.</p><p>Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that <strong>XeroLinux</strong> is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.</p><h3 id="how-to-get-it-for-free">How to get it for free<a class="headerlink" href="#how-to-get-it-for-free" title="Permanent link">&para;</a></h3><p>If you can’t support me financially but still want <strong>XeroLinux</strong>, while the ISO isn't available for free right now, you can still achieve similar results with my <a href="https://xerolinux.xyz/news/xerolinux-plasma/" target="_blank"><strong>PlasmaInstall</strong></a> script, which will always be free of charge. It just requires a bit more elbow grease on your part—that’s all there is to it!</p><h3 id="i-dont-like-arch">I don't like Arch<a class="headerlink" href="#i-dont-like-arch" title="Permanent link">&para;</a></h3><p>In case you don't like <strong>Arch</strong> for whatever reason, but still want to support me, I have put up a <a href="https://shop.xerolinux.xyz" target="_blank"><strong>Merch Store</strong></a> where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.</p><h3 id="private-donations">Private Donations<a class="headerlink" href="#private-donations" title="Permanent link">&para;</a></h3><p>Did you know I have a private fundraiser account? It’s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at <a href="https://fundrazr.com/xerolinux" target="_blank"><strong>FundRazr</strong></a>.</p><p>Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving <strong>XeroLinux</strong>, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn’t been getting much support. Ideally, I’d love to keep these funds separate, but ultimately, it’s your choice.</p><h3 id="wrapping-up">Wrapping up<a class="headerlink" href="#wrapping-up" title="Permanent link">&para;</a></h3><p>That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/why-is-distro-back/ Tue, 17 Sep 2024 15:32:35 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/why-is-distro-back/ XeroLinux Channel ArchLinux Linux XeroLinux YouTube <h3 id="youtube-channel">YouTube Channel ?<a class="headerlink" href="#youtube-channel" title="Permanent link">&para;</a></h3><p>Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, <strong>Nice!</strong>.</p><p>But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.</p><h3 id="what-now-xero">What now Xero ?<a class="headerlink" href="#what-now-xero" title="Permanent link">&para;</a></h3><p>Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since <strong>YouTube</strong> and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.</p><h3 id="whats-the-catch">What's the Catch ?<a class="headerlink" href="#whats-the-catch" title="Permanent link">&para;</a></h3><p>This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the <a href="https://ko-fi.com/XeroLinux" target="_blank"><strong>XeroLinux Ko-Fi</strong></a> fundraiser for the forseeable future.</p><p>Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to <em>donate</em>, however would be highly appreciated if you do.</p><h3 id="future-plans">Future Plans<a class="headerlink" href="#future-plans" title="Permanent link">&para;</a></h3><p>When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.</p><p>Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.</p><p>Anyways, thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Tue, 17 Sep 2024 14:41:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ 🏠Home <h1 id="welcome">Welcome<a class="headerlink" href="#welcome" title="Permanent link">&para;</a></h1><div class="admonition info"><p class="admonition-title">Info</p><p>All the documentation found herein, will be for <strong>ArchLinux</strong> since that's the distro I use. Some will be general <strong>Linux</strong> ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.</p></div><p>Welcome to <strong>DarkXero's Bytes</strong> ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the <a href="https://xerolinux.xyz" target="_blank"><strong>XeroLinux</strong></a> main site.</p><p align="center"> <img src="https://i.imgur.com/ZAvPAkx.png" alt="logo"></p><p>Documenting my learning journey has become an essential part of my <strong>Linux</strong> experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.</p><p align="center"> <img src="https://i.imgur.com/TgVQf9z.png" alt="ArchPorn"></p>https://bytes.xerolinux.xyz/ Tue, 17 Sep 2024 14:08:59 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/ Reset Password Linux Recovery Reset <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>I have lost my root pass on <strong>Linux</strong> more times than I can count. This guide is here so I do not have to <em>Google</em> it lol. Might be useful to you I dunno. But it's here.</p><p align="center"> <img src="https://i.imgur.com/VFXV09r.jpeg"></p><h3 id="lets-do-this">Let's do this 🚀<a class="headerlink" href="#lets-do-this" title="Permanent link">&para;</a></h3><p>How to reset forgotten root password in a <strong>GNU/Linux</strong> distribution with <code>GRUB</code>?</p><p>If this is a laptop or a desktop which you have next to you then follow these steps.</p><ol><li>Shut down the device.</li><li>Start it again. When you see GRUB menu, press the <code>e</code> key on the keyboard before the system starts booting.</li><li>In the <code>GRUB</code> boot options, scroll down and locate the line that begins with <code>linux</code>. In this line move the cursor to the end, right after <code>ro quiet</code>. Delete everything after that. Change <code>ro</code> to <code>rw</code>. Append the parameter <code>init=/bin/bash</code></li><li>Press Ctrl+x, or F10, to boot.</li><li>You will see a root prompt.</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>:#</span></code></pre></div><p>Remount the filesystem in read/write mode:</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>:#<span class="w"> </span>mount<span class="w"> </span>-no<span class="w"> </span>remount,rw<span class="w"> </span>/</span></code></pre></div><ol><li>Set the password of any user(s).</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>:#<span class="w"> </span>passwd<span class="w"> </span>joe</span></code></pre></div><ol><li>Reboot with the command <code>reboot -f</code>.</li></ol><p>That's it ! The new password should work now.</p>https://bytes.xerolinux.xyz/docs/passwd-reset/ Tue, 17 Sep 2024 13:47:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/passwd-reset/ FFmpeg Cheat Sheet CheatSheet FFmpeg Linux <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the use of <a href="https://www.ffmpeg.org/ffmpeg.html" target="_blank"><strong>FFmpeg</strong></a> on <strong>Linux</strong>.</p><p align="center"> <img src="https://i.imgur.com/TweW8fW.png"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to install <code>FFmpeg</code>. I will be doing it on <strong>ArchLinux</strong> since that's what I use. Look for packages on your distro if you don't use it.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>--needed<span class="w"> </span>ffmpeg<span class="w"> </span>ffmpegthumbnailer<span class="w"> </span>ffmpegthumbs<span class="w"> </span>qt6-multimedia-ffmpeg</span></code></pre></div><p>Now that we have it, it's time for the cheat sheet.</p><hr /><h1 align="center">.// The Cheat Sheet \\.</h1><h2 id="basic-conversion">Basic conversion<a class="headerlink" href="#basic-conversion" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ffmpeg -i in.mp4 out.avi</span></code></pre></div><h3 id="remux-an-mkv-file-into-mp4">Remux an MKV file into MP4<a class="headerlink" href="#remux-an-mkv-file-into-mp4" title="Permanent link">&para;</a></h3><div class="language-text highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="high-quality-encoding">High-quality encoding<a class="headerlink" href="#high-quality-encoding" title="Permanent link">&para;</a></h3><p>Use the <code>crf</code> (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to <code>-crf 18</code>. Use the <code>preset</code> parameter to control the speed of the compression process. <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>Additional info</strong></a>.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4</span></code></pre></div><h2 id="trimming">Trimming<a class="headerlink" href="#trimming" title="Permanent link">&para;</a></h2><p>Without re-encoding:<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4</span></code></pre></div>- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-ss</code></a> specifies the start time, e.g. <code>00:01:23.000</code> or <code>83</code> (in seconds)- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-t</code></a> specifies the duration of the clip (same format).- Recent <code>ffmpeg</code> also has a flag to supply the end time with <code>-to</code>.- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-c</code></a> copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.</p><p>With re-encoding:</p><p>If you leave out the <code>-c copy</code> option, <code>ffmpeg</code> will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the <a href="https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide" target="_blank"><strong>x264 Encoding Guide</strong></a> and the <a href="http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide" target="_blank"><strong>AAC Encoding Guide</strong></a>, respectively.</p><p>For example:<div class="language-text highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4</span></code></pre></div></p><h2 id="mux-video-and-audio-from-another-video">Mux video and audio from another video<a class="headerlink" href="#mux-video-and-audio-from-another-video" title="Permanent link">&para;</a></h2><p>To copy the video from in0.mp4 and audio from in1.mp4:<div class="language-text highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4</span></code></pre></div>- With <a href="http://ffmpeg.org/ffmpeg.html#Stream-copy" target="_blank">-c copy</a> the streams will be <code>stream copied</code>, not re-encoded, so there will be no quality loss. If you want to re-encode, see <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>FFmpeg Wiki: H.264 Encoding Guide</strong></a>.- The <code>-shortest</code> option will cause the output duration to match the duration of the shortest input stream.- See the <a href="http://ffmpeg.org/ffmpeg.html#Advanced-options" target="_blank"><code>-map</code> option documentation</a> for more info.</p><h2 id="concat-demuxer">Concat demuxer<a class="headerlink" href="#concat-demuxer" title="Permanent link">&para;</a></h2><p>First, make a text file.<div class="language-text highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>file &#39;in1.mp4&#39;</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>file &#39;in2.mp4&#39;</span><span id="__span-7-3"><a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>file &#39;in3.mp4&#39;</span><span id="__span-7-4"><a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>file &#39;in4.mp4&#39;</span></code></pre></div>Then, run <code>ffmpeg</code>:<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ffmpeg -f concat -i list.txt -c copy out.mp4</span></code></pre></div></p><h2 id="delay-audiovideo">Delay audio/video<a class="headerlink" href="#delay-audiovideo" title="Permanent link">&para;</a></h2><p>Delay video by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4</span></code></pre></div>Delay audio by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4</span></code></pre></div></p><h2 id="burn-subtitles">Burn subtitles<a class="headerlink" href="#burn-subtitles" title="Permanent link">&para;</a></h2><p>Use the <a href="http://ffmpeg.org/ffmpeg.html#ass" target="_blank">libass</a> library (make sure your ffmpeg install has the library in the configuration <code>--enable-libass</code>).</p><p>First convert the subtitles to .ass format:<div class="language-text highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>ffmpeg -i sub.srt sub.ass</span></code></pre></div>Then add them using a video filter:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4</span></code></pre></div><h2 id="extract-the-frames-from-a-video">Extract the frames from a video<a class="headerlink" href="#extract-the-frames-from-a-video" title="Permanent link">&para;</a></h2><p>To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>ffmpeg -i in.mp4 -vf select=&#39;between(t,1,5)+between(t,11,15)&#39; -vsync 0 out%d.png</span></code></pre></div><p>To extract one frame per second only:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png</span></code></pre></div><h2 id="rotate-a-video">Rotate a video<a class="headerlink" href="#rotate-a-video" title="Permanent link">&para;</a></h2><p>Rotate 90 clockwise:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>ffmpeg -i in.mov -vf &quot;transpose=1&quot; out.mov</span></code></pre></div><p>For the transpose parameter you can pass:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>0 = 90CounterCLockwise and Vertical Flip (default)</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>1 = 90Clockwise</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>2 = 90CounterClockwise</span><span id="__span-16-4"><a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>3 = 90Clockwise and Vertical Flip</span></code></pre></div><p>Use <code>-vf "transpose=2,transpose=2"</code> for 180 degrees.</p><h2 id="download-transport-stream-video-streams">Download "Transport Stream" video streams<a class="headerlink" href="#download-transport-stream-video-streams" title="Permanent link">&para;</a></h2><ol><li>Locate the playlist file, e.g. using Chrome &gt; F12 &gt; Network &gt; Filter: m3u8</li><li>Download and concatenate the video fragments:</li></ol><div class="language-text highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>ffmpeg -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><p>If you get a "Protocol 'https not on whitelist 'file,crypto'!" error, add the <code>protocol_whitelist</code> option:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>ffmpeg -protocol_whitelist &quot;file,http,https,tcp,tls&quot; -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><h2 id="mute-some-of-the-audio">Mute some of the audio<a class="headerlink" href="#mute-some-of-the-audio" title="Permanent link">&para;</a></h2><p>To replace the first 90 seconds of audio with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;lte(t,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><p>To replace all audio between 1'20" and 1'30" with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;between(t,80,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><h2 id="deinterlace">Deinterlace<a class="headerlink" href="#deinterlace" title="Permanent link">&para;</a></h2><p>Deinterlacing using "yet another deinterlacing filter".</p><div class="language-text highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>ffmpeg -i in.mp4 -vf yadif out.mp4</span></code></pre></div><h2 id="create-a-video-slideshow-from-images">Create a video slideshow from images<a class="headerlink" href="#create-a-video-slideshow-from-images" title="Permanent link">&para;</a></h2><p>Parameters: <code>-r</code> marks the image framerate (inverse time of each image); <code>-vf fps=25</code> marks the true framerate of the output.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4</span></code></pre></div><h2 id="extract-images-from-a-video">Extract images from a video<a class="headerlink" href="#extract-images-from-a-video" title="Permanent link">&para;</a></h2><ul><li>Extract all frames: <code>ffmpeg -i input.mp4 thumb%04d.jpg -hide_banner</code></li><li>Extract a frame each second: <code>ffmpeg -i input.mp4 -vf fps=1 thumb%04d.jpg -hide_banner</code></li><li>Extract only one frame: <code>ffmpeg -i input.mp4 -ss 00:00:10.000 -vframes 1 thumb.jpg</code></li></ul><h2 id="display-the-frame-number-on-each-frame">Display the frame number on each frame<a class="headerlink" href="#display-the-frame-number-on-each-frame" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>ffmpeg -i in.mov -vf &quot;drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72&quot; -y out.mov</span></code></pre></div><h2 id="metadata-change-the-title">Metadata: Change the title<a class="headerlink" href="#metadata-change-the-title" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>ffmpeg -i in.mp4 -map_metadata -1 -metadata title=&quot;My Title&quot; -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.</p>https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ Tue, 17 Sep 2024 13:36:31 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ My Cosmic Experience ArchLinux Cosmic Linux <div class="admonition note"><p class="admonition-title">Note</p><p>Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.</p></div><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>The <a href="https://xerolinux.xyz/posts/arch-cosmic/" target="_blank"><strong>Cosmic DE</strong></a> hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.</p><p align="center"> <img src="https://i.imgur.com/Fvl9uRU.png"></p><p>Since I am an avid <strong>ArchLinux</strong> user, that's how I installed it. I did not use the <strong>Pop!_OS 24.04 LTS alpha</strong> ISO from &gt;&gt; <a href="https://system76.com/cosmic" target="_blank"><strong>Cosmic Downloads</strong></a>. So my views come from there. So I cannot compare.</p><p>Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the <strong>ArchInstall</strong> profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.</p><p>Now on to the more detailed things I have done to install <strong>Cosmic</strong>. I first installed <strong>Arch Minimal</strong> using the <strong>ArchInstall</strong> script, meaning that I avoided the profiles, &amp; drivers sections completely, I always choose <code>Grub</code> as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in <code>chroot</code> I installed the DE the following way, knowing that, we can skip the use of <code>sudo</code> since we are still logged in as root...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>pacman<span class="w"> </span>-Syy<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>cosmic<span class="w"> </span>linux-headers<span class="w"> </span>pacman-contrib<span class="w"> </span>xdg-user-dirs<span class="w"> </span>power-profiles-daemon<span class="w"> </span>wayland-protocols<span class="w"> </span>wayland-utils</span></code></pre></div><p align="center"> <img src="https://i.imgur.com/tR8WJJI.png"></p><p>Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because <a href="https://archlinux.org/packages/?sort=&amp;q=cosmic&amp;maintainer=&amp;flagged=" target="_blank"><strong>cosmic</strong></a> is not a single one, it's a <em>Group</em> of packages or a <em>meta-package</em> as it is known as. That said, the reason I installed <code>linux-headers</code> is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially <code>xdg-user-dirs</code> without which no <code>Documents, Pictures, Videos...</code> folders will be created. Strange I know.</p><p>What I also found weird, is the fact that <code>cosmic-greeter</code> service was not being enabled after install which was netting me a boot to <code>TTY</code> session. So I had to enable it while at the same time generating the <code>user-dirs</code> via...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>cosmic-greeter.service<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>xdg-user-dirs-update</span></code></pre></div><p>Keep in mind that I am doing all this while still in <code>chroot</code> post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.</p><h3 id="experience">Experience<a class="headerlink" href="#experience" title="Permanent link">&para;</a></h3><p>Now on to what y'all came here for. All was good, well sorta, system rebooted into <code>Grub</code>, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some <code>TTY dmsg</code> errors, flickering on and off. But after a few seconds I finally saw the <strong>Cosmic Greeter</strong> login screen, relief finally.</p><p align="center"> <img src="https://i.imgur.com/TPjWMjR.png"></p><p>I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an <strong>nVidia</strong> user, I thought could be a driver issue since on first boot it uses the not so great <code>nouveau</code> ones. That's why my first reflex was to install them, so I did.</p><p align="center"> <img src="https://i.imgur.com/VotUyBS.jpeg"></p><p>After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about <code>EGL drm</code> crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?</p><p>As it turns out I had forgotten to include the <code>nVidia drm kernel modules</code> lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>sed<span class="w"> </span>-i<span class="w"> </span><span class="s1">&#39;/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/&#39;</span><span class="w"> </span>/etc/mkinitcpio.conf</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>nvidia-suspend.service<span class="w"> </span>nvidia-hibernate.service<span class="w"> </span>nvidia-resume.service<span class="w"> </span>nvidia-powerd.service</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf</span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia_drm modeset=1 fbdev=1&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>mkinitcpio<span class="w"> </span>-P</span></code></pre></div><p>After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like <strong>XFCE</strong>. Fired up <code>top</code> to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than <strong>KDE Plasma</strong> ! Nice !</p><p>Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run <code>nmtui</code> and deactivate it from there making sure it doesn't automatically reconnect on login.</p><p>Now on to the <code>System Settings</code>. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..</p><p>That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.</p><p>Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean <strong>Cosmic-Notes</strong> was there, just not handling documents...</p><p>I try to right-click &gt; open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself "It's Alpha Software, calm down Steve".</p><p>To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a <code>CLI</code> and no default app set ? I dunno.</p><p>Finally I decided to try out the thing that almost everyone's raving about, <strong>Tiling/Stacking</strong>. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...</p><p>That's where I gave up and decided to go back home to <strong>KDE Plasma</strong>.</p><h3 id="final-words">Final words<a class="headerlink" href="#final-words" title="Permanent link">&para;</a></h3><p>Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.</p><p>It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.</p><p>I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. <strong>Cosmic</strong> has come a long way in such a short time. I mean, writing a DE from scratch using <strong>Rust</strong> a sorta new programming language is no easy feat.</p><p>I will end the post by congratulating the <strong>System76</strong> dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a <strong>XeroCosmic</strong> to the family.. Just don't hold your breath on that, it ain't set in stone.</p>https://bytes.xerolinux.xyz/tech/cosmic-experience/ Thu, 12 Sep 2024 13:16:04 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/cosmic-experience/ Developing is fun Developer Development Linux <h3 id="am-i-a-developer">Am I a Developer ?<a class="headerlink" href="#am-i-a-developer" title="Permanent link">&para;</a></h3><p>Lol, yeah, I know—it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code—specifically <strong>Bash</strong>. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.</p><p><img alt="type:video" src="https://www.youtube.com/embed/8_K-NOu-STs" /></p><p>And if it does work, I'm happy and share the result with the <strong>FOSS</strong> community.</p><h3 id="its-fun-until">It's fun until...<a class="headerlink" href="#its-fun-until" title="Permanent link">&para;</a></h3><p>Doing this is super fun and fulfilling—until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.</p><p>Now, I know I can reach out to the <strong>FOSS</strong> community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.</p><p>Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere—not just in <strong>FOSS</strong>. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.</p><p>Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.</p><h3 id="sharing-is-caring">Sharing is caring<a class="headerlink" href="#sharing-is-caring" title="Permanent link">&para;</a></h3><p>This is the part where I say: please, don't keep your work to yourself. Share it with the community—who knows, maybe you'll find someone who can help take your project to another level.</p><p>I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.</p><p>"Sharing is caring," as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)</p>https://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Fri, 06 Sep 2024 16:15:59 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Linux in a Nutshell Kernel Linux Packages <p>I thought I'd share this explanation about <strong>Linux</strong> a good friend and fellow Linux enthusiast <a href="https://github.com/REALERvolker1" target="_blank"><strong>REALERvolker1</strong></a> recently posted on <strong>Discord</strong>.</p><div class="admonition tip"><p class="admonition-title">Tip</p><p>The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various <em>Desktop Environments</em> or <em>Window Managers</em>. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...</p></div><h3 id="what-is-linux">What is Linux ?<a class="headerlink" href="#what-is-linux" title="Permanent link">&para;</a></h3><p>Since not everyone's super familiar with Linux, here's a quick crash course.</p><p>Linux is a <a href="https://en.wikipedia.org/wiki/Monolithic_kernel#:~:text=A%20monolithic%20kernel%20is%20an,virtual%20interface%20over%20computer%20hardware." target="_blank"><strong>Monolithic Kernel</strong></a>, so all the drivers and whatnot are compiled into the binary. The <a href="https://www.fsf.org/about/what-is-free-software" target="_blank"><strong>Nonfree software</strong></a> is usually put in the actual source repo as binary blobs, or in the case of <strong>nVidia</strong> drivers, built using a system called <a href="https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support" target="_blank"><strong>DKMS</strong></a> and compiled into the kernel binary.</p><p>Once the computer boots up, an init process is started (the default is <code>/sbin/init</code>, usually a symlink to your init system), which is <code>PID 1</code>. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having <em>too</em> much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.</p><p>Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being <a href="https://en.wikipedia.org/wiki/POSIX" target="_blank"><strong>POSIX</strong></a> compliant, and not really caring about file extensions.</p><p align="center"> <img width="600" src="https://i.imgur.com/Mu7NHx9.png" alt="logo"></p><h3 id="distros-pkg-managers">Distros &amp; PKG Managers<a class="headerlink" href="#distros-pkg-managers" title="Permanent link">&para;</a></h3><p>On <a href="https://www.debian.org" target="_blank"><strong>Debian</strong></a>, you install packages with <code>apt</code>. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a <em>GUI</em> frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the <a href="https://wiki.debian.org/DontBreakDebian" target="_blank"><strong>Debian Wiki</strong></a> is pretty mid, but the <a href="https://wiki.archlinux.org" target="_blank"><strong>Arch Wiki</strong></a> is amazing.</p><p>Since <a href="https://archlinux.org" target="_blank"><strong>Arch Linux</strong></a> aims to be the most generic <em>Linux distro</em> ever, information written for it should also help with <strong>Debian</strong>, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:</p><ul><li><strong>Flatpak:</strong> Sandboxed apps that "just work" on every distribution.</li><li><strong>Snap:</strong> <em>Ubuntu</em>'s sandboxed apps that are supposed to work on every distribution but have had mixed results.</li><li><strong>AppImages:</strong> These are like <code>.exe</code> files on <strong>Windows</strong>, but they require adding executable permissions and manually launching them. They also won't have a desktop entry by default.</li></ul><h3 id="filesystem-updates">Filesystem &amp; Updates<a class="headerlink" href="#filesystem-updates" title="Permanent link">&para;</a></h3><p>If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not—it might fix a bug.</p><p>As for the filesystem:</p><ul><li><code>/etc</code> is where your Editable Text Configurations go.</li><li><code>/usr</code> is where program files go.</li><li><code>/usr/local</code> is where program files go for programs you manually installed.</li><li><code>/home</code> is where your personal files go.</li><li><code>/dev</code> is for device files.</li><li>There is no <code>C</code> or <code>D</code> drive; instead, you mount external drives to a location, like <code>/mnt</code>. A GUI file manager mounts flash drives somewhere in <code>/run</code> since it is temporary.</li><li><code>/opt</code> is where miscellaneous stuff goes.</li><li><code>/var</code> is for variable data like system logs.</li><li><code>/tmp</code> is for temporary files.</li><li><code>/dev/null</code> is a "black hole" for data you want to discard.</li><li><code>/dev/urandom</code> is an IO-based random number generator.</li></ul><p>In <a href="https://en.wikipedia.org/wiki/Unix" target="_blank"><strong>UNIX</strong></a>, everything is a file. This means you can:</p><ul><li>See process details by reading files in <code>/proc</code>.</li><li>Check system settings or driver configurations in <code>/sys</code>.</li><li>View your bootloader in <code>/boot</code>.</li></ul><h3 id="wrapping-it-all-up">Wrapping it all up<a class="headerlink" href="#wrapping-it-all-up" title="Permanent link">&para;</a></h3><p>This was a quick run-through explaining what <strong>GNU/Linux</strong> is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.</p>https://bytes.xerolinux.xyz/docs/linux-explained/ Fri, 06 Sep 2024 13:06:17 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/linux-explained/ Be Thankful Content Creation Linux YouTube <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.</p><h3 id="content-creators">Content Creators<a class="headerlink" href="#content-creators" title="Permanent link">&para;</a></h3><p>Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.</p><p>YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.</p><p>Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.</p><h3 id="writers-blog-posters">Writers / Blog Posters<a class="headerlink" href="#writers-blog-posters" title="Permanent link">&para;</a></h3><p>This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.</p><p>One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I’ve learned to improve, and I thank them for that.</p><h3 id="appreciating-ccs-and-writers">Appreciating CCs and Writers<a class="headerlink" href="#appreciating-ccs-and-writers" title="Permanent link">&para;</a></h3><p>We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.</p><p>Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.</p><p>As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.</p><h3 id="fostering-a-positive-community">Fostering a Positive Community<a class="headerlink" href="#fostering-a-positive-community" title="Permanent link">&para;</a></h3><p>The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.</p><p>When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.</p><p>Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.</p><h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3><p>Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.</p>https://bytes.xerolinux.xyz/priv/be-thankful/ Fri, 06 Sep 2024 12:30:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/be-thankful/ FOSS Struggles FOSS Fundraising Health Linux Struggles <h3 id="hello-everyone">Hello everyone,<a class="headerlink" href="#hello-everyone" title="Permanent link">&para;</a></h3><p>Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.</p><p>Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.</p><blockquote><p>P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let’s dive in.</p></blockquote><p><img alt="type:video" src="https://www.youtube.com/embed/BpmAFwZy0Gg" /></p><h3 id="my-frustration">My Frustration<a class="headerlink" href="#my-frustration" title="Permanent link">&para;</a></h3><p>Recently, I’ve been investing a lot of time and effort into my projects and contributing to <strong>FOSS</strong> (Free and Open Source Software) wherever possible. While I find this work rewarding, it’s also been increasingly frustrating. Why? Let me explain.</p><p>I spend countless hours working behind the scenes to make everyone’s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it’s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I’m making a real impact.</p><h3 id="seeking-purpose">Seeking Purpose<a class="headerlink" href="#seeking-purpose" title="Permanent link">&para;</a></h3><p>Initially, I embarked on this journey for fun and to learn new things. However, lately, I’ve been questioning the purpose behind my efforts. It feels like I’m stuck in a cycle of constant work with little to show for it. This isn’t about blaming anyone; it’s about seeking the motivation to keep going.</p><h3 id="monetization-attempts">Monetization Attempts<a class="headerlink" href="#monetization-attempts" title="Permanent link">&para;</a></h3><p>As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a "pay what you can" model, hoping it would help sustain my work. However, this didn’t go as planned.</p><p>The <strong>FOSS</strong> community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It’s a complex issue, and while some have been supportive, overall, the response hasn’t been enough to make a significant difference.</p><h3 id="health-concerns">Health Concerns<a class="headerlink" href="#health-concerns" title="Permanent link">&para;</a></h3><p>On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn’t cheap, and without stable income, it’s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.</p><h3 id="mental-health-struggles">Mental Health Struggles<a class="headerlink" href="#mental-health-struggles" title="Permanent link">&para;</a></h3><p>The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.</p><h3 id="the-way-forward">The Way Forward<a class="headerlink" href="#the-way-forward" title="Permanent link">&para;</a></h3><p>Given these circumstances, I’m focusing more on forums and this blog. Writing provides a creative outlet that isn’t constrained by algorithms or view counts. I’ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.</p><p>My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.</p><h3 id="closing-thoughts">Closing Thoughts<a class="headerlink" href="#closing-thoughts" title="Permanent link">&para;</a></h3><p>I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.</p><p>For now, I need to prioritize my well-being and financial stability. Once those are in place, I’ll be back with future projects. Right now, I’m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.</p><p>Thank you for understanding and supporting me through this journey.</p>https://bytes.xerolinux.xyz/priv/real-foss-struggles/ Fri, 06 Sep 2024 12:30:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/real-foss-struggles/ Docker A Love Story Containers Docker Linux <h3 id="what-is-docker">What is Docker ?<a class="headerlink" href="#what-is-docker" title="Permanent link">&para;</a></h3><p><a href="https://docker.com/" target="_blank"><strong>Docker</strong></a> is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.</p><p align="center"> <img width="500" src="https://i.imgur.com/bbD4JDy.png" alt="logo"></p><h3 id="how-it-all-started">How it all started<a class="headerlink" href="#how-it-all-started" title="Permanent link">&para;</a></h3><p>It all started with <a href="https://distrobox.it/" target="_blank"><strong>Distrobox</strong></a>. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered <strong>Docker</strong> containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like <a href="https://immich.app/" target="_blank"><strong>Immich</strong></a> for images and videos, which would allow me to sync my devices locally rather than with <a href="https://icloud.com" target="_blank"><strong>Apple iCloud</strong></a> or <strong>Google</strong> making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...</p><p>With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3<sup>rd</sup> party conglomerates made me fall in love more and more as time went by...</p><h3 id="my-setup-so-far">My setup so far<a class="headerlink" href="#my-setup-so-far" title="Permanent link">&para;</a></h3><p>Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive <strong>MY</strong> setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.</p><p align="center"> <img width="500" src="https://i.imgur.com/DhfbUBs.png" alt="logo"></p><ul><li><strong>Homepage</strong></li></ul><p>To start off, let me tell you what am using for the page you see in the image, it's simply called <a href="https://gethomepage.dev" target="_blank"><strong>Homepage</strong></a>. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via <a href="https://en.wikipedia.org/wiki/YAML" target="_blank"><strong>YAML</strong></a> configurations files, and that the community behind it are so damn friendly ! Yep, there is no <em>dumb</em> question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their <a href="https://discord.gg/k4ruYNrudu" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>File Browser</strong></li></ul><p>As for the File Browser I use to share files between PCs, it's also has a <em>creative</em> name lol, just called <a href="https://filebrowser.org" target="_blank"><strong>FileBrowser</strong></a>, it serves one purpose, browsing files, with ability to upload &amp; download from/to any PC. That's it. It just works nothing else to say about that.</p><ul><li><strong>Search Engine (Xoogle)</strong></li></ul><p>Hehe, the only reason I called it <em>Xoogle</em> is coz it's Xero + Google, get it ? Anyway, this is using something called <a href="https://whoogle.io" target="_blank"><strong>Whoogle</strong></a>, weird name I know, loogs damn ugly too. It's just a search engine that uses <strong>Google</strong> stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of <strong>Google</strong> the way it was back in the day..</p><ul><li><strong>Vaultwarden</strong></li></ul><p>That's a 3<sup>rd</sup>-party <a href="https://bitwarden.com" target="_blank"><strong>Bitwarden</strong></a> server-as-a-container, endorsed by them so can be trusted called <a href="https://github.com/dani-garcia/vaultwarden" target="_blank"><strong>Vaultwarden</strong></a>. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.</p><ul><li><strong>ShareX</strong></li></ul><p>This one is not for everyone. It uses <a href="https://zipline.diced.sh" target="_blank"><strong>Zipline</strong></a>. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.</p><ul><li><strong>My Comics</strong></li></ul><p>I am a big fan of comic books, especially the ones from my childhood. This container uses <a href="https://kavitareader.com/" target="_blank"><strong>Kavita</strong></a>. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their <a href="https://discord.gg/b52wT37kt7" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>Audiobookshelf</strong></li></ul><p>I guess I do not need to explain that one. It's just a docker container for <a href="https://www.audiobookshelf.org" target="_blank"><strong>Audiobookshelf</strong></a>. In case you have some Audio books or podcasts. Have fun.</p><ul><li><strong>FreshRSS</strong></li></ul><p>That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called <a href="https://www.freshrss.org" target="_blank"><strong>FreshRSS</strong></a>. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.</p><ul><li><strong>Immich</strong></li></ul><p>Now, this is one of the big ones, <a href="https://immich.app" target="_blank"><strong>Immich</strong></a> is an amazing image cloud like service. Allowing you to move away from <strong>Apple</strong> and <strong>Google</strong>. I love that as I said at the beginning of this long post. They even have companion apps for both <a href="https://play.google.com/store/apps/details?id=app.alextran.immich" target="_blank"><strong>Android</strong></a> and <a href="https://apps.apple.com/sg/app/immich/id1613945652" target="_blank"><strong>iOS</strong></a> which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.</p><h3 id="you-get-the-idea">You get the idea<a class="headerlink" href="#you-get-the-idea" title="Permanent link">&para;</a></h3><p>Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's <strong>BIG</strong> rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.</p><ul><li><a href="https://plex.tv" target="_blank"><strong>Plex Server</strong></a></li><li><a href="https://github.com/alexta69/metube" target="_blank"><strong>meTube</strong></a></li><li><a href="https://koel.dev" target="_blank"><strong>Koel</strong></a></li><li><a href="https://tautulli.com" target="_blank"><strong>Tautulli</strong></a></li><li><a href="https://www.portainer.io" target="_blank"><strong>Portainer</strong></a></li><li><a href="https://github.com/schlagmichdoch/pairdrop" target="_blank"><strong>PairDrop</strong></a></li><li><a href="https://github.com/CorentinTh/it-tools" target="_blank"><strong>IT-Tools</strong></a></li><li><a href="https://cockpit-project.org" target="_blank"><strong>Cockpit</strong></a></li></ul><h3 id="where-to-find-more-containers">Where to find more containers ?<a class="headerlink" href="#where-to-find-more-containers" title="Permanent link">&para;</a></h3><p>Well, there are many places, but my favorite has to be <a href="https://selfh.st/apps/" target="_blank"><strong>Selfh.st</strong></a> hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.</p><h3 id="closing-words">Closing words<a class="headerlink" href="#closing-words" title="Permanent link">&para;</a></h3><p>Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.</p><p>Thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ \ No newline at end of file + DarkXero's BytesThoughts, Opinions, Documentation, and more...https://bytes.xerolinux.xyz/en Wed, 22 Jan 2025 07:06:00 -0000 Wed, 22 Jan 2025 07:06:00 -0000 60 MkDocs RSS plugin - v1.17.1 https://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Feed-icon.svg/128px-Feed-icon.svg.png DarkXero's Byteshttps://bytes.xerolinux.xyz/ GPU Fundraiser Hardware Linux <p>Since getting myself a nice Christmas gift, the <a href="https://www.amd.com/en/products/processors/desktops/ryzen/5000-series/amd-ryzen-9-5950x.html" target="_blank"><strong>Ryzen 9 5950X</strong></a> CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.</p><div align="center"> <script type='text/javascript' src='https://storage.ko-fi.com/cdn/widget/Widget_2.js'></script><script type='text/javascript'>kofiwidget2.init('Support me on Ko-fi', '#8073f5', 'I2I4K55AA');kofiwidget2.draw();</script> </div><p>With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.</p><p align="center"> <img width="360" src="https://i.imgur.com/JCpfCS8.png"> <img width="360" src="https://i.imgur.com/ojsENRr.png"></p><p>Thank you for your continuous support. Without you none of this would have been possible. <strong>XeroLinux</strong> owes its existence to you. Let's get 2025 on the road shall we ?</p>https://bytes.xerolinux.xyz/tech/gpu-fund/ Wed, 22 Jan 2025 11:02:16 +0200DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/gpu-fund/ Affinity on Linux Affinity Linux Photoshop <div class="admonition warning"><p class="admonition-title">Warning</p><p>This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.</p></div><h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://affinity.serif.com/en-us/" target="_blank"><strong>Affinity Apps</strong></a> on <strong>Linux</strong> thanks to <a href="https://github.com/Twig6943" target="_blank"><strong>Twig6943</strong></a>.</p><p align="center"> <img src="https://i.imgur.com/MABHj31.jpeg"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to download the <a href="https://store.serif.com/update/windows/photo/2/" target="_blank"><strong>Photo</strong></a>, <a href="https://store.serif.com/update/windows/designer/2/" target="_blank"><strong>Designer</strong></a> or <a href="https://store.serif.com/update/windows/publisher/2/" target="_blank"><strong>Publisher</strong></a> <code>exe</code> from the dropdown. Once we have it/them, follow the guide over on maintainer's <a href="https://github.com/Twig6943/AffinityOnLinux" target="_blank"><strong>Github</strong></a></p><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to <strong>Photoshop</strong> I have ever gotten, without having to go through <em>WinBlows</em> if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.</p>https://bytes.xerolinux.xyz/docs/affinity-linux/ Fri, 15 Nov 2024 15:58:32 +0200DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/affinity-linux/ SDDM Display Display Linux SDDM <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Login session appears on an unexpected display. It can happen that the <strong>SDDM</strong> login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use <code>xrandr</code> to configure the displays before the login session using Xsetup script. E.g. here <code>xrandr</code> reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).</p><p align="center"> <img src="https://i.imgur.com/c6fj1u4.png"></p><h3 id="lets-fix-it">Let's fix it 🚀<a class="headerlink" href="#lets-fix-it" title="Permanent link">&para;</a></h3><p>We need to be logged in to an <em>X-Session</em> meaning <code>X11</code> to gat the correct display names, we cannot use display names from <code>Wayland</code> session won't work for some reason, maybe because <strong>SDDM</strong> runs in <code>X11</code> ? No idea, now run this command in terminal to get their names. Need to have <code>xrandr</code> package installed.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>xrandr<span class="w"> </span><span class="p">|</span><span class="w"> </span>grep<span class="w"> </span>-w<span class="w"> </span>connected</span></code></pre></div><p>Output should be like this (mine)</p><blockquote><p>HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm <br /> DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm <br /> HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm</p></blockquote><p>This is my own <code>Xsetup</code> for the login window, yours may differ :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a><span class="ch">#!/bin/sh</span></span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="c1"># Xsetup - run as root before the login dialog appears</span></span><span id="__span-1-3"><a id="__codelineno-1-3" name="__codelineno-1-3" href="#__codelineno-1-3"></a></span><span id="__span-1-4"><a id="__codelineno-1-4" name="__codelineno-1-4" href="#__codelineno-1-4"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>DP-2<span class="w"> </span>--auto<span class="w"> </span>--primary</span><span id="__span-1-5"><a id="__codelineno-1-5" name="__codelineno-1-5" href="#__codelineno-1-5"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-1<span class="w"> </span>--auto<span class="w"> </span>--left-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span><span id="__span-1-6"><a id="__codelineno-1-6" name="__codelineno-1-6" href="#__codelineno-1-6"></a>xrandr<span class="w"> </span>--output<span class="w"> </span>HDMI-0<span class="w"> </span>--auto<span class="w"> </span>--right-of<span class="w"> </span>DP-2<span class="w"> </span>--noprimary</span></code></pre></div><p>If you want to manually edit the file</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>nano<span class="w"> </span>/usr/share/sddm/scripts/Xsetup</span></code></pre></div><p>Paste the output of your <code>xrandr</code> command as I did above in there save &amp; reboot.</p><p>That's it y'all..</p>https://bytes.xerolinux.xyz/docs/sddm-display/ Sat, 12 Oct 2024 14:33:10 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/sddm-display/ RiP GamerKing Lebanon Warzone <h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>In Memoriam</strong></p><p>It is with a heavy heart that I share the passing of <strong>GamerKing</strong>, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant <strong>Linux</strong> enthusiast but also a vibrant soul who played a significant role in shaping the future of <strong>XeroLinux</strong>. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.</p><p align="center"> <img src="https://i.imgur.com/37Ew8GN.jpeg" alt="avatar"></p><p>I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. <strong>XeroLinux</strong> carries his imprint, and his contributions will forever be woven into its fabric. In a place like <strong>Lebanon</strong>, where <strong>Linux</strong> is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.</p><p>For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and <strong>GamerKing</strong> was caught in the crossfire.</p><p>Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.</p><p align="center"> <img src="https://i.imgur.com/vQFu6YT.jpeg" alt="rip"></p><p>As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.</p><p>Yesterday, as I write this, a massive bombing destroyed a six-building complex near <strong>GamerKing</strong>'s location. Soon after, I received a message from his younger brother. At first, I believed it was <strong>GamerKing</strong> himself, and my immediate question was, "<strong>Are you OK?</strong>" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: "<strong>He told me that if anything happened to me, open Discord and tell Dark</strong>." I asked, trembling, "<strong>Why? What happened?</strong>" After what felt like an eternity, he delivered the words that shattered my world: "<strong>He just left us</strong>."</p><p>I still don’t know what took him from us, whether it was his injuries or the bombing—but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.</p><p>I will always remember his infectious energy, his humor, and his brilliance. He was the light of <strong>XeroLinux</strong>, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. <strong>Rest in peace, little brother</strong>.</p>https://bytes.xerolinux.xyz/priv/rip-gamerking/ Wed, 02 Oct 2024 21:00:39 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/rip-gamerking/ SUMMARY <ul><li><a href="../">🏠Home</a></li><li><a href="/docs/">🗒️Documentation</a></li><li><a href="/priv/">🗨️Communication</a></li><li><a href="/projects/">💻Xero Projects</a></li><li><a href="/tech/">🖱️Technology</a></li></ul>https://bytes.xerolinux.xyz/SUMMARY/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/SUMMARY/ FOSS Fundraising ArchLinux Fundraising Linux <h3 id="backstory">Backstory<a class="headerlink" href="#backstory" title="Permanent link">&para;</a></h3><p>Before I begin, I would like to clarify that, when I say <strong>Linux</strong> in this context I mean <strong>Desktop Linux</strong>.</p><p>When I started this whole <strong>Linux</strong> endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with <a href="https://kde.org" target="_blank"><strong>KDE Plasma</strong></a> while using the now infamous <a href="https://manjaro.org" target="_blank"><strong>Manjaro</strong></a> Distrobution. Yes, this is when I got hooked to <strong>Linux</strong>. Now don't get me wrong, I have since tried many DEs and WMs. But alas only <strong>KDE Plasma</strong> answered my needs.</p><p>Since then I started getting the urge to build my own <em>Distro</em> my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called <a href="https://arcolinux.info" target="_blank"><strong>ArcoLinux</strong></a>. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro <a href="https://archlinux.org" target="_blank"><strong>ArchLinux</strong></a>.</p><h3 id="fundraising">Fundraising<a class="headerlink" href="#fundraising" title="Permanent link">&para;</a></h3><p>Now we get to the meat and potatoes of this post, why ask for money when it's <strong>FOSS</strong> ? Well in case you did not know, the <em>Free</em> in <em>Free Open Source</em> does <strong>NOT</strong> mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our <strong>TIME</strong>.</p><p>Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a <em>real</em> job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.</p><p>Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the <em>Fundraising</em> or <em>Donation</em> methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the <strong>Donate</strong> button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)</p><h3 id="hate-in-foss">Hate in FOSS<a class="headerlink" href="#hate-in-foss" title="Permanent link">&para;</a></h3><p>Now let's address the <em>other</em> elephant in the room, the hate in the <strong>FOSS</strong> community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word <em>Free</em> in <em>Free Open Source</em>. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they <em>despise</em> others, the ones we call <em>Protest Distros</em>. Now am not going to name any names here, but the longer this goes on, the slower <strong>Linux</strong> will grow.</p><p>So if you love <strong>Linux</strong> as much as you say you do, please help your favorite projects grow in any way shape or form, either <em>Donating</em> for financial support if you can and are not a developer, or by simply <em>Reporting Issues</em> upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.</p><p>Anyways, thanks for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p><p>See ya there</p>https://bytes.xerolinux.xyz/priv/foss-fundraising/ Fri, 27 Sep 2024 21:57:16 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/foss-fundraising/ MKDocs Install Blogging Linux MKDocs <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the installation of <a href="https://www.mkdocs.org" target="_blank"><strong>MKDocs</strong></a> the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for <strong>ArchLinux</strong> if you don't use that distro, well, their site shows how to install for your distro.</p><p><img alt="type:video" src="https://www.youtube.com/embed/9V0NpLPXS-Y" /></p><h3 id="installing-mkdocs">Installing MKDocs<a class="headerlink" href="#installing-mkdocs" title="Permanent link">&para;</a></h3><p>We will need to install it with some extras. The 2 main packages exist on the <strong>Arch</strong> repos. The rest are on the <strong>AUR</strong>, so to grab everything in one go, I will be using <strong>Paru</strong>. Compiling might take a while, so sit back wile it finishes.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs<span class="w"> </span>mkdocs-get-deps<span class="w"> </span>mkdocs-material<span class="w"> </span>python-pipx<span class="w"> </span>python-pillow<span class="w"> </span>python-cairosvg<span class="w"> </span>mkdocs-material-extensions<span class="w"> </span>python-regex<span class="w"> </span>pymdown-extensions<span class="w"> </span>mkdocs-material-pymdownx-extras</span></code></pre></div><p>Donce that's done we need to create the site. There's a command for that.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>mkdocs<span class="w"> </span>new<span class="w"> </span>my-project</span><span id="__span-1-2"><a id="__codelineno-1-2" name="__codelineno-1-2" href="#__codelineno-1-2"></a><span class="nb">cd</span><span class="w"> </span>my-project</span></code></pre></div><p>Now that we initialized the new site we need to configure it. We do so by editing the <code>mkdocs.yml</code> file putting in the following info :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a><span class="nt">site_name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">Sitename</span></span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a></span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nt">theme</span><span class="p">:</span></span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="w"> </span><span class="nt">name</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">material</span></span><span id="__span-2-5"><a id="__codelineno-2-5" name="__codelineno-2-5" href="#__codelineno-2-5"></a><span class="w"> </span><span class="nt">logo</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/Tux.gif</span></span><span id="__span-2-6"><a id="__codelineno-2-6" name="__codelineno-2-6" href="#__codelineno-2-6"></a><span class="w"> </span><span class="nt">favicon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">assets/favicon.ico</span></span><span id="__span-2-7"><a id="__codelineno-2-7" name="__codelineno-2-7" href="#__codelineno-2-7"></a><span class="w"> </span><span class="nt">palette</span><span class="p">:</span></span><span id="__span-2-8"><a id="__codelineno-2-8" name="__codelineno-2-8" href="#__codelineno-2-8"></a><span class="w"> </span><span class="nt">scheme</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">slate</span></span><span id="__span-2-9"><a id="__codelineno-2-9" name="__codelineno-2-9" href="#__codelineno-2-9"></a><span class="w"> </span><span class="nt">primary</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">deep purple</span></span><span id="__span-2-10"><a id="__codelineno-2-10" name="__codelineno-2-10" href="#__codelineno-2-10"></a><span class="w"> </span><span class="nt">features</span><span class="p">:</span></span><span id="__span-2-11"><a id="__codelineno-2-11" name="__codelineno-2-11" href="#__codelineno-2-11"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.top</span></span><span id="__span-2-12"><a id="__codelineno-2-12" name="__codelineno-2-12" href="#__codelineno-2-12"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.footer</span></span><span id="__span-2-13"><a id="__codelineno-2-13" name="__codelineno-2-13" href="#__codelineno-2-13"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.indexes</span></span><span id="__span-2-14"><a id="__codelineno-2-14" name="__codelineno-2-14" href="#__codelineno-2-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">content.code.copy</span></span><span id="__span-2-15"><a id="__codelineno-2-15" name="__codelineno-2-15" href="#__codelineno-2-15"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.suggest</span></span><span id="__span-2-16"><a id="__codelineno-2-16" name="__codelineno-2-16" href="#__codelineno-2-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.highlight</span></span><span id="__span-2-17"><a id="__codelineno-2-17" name="__codelineno-2-17" href="#__codelineno-2-17"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search.share</span></span><span id="__span-2-18"><a id="__codelineno-2-18" name="__codelineno-2-18" href="#__codelineno-2-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">navigation.expand</span></span></code></pre></div><p>This will make it use the <strong>Slate Material</strong> Theme with <strong>Deep Purple</strong> accents. To know more about the theme check the <a href="https://squidfunk.github.io/mkdocs-material/getting-started/" target="_blank"><strong>MKDocs Material Wiki</strong></a>. That's it go from there.</p><h3 id="plugins-extra-stuff">Plugins &amp; Extra Stuff<a class="headerlink" href="#plugins-extra-stuff" title="Permanent link">&para;</a></h3><p>I have found a few that I liked on the <strong>AUR</strong>, let's install them via :</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>paru<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>mkdocs-rss-plugin<span class="w"> </span>mkdocs-video<span class="w"> </span>mkdocs-autorefs<span class="w"> </span>mkdocs-section-index<span class="w"> </span>mkdocs-glightbox<span class="w"> </span>mkdocs-backlinks-plugin<span class="w"> </span>mkdocs-redirects<span class="w"> </span>mkdocs-ezlinks-plugin<span class="w"> </span>mkdocs-literate-nav</span></code></pre></div><p>To activate them we edit the same <code>mkdocs.yml</code> file as before like so :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a><span class="nt">plugins</span><span class="p">:</span></span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">rss</span></span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">social</span></span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">search</span></span><span id="__span-4-5"><a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">autorefs</span></span><span id="__span-4-6"><a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">glightbox</span></span></code></pre></div><p>There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :</p><div class="language-YAML highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a><span class="nt">markdown_extensions</span><span class="p">:</span></span><span id="__span-5-2"><a id="__codelineno-5-2" name="__codelineno-5-2" href="#__codelineno-5-2"></a></span><span id="__span-5-3"><a id="__codelineno-5-3" name="__codelineno-5-3" href="#__codelineno-5-3"></a><span class="w"> </span><span class="c1"># Python Markdown</span></span><span id="__span-5-4"><a id="__codelineno-5-4" name="__codelineno-5-4" href="#__codelineno-5-4"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">abbr</span></span><span id="__span-5-5"><a id="__codelineno-5-5" name="__codelineno-5-5" href="#__codelineno-5-5"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">admonition</span></span><span id="__span-5-6"><a id="__codelineno-5-6" name="__codelineno-5-6" href="#__codelineno-5-6"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">attr_list</span></span><span id="__span-5-7"><a id="__codelineno-5-7" name="__codelineno-5-7" href="#__codelineno-5-7"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">def_list</span></span><span id="__span-5-8"><a id="__codelineno-5-8" name="__codelineno-5-8" href="#__codelineno-5-8"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">footnotes</span></span><span id="__span-5-9"><a id="__codelineno-5-9" name="__codelineno-5-9" href="#__codelineno-5-9"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">md_in_html</span></span><span id="__span-5-10"><a id="__codelineno-5-10" name="__codelineno-5-10" href="#__codelineno-5-10"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">toc</span><span class="p">:</span></span><span id="__span-5-11"><a id="__codelineno-5-11" name="__codelineno-5-11" href="#__codelineno-5-11"></a><span class="w"> </span><span class="nt">permalink</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-12"><a id="__codelineno-5-12" name="__codelineno-5-12" href="#__codelineno-5-12"></a></span><span id="__span-5-13"><a id="__codelineno-5-13" name="__codelineno-5-13" href="#__codelineno-5-13"></a><span class="w"> </span><span class="c1"># Python Markdown Extensions</span></span><span id="__span-5-14"><a id="__codelineno-5-14" name="__codelineno-5-14" href="#__codelineno-5-14"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.arithmatex</span><span class="p">:</span></span><span id="__span-5-15"><a id="__codelineno-5-15" name="__codelineno-5-15" href="#__codelineno-5-15"></a><span class="w"> </span><span class="nt">generic</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-16"><a id="__codelineno-5-16" name="__codelineno-5-16" href="#__codelineno-5-16"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.betterem</span><span class="p">:</span></span><span id="__span-5-17"><a id="__codelineno-5-17" name="__codelineno-5-17" href="#__codelineno-5-17"></a><span class="w"> </span><span class="nt">smart_enable</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">all</span></span><span id="__span-5-18"><a id="__codelineno-5-18" name="__codelineno-5-18" href="#__codelineno-5-18"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.caret</span></span><span id="__span-5-19"><a id="__codelineno-5-19" name="__codelineno-5-19" href="#__codelineno-5-19"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.details</span></span><span id="__span-5-20"><a id="__codelineno-5-20" name="__codelineno-5-20" href="#__codelineno-5-20"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.emoji</span><span class="p">:</span></span><span id="__span-5-21"><a id="__codelineno-5-21" name="__codelineno-5-21" href="#__codelineno-5-21"></a><span class="w"> </span><span class="nt">emoji_index</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.twemoji</span></span><span id="__span-5-22"><a id="__codelineno-5-22" name="__codelineno-5-22" href="#__codelineno-5-22"></a><span class="w"> </span><span class="nt">emoji_generator</span><span class="p">:</span><span class="w"> </span><span class="kt">!!python/name:material.extensions.emoji.to_svg</span></span><span id="__span-5-23"><a id="__codelineno-5-23" name="__codelineno-5-23" href="#__codelineno-5-23"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.highlight</span><span class="p">:</span></span><span id="__span-5-24"><a id="__codelineno-5-24" name="__codelineno-5-24" href="#__codelineno-5-24"></a><span class="w"> </span><span class="nt">anchor_linenums</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-25"><a id="__codelineno-5-25" name="__codelineno-5-25" href="#__codelineno-5-25"></a><span class="w"> </span><span class="nt">line_spans</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">__span</span></span><span id="__span-5-26"><a id="__codelineno-5-26" name="__codelineno-5-26" href="#__codelineno-5-26"></a><span class="w"> </span><span class="nt">pygments_lang_class</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-27"><a id="__codelineno-5-27" name="__codelineno-5-27" href="#__codelineno-5-27"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.inlinehilite</span></span><span id="__span-5-28"><a id="__codelineno-5-28" name="__codelineno-5-28" href="#__codelineno-5-28"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.keys</span></span><span id="__span-5-29"><a id="__codelineno-5-29" name="__codelineno-5-29" href="#__codelineno-5-29"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.mark</span></span><span id="__span-5-30"><a id="__codelineno-5-30" name="__codelineno-5-30" href="#__codelineno-5-30"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.smartsymbols</span></span><span id="__span-5-31"><a id="__codelineno-5-31" name="__codelineno-5-31" href="#__codelineno-5-31"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.superfences</span></span><span id="__span-5-32"><a id="__codelineno-5-32" name="__codelineno-5-32" href="#__codelineno-5-32"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tabbed</span><span class="p">:</span></span><span id="__span-5-33"><a id="__codelineno-5-33" name="__codelineno-5-33" href="#__codelineno-5-33"></a><span class="w"> </span><span class="nt">alternate_style</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-34"><a id="__codelineno-5-34" name="__codelineno-5-34" href="#__codelineno-5-34"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">pymdownx.tasklist</span><span class="p">:</span></span><span id="__span-5-35"><a id="__codelineno-5-35" name="__codelineno-5-35" href="#__codelineno-5-35"></a><span class="w"> </span><span class="nt">custom_checkbox</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">true</span></span><span id="__span-5-36"><a id="__codelineno-5-36" name="__codelineno-5-36" href="#__codelineno-5-36"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">pymdownx.tilde</span></span><span id="__span-5-37"><a id="__codelineno-5-37" name="__codelineno-5-37" href="#__codelineno-5-37"></a></span><span id="__span-5-38"><a id="__codelineno-5-38" name="__codelineno-5-38" href="#__codelineno-5-38"></a><span class="nt">extra</span><span class="p">:</span></span><span id="__span-5-39"><a id="__codelineno-5-39" name="__codelineno-5-39" href="#__codelineno-5-39"></a><span class="w"> </span><span class="nt">social</span><span class="p">:</span></span><span id="__span-5-40"><a id="__codelineno-5-40" name="__codelineno-5-40" href="#__codelineno-5-40"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/github</span></span><span id="__span-5-41"><a id="__codelineno-5-41" name="__codelineno-5-41" href="#__codelineno-5-41"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://github.com/darkxero-dev</span></span><span id="__span-5-42"><a id="__codelineno-5-42" name="__codelineno-5-42" href="#__codelineno-5-42"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/youtube</span></span><span id="__span-5-43"><a id="__codelineno-5-43" name="__codelineno-5-43" href="#__codelineno-5-43"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://youtube.com/XeroLinuxOfficial</span></span><span id="__span-5-44"><a id="__codelineno-5-44" name="__codelineno-5-44" href="#__codelineno-5-44"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/x-twitter</span></span><span id="__span-5-45"><a id="__codelineno-5-45" name="__codelineno-5-45" href="#__codelineno-5-45"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://twitter.com/xerolinuxop</span></span><span id="__span-5-46"><a id="__codelineno-5-46" name="__codelineno-5-46" href="#__codelineno-5-46"></a><span class="w"> </span><span class="p p-Indicator">-</span><span class="w"> </span><span class="nt">icon</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">fontawesome/brands/mastodon</span></span><span id="__span-5-47"><a id="__codelineno-5-47" name="__codelineno-5-47" href="#__codelineno-5-47"></a><span class="w"> </span><span class="nt">link</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">https://fosstodon.org/@xerolinux</span></span></code></pre></div><p>That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to <a href="https://github.com/drewgrif" target="_blank"><strong>@JustAGuyLinux</strong></a> for helping out a little hehe.</p>https://bytes.xerolinux.xyz/docs/mkdocs-install/ Fri, 27 Sep 2024 21:23:23 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/mkdocs-install/ Plans for other spins ArchLinux Distribution Linux XeroLinux <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if <strong>XeroLinux</strong> did the same, I was once asked. For example <strong>Cosmic</strong>, <strong>Hyprland</strong>, <strong>XFCE</strong> and so on.</p><h3 id="its-complicated">It's Complicated<a class="headerlink" href="#its-complicated" title="Permanent link">&para;</a></h3><p>As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?</p><p>But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind <strong>XeroLinux</strong>. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.</p><p>That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for <em>Free</em> right now.</p><p>I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the <strong>KDE</strong> version to me, there's not much I can do. I hope you understand.</p><h3 id="the-good-news">The Good News<a class="headerlink" href="#the-good-news" title="Permanent link">&para;</a></h3><p>There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the <a href="https://wiki.xerolinux.xyz/cosmic/" target="_blank"><strong>Cosmic</strong></a> and <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma</strong></a> ones.</p><p>I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.</p><p>Some of you might be asking, <em>What's the catch?</em> Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of <strong>ArchInstall</strong> to get a minimal system set up, after which you will be able to run my scripts.</p><p>That's it really. That's why I chose <strong>Arch</strong>. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.</p><h3 id="the-future">The Future<a class="headerlink" href="#the-future" title="Permanent link">&para;</a></h3><p>In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough <em>Install Scripts</em>, why not combine them all into a single easy to use <em>Mega Script</em> of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?</p><p>That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, <strong>HyprLand</strong>, <strong>Gnome</strong> and maybe <strong>DWM</strong> or <strong>BSPWM</strong> I dunno yet. Don't hold me on that though, please, just ideas for now.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/other-xero-spins/ Thu, 26 Sep 2024 14:07:52 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/other-xero-spins/ Current Situation Lebanon Situation Struggles War <div class="admonition info"><p class="admonition-title">Info</p><p>Situation in <strong>Lebanon</strong> has escalatated to a ptotential war. If you’re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.</p></div><h2 align="center">💰 <a href="https://fundrazr.com/XeroLinux?ref=ab_eBckkc" target="_blank"><strong>Click here for Campaign</strong></a> 💰</h2><p><strong>Hello everyone,</strong></p><p>It's one of those times where words fall short. The past few days have been incredibly difficult for us here in <strong>Lebanon</strong>, and it feels like things are only getting worse, spiraling out of control. Close friends, people I’ve known for years, have been injured, and some have even been forced to flee their homes. We’re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It’s something straight out of a dystopian novel, but it's happening right here, right now.</p><p><img alt="type:video" src="https://www.youtube.com/embed/OmeKpICXiBA" /></p><p>We are terrified to carry even the most basic tech devices, and it's surreal to say the least.</p><p>For the first time in my life, I genuinely don’t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn’t get worse? I’ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we’re on the edge of something catastrophic.</p><p>Your help and support would be, potentially life saving !</p>https://bytes.xerolinux.xyz/priv/current-situation/ Wed, 25 Sep 2024 22:59:13 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/current-situation/ Why Revive XeroLinux ArchLinux Distribution Linux XeroLinux <div class="admonition info"><p class="admonition-title">Info</p><p>This post will explain why I decided to bring back <strong>XeroLinux</strong> and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the <a href="https://wiki.xerolinux.xyz/distro/" target="_blank"><strong>XeroLinux Wiki</strong></a></p></div><h3 id="what-is-xerolinux">What is XeroLinux<a class="headerlink" href="#what-is-xerolinux" title="Permanent link">&para;</a></h3><p>In short, it's just an alternative to the <a href="https://wiki.xerolinux.xyz/plasma/" target="_blank"><strong>Plasma Install Script</strong></a>, making it easier to install <strong>Arch</strong>, bypassing the need for <strong>ArchInstall</strong>. The ISO includes my toolkit as well as my famous <a href="https://wiki.xerolinux.xyz/rice/" target="_blank"><strong>Xero Layan Rice</strong></a> all-in-one shot.</p><p align="center"> <img src="https://i.imgur.com/ejZ1ZQv.png"></p><p>You can use the included <a href="https://wiki.xerolinux.xyz/xlapit/" target="_blank"><strong>Xero Toolkit</strong></a>, 1<sup>st</sup> icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the <a href="https://aur.chaotic.cx" target="_blank"><strong>Chaotic-AUR</strong></a> repository so it's easier for you to install <strong>AUR</strong> packages rather from having to compile them.</p><h3 id="why-is-xerolinux-back">Why is XeroLinux back<a class="headerlink" href="#why-is-xerolinux-back" title="Permanent link">&para;</a></h3><p>To explain why, let me set the stage. As you may already know, I’m going through significant financial difficulties. Living in Lebanon, finding a job—especially a remote one—is extremely challenging, and the situation continues to worsen. I won’t rehash the entire story here, but if you’re not familiar, you can read more about it in this <a href="https://blog.techxero.com/index.php/2024/06/07/actively-looking-for-a-job/" target="_blank"><strong>BlogPost</strong></a>.</p><p>After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro’s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it—and make it a way to sustain myself?</p><p><img alt="type:video" src="https://www.youtube.com/embed/lsYg6-wUWXw" /></p><p>Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the <a href="https://distrowatch.com" target="_blank"><strong>DistroWatch</strong></a> rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!</p><p>That answers the why.</p><h3 id="how-to-get-it">How to get it<a class="headerlink" href="#how-to-get-it" title="Permanent link">&para;</a></h3><p>I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO—a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the <a href="https://xerolinux.xyz/iso/" target="_blank"><strong>Release Post</strong></a></p><p>Now, I know that some of you will say, "But it's FOSS; you shouldn't charge for it." To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the <a href="https://github.com/XeroLinuxDev" target="_blank"><strong>Source Code</strong></a> and do with it as you wish. I am simply charging for my time.</p><p>The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up… well, let's not dwell on that. Let’s focus on keeping it alive and thriving for a long and happy journey together!</p><h3 id="is-it-any-special">Is it any Special<a class="headerlink" href="#is-it-any-special" title="Permanent link">&para;</a></h3><p>This is a common question I get. To be honest, there’s no groundbreaking advantage—it simply provides an easier way to install <strong>Arch</strong> with a polished <strong>KDE</strong> experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.</p><p>Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that <strong>XeroLinux</strong> is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.</p><h3 id="how-to-get-it-for-free">How to get it for free<a class="headerlink" href="#how-to-get-it-for-free" title="Permanent link">&para;</a></h3><p>If you can’t support me financially but still want <strong>XeroLinux</strong>, while the ISO isn't available for free right now, you can still achieve similar results with my <a href="https://xerolinux.xyz/news/xerolinux-plasma/" target="_blank"><strong>PlasmaInstall</strong></a> script, which will always be free of charge. It just requires a bit more elbow grease on your part—that’s all there is to it!</p><h3 id="i-dont-like-arch">I don't like Arch<a class="headerlink" href="#i-dont-like-arch" title="Permanent link">&para;</a></h3><p>In case you don't like <strong>Arch</strong> for whatever reason, but still want to support me, I have put up a <a href="https://shop.xerolinux.xyz" target="_blank"><strong>Merch Store</strong></a> where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.</p><h3 id="private-donations">Private Donations<a class="headerlink" href="#private-donations" title="Permanent link">&para;</a></h3><p>Did you know I have a private fundraiser account? It’s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at <a href="https://fundrazr.com/xerolinux" target="_blank"><strong>FundRazr</strong></a>.</p><p>Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving <strong>XeroLinux</strong>, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn’t been getting much support. Ideally, I’d love to keep these funds separate, but ultimately, it’s your choice.</p><h3 id="wrapping-up">Wrapping up<a class="headerlink" href="#wrapping-up" title="Permanent link">&para;</a></h3><p>That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.</p><p>Thank you to each and everyone for the support.</p>https://bytes.xerolinux.xyz/projects/why-is-distro-back/ Tue, 17 Sep 2024 15:32:35 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/why-is-distro-back/ XeroLinux Channel ArchLinux Linux XeroLinux YouTube <h3 id="youtube-channel">YouTube Channel ?<a class="headerlink" href="#youtube-channel" title="Permanent link">&para;</a></h3><p>Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, <strong>Nice!</strong>.</p><p>But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.</p><h3 id="what-now-xero">What now Xero ?<a class="headerlink" href="#what-now-xero" title="Permanent link">&para;</a></h3><p>Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since <strong>YouTube</strong> and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.</p><h3 id="whats-the-catch">What's the Catch ?<a class="headerlink" href="#whats-the-catch" title="Permanent link">&para;</a></h3><p>This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the <a href="https://ko-fi.com/XeroLinux" target="_blank"><strong>XeroLinux Ko-Fi</strong></a> fundraiser for the forseeable future.</p><p>Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to <em>donate</em>, however would be highly appreciated if you do.</p><h3 id="future-plans">Future Plans<a class="headerlink" href="#future-plans" title="Permanent link">&para;</a></h3><p>When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.</p><p>Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.</p><p>Anyways, thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ Tue, 17 Sep 2024 14:41:54 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/projects/what-s-up-with-my-channel/ 🏠Home <h1 id="welcome">Welcome<a class="headerlink" href="#welcome" title="Permanent link">&para;</a></h1><div class="admonition info"><p class="admonition-title">Info</p><p>All the documentation found herein, will be for <strong>ArchLinux</strong> since that's the distro I use. Some will be general <strong>Linux</strong> ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.</p></div><p>Welcome to <strong>DarkXero's Bytes</strong> ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the <a href="https://xerolinux.xyz" target="_blank"><strong>XeroLinux</strong></a> main site.</p><p align="center"> <img src="https://i.imgur.com/ZAvPAkx.png" alt="logo"></p><p>Documenting my learning journey has become an essential part of my <strong>Linux</strong> experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.</p><p align="center"> <img src="https://i.imgur.com/TgVQf9z.png" alt="ArchPorn"></p>https://bytes.xerolinux.xyz/ Tue, 17 Sep 2024 14:08:59 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/ Reset Password Linux Recovery Reset <h3 id="information">Information<a class="headerlink" href="#information" title="Permanent link">&para;</a></h3><p>I have lost my root pass on <strong>Linux</strong> more times than I can count. This guide is here so I do not have to <em>Google</em> it lol. Might be useful to you I dunno. But it's here.</p><p align="center"> <img src="https://i.imgur.com/VFXV09r.jpeg"></p><h3 id="lets-do-this">Let's do this 🚀<a class="headerlink" href="#lets-do-this" title="Permanent link">&para;</a></h3><p>How to reset forgotten root password in a <strong>GNU/Linux</strong> distribution with <code>GRUB</code>?</p><p>If this is a laptop or a desktop which you have next to you then follow these steps.</p><ol><li>Shut down the device.</li><li>Start it again. When you see GRUB menu, press the <code>e</code> key on the keyboard before the system starts booting.</li><li>In the <code>GRUB</code> boot options, scroll down and locate the line that begins with <code>linux</code>. In this line move the cursor to the end, right after <code>ro quiet</code>. Delete everything after that. Change <code>ro</code> to <code>rw</code>. Append the parameter <code>init=/bin/bash</code></li><li>Press Ctrl+x, or F10, to boot.</li><li>You will see a root prompt.</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>:#</span></code></pre></div><p>Remount the filesystem in read/write mode:</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>:#<span class="w"> </span>mount<span class="w"> </span>-no<span class="w"> </span>remount,rw<span class="w"> </span>/</span></code></pre></div><ol><li>Set the password of any user(s).</li></ol><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>:#<span class="w"> </span>passwd<span class="w"> </span>joe</span></code></pre></div><ol><li>Reboot with the command <code>reboot -f</code>.</li></ol><p>That's it ! The new password should work now.</p>https://bytes.xerolinux.xyz/docs/passwd-reset/ Tue, 17 Sep 2024 13:47:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/passwd-reset/ FFmpeg Cheat Sheet CheatSheet FFmpeg Linux <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>This for my own use. Use it if you want to. Just documenting the use of <a href="https://www.ffmpeg.org/ffmpeg.html" target="_blank"><strong>FFmpeg</strong></a> on <strong>Linux</strong>.</p><p align="center"> <img src="https://i.imgur.com/TweW8fW.png"></p><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>First we will need to install <code>FFmpeg</code>. I will be doing it on <strong>ArchLinux</strong> since that's what I use. Look for packages on your distro if you don't use it.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>sudo<span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>--noconfirm<span class="w"> </span>--needed<span class="w"> </span>ffmpeg<span class="w"> </span>ffmpegthumbnailer<span class="w"> </span>ffmpegthumbs<span class="w"> </span>qt6-multimedia-ffmpeg</span></code></pre></div><p>Now that we have it, it's time for the cheat sheet.</p><hr /><h1 align="center">.// The Cheat Sheet \\.</h1><h2 id="basic-conversion">Basic conversion<a class="headerlink" href="#basic-conversion" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>ffmpeg -i in.mp4 out.avi</span></code></pre></div><h3 id="remux-an-mkv-file-into-mp4">Remux an MKV file into MP4<a class="headerlink" href="#remux-an-mkv-file-into-mp4" title="Permanent link">&para;</a></h3><div class="language-text highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="high-quality-encoding">High-quality encoding<a class="headerlink" href="#high-quality-encoding" title="Permanent link">&para;</a></h3><p>Use the <code>crf</code> (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to <code>-crf 18</code>. Use the <code>preset</code> parameter to control the speed of the compression process. <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>Additional info</strong></a>.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-3-1"><a id="__codelineno-3-1" name="__codelineno-3-1" href="#__codelineno-3-1"></a>ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4</span></code></pre></div><h2 id="trimming">Trimming<a class="headerlink" href="#trimming" title="Permanent link">&para;</a></h2><p>Without re-encoding:<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4</span></code></pre></div>- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-ss</code></a> specifies the start time, e.g. <code>00:01:23.000</code> or <code>83</code> (in seconds)- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-t</code></a> specifies the duration of the clip (same format).- Recent <code>ffmpeg</code> also has a flag to supply the end time with <code>-to</code>.- <a href="http://ffmpeg.org/ffmpeg-all.html#Main-options" target="_blank"><code>-c</code></a> copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.</p><p>With re-encoding:</p><p>If you leave out the <code>-c copy</code> option, <code>ffmpeg</code> will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the <a href="https://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide" target="_blank"><strong>x264 Encoding Guide</strong></a> and the <a href="http://ffmpeg.org/trac/ffmpeg/wiki/AACEncodingGuide" target="_blank"><strong>AAC Encoding Guide</strong></a>, respectively.</p><p>For example:<div class="language-text highlight"><pre><span></span><code><span id="__span-5-1"><a id="__codelineno-5-1" name="__codelineno-5-1" href="#__codelineno-5-1"></a>ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4</span></code></pre></div></p><h2 id="mux-video-and-audio-from-another-video">Mux video and audio from another video<a class="headerlink" href="#mux-video-and-audio-from-another-video" title="Permanent link">&para;</a></h2><p>To copy the video from in0.mp4 and audio from in1.mp4:<div class="language-text highlight"><pre><span></span><code><span id="__span-6-1"><a id="__codelineno-6-1" name="__codelineno-6-1" href="#__codelineno-6-1"></a>ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4</span></code></pre></div>- With <a href="http://ffmpeg.org/ffmpeg.html#Stream-copy" target="_blank">-c copy</a> the streams will be <code>stream copied</code>, not re-encoded, so there will be no quality loss. If you want to re-encode, see <a href="https://trac.ffmpeg.org/wiki/Encode/H.264" target="_blank"><strong>FFmpeg Wiki: H.264 Encoding Guide</strong></a>.- The <code>-shortest</code> option will cause the output duration to match the duration of the shortest input stream.- See the <a href="http://ffmpeg.org/ffmpeg.html#Advanced-options" target="_blank"><code>-map</code> option documentation</a> for more info.</p><h2 id="concat-demuxer">Concat demuxer<a class="headerlink" href="#concat-demuxer" title="Permanent link">&para;</a></h2><p>First, make a text file.<div class="language-text highlight"><pre><span></span><code><span id="__span-7-1"><a id="__codelineno-7-1" name="__codelineno-7-1" href="#__codelineno-7-1"></a>file &#39;in1.mp4&#39;</span><span id="__span-7-2"><a id="__codelineno-7-2" name="__codelineno-7-2" href="#__codelineno-7-2"></a>file &#39;in2.mp4&#39;</span><span id="__span-7-3"><a id="__codelineno-7-3" name="__codelineno-7-3" href="#__codelineno-7-3"></a>file &#39;in3.mp4&#39;</span><span id="__span-7-4"><a id="__codelineno-7-4" name="__codelineno-7-4" href="#__codelineno-7-4"></a>file &#39;in4.mp4&#39;</span></code></pre></div>Then, run <code>ffmpeg</code>:<div class="language-text highlight"><pre><span></span><code><span id="__span-8-1"><a id="__codelineno-8-1" name="__codelineno-8-1" href="#__codelineno-8-1"></a>ffmpeg -f concat -i list.txt -c copy out.mp4</span></code></pre></div></p><h2 id="delay-audiovideo">Delay audio/video<a class="headerlink" href="#delay-audiovideo" title="Permanent link">&para;</a></h2><p>Delay video by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-9-1"><a id="__codelineno-9-1" name="__codelineno-9-1" href="#__codelineno-9-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4</span></code></pre></div>Delay audio by 3.84 seconds:<div class="language-text highlight"><pre><span></span><code><span id="__span-10-1"><a id="__codelineno-10-1" name="__codelineno-10-1" href="#__codelineno-10-1"></a>ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4</span></code></pre></div></p><h2 id="burn-subtitles">Burn subtitles<a class="headerlink" href="#burn-subtitles" title="Permanent link">&para;</a></h2><p>Use the <a href="http://ffmpeg.org/ffmpeg.html#ass" target="_blank">libass</a> library (make sure your ffmpeg install has the library in the configuration <code>--enable-libass</code>).</p><p>First convert the subtitles to .ass format:<div class="language-text highlight"><pre><span></span><code><span id="__span-11-1"><a id="__codelineno-11-1" name="__codelineno-11-1" href="#__codelineno-11-1"></a>ffmpeg -i sub.srt sub.ass</span></code></pre></div>Then add them using a video filter:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-12-1"><a id="__codelineno-12-1" name="__codelineno-12-1" href="#__codelineno-12-1"></a>ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4</span></code></pre></div><h2 id="extract-the-frames-from-a-video">Extract the frames from a video<a class="headerlink" href="#extract-the-frames-from-a-video" title="Permanent link">&para;</a></h2><p>To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-13-1"><a id="__codelineno-13-1" name="__codelineno-13-1" href="#__codelineno-13-1"></a>ffmpeg -i in.mp4 -vf select=&#39;between(t,1,5)+between(t,11,15)&#39; -vsync 0 out%d.png</span></code></pre></div><p>To extract one frame per second only:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a>ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png</span></code></pre></div><h2 id="rotate-a-video">Rotate a video<a class="headerlink" href="#rotate-a-video" title="Permanent link">&para;</a></h2><p>Rotate 90 clockwise:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-15-1"><a id="__codelineno-15-1" name="__codelineno-15-1" href="#__codelineno-15-1"></a>ffmpeg -i in.mov -vf &quot;transpose=1&quot; out.mov</span></code></pre></div><p>For the transpose parameter you can pass:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-16-1"><a id="__codelineno-16-1" name="__codelineno-16-1" href="#__codelineno-16-1"></a>0 = 90CounterCLockwise and Vertical Flip (default)</span><span id="__span-16-2"><a id="__codelineno-16-2" name="__codelineno-16-2" href="#__codelineno-16-2"></a>1 = 90Clockwise</span><span id="__span-16-3"><a id="__codelineno-16-3" name="__codelineno-16-3" href="#__codelineno-16-3"></a>2 = 90CounterClockwise</span><span id="__span-16-4"><a id="__codelineno-16-4" name="__codelineno-16-4" href="#__codelineno-16-4"></a>3 = 90Clockwise and Vertical Flip</span></code></pre></div><p>Use <code>-vf "transpose=2,transpose=2"</code> for 180 degrees.</p><h2 id="download-transport-stream-video-streams">Download "Transport Stream" video streams<a class="headerlink" href="#download-transport-stream-video-streams" title="Permanent link">&para;</a></h2><ol><li>Locate the playlist file, e.g. using Chrome &gt; F12 &gt; Network &gt; Filter: m3u8</li><li>Download and concatenate the video fragments:</li></ol><div class="language-text highlight"><pre><span></span><code><span id="__span-17-1"><a id="__codelineno-17-1" name="__codelineno-17-1" href="#__codelineno-17-1"></a>ffmpeg -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><p>If you get a "Protocol 'https not on whitelist 'file,crypto'!" error, add the <code>protocol_whitelist</code> option:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-18-1"><a id="__codelineno-18-1" name="__codelineno-18-1" href="#__codelineno-18-1"></a>ffmpeg -protocol_whitelist &quot;file,http,https,tcp,tls&quot; -i &quot;path_to_playlist.m3u8&quot; -c copy -bsf:a aac_adtstoasc out.mp4</span></code></pre></div><h2 id="mute-some-of-the-audio">Mute some of the audio<a class="headerlink" href="#mute-some-of-the-audio" title="Permanent link">&para;</a></h2><p>To replace the first 90 seconds of audio with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-19-1"><a id="__codelineno-19-1" name="__codelineno-19-1" href="#__codelineno-19-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;lte(t,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><p>To replace all audio between 1'20" and 1'30" with silence:</p><div class="language-text highlight"><pre><span></span><code><span id="__span-20-1"><a id="__codelineno-20-1" name="__codelineno-20-1" href="#__codelineno-20-1"></a>ffmpeg -i in.mp4 -vcodec copy -af &quot;volume=enable=&#39;between(t,80,90)&#39;:volume=0&quot; out.mp4</span></code></pre></div><h2 id="deinterlace">Deinterlace<a class="headerlink" href="#deinterlace" title="Permanent link">&para;</a></h2><p>Deinterlacing using "yet another deinterlacing filter".</p><div class="language-text highlight"><pre><span></span><code><span id="__span-21-1"><a id="__codelineno-21-1" name="__codelineno-21-1" href="#__codelineno-21-1"></a>ffmpeg -i in.mp4 -vf yadif out.mp4</span></code></pre></div><h2 id="create-a-video-slideshow-from-images">Create a video slideshow from images<a class="headerlink" href="#create-a-video-slideshow-from-images" title="Permanent link">&para;</a></h2><p>Parameters: <code>-r</code> marks the image framerate (inverse time of each image); <code>-vf fps=25</code> marks the true framerate of the output.</p><div class="language-text highlight"><pre><span></span><code><span id="__span-22-1"><a id="__codelineno-22-1" name="__codelineno-22-1" href="#__codelineno-22-1"></a>ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4</span></code></pre></div><h2 id="extract-images-from-a-video">Extract images from a video<a class="headerlink" href="#extract-images-from-a-video" title="Permanent link">&para;</a></h2><ul><li>Extract all frames: <code>ffmpeg -i input.mp4 thumb%04d.jpg -hide_banner</code></li><li>Extract a frame each second: <code>ffmpeg -i input.mp4 -vf fps=1 thumb%04d.jpg -hide_banner</code></li><li>Extract only one frame: <code>ffmpeg -i input.mp4 -ss 00:00:10.000 -vframes 1 thumb.jpg</code></li></ul><h2 id="display-the-frame-number-on-each-frame">Display the frame number on each frame<a class="headerlink" href="#display-the-frame-number-on-each-frame" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-23-1"><a id="__codelineno-23-1" name="__codelineno-23-1" href="#__codelineno-23-1"></a>ffmpeg -i in.mov -vf &quot;drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72&quot; -y out.mov</span></code></pre></div><h2 id="metadata-change-the-title">Metadata: Change the title<a class="headerlink" href="#metadata-change-the-title" title="Permanent link">&para;</a></h2><div class="language-text highlight"><pre><span></span><code><span id="__span-24-1"><a id="__codelineno-24-1" name="__codelineno-24-1" href="#__codelineno-24-1"></a>ffmpeg -i in.mp4 -map_metadata -1 -metadata title=&quot;My Title&quot; -c:v copy -c:a copy out.mp4</span></code></pre></div><h3 id="wrap-up">Wrap up<a class="headerlink" href="#wrap-up" title="Permanent link">&para;</a></h3><p>That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.</p>https://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ Tue, 17 Sep 2024 13:36:31 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/ffmpeg-cheats/ My Cosmic Experience ArchLinux Cosmic Linux <div class="admonition note"><p class="admonition-title">Note</p><p>Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.</p></div><h3 id="installation">Installation<a class="headerlink" href="#installation" title="Permanent link">&para;</a></h3><p>The <a href="https://xerolinux.xyz/posts/arch-cosmic/" target="_blank"><strong>Cosmic DE</strong></a> hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.</p><p align="center"> <img src="https://i.imgur.com/Fvl9uRU.png"></p><p>Since I am an avid <strong>ArchLinux</strong> user, that's how I installed it. I did not use the <strong>Pop!_OS 24.04 LTS alpha</strong> ISO from &gt;&gt; <a href="https://system76.com/cosmic" target="_blank"><strong>Cosmic Downloads</strong></a>. So my views come from there. So I cannot compare.</p><p>Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the <strong>ArchInstall</strong> profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.</p><p>Now on to the more detailed things I have done to install <strong>Cosmic</strong>. I first installed <strong>Arch Minimal</strong> using the <strong>ArchInstall</strong> script, meaning that I avoided the profiles, &amp; drivers sections completely, I always choose <code>Grub</code> as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in <code>chroot</code> I installed the DE the following way, knowing that, we can skip the use of <code>sudo</code> since we are still logged in as root...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a>pacman<span class="w"> </span>-Syy<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>pacman<span class="w"> </span>-S<span class="w"> </span>cosmic<span class="w"> </span>linux-headers<span class="w"> </span>pacman-contrib<span class="w"> </span>xdg-user-dirs<span class="w"> </span>power-profiles-daemon<span class="w"> </span>wayland-protocols<span class="w"> </span>wayland-utils</span></code></pre></div><p align="center"> <img src="https://i.imgur.com/tR8WJJI.png"></p><p>Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because <a href="https://archlinux.org/packages/?sort=&amp;q=cosmic&amp;maintainer=&amp;flagged=" target="_blank"><strong>cosmic</strong></a> is not a single one, it's a <em>Group</em> of packages or a <em>meta-package</em> as it is known as. That said, the reason I installed <code>linux-headers</code> is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially <code>xdg-user-dirs</code> without which no <code>Documents, Pictures, Videos...</code> folders will be created. Strange I know.</p><p>What I also found weird, is the fact that <code>cosmic-greeter</code> service was not being enabled after install which was netting me a boot to <code>TTY</code> session. So I had to enable it while at the same time generating the <code>user-dirs</code> via...</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-1-1"><a id="__codelineno-1-1" name="__codelineno-1-1" href="#__codelineno-1-1"></a>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>cosmic-greeter.service<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>xdg-user-dirs-update</span></code></pre></div><p>Keep in mind that I am doing all this while still in <code>chroot</code> post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.</p><h3 id="experience">Experience<a class="headerlink" href="#experience" title="Permanent link">&para;</a></h3><p>Now on to what y'all came here for. All was good, well sorta, system rebooted into <code>Grub</code>, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some <code>TTY dmsg</code> errors, flickering on and off. But after a few seconds I finally saw the <strong>Cosmic Greeter</strong> login screen, relief finally.</p><p align="center"> <img src="https://i.imgur.com/TPjWMjR.png"></p><p>I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an <strong>nVidia</strong> user, I thought could be a driver issue since on first boot it uses the not so great <code>nouveau</code> ones. That's why my first reflex was to install them, so I did.</p><p align="center"> <img src="https://i.imgur.com/VotUyBS.jpeg"></p><p>After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about <code>EGL drm</code> crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?</p><p>As it turns out I had forgotten to include the <code>nVidia drm kernel modules</code> lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.</p><div class="language-Bash highlight"><pre><span></span><code><span id="__span-2-1"><a id="__codelineno-2-1" name="__codelineno-2-1" href="#__codelineno-2-1"></a>sudo<span class="w"> </span>sed<span class="w"> </span>-i<span class="w"> </span><span class="s1">&#39;/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/&#39;</span><span class="w"> </span>/etc/mkinitcpio.conf</span><span id="__span-2-2"><a id="__codelineno-2-2" name="__codelineno-2-2" href="#__codelineno-2-2"></a>sudo<span class="w"> </span>systemctl<span class="w"> </span><span class="nb">enable</span><span class="w"> </span>nvidia-suspend.service<span class="w"> </span>nvidia-hibernate.service<span class="w"> </span>nvidia-resume.service<span class="w"> </span>nvidia-powerd.service</span><span id="__span-2-3"><a id="__codelineno-2-3" name="__codelineno-2-3" href="#__codelineno-2-3"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf</span><span id="__span-2-4"><a id="__codelineno-2-4" name="__codelineno-2-4" href="#__codelineno-2-4"></a><span class="nb">echo</span><span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;options nvidia_drm modeset=1 fbdev=1&#39;</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>sudo<span class="w"> </span>tee<span class="w"> </span>-a<span class="w"> </span>/etc/modprobe.d/nvidia.conf<span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span>sudo<span class="w"> </span>mkinitcpio<span class="w"> </span>-P</span></code></pre></div><p>After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like <strong>XFCE</strong>. Fired up <code>top</code> to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than <strong>KDE Plasma</strong> ! Nice !</p><p>Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run <code>nmtui</code> and deactivate it from there making sure it doesn't automatically reconnect on login.</p><p>Now on to the <code>System Settings</code>. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..</p><p>That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.</p><p>Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean <strong>Cosmic-Notes</strong> was there, just not handling documents...</p><p>I try to right-click &gt; open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself "It's Alpha Software, calm down Steve".</p><p>To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a <code>CLI</code> and no default app set ? I dunno.</p><p>Finally I decided to try out the thing that almost everyone's raving about, <strong>Tiling/Stacking</strong>. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...</p><p>That's where I gave up and decided to go back home to <strong>KDE Plasma</strong>.</p><h3 id="final-words">Final words<a class="headerlink" href="#final-words" title="Permanent link">&para;</a></h3><p>Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.</p><p>It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.</p><p>I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. <strong>Cosmic</strong> has come a long way in such a short time. I mean, writing a DE from scratch using <strong>Rust</strong> a sorta new programming language is no easy feat.</p><p>I will end the post by congratulating the <strong>System76</strong> dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a <strong>XeroCosmic</strong> to the family.. Just don't hold your breath on that, it ain't set in stone.</p>https://bytes.xerolinux.xyz/tech/cosmic-experience/ Thu, 12 Sep 2024 13:16:04 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/cosmic-experience/ Developing is fun Developer Development Linux <h3 id="am-i-a-developer">Am I a Developer ?<a class="headerlink" href="#am-i-a-developer" title="Permanent link">&para;</a></h3><p>Lol, yeah, I know—it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code—specifically <strong>Bash</strong>. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.</p><p><img alt="type:video" src="https://www.youtube.com/embed/8_K-NOu-STs" /></p><p>And if it does work, I'm happy and share the result with the <strong>FOSS</strong> community.</p><h3 id="its-fun-until">It's fun until...<a class="headerlink" href="#its-fun-until" title="Permanent link">&para;</a></h3><p>Doing this is super fun and fulfilling—until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.</p><p>Now, I know I can reach out to the <strong>FOSS</strong> community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.</p><p>Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere—not just in <strong>FOSS</strong>. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.</p><p>Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.</p><h3 id="sharing-is-caring">Sharing is caring<a class="headerlink" href="#sharing-is-caring" title="Permanent link">&para;</a></h3><p>This is the part where I say: please, don't keep your work to yourself. Share it with the community—who knows, maybe you'll find someone who can help take your project to another level.</p><p>I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.</p><p>"Sharing is caring," as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)</p>https://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Fri, 06 Sep 2024 16:15:59 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/developing-is-fun-but/ Linux in a Nutshell Kernel Linux Packages <p>I thought I'd share this explanation about <strong>Linux</strong> a good friend and fellow Linux enthusiast <a href="https://github.com/REALERvolker1" target="_blank"><strong>REALERvolker1</strong></a> recently posted on <strong>Discord</strong>.</p><div class="admonition tip"><p class="admonition-title">Tip</p><p>The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various <em>Desktop Environments</em> or <em>Window Managers</em>. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...</p></div><h3 id="what-is-linux">What is Linux ?<a class="headerlink" href="#what-is-linux" title="Permanent link">&para;</a></h3><p>Since not everyone's super familiar with Linux, here's a quick crash course.</p><p>Linux is a <a href="https://en.wikipedia.org/wiki/Monolithic_kernel#:~:text=A%20monolithic%20kernel%20is%20an,virtual%20interface%20over%20computer%20hardware." target="_blank"><strong>Monolithic Kernel</strong></a>, so all the drivers and whatnot are compiled into the binary. The <a href="https://www.fsf.org/about/what-is-free-software" target="_blank"><strong>Nonfree software</strong></a> is usually put in the actual source repo as binary blobs, or in the case of <strong>nVidia</strong> drivers, built using a system called <a href="https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support" target="_blank"><strong>DKMS</strong></a> and compiled into the kernel binary.</p><p>Once the computer boots up, an init process is started (the default is <code>/sbin/init</code>, usually a symlink to your init system), which is <code>PID 1</code>. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having <em>too</em> much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.</p><p>Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being <a href="https://en.wikipedia.org/wiki/POSIX" target="_blank"><strong>POSIX</strong></a> compliant, and not really caring about file extensions.</p><p align="center"> <img width="600" src="https://i.imgur.com/Mu7NHx9.png" alt="logo"></p><h3 id="distros-pkg-managers">Distros &amp; PKG Managers<a class="headerlink" href="#distros-pkg-managers" title="Permanent link">&para;</a></h3><p>On <a href="https://www.debian.org" target="_blank"><strong>Debian</strong></a>, you install packages with <code>apt</code>. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a <em>GUI</em> frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the <a href="https://wiki.debian.org/DontBreakDebian" target="_blank"><strong>Debian Wiki</strong></a> is pretty mid, but the <a href="https://wiki.archlinux.org" target="_blank"><strong>Arch Wiki</strong></a> is amazing.</p><p>Since <a href="https://archlinux.org" target="_blank"><strong>Arch Linux</strong></a> aims to be the most generic <em>Linux distro</em> ever, information written for it should also help with <strong>Debian</strong>, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:</p><ul><li><strong>Flatpak:</strong> Sandboxed apps that "just work" on every distribution.</li><li><strong>Snap:</strong> <em>Ubuntu</em>'s sandboxed apps that are supposed to work on every distribution but have had mixed results.</li><li><strong>AppImages:</strong> These are like <code>.exe</code> files on <strong>Windows</strong>, but they require adding executable permissions and manually launching them. They also won't have a desktop entry by default.</li></ul><h3 id="filesystem-updates">Filesystem &amp; Updates<a class="headerlink" href="#filesystem-updates" title="Permanent link">&para;</a></h3><p>If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not—it might fix a bug.</p><p>As for the filesystem:</p><ul><li><code>/etc</code> is where your Editable Text Configurations go.</li><li><code>/usr</code> is where program files go.</li><li><code>/usr/local</code> is where program files go for programs you manually installed.</li><li><code>/home</code> is where your personal files go.</li><li><code>/dev</code> is for device files.</li><li>There is no <code>C</code> or <code>D</code> drive; instead, you mount external drives to a location, like <code>/mnt</code>. A GUI file manager mounts flash drives somewhere in <code>/run</code> since it is temporary.</li><li><code>/opt</code> is where miscellaneous stuff goes.</li><li><code>/var</code> is for variable data like system logs.</li><li><code>/tmp</code> is for temporary files.</li><li><code>/dev/null</code> is a "black hole" for data you want to discard.</li><li><code>/dev/urandom</code> is an IO-based random number generator.</li></ul><p>In <a href="https://en.wikipedia.org/wiki/Unix" target="_blank"><strong>UNIX</strong></a>, everything is a file. This means you can:</p><ul><li>See process details by reading files in <code>/proc</code>.</li><li>Check system settings or driver configurations in <code>/sys</code>.</li><li>View your bootloader in <code>/boot</code>.</li></ul><h3 id="wrapping-it-all-up">Wrapping it all up<a class="headerlink" href="#wrapping-it-all-up" title="Permanent link">&para;</a></h3><p>This was a quick run-through explaining what <strong>GNU/Linux</strong> is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.</p>https://bytes.xerolinux.xyz/docs/linux-explained/ Fri, 06 Sep 2024 13:06:17 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/docs/linux-explained/ Be Thankful Content Creation Linux YouTube <h3 id="whats-this">What's This?<a class="headerlink" href="#whats-this" title="Permanent link">&para;</a></h3><p>Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.</p><h3 id="content-creators">Content Creators<a class="headerlink" href="#content-creators" title="Permanent link">&para;</a></h3><p>Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.</p><p>YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.</p><p>Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.</p><h3 id="writers-blog-posters">Writers / Blog Posters<a class="headerlink" href="#writers-blog-posters" title="Permanent link">&para;</a></h3><p>This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.</p><p>One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I’ve learned to improve, and I thank them for that.</p><h3 id="appreciating-ccs-and-writers">Appreciating CCs and Writers<a class="headerlink" href="#appreciating-ccs-and-writers" title="Permanent link">&para;</a></h3><p>We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.</p><p>Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.</p><p>As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.</p><h3 id="fostering-a-positive-community">Fostering a Positive Community<a class="headerlink" href="#fostering-a-positive-community" title="Permanent link">&para;</a></h3><p>The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.</p><p>When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.</p><p>Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.</p><h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3><p>Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.</p>https://bytes.xerolinux.xyz/priv/be-thankful/ Fri, 06 Sep 2024 12:30:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/be-thankful/ FOSS Struggles FOSS Fundraising Health Linux Struggles <h3 id="hello-everyone">Hello everyone,<a class="headerlink" href="#hello-everyone" title="Permanent link">&para;</a></h3><p>Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.</p><p>Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.</p><blockquote><p>P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let’s dive in.</p></blockquote><p><img alt="type:video" src="https://www.youtube.com/embed/BpmAFwZy0Gg" /></p><h3 id="my-frustration">My Frustration<a class="headerlink" href="#my-frustration" title="Permanent link">&para;</a></h3><p>Recently, I’ve been investing a lot of time and effort into my projects and contributing to <strong>FOSS</strong> (Free and Open Source Software) wherever possible. While I find this work rewarding, it’s also been increasingly frustrating. Why? Let me explain.</p><p>I spend countless hours working behind the scenes to make everyone’s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it’s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I’m making a real impact.</p><h3 id="seeking-purpose">Seeking Purpose<a class="headerlink" href="#seeking-purpose" title="Permanent link">&para;</a></h3><p>Initially, I embarked on this journey for fun and to learn new things. However, lately, I’ve been questioning the purpose behind my efforts. It feels like I’m stuck in a cycle of constant work with little to show for it. This isn’t about blaming anyone; it’s about seeking the motivation to keep going.</p><h3 id="monetization-attempts">Monetization Attempts<a class="headerlink" href="#monetization-attempts" title="Permanent link">&para;</a></h3><p>As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a "pay what you can" model, hoping it would help sustain my work. However, this didn’t go as planned.</p><p>The <strong>FOSS</strong> community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It’s a complex issue, and while some have been supportive, overall, the response hasn’t been enough to make a significant difference.</p><h3 id="health-concerns">Health Concerns<a class="headerlink" href="#health-concerns" title="Permanent link">&para;</a></h3><p>On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn’t cheap, and without stable income, it’s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.</p><h3 id="mental-health-struggles">Mental Health Struggles<a class="headerlink" href="#mental-health-struggles" title="Permanent link">&para;</a></h3><p>The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.</p><h3 id="the-way-forward">The Way Forward<a class="headerlink" href="#the-way-forward" title="Permanent link">&para;</a></h3><p>Given these circumstances, I’m focusing more on forums and this blog. Writing provides a creative outlet that isn’t constrained by algorithms or view counts. I’ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.</p><p>My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.</p><h3 id="closing-thoughts">Closing Thoughts<a class="headerlink" href="#closing-thoughts" title="Permanent link">&para;</a></h3><p>I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.</p><p>For now, I need to prioritize my well-being and financial stability. Once those are in place, I’ll be back with future projects. Right now, I’m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.</p><p>Thank you for understanding and supporting me through this journey.</p>https://bytes.xerolinux.xyz/priv/real-foss-struggles/ Fri, 06 Sep 2024 12:30:00 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/priv/real-foss-struggles/ Docker A Love Story Containers Docker Linux <h3 id="what-is-docker">What is Docker ?<a class="headerlink" href="#what-is-docker" title="Permanent link">&para;</a></h3><p><a href="https://docker.com/" target="_blank"><strong>Docker</strong></a> is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.</p><p align="center"> <img width="500" src="https://i.imgur.com/bbD4JDy.png" alt="logo"></p><h3 id="how-it-all-started">How it all started<a class="headerlink" href="#how-it-all-started" title="Permanent link">&para;</a></h3><p>It all started with <a href="https://distrobox.it/" target="_blank"><strong>Distrobox</strong></a>. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered <strong>Docker</strong> containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like <a href="https://immich.app/" target="_blank"><strong>Immich</strong></a> for images and videos, which would allow me to sync my devices locally rather than with <a href="https://icloud.com" target="_blank"><strong>Apple iCloud</strong></a> or <strong>Google</strong> making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...</p><p>With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3<sup>rd</sup> party conglomerates made me fall in love more and more as time went by...</p><h3 id="my-setup-so-far">My setup so far<a class="headerlink" href="#my-setup-so-far" title="Permanent link">&para;</a></h3><p>Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive <strong>MY</strong> setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.</p><p align="center"> <img width="500" src="https://i.imgur.com/DhfbUBs.png" alt="logo"></p><ul><li><strong>Homepage</strong></li></ul><p>To start off, let me tell you what am using for the page you see in the image, it's simply called <a href="https://gethomepage.dev" target="_blank"><strong>Homepage</strong></a>. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via <a href="https://en.wikipedia.org/wiki/YAML" target="_blank"><strong>YAML</strong></a> configurations files, and that the community behind it are so damn friendly ! Yep, there is no <em>dumb</em> question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their <a href="https://discord.gg/k4ruYNrudu" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>File Browser</strong></li></ul><p>As for the File Browser I use to share files between PCs, it's also has a <em>creative</em> name lol, just called <a href="https://filebrowser.org" target="_blank"><strong>FileBrowser</strong></a>, it serves one purpose, browsing files, with ability to upload &amp; download from/to any PC. That's it. It just works nothing else to say about that.</p><ul><li><strong>Search Engine (Xoogle)</strong></li></ul><p>Hehe, the only reason I called it <em>Xoogle</em> is coz it's Xero + Google, get it ? Anyway, this is using something called <a href="https://whoogle.io" target="_blank"><strong>Whoogle</strong></a>, weird name I know, loogs damn ugly too. It's just a search engine that uses <strong>Google</strong> stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of <strong>Google</strong> the way it was back in the day..</p><ul><li><strong>Vaultwarden</strong></li></ul><p>That's a 3<sup>rd</sup>-party <a href="https://bitwarden.com" target="_blank"><strong>Bitwarden</strong></a> server-as-a-container, endorsed by them so can be trusted called <a href="https://github.com/dani-garcia/vaultwarden" target="_blank"><strong>Vaultwarden</strong></a>. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.</p><ul><li><strong>ShareX</strong></li></ul><p>This one is not for everyone. It uses <a href="https://zipline.diced.sh" target="_blank"><strong>Zipline</strong></a>. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.</p><ul><li><strong>My Comics</strong></li></ul><p>I am a big fan of comic books, especially the ones from my childhood. This container uses <a href="https://kavitareader.com/" target="_blank"><strong>Kavita</strong></a>. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their <a href="https://discord.gg/b52wT37kt7" target="_blank"><strong>Discord Server</strong></a>.</p><ul><li><strong>Audiobookshelf</strong></li></ul><p>I guess I do not need to explain that one. It's just a docker container for <a href="https://www.audiobookshelf.org" target="_blank"><strong>Audiobookshelf</strong></a>. In case you have some Audio books or podcasts. Have fun.</p><ul><li><strong>FreshRSS</strong></li></ul><p>That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called <a href="https://www.freshrss.org" target="_blank"><strong>FreshRSS</strong></a>. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.</p><ul><li><strong>Immich</strong></li></ul><p>Now, this is one of the big ones, <a href="https://immich.app" target="_blank"><strong>Immich</strong></a> is an amazing image cloud like service. Allowing you to move away from <strong>Apple</strong> and <strong>Google</strong>. I love that as I said at the beginning of this long post. They even have companion apps for both <a href="https://play.google.com/store/apps/details?id=app.alextran.immich" target="_blank"><strong>Android</strong></a> and <a href="https://apps.apple.com/sg/app/immich/id1613945652" target="_blank"><strong>iOS</strong></a> which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.</p><h3 id="you-get-the-idea">You get the idea<a class="headerlink" href="#you-get-the-idea" title="Permanent link">&para;</a></h3><p>Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's <strong>BIG</strong> rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.</p><ul><li><a href="https://plex.tv" target="_blank"><strong>Plex Server</strong></a></li><li><a href="https://github.com/alexta69/metube" target="_blank"><strong>meTube</strong></a></li><li><a href="https://koel.dev" target="_blank"><strong>Koel</strong></a></li><li><a href="https://tautulli.com" target="_blank"><strong>Tautulli</strong></a></li><li><a href="https://www.portainer.io" target="_blank"><strong>Portainer</strong></a></li><li><a href="https://github.com/schlagmichdoch/pairdrop" target="_blank"><strong>PairDrop</strong></a></li><li><a href="https://github.com/CorentinTh/it-tools" target="_blank"><strong>IT-Tools</strong></a></li><li><a href="https://cockpit-project.org" target="_blank"><strong>Cockpit</strong></a></li></ul><h3 id="where-to-find-more-containers">Where to find more containers ?<a class="headerlink" href="#where-to-find-more-containers" title="Permanent link">&para;</a></h3><p>Well, there are many places, but my favorite has to be <a href="https://selfh.st/apps/" target="_blank"><strong>Selfh.st</strong></a> hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.</p><h3 id="closing-words">Closing words<a class="headerlink" href="#closing-words" title="Permanent link">&para;</a></h3><p>Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.</p><p>Thanks again for reading this. If you want to discuss the matter, you can <em>Toot</em> me on <a href="https://fosstodon.org/@XeroLinux" target="_blank"><strong>Fosstodon</strong></a> or by joining me on my <a href="https://discord.gg/5sqxTSuKZu" target="_blank"><strong>Discord Server</strong></a>.</p>https://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ Thu, 05 Sep 2024 00:31:15 +0300DarkXero's Byteshttps://bytes.xerolinux.xyz/tech/docker-containers-a-love-story/ \ No newline at end of file diff --git a/site/search/search_index.json b/site/search/search_index.json index 7330aac..60ed3fc 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe0Home","text":""},{"location":"#welcome","title":"Welcome","text":"

Info

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

"},{"location":"SUMMARY/","title":"SUMMARY","text":""},{"location":"docs/affinity-linux/","title":"Affinity on Linux","text":"

Warning

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#installation","title":"Installation","text":"

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#wrap-up","title":"Wrap up","text":"

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/ffmpeg-cheats/","title":"FFmpeg Cheat Sheet","text":"","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#installation","title":"Installation","text":"

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n

Now that we have it, it's time for the cheat sheet.

.// The Cheat Sheet \\\\.","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#basic-conversion","title":"Basic conversion","text":"
ffmpeg -i in.mp4 out.avi\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#remux-an-mkv-file-into-mp4","title":"Remux an MKV file into MP4","text":"
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#high-quality-encoding","title":"High-quality encoding","text":"

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#trimming","title":"Trimming","text":"

Without re-encoding:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds) - -t specifies the duration of the clip (same format). - Recent ffmpeg also has a flag to supply the end time with -to. - -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

With re-encoding:

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

For example:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#mux-video-and-audio-from-another-video","title":"Mux video and audio from another video","text":"

To copy the video from in0.mp4 and audio from in1.mp4:

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide. - The -shortest option will cause the output duration to match the duration of the shortest input stream. - See the -map option documentation for more info.","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#concat-demuxer","title":"Concat demuxer","text":"

First, make a text file.

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
Then, run ffmpeg:
ffmpeg -f concat -i list.txt -c copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#delay-audiovideo","title":"Delay audio/video","text":"

Delay video by 3.84 seconds:

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
Delay audio by 3.84 seconds:
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#burn-subtitles","title":"Burn subtitles","text":"

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

First convert the subtitles to .ass format:

ffmpeg -i sub.srt sub.ass\n
Then add them using a video filter:
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#extract-the-frames-from-a-video","title":"Extract the frames from a video","text":"

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n

To extract one frame per second only:

ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#rotate-a-video","title":"Rotate a video","text":"

Rotate 90 clockwise:

ffmpeg -i in.mov -vf \"transpose=1\" out.mov\n

For the transpose parameter you can pass:

0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#download-transport-stream-video-streams","title":"Download \"Transport Stream\" video streams","text":"
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. Download and concatenate the video fragments:
ffmpeg -i \"path_to_playlist.m3u8\" -c copy -bsf:a aac_adtstoasc out.mp4\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

ffmpeg -protocol_whitelist \"file,http,https,tcp,tls\" -i \"path_to_playlist.m3u8\" -c copy -bsf:a aac_adtstoasc out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#mute-some-of-the-audio","title":"Mute some of the audio","text":"

To replace the first 90 seconds of audio with silence:

ffmpeg -i in.mp4 -vcodec copy -af \"volume=enable='lte(t,90)':volume=0\" out.mp4\n

To replace all audio between 1'20\" and 1'30\" with silence:

ffmpeg -i in.mp4 -vcodec copy -af \"volume=enable='between(t,80,90)':volume=0\" out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#deinterlace","title":"Deinterlace","text":"

Deinterlacing using \"yet another deinterlacing filter\".

ffmpeg -i in.mp4 -vf yadif out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#create-a-video-slideshow-from-images","title":"Create a video slideshow from images","text":"

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#extract-images-from-a-video","title":"Extract images from a video","text":"","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#display-the-frame-number-on-each-frame","title":"Display the frame number on each frame","text":"
ffmpeg -i in.mov -vf \"drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72\" -y out.mov\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#metadata-change-the-title","title":"Metadata: Change the title","text":"
ffmpeg -i in.mp4 -map_metadata -1 -metadata title=\"My Title\" -c:v copy -c:a copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#wrap-up","title":"Wrap up","text":"

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/linux-explained/","title":"Linux in a Nutshell","text":"

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

Tip

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#what-is-linux","title":"What is Linux ?","text":"

Since not everyone's super familiar with Linux, here's a quick crash course.

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#distros-pkg-managers","title":"Distros & PKG Managers","text":"

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#filesystem-updates","title":"Filesystem & Updates","text":"

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

As for the filesystem:

In UNIX, everything is a file. This means you can:

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#wrapping-it-all-up","title":"Wrapping it all up","text":"

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

","tags":["Linux","Kernel","Packages"]},{"location":"docs/mkdocs-install/","title":"MKDocs Install","text":"","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#installing-mkdocs","title":"Installing MKDocs","text":"

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n

Donce that's done we need to create the site. There's a command for that.

mkdocs new my-project\ncd my-project\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#plugins-extra-stuff","title":"Plugins & Extra Stuff","text":"

I have found a few that I liked on the AUR, let's install them via :

paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n

To activate them we edit the same mkdocs.yml file as before like so :

plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/passwd-reset/","title":"Reset Password","text":"","tags":["Linux","Reset","Recovery"]},{"location":"docs/passwd-reset/#information","title":"Information","text":"

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

","tags":["Linux","Reset","Recovery"]},{"location":"docs/passwd-reset/#lets-do-this","title":"Let's do this \ud83d\ude80","text":"

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

If this is a laptop or a desktop which you have next to you then follow these steps.

  1. Shut down the device.
  2. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  3. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  4. Press Ctrl+x, or F10, to boot.
  5. You will see a root prompt.
:#\n

Remount the filesystem in read/write mode:

:# mount -no remount,rw /\n
  1. Set the password of any user(s).
:# passwd joe\n
  1. Reboot with the command reboot -f.

That's it ! The new password should work now.

","tags":["Linux","Reset","Recovery"]},{"location":"docs/sddm-display/","title":"SDDM Display","text":"","tags":["Linux","SDDM","Display"]},{"location":"docs/sddm-display/#information","title":"Information","text":"

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

","tags":["Linux","SDDM","Display"]},{"location":"docs/sddm-display/#lets-fix-it","title":"Let's fix it \ud83d\ude80","text":"

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

xrandr | grep -w connected\n

Output should be like this (mine)

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

This is my own Xsetup for the login window, yours may differ :

#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n

If you want to manually edit the file

sudo nano /usr/share/sddm/scripts/Xsetup\n

Paste the output of your xrandr command as I did above in there save & reboot.

That's it y'all..

","tags":["Linux","SDDM","Display"]},{"location":"priv/be-thankful/","title":"Be Thankful","text":"","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#whats-this","title":"What's This?","text":"

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#content-creators","title":"Content Creators","text":"

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#writers-blog-posters","title":"Writers / Blog Posters","text":"

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#appreciating-ccs-and-writers","title":"Appreciating CCs and Writers","text":"

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#fostering-a-positive-community","title":"Fostering a Positive Community","text":"

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#conclusion","title":"Conclusion","text":"

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/current-situation/","title":"Current Situation","text":"

Info

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

Hello everyone,

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

Your help and support would be, potentially life saving !

","tags":["War","Lebanon","Situation","Struggles"]},{"location":"priv/developing-is-fun-but/","title":"Developing is fun","text":"","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#am-i-a-developer","title":"Am I a Developer ?","text":"

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

And if it does work, I'm happy and share the result with the FOSS community.

","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#its-fun-until","title":"It's fun until...","text":"

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#sharing-is-caring","title":"Sharing is caring","text":"

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

","tags":["Linux","Development","Developer"]},{"location":"priv/foss-fundraising/","title":"FOSS Fundraising","text":"","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#backstory","title":"Backstory","text":"

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#fundraising","title":"Fundraising","text":"

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#hate-in-foss","title":"Hate in FOSS","text":"

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

See ya there

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/real-foss-struggles/","title":"FOSS Struggles","text":"","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#hello-everyone","title":"Hello everyone,","text":"

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#my-frustration","title":"My Frustration","text":"

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#seeking-purpose","title":"Seeking Purpose","text":"

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#monetization-attempts","title":"Monetization Attempts","text":"

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#health-concerns","title":"Health Concerns","text":"

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#mental-health-struggles","title":"Mental Health Struggles","text":"

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#the-way-forward","title":"The Way Forward","text":"

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#closing-thoughts","title":"Closing Thoughts","text":"

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

Thank you for understanding and supporting me through this journey.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/rip-gamerking/","title":"RiP GamerKing","text":"\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

In Memoriam

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

","tags":["Lebanon","Warzone"]},{"location":"projects/other-xero-spins/","title":"Plans for other spins","text":"","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#information","title":"Information","text":"

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#its-complicated","title":"It's Complicated","text":"

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#the-good-news","title":"The Good News","text":"

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#the-future","title":"The Future","text":"

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

Thank you to each and everyone for the support.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/what-s-up-with-my-channel/","title":"XeroLinux Channel","text":"","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#youtube-channel","title":"YouTube Channel ?","text":"

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#what-now-xero","title":"What now Xero ?","text":"

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#whats-the-catch","title":"What's the Catch ?","text":"

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#future-plans","title":"Future Plans","text":"

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/why-is-distro-back/","title":"Why Revive XeroLinux","text":"

Info

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#what-is-xerolinux","title":"What is XeroLinux","text":"

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#why-is-xerolinux-back","title":"Why is XeroLinux back","text":"

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

That answers the why.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#how-to-get-it","title":"How to get it","text":"

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#is-it-any-special","title":"Is it any Special","text":"

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#how-to-get-it-for-free","title":"How to get it for free","text":"

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#i-dont-like-arch","title":"I don't like Arch","text":"

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#private-donations","title":"Private Donations","text":"

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#wrapping-up","title":"Wrapping up","text":"

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

Thank you to each and everyone for the support.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"tech/cosmic-experience/","title":"My Cosmic Experience","text":"

Note

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#installation","title":"Installation","text":"

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#experience","title":"Experience","text":"

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

That's where I gave up and decided to go back home to KDE Plasma.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#final-words","title":"Final words","text":"

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/docker-containers-a-love-story/","title":"Docker A Love Story","text":"","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#what-is-docker","title":"What is Docker ?","text":"

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#how-it-all-started","title":"How it all started","text":"

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#my-setup-so-far","title":"My setup so far","text":"

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#you-get-the-idea","title":"You get the idea","text":"

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#where-to-find-more-containers","title":"Where to find more containers ?","text":"

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#closing-words","title":"Closing words","text":"

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

","tags":["Linux","Docker","Containers"]},{"location":"tech/gpu-fund/","title":"GPU Fundraiser","text":"

Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

","tags":["Linux","Hardware"]}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"\ud83c\udfe0Home","text":""},{"location":"#welcome","title":"Welcome","text":"

Info

All the documentation found herein, will be for ArchLinux since that's the distro I use. Some will be general Linux ones. Also docs will be mostly modified to work for me and my hardware. Please do keep that in mind when going through this site.

Welcome to DarkXero's Bytes ! This is where I will be posting my thoughts, feelings and some documentation for myself so I do not have to keep looking for them. All the opinions, thoughts and feelings are my own. If I find something useful worth sharing publicly, I will be posting it on the XeroLinux main site.

Documenting my learning journey has become an essential part of my Linux experience. It's a powerful way to make life less stressful. Instead of wracking my brain trying to recall a solution from memory or scouring forums and wikis repeatedly for the same answers, I believe that a well-documented note can save time, reduce frustration, and make troubleshooting a far less daunting task. It becomes a reliable companion, ready to guide me whenever a familiar issue arises or a new challenge demands attention.

"},{"location":"SUMMARY/","title":"SUMMARY","text":""},{"location":"docs/affinity-linux/","title":"Affinity on Linux","text":"

Warning

This guide has been updated linking to maintainer's Github, since he has since deleted the scripts. I will try to keep this up to date, checking up on progress.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the installation of Affinity Apps on Linux thanks to Twig6943.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#installation","title":"Installation","text":"

First we will need to download the Photo, Designer or Publisher exe from the dropdown. Once we have it/them, follow the guide over on maintainer's Github

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/affinity-linux/#wrap-up","title":"Wrap up","text":"

That's it. Once all done we can launch them from the shortcuts the scripts create. That's the closest to Photoshop I have ever gotten, without having to go through WinBlows if ya know what I mean. Guide wasn't posted on main site due to the nature of the products included. Also this was, as I said earlier primarily written for myself so I do not have to go digging for it on the web. For archival purposes sorta.

","tags":["Linux","Affinity","Photoshop"]},{"location":"docs/ffmpeg-cheats/","title":"FFmpeg Cheat Sheet","text":"","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the use of FFmpeg on Linux.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#installation","title":"Installation","text":"

First we will need to install FFmpeg. I will be doing it on ArchLinux since that's what I use. Look for packages on your distro if you don't use it.

sudo pacman -S --noconfirm --needed ffmpeg ffmpegthumbnailer ffmpegthumbs qt6-multimedia-ffmpeg\n

Now that we have it, it's time for the cheat sheet.

.// The Cheat Sheet \\\\.","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#basic-conversion","title":"Basic conversion","text":"
ffmpeg -i in.mp4 out.avi\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#remux-an-mkv-file-into-mp4","title":"Remux an MKV file into MP4","text":"
ffmpeg -i in.mkv -c:v copy -c:a copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#high-quality-encoding","title":"High-quality encoding","text":"

Use the crf (Constant Rate Factor) parameter to control the output quality. The lower crf, the higher the quality (range: 0-51). The default value is 23, and visually lossless compression corresponds to -crf 18. Use the preset parameter to control the speed of the compression process. Additional info.

ffmpeg -i in.mp4 -preset slower -crf 18 out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#trimming","title":"Trimming","text":"

Without re-encoding:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c copy out.mp4\n
- -ss specifies the start time, e.g. 00:01:23.000 or 83 (in seconds) - -t specifies the duration of the clip (same format). - Recent ffmpeg also has a flag to supply the end time with -to. - -c copy copies the first video, audio, and subtitle bitstream from the input to the output file without re-encoding them. This won't harm the quality and make the command run within seconds.

With re-encoding:

If you leave out the -c copy option, ffmpeg will automatically re-encode the output video and audio according to the format you chose. For high quality video and audio, read the x264 Encoding Guide and the AAC Encoding Guide, respectively.

For example:

ffmpeg -ss [start] -i in.mp4 -t [duration] -c:v libx264 -c:a aac -strict experimental -b:a 128k out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#mux-video-and-audio-from-another-video","title":"Mux video and audio from another video","text":"

To copy the video from in0.mp4 and audio from in1.mp4:

ffmpeg -i in0.mp4 -i in1.mp4 -c copy -map 0:0 -map 1:1 -shortest out.mp4\n
- With -c copy the streams will be stream copied, not re-encoded, so there will be no quality loss. If you want to re-encode, see FFmpeg Wiki: H.264 Encoding Guide. - The -shortest option will cause the output duration to match the duration of the shortest input stream. - See the -map option documentation for more info.","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#concat-demuxer","title":"Concat demuxer","text":"

First, make a text file.

file 'in1.mp4'\nfile 'in2.mp4'\nfile 'in3.mp4'\nfile 'in4.mp4'\n
Then, run ffmpeg:
ffmpeg -f concat -i list.txt -c copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#delay-audiovideo","title":"Delay audio/video","text":"

Delay video by 3.84 seconds:

ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 1:v -map 0:a -vcodec copy -acodec copy out.mp4\n
Delay audio by 3.84 seconds:
ffmpeg -i in.mp4 -itsoffset 3.84 -i in.mp4 -map 0:v -map 1:a -vcodec copy -acodec copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#burn-subtitles","title":"Burn subtitles","text":"

Use the libass library (make sure your ffmpeg install has the library in the configuration --enable-libass).

First convert the subtitles to .ass format:

ffmpeg -i sub.srt sub.ass\n
Then add them using a video filter:
ffmpeg -i in.mp4 -vf ass=sub.ass out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#extract-the-frames-from-a-video","title":"Extract the frames from a video","text":"

To extract all frames from between 1 and 5 seconds, and also between 11 and 15 seconds:

ffmpeg -i in.mp4 -vf select='between(t,1,5)+between(t,11,15)' -vsync 0 out%d.png\n

To extract one frame per second only:

ffmpeg -i in.mp4 -fps=1 -vsync 0 out%d.png\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#rotate-a-video","title":"Rotate a video","text":"

Rotate 90 clockwise:

ffmpeg -i in.mov -vf \"transpose=1\" out.mov\n

For the transpose parameter you can pass:

0 = 90CounterCLockwise and Vertical Flip (default)\n1 = 90Clockwise\n2 = 90CounterClockwise\n3 = 90Clockwise and Vertical Flip\n

Use -vf \"transpose=2,transpose=2\" for 180 degrees.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#download-transport-stream-video-streams","title":"Download \"Transport Stream\" video streams","text":"
  1. Locate the playlist file, e.g. using Chrome > F12 > Network > Filter: m3u8
  2. Download and concatenate the video fragments:
ffmpeg -i \"path_to_playlist.m3u8\" -c copy -bsf:a aac_adtstoasc out.mp4\n

If you get a \"Protocol 'https not on whitelist 'file,crypto'!\" error, add the protocol_whitelist option:

ffmpeg -protocol_whitelist \"file,http,https,tcp,tls\" -i \"path_to_playlist.m3u8\" -c copy -bsf:a aac_adtstoasc out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#mute-some-of-the-audio","title":"Mute some of the audio","text":"

To replace the first 90 seconds of audio with silence:

ffmpeg -i in.mp4 -vcodec copy -af \"volume=enable='lte(t,90)':volume=0\" out.mp4\n

To replace all audio between 1'20\" and 1'30\" with silence:

ffmpeg -i in.mp4 -vcodec copy -af \"volume=enable='between(t,80,90)':volume=0\" out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#deinterlace","title":"Deinterlace","text":"

Deinterlacing using \"yet another deinterlacing filter\".

ffmpeg -i in.mp4 -vf yadif out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#create-a-video-slideshow-from-images","title":"Create a video slideshow from images","text":"

Parameters: -r marks the image framerate (inverse time of each image); -vf fps=25 marks the true framerate of the output.

ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#extract-images-from-a-video","title":"Extract images from a video","text":"","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#display-the-frame-number-on-each-frame","title":"Display the frame number on each frame","text":"
ffmpeg -i in.mov -vf \"drawtext=fontfile=arial.ttf: text=%{n}: x=(w-tw)/2: y=h-(2*lh): fontcolor=white: box=1: boxcolor=0x00000099: fontsize=72\" -y out.mov\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#metadata-change-the-title","title":"Metadata: Change the title","text":"
ffmpeg -i in.mp4 -map_metadata -1 -metadata title=\"My Title\" -c:v copy -c:a copy out.mp4\n
","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/ffmpeg-cheats/#wrap-up","title":"Wrap up","text":"

That's it. If you have any additional tips send them my way so I can add to this thing. The more the merrier. Useful for all.

","tags":["Linux","FFmpeg","CheatSheet"]},{"location":"docs/linux-explained/","title":"Linux in a Nutshell","text":"

I thought I'd share this explanation about Linux a good friend and fellow Linux enthusiast REALERvolker1 recently posted on Discord.

Tip

The following requires some basic Operating System knowledge (terminologies). Also do not take this as a complete walk-through, We did not even go through the various Desktop Environments or Window Managers. Nevertheless, we hope this gives you some idea of what you'll be walking into when swtiching...

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#what-is-linux","title":"What is Linux ?","text":"

Since not everyone's super familiar with Linux, here's a quick crash course.

Linux is a Monolithic Kernel, so all the drivers and whatnot are compiled into the binary. The Nonfree software is usually put in the actual source repo as binary blobs, or in the case of nVidia drivers, built using a system called DKMS and compiled into the kernel binary.

Once the computer boots up, an init process is started (the default is /sbin/init, usually a symlink to your init system), which is PID 1. This is when userspace is initialized. Due to security concerns and whatnot, you are restricted from having too much fun in userspace, so you need to ask the kernel to read files and allocate memory for you using syscalls.

Anyways, init starts all the userspace stuff (it itself is run in userspace) and this keeps the system secure. Since Linux is monolithic, you can't just throw a malicious library into kernel space at runtime somehow, you have to compile it in. Anyways, Linux is a lot like Unix, with one notable difference being that Linux Is Not UniX. This means it uses the typical Unixy way of doing things like restricting access based on users and groups, being POSIX compliant, and not really caring about file extensions.

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#distros-pkg-managers","title":"Distros & PKG Managers","text":"

On Debian, you install packages with apt. If you can't remember the package name you want, you can use apt to search for it, or use synaptic as a GUI frontend. If your desktop environment comes with one, you can use theirs, as that one should be easier to use, while still providing the exact same functionality. You don't install programs by downloading them from the internet. If you have any questions, the Debian Wiki is pretty mid, but the Arch Wiki is amazing.

Since Arch Linux aims to be the most generic Linux distro ever, information written for it should also help with Debian, as long as the Arch package didn't receive significant updates in the meantime. There are other ways to install software, like:

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#filesystem-updates","title":"Filesystem & Updates","text":"

If you connect your system to the internet, you should update it at least once a week to protect against known vulnerabilities. If you're not connected to the internet, you can choose whether to update or not\u2014it might fix a bug.

As for the filesystem:

In UNIX, everything is a file. This means you can:

","tags":["Linux","Kernel","Packages"]},{"location":"docs/linux-explained/#wrapping-it-all-up","title":"Wrapping it all up","text":"

This was a quick run-through explaining what GNU/Linux is written is, written as mentioned earlier by a good friend. I did not post it on the main site simply because I feel it's not as complete as I would like it to be.

","tags":["Linux","Kernel","Packages"]},{"location":"docs/mkdocs-install/","title":"MKDocs Install","text":"","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#whats-this","title":"What's This?","text":"

This for my own use. Use it if you want to. Just documenting the installation of MKDocs the way that works for me. You are free to go over this and take from it what suites you the best. Please do not ask me for help, it's all there on their site. Also this for ArchLinux if you don't use that distro, well, their site shows how to install for your distro.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#installing-mkdocs","title":"Installing MKDocs","text":"

We will need to install it with some extras. The 2 main packages exist on the Arch repos. The rest are on the AUR, so to grab everything in one go, I will be using Paru. Compiling might take a while, so sit back wile it finishes.

paru -S --noconfirm mkdocs mkdocs-get-deps mkdocs-material python-pipx python-pillow python-cairosvg mkdocs-material-extensions python-regex pymdown-extensions mkdocs-material-pymdownx-extras\n

Donce that's done we need to create the site. There's a command for that.

mkdocs new my-project\ncd my-project\n

Now that we initialized the new site we need to configure it. We do so by editing the mkdocs.yml file putting in the following info :

site_name: Sitename\n\ntheme:\n  name: material\n  logo: assets/Tux.gif\n  favicon: assets/favicon.ico\n  palette:\n    scheme: slate\n    primary: deep purple\n  features:\n   - navigation.top\n   - navigation.footer\n   - navigation.indexes\n   - content.code.copy\n   - search.suggest\n   - search.highlight\n   - search.share\n   - navigation.expand\n

This will make it use the Slate Material Theme with Deep Purple accents. To know more about the theme check the MKDocs Material Wiki. That's it go from there.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/mkdocs-install/#plugins-extra-stuff","title":"Plugins & Extra Stuff","text":"

I have found a few that I liked on the AUR, let's install them via :

paru -S --noconfirm mkdocs-rss-plugin mkdocs-video mkdocs-autorefs mkdocs-section-index mkdocs-glightbox mkdocs-backlinks-plugin mkdocs-redirects mkdocs-ezlinks-plugin mkdocs-literate-nav\n

To activate them we edit the same mkdocs.yml file as before like so :

plugins:\n  - rss\n  - social\n  - search\n  - autorefs\n  - glightbox\n

There are some cool features we can enable too. Only gotta figure out why some are not working. Besides that, this is how we add them :

markdown_extensions:\n\n  # Python Markdown\n   - abbr\n   - admonition\n   - attr_list\n   - def_list\n   - footnotes\n   - md_in_html\n   - toc:\n      permalink: true\n\n  # Python Markdown Extensions\n   - pymdownx.arithmatex:\n       generic: true\n   - pymdownx.betterem:\n       smart_enable: all\n   - pymdownx.caret\n   - pymdownx.details\n   - pymdownx.emoji:\n      emoji_index: !!python/name:material.extensions.emoji.twemoji\n      emoji_generator: !!python/name:material.extensions.emoji.to_svg\n   - pymdownx.highlight:\n      anchor_linenums: true\n      line_spans: __span\n      pygments_lang_class: true\n   - pymdownx.inlinehilite\n   - pymdownx.keys\n   - pymdownx.mark\n   - pymdownx.smartsymbols\n   - pymdownx.superfences\n   - pymdownx.tabbed:\n       alternate_style: true\n   - pymdownx.tasklist:\n       custom_checkbox: true\n   - pymdownx.tilde\n\nextra:\n  social:\n    - icon: fontawesome/brands/github\n      link: https://github.com/darkxero-dev\n    - icon: fontawesome/brands/youtube\n      link: https://youtube.com/XeroLinuxOfficial\n    - icon: fontawesome/brands/x-twitter\n      link: https://twitter.com/xerolinuxop\n    - icon: fontawesome/brands/mastodon\n      link: https://fosstodon.org/@xerolinux\n

That's it for now. I will be updating this post as I learn more. Still need to figure out a few things. I am just starting with this. Thanks to @JustAGuyLinux for helping out a little hehe.

","tags":["Linux","MKDocs","Blogging"]},{"location":"docs/passwd-reset/","title":"Reset Password","text":"","tags":["Linux","Reset","Recovery"]},{"location":"docs/passwd-reset/#information","title":"Information","text":"

I have lost my root pass on Linux more times than I can count. This guide is here so I do not have to Google it lol. Might be useful to you I dunno. But it's here.

","tags":["Linux","Reset","Recovery"]},{"location":"docs/passwd-reset/#lets-do-this","title":"Let's do this \ud83d\ude80","text":"

How to reset forgotten root password in a GNU/Linux distribution with GRUB?

If this is a laptop or a desktop which you have next to you then follow these steps.

  1. Shut down the device.
  2. Start it again. When you see GRUB menu, press the e key on the keyboard before the system starts booting.
  3. In the GRUB boot options, scroll down and locate the line that begins with linux. In this line move the cursor to the end, right after ro quiet. Delete everything after that. Change ro to rw. Append the parameter init=/bin/bash
  4. Press Ctrl+x, or F10, to boot.
  5. You will see a root prompt.
:#\n

Remount the filesystem in read/write mode:

:# mount -no remount,rw /\n
  1. Set the password of any user(s).
:# passwd joe\n
  1. Reboot with the command reboot -f.

That's it ! The new password should work now.

","tags":["Linux","Reset","Recovery"]},{"location":"docs/sddm-display/","title":"SDDM Display","text":"","tags":["Linux","SDDM","Display"]},{"location":"docs/sddm-display/#information","title":"Information","text":"

Login session appears on an unexpected display. It can happen that the SDDM login session appears on a different display than your primary display if multiple displays are connected. This problem can be annoying if the secondary display is rotated and the primary display is not. A simple fix to this problem is to use xrandr to configure the displays before the login session using Xsetup script. E.g. here xrandr reports that there are two or more connected displays where the secondary display (DP-2) is left of the primary display (DP-4).

","tags":["Linux","SDDM","Display"]},{"location":"docs/sddm-display/#lets-fix-it","title":"Let's fix it \ud83d\ude80","text":"

We need to be logged in to an X-Session meaning X11 to gat the correct display names, we cannot use display names from Wayland session won't work for some reason, maybe because SDDM runs in X11 ? No idea, now run this command in terminal to get their names. Need to have xrandr package installed.

xrandr | grep -w connected\n

Output should be like this (mine)

HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm DP-2 connected primary 2560x1440+1920+0 (normal left inverted right x axis y axis) 598mm x 336mm HDMI-0 connected 1920x1080+4480+0 (normal left inverted right x axis y axis) 531mm x 299mm

This is my own Xsetup for the login window, yours may differ :

#!/bin/sh\n# Xsetup - run as root before the login dialog appears\n\nxrandr --output DP-2 --auto --primary\nxrandr --output HDMI-1 --auto --left-of DP-2 --noprimary\nxrandr --output HDMI-0 --auto --right-of DP-2 --noprimary\n

If you want to manually edit the file

sudo nano /usr/share/sddm/scripts/Xsetup\n

Paste the output of your xrandr command as I did above in there save & reboot.

That's it y'all..

","tags":["Linux","SDDM","Display"]},{"location":"priv/be-thankful/","title":"Be Thankful","text":"","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#whats-this","title":"What's This?","text":"

Today, after reflecting on my activities and our collective behavior as Linux users, I realized a few things I wanted to share. This post doesn't belong on the main site but here, where I can speak candidly about how things have been and how we, as so-called Linux users, often behave. I'm as guilty as anyone else, so let's sit back, relax, grab a cup of coffee or a bottle of beer, and read on.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#content-creators","title":"Content Creators","text":"

Before diving in, I want to clarify that I am not a content creator. I've tried many times and failed miserably, so I don't include myself in this group for now. However, I need to address the challenges they face.

YouTube content creators (CCs) do a thankless job. It's incredibly hard work, requiring meticulous planning, high-quality equipment, and, above all, an enormous amount of patience. Unfortunately, the comment sections are often filled with toxic trash talk, which can be demoralizing. Reading these negative comments can lead to feelings of depression and inadequacy, making creators feel they are not meeting viewer expectations. This is far from the truth; the reality is that satisfying everyone is impossible.

Content creators invest significant time, money, and energy into producing videos that inform, entertain, and educate. Their efforts are crucial for enhancing our understanding and enjoyment of various topics. Even writers like myself sometimes rely on their videos to illustrate points or tools we discuss in our posts. Blog posts and YouTube videos complement each other, making our content more engaging and informative.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#writers-blog-posters","title":"Writers / Blog Posters","text":"

This is where I include myself. We do our best to bring you high-quality content. We strive to be as unbiased as possible, but mistakes happen. We are human and sometimes say the wrong things out of frustration, but that's no excuse.

One common mistake we make is not doing enough research before posting. This can lead to a lack of primary sources to back up our claims, which makes our posts less trustworthy. Recently, it was brought to my attention that I was guilty of this. Instead of pushing away constructive criticism, I embraced it and made sure to do better. Thanks to a user on Discord, I\u2019ve learned to improve, and I thank them for that.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#appreciating-ccs-and-writers","title":"Appreciating CCs and Writers","text":"

We often overlook the effort and dedication that content creators and writers put into their work. From brainstorming ideas to scripting, filming, editing, and publishing, every step requires significant effort and attention to detail. They often juggle these tasks alongside their personal and professional lives, making their commitment even more commendable.

Both content creators and writers face the challenge of staying updated with the latest trends, technologies, and viewer preferences. This constant evolution demands flexibility and a willingness to learn and adapt. Despite these challenges, many persist, driven by their passion and dedication to their craft.

As writers and bloggers, we pour our hearts into our work, aiming to provide valuable insights and information. We strive to deliver accurate and engaging content, but we are not infallible. Constructive feedback helps us grow and improve, enabling us to produce better content for our readers. It's essential to recognize that writing is an iterative process. Each piece we publish is a step toward improvement. Constructive criticism, when offered kindly and thoughtfully, is a valuable tool that helps us refine our skills and enhance the quality of our work.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#fostering-a-positive-community","title":"Fostering a Positive Community","text":"

The F.O.S.S. Linux community thrives on collaboration and mutual support. By fostering a positive and inclusive environment, we can attract more people and encourage contributions. Let's move away from harsh judgments and toward constructive dialogues that promote growth and understanding.

When we encounter content we don't agree with, let's engage in respectful discussions. Share your perspectives, offer suggestions, and be open to different viewpoints. This approach enriches our community and helps content creators and writers deliver better content.

Instead of judging writers and content creators harshly, provide constructive criticism and exchange ideas to help us improve and bring you more useful content. Many of us, myself included, have been guilty of negativity. This message serves as a reminder to be more supportive. Let's help each other grow in the F.O.S.S. Linux community and attract more people by discussing and recommending content thoughtfully.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/be-thankful/#conclusion","title":"Conclusion","text":"

Thank you for reading. I wanted to share my thoughts and recommendations in hopes of making the Linux community a more positive and welcoming place, free from negativity and elitism. By supporting each other and fostering a culture of constructive feedback, we can help each other grow and create a more vibrant and inclusive F.O.S.S. community.

","tags":["Linux","YouTube","Content Creation"]},{"location":"priv/current-situation/","title":"Current Situation","text":"

Info

Situation in Lebanon has escalatated to a ptotential war. If you\u2019re able and willing to contribute, your help could make a real difference. No amount is too small, and every bit helps in these uncertain times.

\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

Hello everyone,

It's one of those times where words fall short. The past few days have been incredibly difficult for us here in Lebanon, and it feels like things are only getting worse, spiraling out of control. Close friends, people I\u2019ve known for years, have been injured, and some have even been forced to flee their homes. We\u2019re now living in a reality where technology, something we all rely on daily, has become a source of fear. Can you imagine? Tech warfare? Exploding pagers and phones? It\u2019s something straight out of a dystopian novel, but it's happening right here, right now.

We are terrified to carry even the most basic tech devices, and it's surreal to say the least.

For the first time in my life, I genuinely don\u2019t know what to do. Should I flee? Should I stay? Do I hide and pray it doesn\u2019t get worse? I\u2019ve been praying for things to calm down for over a year now, ever since the violence in the south started, but each day feels heavier, as if we\u2019re on the edge of something catastrophic.

Your help and support would be, potentially life saving !

","tags":["War","Lebanon","Situation","Struggles"]},{"location":"priv/developing-is-fun-but/","title":"Developing is fun","text":"","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#am-i-a-developer","title":"Am I a Developer ?","text":"

Lol, yeah, I know\u2014it's a question I get a lot. But in my humble opinion, no, I am not. Far from it. I'm just a guy who, at most, messes with code\u2014specifically Bash. I take what I understand, put it together in a way that makes sense (to me at least), and hope it works. That's all I do.

And if it does work, I'm happy and share the result with the FOSS community.

","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#its-fun-until","title":"It's fun until...","text":"

Doing this is super fun and fulfilling\u2014until I hit a brick wall, stop getting new ideas, or can't find a solution to what I'm trying to accomplish. Yes, it's super frustrating.

Now, I know I can reach out to the FOSS community for help. However, not all of it is sunshine and roses. I try, but I often get more frustrated with the differences of opinion out there. No matter how much I try to satisfy some requests, I can't do it for everyone.

Sometimes, I run into some elitists who think their opinion is the only one that matters. I always make the mistake of replying to them when it's better to ignore them. Yes, those types of people exist everywhere\u2014not just in FOSS. But alas, that's where we feel it the most, especially when we try to monetize our work. But I already discussed that in another post.

Nevertheless, once a project is complete, the feeling of accomplishment is so rewarding, lol.

","tags":["Linux","Development","Developer"]},{"location":"priv/developing-is-fun-but/#sharing-is-caring","title":"Sharing is caring","text":"

This is the part where I say: please, don't keep your work to yourself. Share it with the community\u2014who knows, maybe you'll find someone who can help take your project to another level.

I used to keep stuff to myself until I began sharing. That's when everything took off, and I was able to help others. If it's not a project, maybe it's the knowledge you've gained. Share it by helping others when and where you can.

\"Sharing is caring,\" as the saying goes. Anyway, I hope this quick post was a good read. Enjoy! ;)

","tags":["Linux","Development","Developer"]},{"location":"priv/foss-fundraising/","title":"FOSS Fundraising","text":"","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#backstory","title":"Backstory","text":"

Before I begin, I would like to clarify that, when I say Linux in this context I mean Desktop Linux.

When I started this whole Linux endeavor, I did not have money in mind. It all started back in 2020, when I fell in love with KDE Plasma while using the now infamous Manjaro Distrobution. Yes, this is when I got hooked to Linux. Now don't get me wrong, I have since tried many DEs and WMs. But alas only KDE Plasma answered my needs.

Since then I started getting the urge to build my own Distro my way. With everything I wanted out the box. At first it was hard, real hard. I couldn't find an easy way to do it. That's until I stumbled upon a project we all know and love called ArcoLinux. Yep, they are all about learning and becoming self-reliant. Especially that it was based on my favorite builder Distro ArchLinux.

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#fundraising","title":"Fundraising","text":"

Now we get to the meat and potatoes of this post, why ask for money when it's FOSS ? Well in case you did not know, the Free in Free Open Source does NOT mean free of charcge, instead it means Freedom to fork and do with what you want. So us Developers have all the right in the word to charge for our time. Read that again, charge for our TIME.

Many of us are just contributers, contributing much of our free time, constantly giving without asking for anything in return. Which means no R.O.I (return on time invested). Some, not many, with a real job can do that for a long time, with the rest of us without one, or having difficulties IRL, use the knowledge and creations as a sole means of survival. Especially as a single individual.

Now, I do agree with you when you say, we shouldn't force you to pay. That's why we use the Fundraising or Donation methods. While we do not force you, it would be great if you did. Would help both of us. You get a useful product while we are able to survive to give you more. A Win-Win scenario. So if you feel like helping me out financially, you can do so via the Donate button in the menu up top or on the side if you are on mobile, or via button below. Thanks ;)

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/foss-fundraising/#hate-in-foss","title":"Hate in FOSS","text":"

Now let's address the other elephant in the room, the hate in the FOSS community. I see a lot of Devs out there, including myself receiving hate, for that reason. Simply because of the misinterpretation of the word Free in Free Open Source. That should stop. We need a more collaborative community. There are tons of friendly ones out there, but equally there are plenty who build projects for the sake of showing off how much they despise others, the ones we call Protest Distros. Now am not going to name any names here, but the longer this goes on, the slower Linux will grow.

So if you love Linux as much as you say you do, please help your favorite projects grow in any way shape or form, either Donating for financial support if you can and are not a developer, or by simply Reporting Issues upstream helping them get better. Complaining for the sake of it, or hating will go nowhere.

Anyways, thanks for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

See ya there

","tags":["Linux","ArchLinux","Fundraising"]},{"location":"priv/real-foss-struggles/","title":"FOSS Struggles","text":"","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#hello-everyone","title":"Hello everyone,","text":"

Today, I need to share some of my thoughts and frustrations. If this isn't your cup of tea, feel free to check out other posts. For those sticking around, thank you for lending an ear.

Writing this post wasn't easy; it took a lot of reflection and courage to open up about these feelings.

P.S: This blog post reflects the thoughts and feelings of a passionate developer navigating the challenging world of FOSS and the struggle for financial stability. Your support and feedback are always appreciated. Now, let\u2019s dive in.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#my-frustration","title":"My Frustration","text":"

Recently, I\u2019ve been investing a lot of time and effort into my projects and contributing to FOSS (Free and Open Source Software) wherever possible. While I find this work rewarding, it\u2019s also been increasingly frustrating. Why? Let me explain.

I spend countless hours working behind the scenes to make everyone\u2019s life easier. While there are a few of you who go above and beyond to support my work, and I am incredibly grateful for that, it\u2019s disheartening to see so little engagement overall. Feedback is crucial for improvement, and without issue reports or suggestions, it's challenging to know if I\u2019m making a real impact.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#seeking-purpose","title":"Seeking Purpose","text":"

Initially, I embarked on this journey for fun and to learn new things. However, lately, I\u2019ve been questioning the purpose behind my efforts. It feels like I\u2019m stuck in a cycle of constant work with little to show for it. This isn\u2019t about blaming anyone; it\u2019s about seeking the motivation to keep going.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#monetization-attempts","title":"Monetization Attempts","text":"

As my financial situation became more strained, I reluctantly turned to monetization. Many advised me to turn my passion into a viable source of income. So, I tried implementing a \"pay what you can\" model, hoping it would help sustain my work. However, this didn\u2019t go as planned.

The FOSS community, known for its spirit of freedom, often struggles with the concept of financial support for free software. It\u2019s a complex issue, and while some have been supportive, overall, the response hasn\u2019t been enough to make a significant difference.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#health-concerns","title":"Health Concerns","text":"

On top of these challenges, I have been dealing with significant health issues. Most notably, I have severe dental problems that require a full set of dentures. This isn\u2019t cheap, and without stable income, it\u2019s been impossible to address. These health issues have affected my confidence and my ability to engage publicly, adding another layer of difficulty to my situation. Health must come before everything else, including fun and passion projects.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#mental-health-struggles","title":"Mental Health Struggles","text":"

The stress from these financial and health challenges has also taken a toll on my mental health. I've been experiencing frequent anxiety and panic attacks, and the constant pressure has led to a deep sense of depression. The overwhelming silence and lack of engagement have exacerbated these feelings, making it even harder to stay motivated and productive.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#the-way-forward","title":"The Way Forward","text":"

Given these circumstances, I\u2019m focusing more on forums and this blog. Writing provides a creative outlet that isn\u2019t constrained by algorithms or view counts. I\u2019ll continue to work on my current projects, primarily for my own needs, but I might keep some future creations private until I can find a sustainable way to share them.

My main priority now is finding a stable job that can support my financial needs. If and when I achieve that stability, I plan to return to my passion projects with renewed energy and many new ideas.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/real-foss-struggles/#closing-thoughts","title":"Closing Thoughts","text":"

I want to extend my heartfelt thanks to those of you who continue to support my work. Your appreciation means the world to me and keeps me going even when things get tough.

For now, I need to prioritize my well-being and financial stability. Once those are in place, I\u2019ll be back with future projects. Right now, I\u2019m dealing with depression, anxiety, and panic attacks due to my job situation and need time to recover.

Thank you for understanding and supporting me through this journey.

","tags":["FOSS","Linux","Health","Struggles","Fundraising"]},{"location":"priv/rip-gamerking/","title":"RiP GamerKing","text":"\ud83d\udcb0 Click here for Campaign \ud83d\udcb0

In Memoriam

It is with a heavy heart that I share the passing of GamerKing, a remarkable 19-year-old from my region who lived only 20 minutes away. He was not only a brilliant Linux enthusiast but also a vibrant soul who played a significant role in shaping the future of XeroLinux. His relentless pursuit of perfection and attention to detail, particularly when it came to consistency, pushed the project to heights it would never have reached without his insightful input.

I will admit, there were times when I disagreed with his ideas, but his persistence, backed by reason and logic, often changed my mind. XeroLinux carries his imprint, and his contributions will forever be woven into its fabric. In a place like Lebanon, where Linux is a rarity, he stood out as a true gem, his knowledge far surpassing that of most people in our country.

For over a year, our country has been engulfed in a conflict, one that escalated into tragic proportions in the last few weeks. It began as a high-tech war, with explosive devices disguised as everyday objects like pagers and walkie-talkies. The violence claimed many lives, and GamerKing was caught in the crossfire.

Two weeks ago, his neighborhood was hit for the first time, and he suffered severe injuries, losing a significant amount of blood. From his hospital bed, he reached out to me, recounting the terrifying events. The details of his condition were harrowing, but he maintained his characteristic humor, and we joked about the situation, as we often did. It was a brief, bittersweet exchange, and when we said our goodbyes, I was reassured that he would recover. I had no idea it would be the last time we spoke.

As the conflict worsened, bombings crept closer to both of us. I assumed he was resting and chose not to disturb him, unaware of the devastation that was to follow.

Yesterday, as I write this, a massive bombing destroyed a six-building complex near GamerKing's location. Soon after, I received a message from his younger brother. At first, I believed it was GamerKing himself, and my immediate question was, \"Are you OK?\" But the reply came from his brother, who, after a moment of silence, shared the heartbreaking news: \"He told me that if anything happened to me, open Discord and tell Dark.\" I asked, trembling, \"Why? What happened?\" After what felt like an eternity, he delivered the words that shattered my world: \"He just left us.\"

I still don\u2019t know what took him from us, whether it was his injuries or the bombing\u2014but the tragic truth remains: I have lost a dear friend, a colleague, and one of the brightest individuals I have ever had the privilege to know. The shock of his passing has yet to settle in, and I fear it never truly will.

I will always remember his infectious energy, his humor, and his brilliance. He was the light of XeroLinux, and his absence will be deeply felt. Please join me in mourning the loss of a truly exceptional man. Rest in peace, little brother.

","tags":["Lebanon","Warzone"]},{"location":"projects/other-xero-spins/","title":"Plans for other spins","text":"","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#information","title":"Information","text":"

Many Distribution offer various spins, each with a different DE or WM these days, offering choices. It would be great if XeroLinux did the same, I was once asked. For example Cosmic, Hyprland, XFCE and so on.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#its-complicated","title":"It's Complicated","text":"

As awesome as that would be, I simply cannot take on this amount of work as a single person. As a team, however, with each member responsible for a spin, I could see that happening, why not ?

But the sad truth is, I have tried many times in the past, to get a few people on board, to no avail. I couldn't find anyone with whom I could agree with when it came to the whole ideology behind XeroLinux. Every single person I tried had a different vision, which caused a lot of arguments back and forth. We couldn't agree on a single goal.

That makes it very hard for me to take on such a monumental task of maintaining the various spins, making sure they all function properly, while at the same time providing the level of support that would be expected of me, especially that the Distro is not possible to get for Free right now.

I am so sorry for that. Unless people step up to help bring the spins to life, maitaining them, while providing support for them, leaving the KDE version to me, there's not much I can do. I hope you understand.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#the-good-news","title":"The Good News","text":"

There is some good news however. Yep, no bad news comes without good to balance things out. While no ISOs will be created, there will be scripts for various DEs and WMs in the future. Just like the Cosmic and Plasma ones.

I love creating scripts. And I believe that going the script route offers a little more freedom, if you catch my drift. I will also try my best to take any suggestions you might have to make them better. Did I mention that they will always be available free of charge, unlike the ISO ? Yep, never will I charge a penny for those.

Some of you might be asking, What's the catch? Well, technically there isn't one. What I mean by that is, while the ISO makes everything much easier, the scripts will require the use of ArchInstall to get a minimal system set up, after which you will be able to run my scripts.

That's it really. That's why I chose Arch. It gives me the freedom to do all that for you. I love it and I do not think I will ever stop using it. It's been my home for past 7 years, I feel most comfortable there.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/other-xero-spins/#the-future","title":"The Future","text":"

In closing, I would like to give you a sneak peak at what the future holds. I am thinking, once I have enough Install Scripts, why not combine them all into a single easy to use Mega Script of sorts, which will prompt you, once executed, which DE or WM you want to install, then proceed with chosen one ?

That idea has been cooking in my head for quite a while. Please do let me know what you think. You know where to find me. We just have to wait until I have more than 2 choices. What am thinking of adding are, HyprLand, Gnome and maybe DWM or BSPWM I dunno yet. Don't hold me on that though, please, just ideas for now.

Thank you to each and everyone for the support.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/what-s-up-with-my-channel/","title":"XeroLinux Channel","text":"","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#youtube-channel","title":"YouTube Channel ?","text":"

Lol, yeah I know, it such a small one almost no one knows about it. What I first started it, I thought so many people making tons of money, why shouldn't I ? Well, it took me so long to get monetization abilites, and when I did I was like, Nice!.

But as time went by it became more and more difficult to come up with new ideas to keep it interesting. So I gave up for a while. Then, after 6 to 8 months I came back, rest is history.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#what-now-xero","title":"What now Xero ?","text":"

Hehe, I do not know to be perfectly honest. Am not getting enough views, and my Live Streams are only getting 6 to 8 participants. Also the ideas, quality, and equipment not being available to continue. There's also the fact that there's no point of monetizing my content since YouTube and my Bank, the only one I can use are not talking to each other, without any way for me to fix that. All these issues piling up.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#whats-the-catch","title":"What's the Catch ?","text":"

This comes with a caveat, since I won't be making any money there, due to the mentioned issue, I will instead have no choice but to rely on the XeroLinux Ko-Fi fundraiser for the forseeable future.

Why there ? Err, coz that's the only service that has no issues with my bank. Simple as that. I hope you understand my situation here. As I mentioned on a previous post, you are not obligated to donate, however would be highly appreciated if you do.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/what-s-up-with-my-channel/#future-plans","title":"Future Plans","text":"

When it comes to plans for the channel from this point on, simple, I will be using it as a tool. What I mean by that is, I will be publishing videos only when I feel the situation needs it, for example if I feel a guide I want to put out cannot be done in writing. Or when I need to show off a tool/script am working on. You get the idea.

Bottom line is, my channel is nothing but a tool, not a way to monetize anymore. I hope I don't lose you as a subscriber because of this. However, it's fine if you feel the need to leave, no harm no foul.

Anyways, thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

","tags":["Linux","YouTube","XeroLinux","ArchLinux"]},{"location":"projects/why-is-distro-back/","title":"Why Revive XeroLinux","text":"

Info

This post will explain why I decided to bring back XeroLinux and how you can get your hands on it. All I ask is for you to read the entire post to understand why it is the way it is. I hope this post clarifies my situation. If you grabbed a copy, find out how to install it via the XeroLinux Wiki

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#what-is-xerolinux","title":"What is XeroLinux","text":"

In short, it's just an alternative to the Plasma Install Script, making it easier to install Arch, bypassing the need for ArchInstall. The ISO includes my toolkit as well as my famous Xero Layan Rice all-in-one shot.

You can use the included Xero Toolkit, 1st icon with my logo in the Dock, to configure it, keeping in mind that some of the features were already applied to the ISO. I have also taken the liberty of including the Chaotic-AUR repository so it's easier for you to install AUR packages rather from having to compile them.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#why-is-xerolinux-back","title":"Why is XeroLinux back","text":"

To explain why, let me set the stage. As you may already know, I\u2019m going through significant financial difficulties. Living in Lebanon, finding a job\u2014especially a remote one\u2014is extremely challenging, and the situation continues to worsen. I won\u2019t rehash the entire story here, but if you\u2019re not familiar, you can read more about it in this BlogPost.

After giving it a lot of thought, I realized how much I truly enjoy Linux. With bills to pay and my distro\u2019s code still sitting on GitHub, it just makes sense. Many of you have been asking me to bring it back since I pulled the plug months ago, so why not use this opportunity to revive it\u2014and make it a way to sustain myself?

Not to mention that I've been running it on my own this whole time, and maintaining the ISO was a blast. I've been itching to bring it back, especially since it was rapidly climbing the DistroWatch rankings as a popular distro. Seeing how much you all loved it made me feel guilty for taking something great away from you. Thanks for making it feel so special!

That answers the why.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#how-to-get-it","title":"How to get it","text":"

I've decided to put the distro behind a donation wall. By supporting me financially, you'll gain access to the XeroLinux ISO\u2014a true win-win. Your support helps me keep going, and you get something valuable in return. For more details, check out the Release Post

Now, I know that some of you will say, \"But it's FOSS; you shouldn't charge for it.\" To which I will say the same thing I have been saying for a long time: the Free in Free Open Source does NOT mean free of charge; it just means Freedom to fork the Source Code and do with it as you wish. I am simply charging for my time.

The distro will be continuously updated to ensure it works seamlessly and will stay alive as long as I have your support. If support ever dries up\u2026 well, let's not dwell on that. Let\u2019s focus on keeping it alive and thriving for a long and happy journey together!

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#is-it-any-special","title":"Is it any Special","text":"

This is a common question I get. To be honest, there\u2019s no groundbreaking advantage\u2014it simply provides an easier way to install Arch with a polished KDE experience right out of the box, which many users seem to appreciate. I created it specifically for them, as an alternative to my DIY install script, and as a way for you to support my journey.

Users are free to prefer any other distro over mine. I am not and will never force it. Also, I have never pretended that XeroLinux is better than any other distro. It's never been a competition, and I would hate for people to think it was. I hope this clarifies things.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#how-to-get-it-for-free","title":"How to get it for free","text":"

If you can\u2019t support me financially but still want XeroLinux, while the ISO isn't available for free right now, you can still achieve similar results with my PlasmaInstall script, which will always be free of charge. It just requires a bit more elbow grease on your part\u2014that\u2019s all there is to it!

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#i-dont-like-arch","title":"I don't like Arch","text":"

In case you don't like Arch for whatever reason, but still want to support me, I have put up a Merch Store where you will be able to buy something you like. Not much there yet, will have many more items in the near future. It's just there as an alternative way for you to help out.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#private-donations","title":"Private Donations","text":"

Did you know I have a private fundraiser account? It\u2019s been around forever! If you'd like to support me directly with things like rent and general wellbeing, you can do so at FundRazr.

Currently, all funds raised from the ISO are split into two categories: private and project. About 60% goes toward improving XeroLinux, covering costs like hosting, domains, and other essentials. The remaining 40% helps me with personal expenses like health, phone bills, etc., mainly because my other account hasn\u2019t been getting much support. Ideally, I\u2019d love to keep these funds separate, but ultimately, it\u2019s your choice.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"projects/why-is-distro-back/#wrapping-up","title":"Wrapping up","text":"

That's it, now you know the why and the how. So let's keep the distro alive. Keep sharing it and the store with others. I try to be as honest and open about everything. I got nothing to hide.

Thank you to each and everyone for the support.

","tags":["Linux","XeroLinux","ArchLinux","Distribution"]},{"location":"tech/cosmic-experience/","title":"My Cosmic Experience","text":"

Note

Contents of this post reflect my own opinion and mine alone. Do not take anything written here as set in stone. It's my own bare-metal experience with the hardware I own. I cannot and will not speak for others. Maybe you had a better experience, and I am glad you did. Just keep that in mind.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#installation","title":"Installation","text":"

The Cosmic DE hype is real. I saw many reviews of it and was immediately pulled in and got the urge to install it n try it out for myself to see if it was being over-hyped/sensationalized or not. Simply because new things tend to be, it's the norm by now.

Since I am an avid ArchLinux user, that's how I installed it. I did not use the Pop!_OS 24.04 LTS alpha ISO from >> Cosmic Downloads. So my views come from there. So I cannot compare.

Anyway, before I talk about my experience using the DE, I would like to mention that, I did not use the ArchInstall profile to install it. Why you ask ? Simply because due to past experience, I learned the hard way not to fully trust them, they tend to be way too basic, missing a lot of essential packages. Don't get me wrong here, I am not saying that you shouldn't use them, far from it, if you just want basics doing everything else yourselves, feel free, but from a new user perspective who expect things to be more complete, please use Distros who do all that for you.

Now on to the more detailed things I have done to install Cosmic. I first installed Arch Minimal using the ArchInstall script, meaning that I avoided the profiles, & drivers sections completely, I always choose Grub as my bootloader, no swap since I have 32GB RAM, no Encryption either. And once in chroot I installed the DE the following way, knowing that, we can skip the use of sudo since we are still logged in as root...

pacman -Syy && pacman -S cosmic linux-headers pacman-contrib xdg-user-dirs power-profiles-daemon wayland-protocols wayland-utils\n

Now, that needs a bit of explaining. In case you were wondering why so few packages, well, it's because cosmic is not a single one, it's a Group of packages or a meta-package as it is known as. That said, the reason I installed linux-headers is because for whatever reason, they were only included if and when you select drivers, same goes for the rest. Especially xdg-user-dirs without which no Documents, Pictures, Videos... folders will be created. Strange I know.

What I also found weird, is the fact that cosmic-greeter service was not being enabled after install which was netting me a boot to TTY session. So I had to enable it while at the same time generating the user-dirs via...

systemctl enable cosmic-greeter.service && xdg-user-dirs-update\n

Keep in mind that I am doing all this while still in chroot post-install. Once I was done with this I exited the live environment and rebooted crossing my fingers and hoping that all went well.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#experience","title":"Experience","text":"

Now on to what y'all came here for. All was good, well sorta, system rebooted into Grub, selected the OS and waitied... That's when I started to sweat a little, coz I was greeted with some TTY dmsg errors, flickering on and off. But after a few seconds I finally saw the Cosmic Greeter login screen, relief finally.

I type my super secure password in n wait to see the Desktop. So far so good, or so I thought. More anxiety, as when I opened the Cosmic file manager, what I saw wasn't so great; icons were blacked out, and performance was shit. Being an nVidia user, I thought could be a driver issue since on first boot it uses the not so great nouveau ones. That's why my first reflex was to install them, so I did.

After driver install was done, I rebooted and that's when my heart sank so deep I couldn't feel it anymore. Why ? How about a screen with so many errors in many colors complaining about EGL drm crap ? Yep wasn't showing the login screen anymore. OH NO! Failed already ?!?!?!?!?

As it turns out I had forgotten to include the nVidia drm kernel modules lol. What am I talking about ? How to do that you ask ? Well, for me that's what I did, could be different for you I dunno.

sudo sed -i '/^MODULES=(/ s/)$/nvidia nvidia_modeset nvidia_uvm nvidia_drm)/' /etc/mkinitcpio.conf\nsudo systemctl enable nvidia-suspend.service nvidia-hibernate.service nvidia-resume.service nvidia-powerd.service\necho -e 'options nvidia NVreg_UsePageAttributeTable=1 NVreg_InitializeSystemMemoryAllocations=0 NVreg_DynamicPowerManagement=0x02' | sudo tee -a /etc/modprobe.d/nvidia.conf\necho -e 'options nvidia_drm modeset=1 fbdev=1' | sudo tee -a /etc/modprobe.d/nvidia.conf && sudo mkinitcpio -P\n

After doing that, I rebooted again, heart in hand, fingers n toes crossed lol. Once rebooted, a sigh of relief, I could see the login screen again. So I login, and this time everything was great. Performance was so smooth n fast, sorta felt like XFCE. Fired up top to see memory usage, and to my surprise, it was only using 800mb RAM on fresh boot, that's almost 500MB less than KDE Plasma ! Nice !

Now came the time to configure the DE. Since I had watched so many videos regarding it, I had a general idea of what to do. Since I have 2 Nics (1 for each ISP), first order of business was to disable one keeping the other active. So I hover mouse over the tray icon, click it then attempt to click to disable the one I do not need, only to see that I couldn't do shit. They seem to just be static indicators, at least for now. So arming myself with all that knowledge I fire up terminal and run nmtui and deactivate it from there making sure it doesn't automatically reconnect on login.

Now on to the System Settings. I will not bore you with the details, suffice it to say, that's where the biggest Alpha cracks started to show up big time. User profile modification missing, Default Apps too. I mean I could barely do anything besides modify top panel, color scheme, applets, keyboard shortcuts (keybinds) and power profiles. There isn't even a way to enable autologin..

That's when I began to get frustrated. I mean, how were users online saying they had a great experience when some of the most important things were missing ? I don't understand.

Anyway, I then took my attention to the included apps. I open the launcher from the bottom dock and click a random one, didn't open, I thought was a mouse issue, so I click again, and again, only after a few clicks did app decide to finally run. WTF!! Angry, I open File Manager again n try to open a document, nothing... OMG!!! I mean not even default app to handle simple text document ? I mean Cosmic-Notes was there, just not handling documents...

I try to right-click > open with, only to see that part was missing as well, I mean it shows the open-with panel to the right, only nothing's there, it's empty. I kept repeating to myself \"It's Alpha Software, calm down Steve\".

To relax a bit n make things easier, I installed my toolkit. Then when I tried launching it from the app menu thingy, no matter how many times I clicked it wouldn't launch. So I tried adding a keyboard shortcut for it, still nothing. I guess it's because it's a CLI and no default app set ? I dunno.

Finally I decided to try out the thing that almost everyone's raving about, Tiling/Stacking. And yes, that part was amazing, worked out great no major deal breaking issues to speak of, just minor nit-picks. Nothing that wasn't mentioned in all them videos on the Tubes. Oh Great ! I thought to myself, sarcastically, coz the only thing that works best is the thing I will never use since I do not like that Tiling stuff. Meh...

That's where I gave up and decided to go back home to KDE Plasma.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/cosmic-experience/#final-words","title":"Final words","text":"

Now I know this wasn't a complete experience, but when the most essential features are either missing or incomplete, there's no point in going any further, simply because, the more I used it the more frustrated I got.

It's barely usable in its current state. I will be keeping it installed, revisiting it once every month to see progress. I will not, however attempt using it on a daily, or put in too much work into it, since it's not yet ready.

I can't be too mean to the devs, they are doing a great job. It was all a false expectation on my part. Cosmic has come a long way in such a short time. I mean, writing a DE from scratch using Rust a sorta new programming language is no easy feat.

I will end the post by congratulating the System76 dev team on work well done. I cannot wait to see what the future holds. I wish them the best of luck. Oh and also, who knows if it wins me over, I might add a XeroCosmic to the family.. Just don't hold your breath on that, it ain't set in stone.

","tags":["Linux","Cosmic","ArchLinux"]},{"location":"tech/docker-containers-a-love-story/","title":"Docker A Love Story","text":"","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#what-is-docker","title":"What is Docker ?","text":"

Docker is a platform that simplifies the process of developing, shipping, and running applications by using containerization. Containers package an application and its dependencies into a single, portable unit that can run consistently across different environments.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#how-it-all-started","title":"How it all started","text":"

It all started with Distrobox. Yes a highly unlikly scenario I know. But the more I dug into the world of containerization the more intrigued I got. And that's when I discovered Docker containers, their countless uses. What blew me away mostly, is the fact that I can run cloud services like Immich for images and videos, which would allow me to sync my devices locally rather than with Apple iCloud or Google making me the sole owner of my data. So freeing OMG !!! No longer bound by those shackles...

With that, I the deeper I went through this bottomless rabbit hole, the more truly useful containers I found. The idea that I can do whatever I wanted without having to deal with any 3rd party conglomerates made me fall in love more and more as time went by...

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#my-setup-so-far","title":"My setup so far","text":"

Yep, I know, you are eager to see what I have managed to pull off with everything I found. First, let me say this, I will not be the one guiding you on how to acheive MY setup, since your needs might differ from mine. Heck I am sure of it. Anyway, here's a screenshot, and below it I will link to the various containers I am using in case you find them useful.

To start off, let me tell you what am using for the page you see in the image, it's simply called Homepage. Fitting name right ? I love its simplistic design, flexibility, and most of all what sold me on it is two-fold, the fact that everything is done via YAML configurations files, and that the community behind it are so damn friendly ! Yep, there is no dumb question for them, they answer any and all to the best of their abilities.If you have any, feel free to join their Discord Server.

As for the File Browser I use to share files between PCs, it's also has a creative name lol, just called FileBrowser, it serves one purpose, browsing files, with ability to upload & download from/to any PC. That's it. It just works nothing else to say about that.

Hehe, the only reason I called it Xoogle is coz it's Xero + Google, get it ? Anyway, this is using something called Whoogle, weird name I know, loogs damn ugly too. It's just a search engine that uses Google stripping it of all A.I crap and ads. Does its job I prefer it to any other coz I get the power of Google the way it was back in the day..

That's a 3rd-party Bitwarden server-as-a-container, endorsed by them so can be trusted called Vaultwarden. I use it coz I prefer to self-host private stuff like that. Where I have total control. I still keep a copy hosted by them. It's just in case they go under I am safe.

This one is not for everyone. It uses Zipline. It's a File upload server with a twist. I exposed mine to the web, using it to share files with friends. Use it if you need something like that.

I am a big fan of comic books, especially the ones from my childhood. This container uses Kavita. I love it simplicity. I am also proud to say that I currently sponsor their work coz devs are very friendly so is this tool. It works for my needs, I hope it does for you in case you choose to use it. If you have any, feel free to join their Discord Server.

I guess I do not need to explain that one. It's just a docker container for Audiobookshelf. In case you have some Audio books or podcasts. Have fun.

That too doesn't need an introduction, just that it's the feed agregator I chose to use. Called FreshRSS. It's simple to use, looks good enough, and supports tons of plugins to extend it above and beyond.

Now, this is one of the big ones, Immich is an amazing image cloud like service. Allowing you to move away from Apple and Google. I love that as I said at the beginning of this long post. They even have companion apps for both Android and iOS which makes it even more amazing. Now we can sync out photos and videos between devices. I recommend this one to everyone who cares about their data.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#you-get-the-idea","title":"You get the idea","text":"

Now am not gonna go over each and ever one of the containers I use. I will list the rest below linking to their related pages, have fun discovering them. Be careful though, once you begin there will be no end in sight. It's BIG rabit hole. You have been warned lol ! It's a super fun and nerdy adventure. Trust me. I have been here for over 3 months.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#where-to-find-more-containers","title":"Where to find more containers ?","text":"

Well, there are many places, but my favorite has to be Selfh.st hands down. I love how they keep the list up-to-date showing last commit date. Site is always updated removing old unmaintained projects replacing them with newer ones. I highly recommend you bookmark this site and keep visiting it from time to time.

","tags":["Linux","Docker","Containers"]},{"location":"tech/docker-containers-a-love-story/#closing-words","title":"Closing words","text":"

Anyway, I hope you have enjoyed this post, and I have helped you discover something new. It's not always one finds something that re-ignites one's pation all over again. I know it did just that for me.

Thanks again for reading this. If you want to discuss the matter, you can Toot me on Fosstodon or by joining me on my Discord Server.

","tags":["Linux","Docker","Containers"]},{"location":"tech/gpu-fund/","title":"GPU Fundraiser","text":"

Since getting myself a nice Christmas gift, the Ryzen 9 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

With your help I can upgrade to something more modern. Not looking for latest just a 7800XT or RTX3080.

Thank you for your continuous support. Without you none of this would have been possible. XeroLinux owes its existence to you. Let's get 2025 on the road shall we ?

","tags":["Linux","Hardware"]}]} \ No newline at end of file diff --git a/site/tech/gpu-fund/index.html b/site/tech/gpu-fund/index.html index 2fdff5c..dcd2ebb 100644 --- a/site/tech/gpu-fund/index.html +++ b/site/tech/gpu-fund/index.html @@ -905,7 +905,7 @@

GPU Fundraiser

-

Since getting myself a nice Christmas gift, the 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.

+

Since getting myself a nice Christmas gift, the Ryzen 9 5950X CPU, I would love to pair it with a nice GPU, I still currently use my now aging GTX1080 (8gb) from 2015 which doesn't allow me to play the more modern games.