[{"content":"Ship\u0026rsquo;s log, Stardate 1805.26\nArch Linux installation completed successfully. Plasma was there, beautiful, gleaming, with its Wayland effects running like a magazine ad. A moment of genuine pride for anyone who has ever tried to install Arch Linux following its standard installation guide and knows what it feels like to stare at a black screen where a desktop should be.\nExcitedly, I opened the menu. I just wanted a terminal. Run a basic update, feel like I was in control. Simple stuff. Routine.\nWhere\u0026rsquo;s the terminal that should be here?\nKonsole wasn\u0026rsquo;t there\u0026hellip; Oops!\nThe disaster inventory I went to explore what the installer had generously left me. Plasma was present in all its visual glory. The taskbar, the widgets, the system settings — everything impeccable. Wayland running without a hiccup.\nBut Konsole — KDE\u0026rsquo;s default terminal — was not installed. Dolphin — the file manager — wasn\u0026rsquo;t either. Basically any application that would make that desktop useful for anything beyond aesthetic contemplation had been left out.\nI had a sports car with no steering wheel.\nWhere did all my packages go?\nI went to the menu looking for anything that resembled a way out. A run dialog. A file browser hidden in some submenu. Anything.\nNothing.\nIn old reliable Slackware, this doesn\u0026rsquo;t happen.\nThere, xterm is present from the very first boot. Ugly, gray, with a 1994 bitmap font, no antialiasing, no personality — but present. Slackware doesn\u0026rsquo;t ask if you want a terminal. It just puts one there and walks away. Arch gave me a Plasma with window blur effects and no terminal.\nEven humble htop didn\u0026rsquo;t make it.\nNoted in the red incident log.\nClimbing out of the hole After a few minutes staring at a beautiful and completely mute desktop, something deep in my muscle memory whispered a key combination.\nCtrl + Alt + F2.\nWhich didn\u0026rsquo;t work. I was met with a black screen with an X cursor in the middle, nothing else. Very much like the old X server refusing to start. Just one detail: this was running on Wayland, the shiny new gold standard of the Linux graphics server ecosystem. Not so gold, apparently. In a desperate move, I threw a Ctrl + Alt + F3.\nThat\u0026rsquo;s when the magic worked. The screen went black with white letters. No graphics, no effects, no window blur. Like 1985. And there, finally, a login prompt appeared. Something I could type into. The wired network was already working thanks to Saint Patrick, sudo was configured, and the system started updating while I breathed a sigh of relief at a terminal that felt like it had time-traveled.\nsudo pacman -Syu Rebuilding what should have come included With the system updated, it was time to install what had been left behind. A quick search pointed to the kde-applications-meta group, which bundles the complete set of KDE applications:\nsudo pacman -S kde-applications-meta Pacman did its job. So many packages dropping into the system at once that you can\u0026rsquo;t even keep count. Mandatory hydration break.\nPacman being greedy with updates.\nAfter a long download period courtesy of my slow internet, and somehow managing to return to the graphical login, Dolphin finally appeared. Konsole appeared. The feeling was relief. A small, technically irrelevant victory in the eyes of experts, but rewarding for a first few steps.\nOne last detail: the invisible firewall The installer had installed and configured a firewall, UFW, but without its graphical interface. Technically protected. Practically manageable only by someone who memorizes arcane commands by heart, which is not exactly my case.\nsudo pacman -S gufw UFW and Dolphin, at last.\nA simple little window appeared. The firewall was visible. Mission accomplished for today.\nMental note: get some cooler wallpapers to make Plasma look prettier.\nThe day\u0026rsquo;s balance In the end, Plasma was up and running, updated, with its applications in place and the firewall visible. What looked like a nightmare was just an afternoon of work, a few moments of panic, and muscle memory that showed up right when it was needed without announcing itself.\nNow that\u0026rsquo;s a system.\nBut the episode goes on record. The system booted beautifully and I got stuck because there was no terminal. This happens. Perhaps I trusted the automatic Arch-Install script a little too much. It probably happens to a lot of people who will never say so because it seems too silly to admit.\nHere, we tell it like it is.\nAnd in old reliable Slackware, the ugly xterm would already be there waiting for me.\nNext chapter: with the system finally livable, it\u0026rsquo;s time to face ComfyUI. How long does the FX-6300 take to generate an image? The answer is going to hurt.\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/arch-linux-post-installation/","summary":"Arch Linux installation complete. Plasma was beautiful, gleaming, with Wayland running like a magazine ad. It was just missing a terminal. And the file manager. And anything useful at all.","title":"The perfect Plasma that was useless"},{"content":"Logbook, Stardate 1337.15\nToday is Slackware day, Stubborn ones! Time to install the grandfather of them all, again, for the thousandth time. Though it\u0026rsquo;s only the fourth or fifth installation of it in 2026. Hopefully the last one.\nBefore you ask: why on earth install Slackware Linux in 2026? It\u0026rsquo;s Jurassic, has no automatic dependency resolution, is a pain to maintain over time, and its current release — 15.0 — is already showing its age, getting a bit too stale for comfort. And I ask back: why not? It\u0026rsquo;ll be instructive at the very least, even fun. For a nerd, anyway.\nSlackware Linux in action.\nI like to imagine that here at TDL-Lab — the Stubborn Linux Lab —, everything has a clear purpose, no matter how absurd it may seem. That\u0026rsquo;s not true, of course. Anyway: the next purpose is actually quite straightforward, though not necessarily easy. It\u0026rsquo;s to get Slackware 15 to compile, install, and properly run the proprietary driver for my Nvidia GeForce GT-610 graphics card again. After all, it managed to do that in the past. Just because graphics stacks, kernels, and Xorgs have moved on, and Nvidia Corporation itself dropped support for the card\u0026rsquo;s proprietary driver, doesn\u0026rsquo;t mean it can\u0026rsquo;t work again.\nDisclaimer: It most likely won\u0026rsquo;t work. Estimated success rate: 35%, if we\u0026rsquo;re lucky.\nStay calm — I have a plan to test things, make the magic happen, and get everything running smoothly. It\u0026rsquo;s a foolproof plan! But first things first: we need to install our old companion onto the drive. SSD, actually. This is where the technical adventure begins, folks!\nPartitioning without waste: goodbye, swap partition The drive in question is modest: 60GB. Nothing that justifies wasting 4GB or more on a fixed, immutable swap partition, carved in stone as if it were 1998. The civilized solution — and surprisingly more flexible — is the swapfile.\nWith a swapfile, you can grow, shrink, or delete swap without touching the partition table. Need more headroom tomorrow while compiling a heavy kernel? Expand it. Want to reclaim space afterward? Delete and recreate it smaller. Simple as that.\nThe process only requires a bit of manual attention right after the base installation, before the first reboot — exactly the kind of thing Slackware lets you do without complaining, unlike certain distributions that seem to think you can\u0026rsquo;t be trusted. I can\u0026rsquo;t, but life goes on.\nThe detail that could have blown everything up: LILO Before getting to the swap part, though, a silent trap was waiting for me: the LILO installation, Slackware\u0026rsquo;s legendary bootloader.\nBy default, the installer tends to be\u0026hellip; let\u0026rsquo;s say, overly enthusiastic when choosing where to write the bootloader. On a system with more than one drive — like mine, which peacefully coexists with a Windows HD and an Arch Linux drive —, letting LILO decide on its own is an invitation to disaster. It could very well install itself on the wrong drive, overwrite the Windows bootloader, and turn a lab installation into an emergency recovery afternoon.\nYes, we also have the trusty Screenfetch.\nTo avoid that catastrophe, I used LILO\u0026rsquo;s advanced configuration inside the setup itself, manually specifying the correct disk and partition. No delegation at this stage. The Slackware installer offers this option, and it exists precisely for situations like this.\nCreating the swapfile manually With the base system installed and LILO pointing in the right direction, it was time to set up swap. The installer offers a shell before the reboot — this is where the magic happens.\nFirst, we enter the newly installed system environment:\n# chroot /mnt We create the swap file. For a test lab, 2GB would be a reasonable starting point. We\u0026rsquo;re not reasonable — let\u0026rsquo;s go straight to 4GB:\n# dd if=/dev/zero of=/swapfile bs=1M count=4096 Setting the permissions — mandatory step, not optional:\n# chmod 600 /swapfile Formatting and activating:\n# mkswap /swapfile # swapon /swapfile And to make sure it gets activated automatically on every boot, adding the entry to /etc/fstab:\n# echo \u0026#39;/swapfile none swap sw 0 0\u0026#39; \u0026gt;\u0026gt; /etc/fstab To confirm everything is working:\n# swapon --show # free -h We have swap at last.\nThe swapfile showed up in the list and free showed available swap. Mission accomplished.\nIn the future, if I need to resize The beauty of the swapfile: resizing is trivial. Deactivate, recreate at the new size, reformat, and reactivate:\n# swapoff /swapfile # dd if=/dev/zero of=/swapfile bs=1M count=2048 # chmod 600 /swapfile # mkswap /swapfile # swapon /swapfile Note: No partitions were harmed in this process.\nCould I have created this swapfile after the first boot? Sure. So why do it before? Good technical question — I have no answer. Taking suggestions.\nFor anyone thinking about leaving Windows and installing a Linux distro: I do NOT recommend starting with Slackware. Look up someone who actually knows what they\u0026rsquo;re doing on YouTube and follow their guidance. Trust me — once bitten, twice shy.\nFirst mission report: Completed successfully The whole process finished without errors. LILO pointed to the right drive, the system came up beautifully after the first reboot, we have swap. Initial login screen functional. The ancient Slackware Linux 15.0 has been officially installed on the TDL-Lab Mustang PC.\nNext chapters Now the interesting — and potentially frustrating — part of the operation begins: getting the GT-610 driver to work on a modern system that no longer wants anything to do with it.\nThe foolproof plan will be revealed soon. Spoiler: it\u0026rsquo;ll probably fail at least once before it works.\nShall we reboot?\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/slackware-linux-first-installation/","summary":"\u003cp\u003e\u003cem\u003eLogbook, Stardate 1337.15\u003c/em\u003e\u003c/p\u003e\n\u003cp\u003eToday is Slackware day, Stubborn ones! Time to install the grandfather of them all, again, for the thousandth time. Though it\u0026rsquo;s only the fourth or fifth installation of it in 2026. Hopefully the last one.\u003c/p\u003e\n\u003cp\u003eBefore you ask: why on earth install Slackware Linux in 2026? It\u0026rsquo;s Jurassic, has no automatic dependency resolution, is a pain to maintain over time, and its current release — 15.0 — is already showing its age, getting a bit too stale for comfort. And I ask back: why not? It\u0026rsquo;ll be instructive at the very least, even fun. For a nerd, anyway.\u003c/p\u003e","title":"Slackware 15 Installation: Why Install Slackware Linux in 2026? Why Not?"},{"content":"Surviving the first contact with Arch Linux A slight exaggeration on my part — I\u0026rsquo;ve had contact with Arch Linux before. Long before systemd, back when it used a logical and rational init system. Sometime last century, perhaps? I\u0026rsquo;d been away from it for a long time. But that\u0026rsquo;s beside the point.\nThe point is, I need to be honest right from the start: I shouldn\u0026rsquo;t be writing this post.\nNot because something went wrong. Quite the opposite — because it went too well, too fast, without enough drama to justify the historical dread I had for Arch Linux. Which, let\u0026rsquo;s be honest, is almost disappointing for a blog called Stubborn Linuxer.\nBut let\u0026rsquo;s start from the beginning.\nHow I got here This blog was born from Slackware. The original idea was to explore the possibilities of running modern AI image generation tools — specifically ComfyUI — on good old Slack 15. I researched, asked around, dug through obscure forums. The answer was gentle but unforgiving: Slackware 15 stable has a Python version too old for that, and Slackware-current — the development branch — carries an official warning that it\u0026rsquo;s a testing ground, not meant for real production use, and if something breaks, you\u0026rsquo;re on your own. It ends with a \u0026ldquo;you\u0026rsquo;ve been warned,\u0026rdquo; which isn\u0026rsquo;t exactly inspiring for someone who just wants things to work.\nAfter a lot of brainstorming — the kind that happens with the machine open and hands full of screws — I reached a conclusion that cost me some pride: to run ComfyUI with any sanity, Arch is the least masochistic option available.\nSurgery to add more storage.\nSlackware 15 stable gets a smaller SSD as a digital zoo, a low-pressure experiment lab, a generous source of content for this blog. Everything in its place. And so, with the slightly wounded dignity of a card-carrying Stable Slacker, I opened the Arch installer.\nThe installation: when the enemy surprises you Arch Linux in 2026 is not the seven-headed beast the legend describes. It has a text-based installer that walks you through the process with straightforward questions. I answered them one by one, often without fully understanding what I was choosing, relying on prior research and consultations with my technical advisors, while sitting in front of the keyboard.\nI chose BTRFS as the filesystem — for a simple reason: it lets you create \u0026ldquo;snapshots\u0026rdquo; of the system before updates, so if something breaks, you can roll back. For someone running Arch — famous for updates that occasionally surprise — that\u0026rsquo;s less a luxury and more an emotional necessity.\nI chose the Zen Kernel, which promises better performance for this kind of workload. I chose Plasma with Wayland. And kept going.\nI had a genuine moment of doubt when the installer asked about snapshots — those system photographs. A new option called Snapper appeared, which I didn\u0026rsquo;t know. I looked it up on the spot, found it was exactly what I needed, and confirmed. The installer handled the rest.\nThere was also something I didn\u0026rsquo;t expect to find: an option called plasma-login-manager, described as KDE\u0026rsquo;s new login manager, still in development. The temptation to experiment lasted about thirty seconds. Then I remembered I was already stepping outside my comfort zone enough for one day, and stuck with the good old reliable SDDM.\nThe moment of truth System installed. First reboot.\nGRUB appeared. Plasma came up. No black screen. No error message. No kernel swearing at me in hexadecimal.\nSo far, so good.\nIt worked. I was genuinely amazed to see Arch Linux simply working on the first try, after years of hearing horror stories. It\u0026rsquo;s almost like showing up to a duel expecting a fight and having your opponent offer you coffee.\nA few lessons learned along the way After the system came up, there was still work to do — configuring virtual memory, creating the swap file, tweaking details the installer doesn\u0026rsquo;t cover. I\u0026rsquo;ll admit I was navigating unfamiliar waters here, supported by research and outside guidance to avoid mistakes that BTRFS charges dearly for.\nBTRFS, for instance, has a complicated relationship with swap files that I never would have figured out on my own. There are specific steps that need to happen in a specific order — otherwise the result can be silently catastrophic. I won\u0026rsquo;t pretend I knew that going in.\nThe lesson is simple and old: knowing what you don\u0026rsquo;t know is just as important as what you do know. Arch rewards those who research before acting. And punishes those who don\u0026rsquo;t with the same quiet indifference. I\u0026rsquo;ll truly learn that someday. Hopefully before I break the system.\nThe feeling that stays Using Arch has a specific quality worth naming: it\u0026rsquo;s like living in an apartment on top of a dormant volcano. Beautiful, functional, great location. But with every system update you wonder if today is the day of the Kernel Panic.\nThat feeling doesn\u0026rsquo;t go away with time. Arch users know it\u0026rsquo;s always there. Snapper doesn\u0026rsquo;t eliminate the volcano — it just puts up a signposted escape route.\nSlackware 15, on the other hand, is a solid house built on stable ground. You know exactly what you have, you know it won\u0026rsquo;t change anything without your permission, and you sleep soundly. The price is paying in blood, sweat, and tears for every slightly complex novelty you want to bring in from outside.\nTwo different paradigms. Two different kinds of stubbornness.\nKDE Plasma in all its glory.\nFor now, Arch has earned a specific role in this setup: running ComfyUI while the processor sweats buckets generating images. Slackware 15 on the smaller SSD stays alive, breathing, full of poorly explained experiments waiting for a post.\nThe Stubborn Linuxer gave up a little ground. But didn\u0026rsquo;t lower his guard.\nComing up next\u0026hellip; Installing ComfyUI on Arch (or trying to), and finding out how many minutes the processor needs to produce something that remotely resembles an image.\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/arch-linux-first-install/","summary":"\u003ch1 id=\"surviving-the-first-contact-with-arch-linux\"\u003eSurviving the first contact with Arch Linux\u003c/h1\u003e\n\u003cp\u003eA slight exaggeration on my part — I\u0026rsquo;ve had contact with Arch Linux before. Long before systemd, back when it used a logical and rational init system. Sometime last century, perhaps? I\u0026rsquo;d been away from it for a long time. But that\u0026rsquo;s beside the point.\u003c/p\u003e\n\u003cp\u003eThe point is, I need to be honest right from the start: I shouldn\u0026rsquo;t be writing this post.\u003c/p\u003e","title":"Surviving the first contact with Arch Linux"},{"content":"Before the first boot, there was only the void…\nOr rather: there was an FX-6300 with 8 GB of RAM, an Nvidia GeForce GT-610 graphics card that can barely render a desktop, a 1 TB HDD eager to host AI models, and the stubbornness of someone who could never quite quit Linux for good.\nOld but running Linux. Suck on that, Windows 11. My name is Marcelo Souza (or just “The Stubborn One”), I’m a Designer by trade, an old-school nerd/geek, and this is teimosodolinux.github.io — a technical and existential logbook of my adventures (and misadventures) with Linux in 2026.\nWhy “Stubborn Linuxer”? Because that word perfectly defines my relationship with the OS.\nFrom the ancient Mosaic browser on Windows 3.1, to burning Kurumin on rewritable CDs in college, to the Slackware 10.1 that made me format my drive more often than I changed my clothes, and through chronic distro hopping (Debian, Ubuntu, Conectiva, Kalango…), I’ve always crawled back to Slackware even after swearing off that heavy drug. The stubbornness to keep trying simply persisted.\nA bit of nostalgia in disc format. I’m not a power user — far from it. I’m not a total beginner either. I’m stuck right in the middle, leaning more toward \u0026ldquo;noob\u0026rdquo; than \u0026ldquo;expert.\u0026rdquo; I’m not from IT, I’m not a programmer, nor a software engineer. I’m just a designer who’s been messing with computers since the 90s. Or earlier. I can’t even remember when the MSX was released in Brazil. Several RAM sticks have already fried in my mind.\nI even tried to start a BBS called KID FOFURA BBS in the prehistoric \u0026ldquo;time before time.\u0026rdquo; Spoiler: it was a glorious failure.\nThe TDL-Lab This blog serves as the official record of TDL-Lab // Laboratório Teimoso do Linux, which, despite the fancy name, isn’t much of a lab. It’s just a home office with a desktop, a laptop, a printer, a couple of desks, and a lot of hoarded tech junk. Yes, I am a sick hoarder.\nBut in an attempt to give some useful purpose to my neuroses and manias—and trying to embrace the modern spirit of social media—I decided to document and publicize everything to the universe. At the very least, a record of this inconsistency will remain for the future.\nDon’t judge me. You won\u0026rsquo;t find \u0026ldquo;perfect tutorials\u0026rdquo; from a know-it-all here. You’ll find real experimentation, silly mistakes, duct-tape solutions, and old hardware being brought back from the dead.\nGood old organized chaos. The current lab setup: Main Desktop: AMD FX-6300, 8 GB RAM, NVIDIA GT 610, ASRock 760GM-HD motherboard; MacBook Air: Main workstation (design and productivity); Windows 10: Installed on the desktop for compatibility and fallback; Dedicated Drives: One for each Linux distro (Slackware and Arch, for now); Printers: One HP all-in-one, a pair of vintage scanners; Stockpiled obsolete junk: Countless items. The big news: AI has joined the game What makes this new phase truly exciting is a tool I didn\u0026rsquo;t have in my past adventures: Artificial Intelligence.\nClaude, are you still there? For the first time, I have a technical partner by my side in real-time, suggesting commands, explaining errors, and putting up with my crazy ideas like running ComfyUI on CPU-only on a 2013 machine. This has changed the game by nearly 200%. I used to spend hours lost in obscure forums and searching for hidden blogs in the deep web. Today, I still suffer, but I suffer in a much smarter and more entertaining way.\nGoal of this blog Document everything: successes, epic fails, lessons learned, and tests. Don’t expect structured or organized content—you might learn something by osmosis, but what really matters is the journey and the entertainment. My entertainment, of course.\nUpcoming practical goals:\nInstalling Arch Linux; Resurrecting Slackware in 2026 (Digital Archaeology); First steps with ComfyUI on CPU-only (get the coffee ready). Shall we boot?\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/tdl-lab/","summary":"\u003cp\u003eBefore the first boot, there was only the void…\u003c/p\u003e\n\u003cp\u003eOr rather: there was an \u003cstrong\u003eFX-6300\u003c/strong\u003e with 8 GB of RAM, an \u003cstrong\u003eNvidia GeForce GT-610\u003c/strong\u003e graphics card that can barely render a desktop, a 1 TB HDD eager to host AI models, and the stubbornness of someone who could never quite quit Linux for good.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/tdl-lab-pc.webp\" width=\"80%\" alt=\"Lab Setup\"\u003e\n  \u003cbr\u003e\u003cem\u003eOld but running Linux. Suck on that, Windows 11.\u003c/em\u003e\n\u003c/p\u003e\u003cbr\u003e\n\u003cp\u003eMy name is Marcelo Souza (or just “The Stubborn One”), I’m a Designer by trade, an old-school nerd/geek, and this is \u003ca href=\"https://teimosodolinux.github.io\"\u003e\u003cstrong\u003eteimosodolinux.github.io\u003c/strong\u003e\u003c/a\u003e — a technical and existential logbook of my adventures (and misadventures) with Linux in 2026.\u003c/p\u003e","title":"Welcome to the Stubborn Linuxer: The Birth of TDL-Lab"},{"content":"He certainly doesn\u0026rsquo;t go out dressed as a bat, hunting clown-costumed criminals to beat up.\nHe polishes bits. Obviously.\nWhile the outside world was doing outside world things, I was here in my home office — between the computer desk, the laptop desk and the drawing board — wrapping up the last configuration loose ends on the blog. An anorexic social life, as the true nerd manual dictates.\nBut it was a productive night. And productivity deserves documentation.\nExorcising the \u0026ldquo;About\u0026rdquo; Ghost The first bug hunted down that night was subtle. Using the blog\u0026rsquo;s search function and typing \u0026ldquo;A\u0026rdquo; or \u0026ldquo;About\u0026rdquo; returned a result pointing to an About page — that didn\u0026rsquo;t exist. Ghost page. Haunting from a previous configuration.\nThe culprit: a forgotten content/about.md file lurking in a corner, leftover from an earlier attempt. The menu entry had been removed, but the file stayed behind. Hugo indexed the content in search results even without a navigation link. One surgical rm and a hugo --gc later, the ghost was exorcised.\nFirst lesson of the night: in Hugo, deleting from the menu is not the same as deleting the content.\nBio Updated, Identity Consolidated I took the opportunity to update the blog bio to mirror exactly what\u0026rsquo;s on social media:\n\u0026ldquo;Analog dinosaur from the DOS era, getting beaten by Open Source since 2002 and losing sanity from excessive Xterm usage.\u0026rdquo;\nQuite the character. The Favicon and the Wrong Browser Saga Every self-respecting blog needs a favicon — that tiny icon that appears in the browser tab and that 90% of people ignore, but whose absence bothers anyone who knows it should be there.\nI tried PNG. Didn\u0026rsquo;t work. Tried SVG. Nothing. Converted to the ancient .ico format using an online converter — and it worked on the first try.\nThe legacy format wins again. The modern option isn\u0026rsquo;t always better; sometimes it\u0026rsquo;s just more annoying.\nThe tragicomic detail of the night: I spent several minutes frantically hitting reload to see if the icon would appear, with zero results. When I finally realized what was happening, I\u0026rsquo;d been pressing F5 on the GitHub Pages address — not the local server. The blog had been running at localhost:1313 the whole time.\nWho hasn\u0026rsquo;t been there.\nSocial Icons in the Theme PaperMod, the Hugo theme used here on the blog, has native support for social icons, and the theme already knows about X (formerly Twitter) and Instagram. All it took was adding the entries to hugo.toml:\n[[params.socialIcons]] name = \u0026#34;x\u0026#34; url = \u0026#34;https://x.com/teimosodolinux\u0026#34; [[params.socialIcons]] name = \u0026#34;instagram\u0026#34; url = \u0026#34;https://instagram.com/teimosodolinux\u0026#34; Worked on the first try. I\u0026rsquo;m getting good at this.\nElon Musk, my buddy. Social Media Exists. I Have Proof. Teimoso do Linux already has a confirmed presence on X and Instagram, both with the handle @teimosodolinux. And to prove this isn\u0026rsquo;t just talk, here\u0026rsquo;s the project\u0026rsquo;s first official social media post:\nUso Linux não porque ele seja bom. Uso Linux porque sou teimoso.#TeimosoDoLinux\n\u0026mdash; Teimoso do Linux (@teimosodolinux) May 9, 2026 \u0026ldquo;I don\u0026rsquo;t use Linux because it\u0026rsquo;s good. I use Linux because I\u0026rsquo;m stubborn.\u0026rdquo;\nPhilosophy summarized in 140 characters.\nPeriod. (For Today) Blog with favicon, consolidated bio, ghosts removed, social media live and icons working. The heavy configuration work is done — officially, or at least unofficially.\nThe next post will be the formal introduction of the blog and the project. That is, if nothing else breaks along the way. But that\u0026rsquo;s for another day.\nFor today, the Stubborn One is going to sleep. The bits are sufficiently polished.\nEpilogue: I Celebrated Too Soon I said I was getting good at this. I celebrated too soon.\nThe blog collapsed faster than a house of cards during attempts to embed a Twitter snippet. The server crashed, the log spat out errors in series, and the root cause was simple and humiliating: Hugo evolved, Elon Musk renamed Twitter to X, and the entire world had to update their configs as a result.\nThe {{\u0026lt; tweet \u0026gt;}} shortcode was removed in Hugo v0.156.0. The correct one now is {{\u0026lt; x \u0026gt;}}. And the privacy block in hugo.toml that used to be [privacy.twitter] is now [privacy.x]. Two details. Two crashes. One mental curse at Elon Musk. And one at Bill Gates too, just to keep the tradition alive.\nMental note: seriously reconsider this habit of embedding things in the blog.\nWritten on a Saturday night, with Hugo server open in one tab and GitHub in another — sometimes in the wrong tab. Cláudio delivered the draft in YAML. The blog uses TOML. Cláudio suggested privacy.twitter, already deprecated. The Stubborn One pasted the log. Balance restored, twice.\nWho on earth is \u0026ldquo;Cláudio\u0026rdquo;? Just one of my AI virtual assistants. Claude was too formal for me, Jarvis was already taken. A \u0026ldquo;rebrand\u0026rdquo; to Cláudio was the only logical solution, obviously.\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/what-does-a-nerd-do/","summary":"\u003cp\u003eHe certainly doesn\u0026rsquo;t go out dressed as a bat, hunting clown-costumed criminals to beat up.\u003c/p\u003e\n\u003cp\u003eHe polishes bits. Obviously.\u003c/p\u003e\n\u003cp\u003eWhile the outside world was doing outside world things, I was here in my home office — between the computer desk, the laptop desk and the drawing board — wrapping up the last configuration loose ends on the blog. An anorexic social life, as the true nerd manual dictates.\u003c/p\u003e\n\u003cp\u003eBut it was a productive night. And productivity deserves documentation.\u003c/p\u003e","title":"What Does a Nerd Do on a Saturday Night?"},{"content":"In the previous post, I talked a big game, bragged about how I had managed to get the blog up and running almost perfectly. Bullshit. It was a beating. I was almost defeated by a stray slash in a markdown file. At least now I have at least one functional comment field — I think. It still needs testing in production.\nThe first cold shower was pushing the blog live after the official commit and seeing that exasperating 404 error message. \u0026ldquo;Oh come on, now what? This never happened on Blogger\u0026hellip;\u0026rdquo;\nI turned to the only resource available to a panicking analog dinosaur: asking the AI for help. And the help came in the form of a humiliating checklist of obvious things I hadn\u0026rsquo;t done. GitHub Pages doesn\u0026rsquo;t activate itself after a commit — it needs to be manually enabled in the repository settings. Minor detail. Easily overlooked. Especially when you\u0026rsquo;re convinced you did everything right.\nEverything seemed to be going so well. With Pages sorted, the second problem arrived: the GitHub Actions workflow. Hugo isn\u0026rsquo;t a static site you simply dump into a folder — it needs to be compiled. Actions does this automatically on every push, but the configuration file needs to exist, be in the right place, and contain exactly what it should. One wrong line and the dot turns red. Several red dots later, the dot finally turned green. Partial victory.\nPartial because the site came up showing raw XML in the browser. No style. No layout. Nothing. It looked like RSS feed content dumped on screen — because that\u0026rsquo;s exactly what it was. The PaperMod theme wasn\u0026rsquo;t loading. Reason: it was registered as a git submodule without me fully understanding what that meant in practice. One line in the workflow later — submodules: recursive — the theme came back to life.\nNow we're talking. Except not really. Then came the images. I organized everything neatly into folders inside each post, referenced the files in the markdown, pushed everything up. The images didn\u0026rsquo;t appear. The problem? A slash. A single slash at the beginning of the path: /images/photo.webp instead of images/photo.webp. With the slash, Hugo looks for the file at the site root. Without it, it looks inside the post folder. The difference between working and not working is a single character that fits inside a comma.\nWho hasn't been there? In total: 404, broken workflow, missing theme, invisible images, and an irresponsible number of commits with increasingly unprofessional messages. The blog is live. The images show up. The layout works. The comment field miraculously exists — whether it actually works or not, well, that\u0026rsquo;s a whole other story.\nSometimes winning is just not giving up and being a little more stubborn until the dot turns green.\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/almost-defeated-stray-slash/","summary":"\u003cp\u003eIn the previous post, I talked a big game, bragged about how I had managed to get the blog up and running almost perfectly. Bullshit. It was a beating. I was almost defeated by a stray slash in a markdown file. At least now I have at least one functional comment field — I think. It still needs testing in production.\u003c/p\u003e\n\u003cp\u003eThe first cold shower was pushing the blog live after the official commit and seeing that exasperating 404 error message. \u0026ldquo;Oh come on, now what? This never happened on Blogger\u0026hellip;\u0026rdquo;\u003c/p\u003e","title":"Almost Defeated by a Stray Slash // Not Everything Is What It Seems"},{"content":"I had a simple goal: start a blog to share my technical adventures and misadventures involving Linux, free software and related subjects. I came up with a solid structure, an honest layout, did some research on platforms and that was it — I decided to host everything on GitHub. It seemed like a logical and natural path, since a blog about Open Source has to live on GitHub, right?\nSeemed right.\nThey say setting up a static blog with Hugo is \u0026ldquo;quick and easy\u0026rdquo;. That\u0026rsquo;s what the YouTube tutorials, recorded by people who probably don\u0026rsquo;t own an FX-6300 and a genetic inclination toward stubbornness, try to sell you. The reality? It\u0026rsquo;s trench warfare against .toml files and folder hierarchies that look like they were designed by a sadistic architect.\nThe Original Plan The idea was simple: get Teimoso do Linux online.\nEngine: Hugo Theme: PaperMod Goal: have a place to document my technical shenanigans without the distractions of social media Everything was going reasonably well, until I thought:\n\u0026ldquo;But it would be nice to have a comment section at the bottom. After all, every blog has one.\u0026rdquo;\nLittle did I know that this \u0026ldquo;final act\u0026rdquo; — configuring a simple comment box — would become my final boss.\nCreating a GitHub account was the easy part. The Tools Odyssey 1. Disqus — The Traditional Route \u0026ldquo;If master Fabio Akita uses it, I\u0026rsquo;ll use it too\u0026rdquo;, I thought. Let\u0026rsquo;s go with Disqus. I configured the shortname, adjusted the configuration file and\u0026hellip; nothing. The footer remained a desert of grey pixels.\nDisqus is like that proprietary driver you know should work, but decides to go on strike without emitting a single error log.\n2. Giscus — The Nerd Route I turned to Giscus. \u0026ldquo;Let\u0026rsquo;s use GitHub Discussions!\u0026rdquo;, I shouted at the walls. The result? The blog, in an act of pure rebellion, decided to render the script source code on screen instead of executing the tool.\nSeeing your own HTML code printed as if it were a concrete poem is a transcendental experience, but not particularly functional.\n3. Cactus.chat — The Privacy Route I tried to be ethical. I tried to be minimalist. Cactus.chat promised Matrix-based comments, no tracking and a clean interface.\nHugo responded by displaying only the title \u0026ldquo;Comments\u0026rdquo;, followed by an existential void.\nThe Goldmark \u0026ldquo;Scream\u0026rdquo; Along the way, I discovered that Hugo has a security system called Goldmark that, by default, treats any \u0026ldquo;strange\u0026rdquo; HTML as a biological hazard.\nI tried to disable the lock with the famous:\nunsafe = true Hugo not only ignored the command, but screamed syntax errors that made me question whether I still knew how to read a configuration file.\nNothing like an exasperating day of combat against the terminal. Lessons From a Day of Combat After hours editing partials, creating layout overrides and restarting the server (hugo server -D) more times than I rebooted my first Slackware, I reached an important conclusion:\n\u0026ldquo;Done\u0026rdquo; is better than \u0026ldquo;perfect\u0026rdquo;, but \u0026ldquo;posted\u0026rdquo; is better than \u0026ldquo;exhausted\u0026rdquo;.\nThe blog is live. The tags are there. The search (which also put up a fight!) is operational. The design is clean.\nThe absence of comments right now might be the universe sending a warning: before listening to other people\u0026rsquo;s opinions, I first needed to finish setting up my own space.\nNext Steps If you\u0026rsquo;re reading this and want to comment — sorry: you can\u0026rsquo;t. At least not today. The comment box is still an urban myth on this domain. I certainly forgot a misplaced comma in some hidden configuration file, or deleted something I shouldn\u0026rsquo;t have.\nBut rest assured: the stubbornness is not dead. It just went to sleep to avoid throwing the laptop out the window.\nVerdict: Hugo 1 × 0 Sanity. (But there will be a rematch.)\n","permalink":"https://teimosodolinux.github.io/en/posts/2026/05/prologue-blog-almost-functional/","summary":"\u003cp\u003eI had a simple goal: start a blog to share my technical adventures and misadventures involving Linux, free software and related subjects. I came up with a solid structure, an honest layout, did some research on platforms and that was it — I decided to host everything on GitHub. It seemed like a logical and natural path, since a blog about Open Source \u003cem\u003ehas\u003c/em\u003e to live on GitHub, right?\u003c/p\u003e\n\u003cp\u003eSeemed right.\u003c/p\u003e","title":"Prologue: 12 Hours, 3 Comment Systems and a (Almost) Functional Blog"}]