https://hristos.coHristos N. Triantafillou2024-11-15T00:00:00+00:00Hristos[email protected]soupaulthttps://hristos.co/img/slime.pngThe personal website of Hristos N. Triantafillouhttps://hristos.co/blog/void-linux-on-a-framework-laptop-two-years-laterVoid Linux On A Framework Laptop: Two Years Later2024-11-15T00:00:00+00:00
In April 2023, I wrote about getting a Framework Laptop in December of 2022, putting Void Linux on it, and using it as my daily driver. It's been roughly two years since that purchase and I'd like to share my experiences with the hardware and software.
https://hristos.co/blog/enjoying-morrowind-on-linux-part-one-original-engineEnjoying Morrowind On Linux - Part One: The Original Engine2024-02-03T00:00:00+00:00
I've written about this before but I think the time is ripe for another look at the topic - how can Morrowind be enjoyed on a modern Linux distro? Please join me for part one of a two-part series as I explore using the original Windows executable and related modding tools.
https://hristos.co/blog/cicd-for-morrowind-moddersCI/CD For Morrowind Modders2023-08-18T00:00:00+00:00
It may seem like an odd intersection but leveraging CI/CD patterns can vastly improve both the developer and user experience if you're a content creator such as a mod-maker. Morrowind (my favorite video game, I'd say) has a very active modding community even 21+ years after its release. Read on to see how I use CI/CD to enhance mine and my users' experience and to learn a bit about the Morrowind modding process in general!
https://hristos.co/blog/void-linux-on-a-framework-laptopVoid Linux On A Framework Laptop2023-04-21T00:00:00+00:00
This past December I decided to replace my eight year old personal development machine (a Lenovo Ideapad Y510p) with . Read on to find out what it's like buying into what could arguably be considered niche hardware!
https://hristos.co/blog/having-fun-with-valves-steam-deckHaving Fun With Valve's Steam Deck2022-09-14T00:00:00+00:00
is a portable gaming device that runs an Arch-based Linux distro called "SteamOS". It's meant to give the user a console-like experience with Steam, but because it's "just" a Linux machine there are plenty of things you can do outside of Steam and what it provides. Join me as I discuss some of what I've been doing!
https://hristos.co/blog/taking-a-chance-on-a-cheap-guitarTaking A Chance On A Cheap Guitar2022-04-29T00:00:00+00:00
I've recently taken the plunge on what some may consider a "cheap" guitar since it's obviously a knockoff of a very well known and much more expensive model. It's been a very interesting, mixed experience and I thought I'd take some time to write about it. Read on for my review of the !
https://hristos.co/blog/updating-my-custom-emacs-setup-part-oneUpdating My Custom Emacs Setup - Part One: Upgrading Packages2022-04-08T00:00:00+00:00
I've about how it is viable to use a custom Emacs setup, but I didn't go too far into the details about what it's like to actually take that route. In this, the first post in a series on updating my custom Emacs setup, I'll talk about my workflow for upgrading packages to newer versions.
https://hristos.co/blog/godot-engine-editing-gdscript-with-emacsGodot Engine: Editing GDScript With Emacs2021-12-24T00:00:00+00:00
is an exquisitely powerful, free game engine. One of my favorite aspects of Godot is that its editor was created with Godot itself! And indeed, it's an excellent showcase of how the engine could be used for building a great GUI program. But as excellent as the editor is, including the code editor for the bespoke scripting language GDScript, as an Emacs user it doesn't quite fit into my workflow. Thankfully, Godot has support for the , so I'm able to use Emacs in my game development workflow. In this post I'll describe what's required to do this, and how it compares to the stock Godot editor.
https://hristos.co/blog/linux-recording-studio-part2A Linux Recording Studio: Part 22021-11-05T00:00:00+00:00
Previously, which is driven by free software. In this entry, about both the hardware and software involved, I'll describe how my setup has changed since then and why.
https://hristos.co/blog/fallout-3-on-linux-with-modsFallout 3 On Linux With Mods2021-07-05T00:00:00+00:00
A while back, I did a post on playing . The goal with that was to play the game, but also mod it and do the entire process on Linux. Unfortunately, at the time it wasn't doable but I had hopes that with a little effort it would be. So has anything changed? Yes! But it is quite a long journey. Read on for the details.
https://hristos.co/blog/soupault-one-year-in-and-beyondSoupault: One Year In And Beyond2021-06-04T00:00:00+00:00
Some time ago, I decided to convert my Django-based blog to a static website. At the time, I wrote a little bit about my motivations but that piece was light on the technical details of "why Soupault". In this piece, I'll go over those details in the hope that more folks will give Soupault a look!
https://hristos.co/blog/my-custom-emacs-setupMy Custom Emacs Setup2021-03-06T00:00:00+00:00
It seems to be widely accepted that creating a powerful, useful Emacs setup "by hand" is just too much trouble, and you should choose a "distro" like Doom Emacs. But is it really all so bad? If you go the route of "hand-made", will you suffer through endless nights of fixing your setup? The answer is: probably not, but read on for more details!
https://hristos.co/blog/listening-to-music-on-linux-with-mpd-part-4Listening To Music On Linux With MPD - Part 42021-01-04T00:00:00+00:00
As a follow up to my earlier pieces about using MPD , I present to you a rundown of my current setup for listening to music with MPD. Things are mostly the same as before, but I now do things somewhat differently so I thought this could be a nice opportunity to tie things together. There's no need to read my prior posts unless you want to; this one will cover everything end-to-end as they do. With that out of the way, let's crank the volume!
https://hristos.co/blog/a-retroconsole-with-mister-fpgaA Retroconsole With MiSTer FPGA2020-11-26T00:00:00+00:00
I've about enjoying retroconsoles, specifically with the excellent distribution. But more recently, I've become aware of the FPGA gaming scene, and the devices built around it. Does the prospect of cycle-accurate emulation sound highly desireable to you? Then read to learn about the MiSTer FPGA!
https://hristos.co/blog/mousikofidi-my-music-cloudMousikóFídi: My Music Cloud2020-10-31T00:00:00+00:00
A web application that will serve audio and video files over HTTP, and is usable on viewports of all sizes. is something I made for myself, but it is dedicated to all music-lovers of the world. Read on to find out more about what it is, and why I made it.
https://hristos.co/blog/emacs-daemon-runit-user-serviceEmacs daemon as a runit "user service"2020-07-30T00:00:00+00:00
A while back, setting up a runit service for an Emacs daemon. The idea behind that post was that you'd have a system-level service for your user Emacs session. But what if you want a "user service", like what systemd-using folks have? Read on to find out how to replicate this with runit!
https://hristos.co/blog/a-retroconsole-with-lakkaA Retroconsole With Lakka2020-07-01T00:00:00+00:00
Having grown up with what are now considered "classic" or "retro" game consoles, as an adult that enjoys video games I find myself in particular still facsinated by these older platforms. Maybe it's because I grew up with them, or maybe it's because of an overall preference, but something keeps pulling me back to the classics. Join me as I discuss setting up a "retroconsole" with modern hardware and FOSS!
https://hristos.co/blog/linux-recording-studioA Linux Recording Studio2020-06-18T00:00:00+00:00
I've recently completed my first video production, and virtually the entire process was done on Linux. Screen capturing, audio recording, and complex video editing, all done with free software. It is totally doable, and rather pleasant too. Read on for the full story, or check out the video !
https://hristos.co/blog/using-my-laptops-nvidia-gpu-on-linuxUsing My Laptop's Nvidia GPU On Linux2020-04-05T00:00:00+00:00
As far as I know, official support for primus functionality on Linux is somewhat limited. I recall reading about some sort of official support from Nvidia themselves, but now that I look for evidence of this I'm unable to find it. As an alternative, I looked to using nvidia-xrun in order to more directly utilize the nvidia GPU inside my laptop. I've used primusrun, bumblebee, and friends before and they just aren't as easy to work with as this in my opinion - but most importantly, performance was lacking. Read on as I discuss how I did this, with Void Linux package recipes.
https://hristos.co/blog/fallout-new-vegas-on-linux-with-dxvkFallout New Vegas On Linux With Wine And DXVK2020-01-13T00:00:00+00:00
I've recently had the urge to remove Windows 10 from my gaming PC and go 100% Void Linux. Fallout New Vegas is one of my favorite games, and one that until now I only played on Windows. Nowadays, not only does the game work reliably but there are curated installers that get you rolling with optimal configurations that a newcomer would have no idea about. Read on as I describe this process, and the results!
https://hristos.co/blog/reviving-my-blog-with-soupaultReviving My Blog With Soupault2019-11-10T00:00:00+00:00
Back when I was first learning to program, part of that learning experience involved rolling my own blog engine using Django. This had driven my website since it's inception, until yesterday. Join me as I discuss the how and why moving my blog to !
https://hristos.co/blog/emacs-python-my-setup-2018Emacs & Python: My Setup 20182018-11-27T00:00:00+00:00
Earlier this year I did an expansion to my entries on MPD, sort of a state of my setup piece, and I've decided to do the same thing for my Emacs and Python setups as well. If you write Python code and use Emacs, or are interested in either, read on!
https://hristos.co/blog/emacs-daemon-runit-serviceEmacs daemon as a runit service2018-06-09T00:00:00+00:00
So, you want to run an Emacs daemon as a runit service - and you also want to connect to it in your desktop session. Thanks to the new <code>--fg-daemon</code> option in Emacs 26.x you now can! I'm going to describe how to set up the service, as well as <code>sudo</code> rules for managing it without requiring a password each time. Read on for the exciting details!
https://hristos.co/blog/mpd-my-setup-2018MPD: My Setup 20182018-04-21T00:00:00+00:00
I figured it was time for a follow-up to my previous entries on MPD that describes the current state of my setup with all of its evolutions. Here we go!
https://hristos.co/blog/selenium-testing-django-application-locally-and-ciSelenium testing with a Django application - locally and in CI2018-01-24T00:00:00+00:00
With a good suite of Selenium tests, you could have full confidence that your application fully works without manually using any part of it yourself. Join me as I discuss adding Selenium tests to a Django project that are ran both locally and in a CI environment on a headless server.
https://hristos.co/blog/mario-kart-8-winMario Kart 8: A Win!2018-01-07T00:00:00+00:00
This is a clip of me nailing a win while riding a blue stuffed teddy bear. Nothing too special.
https://hristos.co/blog/zelda-breath-of-the-wild-random-occurrences-vol-1Zelda: Breath of the Wild - Random Occurrences Vol. 12018-01-07T00:00:00+00:00
This clip is a testament to the living nature of the world in this game. I'm jumping off of a cliff while looking for something and drop in on a bit of unexpected wildlife...
https://hristos.co/blog/zelda-breath-wild-burn-baby-burnZelda: Breath of the Wild - Burn Baby Burn!2018-01-07T00:00:00+00:00
This clip demonstrates BotW's slick fire and physics. Watch as I burn a pile of boxes in the woods!
https://hristos.co/blog/2017-in-games2017, in games2017-12-31T00:00:00+00:00
Normally I wouldn't bother writing a piece about games because I don't play enough of them to comment on the state of what's out now. If it isn't called "Morrowind", chances are I won't be playing it much. But with all that being said this year I have managed to get my hands on a few games that are not only real gems, but modern masterpieces that deserve a bit of a callout. Come, stay a while and listen!
https://hristos.co/blog/2017-in-music2017, in music2017-12-30T00:00:00+00:00
For me, 2017 has been an utterly fantastic year for music. Not just the new albums that've been released that are rocking my world, but the whole current of sound I've experienced throughout the year. It's been a year of musical reawakening for me, getting back into the "Metal" genre after many many years of being a casual observer and fan. If you're like me, music is more than just a way to fill time or whatever. It's that for sure but also something more, something that goes higher... At any rate, join me as I reflect on the musical year of 2017!
https://hristos.co/blog/a-terminal-feature-i-never-knew-i-wantedA terminal feature I never knew I wanted2017-12-04T00:00:00+00:00
For a very long time, maybe close to eight years, I've used as my terminal emulator. Based on gnome-terminal but offering features like split panes and more, it was easy to use, looked and worked well, and was widely available. The pane splitting was really a driver for my workflow, I came to (and still do) rely on it to be productive.
https://hristos.co/blog/watch-me-listen-to-musicWatch me listen to music!2017-12-01T00:00:00+00:00
Behold the glory that is ncmpcpp's visualizer! Audio not included.
https://hristos.co/blog/using-gui-emacs-editor-ansible-vault-fish-shellUsing GUI Emacs as an editor for ansible-vault with fish-shell2017-11-23T00:00:00+00:00
If you didn't know, is a nifty tool that lets you encrypt things for use with Ansible. For some reason that I've not yet discovered, <code>ansible-vault</code> doesn't care if you've <code>set EDITOR /usr/bin/emacs</code> in your <code>fish.config</code>. To work around this, I use the following alias function:
https://hristos.co/blog/org-agenda-list-initial-buffer-choice-daemon-modeOrg mode's agenda list as initial-buffer-choice with Emacs' daemon mode2017-10-26T00:00:00+00:00
Normally when I want to do anything with Emacs it's a matter of writing some Elisp code and poof, I've got what I want. Anything can be realized, it's usually just a matter of knowing which internal to tweak or what to implement. With that in mind, now that I'm getting into the swing of using I thought it would be great to have <code>org-agenda-list</code> as my default buffer when I open Emacs. As it turns out, simply doing something like <code>(setq initial-buffer-choice 'org-agenda-list)</code> won't yield the same results between daemon and non-daemon Emacs. Wheee!
https://hristos.co/blog/soulfly-does-nailbomb-at-the-forgeSoulfly Does Nailbomb at The Forge2017-10-17T00:00:00+00:00
Tonight I went to see Soulfly play the Nailbomb record "Point Blank" in its entirety - openers were Lodi Kong, Noisem, and Cannabis Corpse. I've been to so many shows over the years but not a lot of metal shows actually. I've always loved fast, heavy music and Nailbomb is something I would have loved twenty years ago. The show was really good, they pulled off the set well and the openers were awesome too.
https://hristos.co/blog/short-setupShort Setup2017-10-10T00:00:00+00:00
Not <em>too</em> short since the target host is slow, but you know. Watch as I set up a VM from nothing with ansible! Everything from sshd configs to the iptables rules is managed via a config management system.
https://hristos.co/blog/visor-advisor-take-oneVisor Advisor: Take One2017-10-02T00:00:00+00:00
This tune was penned and played by a band I jammed with in high school. Today, I present to you a reimagining of that song!
https://hristos.co/blog/small-rotating-wallpaper-programA small rotating wallpaper program2017-09-23T00:00:00+00:00
I recently felt the need for a rotating desktop background - that is one that switches the image every so often. I'm not aware of any specifc programs that solve this exact problem, but sports some neat command-line options that make scripting up such a thing a cinch. Behold:
https://hristos.co/blog/always-learning-new-git-tricksAlways learning: new git tricks2017-09-14T00:00:00+00:00
Imagine the following scenario: you keep the dotfiles for several machines under one git repo with some submodules, including one machine which clones a submodule from a GitHub repo that I own (so it's cloned over SSH, not HTTPS.) No problem when I do a recursive clone when using a key that's connected to my GitHub account - but when I'm on my gaming rig, or any other machine that is not connected, that clone URL fails as does the overall recursive clone operation. This can be "cleaned up" by hand but is a pain.
https://hristos.co/blog/crappy-covers-long-jam-editionCrappy covers - long jam edition2017-06-05T00:00:00+00:00
This is a very rough recording of a jam session of mine. My normal routine is to put a series of tunes on shuffle and just jam along - this is the result of today's second jam session:
https://hristos.co/blog/crappy-covers-volume-oneCrappy covers: volume one2017-06-05T00:00:00+00:00
This is a quick track I recorded to test my whole recording setup, as I set it up. The song is "<span class="bold">Refuse/Resist</span>" by <span class="bold">Sepultura</span>; I'm doing the rhythm, baby.
https://hristos.co/blog/playing-morrowind-on-gnulinuxPlaying Morrowind on GNU/Linux2017-03-21T00:00:00+00:00
In this entry I'll discuss what is needed to run Morrowind via OpenMW, and how to get it -- but also in a way that's reproducible and mostly independent of your distribution. I'm not going to go into too much detail about mods (maybe in a part 2 perhaps) but I will go over some general recommendations. Let's go, outlander!
https://hristos.co/blog/revisiting-n64-wresting-games-modern-gnulinuxRevisiting classic N64 wresting games on a modern GNU/Linux2017-03-02T00:00:00+00:00
N64 is nowhere near my favorite classic console, but I won't hesitate to agree that it is home to the best wresting video games ever made. As it turns out, these games (particularly the Asmik ones) are <span class="bold">still</span> fun! In this entry I'm going to talk about how I've been playing on Void Linux. Although you (likely) won't be able to enjoy any of the many that are out there, you can enjoy the very fun vanilla game with some modern enhancements like HD resolutions. Wooooooo!
https://hristos.co/blog/no-keys-by-defaultNo keys by default2017-02-25T00:00:00+00:00
I've recently decided to stick an SSD into an old Thinkpad T61 I have in an effort to make using it less painful. With a spinning disk, the age of the CPU really showed, but with an SSD it's back to being a total joy to use. This machine was my main driver for several years and it's great to refresh it again, and I've decided to try something new with my various secure keys this time. On this machine, there are no GPG, SSH, or VPN keys at all; those exist on a LUKS-encrypted flash drive which I mount and unlock as needed. This is technically more secure than just keeping said files on disk unencrypted at all times, and sounds pretty good I suppose, but is it actually a huge pain in the ass? Read on!
https://hristos.co/blog/mpd-through-a-bluetooth-speakerMPD through a bluetooth speaker2017-02-25T00:00:00+00:00
I recently grabbed a bluetooth speaker, intending to mostly use it with my phone, but I quickly found myself wanting to play my laptop's MPD through it. Today I'll describe how I got it going - and In the process we'll also resolve some issues with the setup described in . The process was pretty straight forward but it didn't just work so I figured I would talk about it a bit here.
https://hristos.co/blog/why-i-like-fishWhy I Like Fish2017-02-09T00:00:00+00:00
For about three or four years now, I've been a pretty happy user. I had a pretty decent, not-too-complex/customized setup based on a popular framework that bills itself as "minimal", but a recent whim prompted me to check out <code>fish</code>.
https://hristos.co/blog/style-changes-and-new-contentStyle changes -- and new content!2017-01-23T00:00:00+00:00
I rolled out a new style for the site a few weeks ago - I've dropped for and cleaned up the style in general. I had been relying pretty heavily on Bootstrap for the style of the site, and it gave me what I wanted, but I wanted to shrink the size of each page and I knew that Bootstrap wasn't helping.
https://hristos.co/blog/quick-cc-ide-emacs-and-clangllvmQuick C/C++ IDE with Emacs and clang/LLVM2017-01-22T00:00:00+00:00
Using my Emacs configuration. C/C++ are the focus of this clip, but you'll be set up for much more. Most of the clip is sort of boring (waiting for stuff to download from MELPA and etc) but everything comes together at around 0:57 seconds in.
https://hristos.co/blog/editing-with-emacs-python-part-2Editing with Emacs: Python - Part 22016-09-29T00:00:00+00:00
This is a follow-up to , as well as the start of a series on using Emacs effectively with a number of languages.
I'll go into what I use for editing python with Emacs and why, as well as how I set it all up. Let's go!
https://hristos.co/blog/mpd-local-listeningMPD for local listening2016-03-27T00:00:00+00:00
Recently, out of a desire to use less memory while listening to music, I've been exploring different ways of listening to music under GNU/Linux. There's a wealth of GUI-based as well as terminal-based music playing itrfaces out there, and I've never really been a fan of most of them. Terminal-based players never appealed to me; I'm not someone who needs to do everything in the terminal and find it limiting for some things.
https://hristos.co/blog/moving-away-debianMoving away from Debian2016-02-06T00:00:00+00:00
I've been using Debian since I first began using GNU/Linux. Through the years I've tried other distros, and ultimately settled on a Debian-based distro rather than vanilla Debian. But now the time has come to leave my comfort zone behind and go boldy where I've gone but not really loved before - away from my comfort-zone distro!
https://hristos.co/blog/steam-windows-gnulinux-how-i-do-itSteam for Windows on GNU/Linux - how I do it2015-10-13T00:00:00+00:00
But wait! Why do you want to mess with Windows' version of Steam when there's a native client for GNU/Linux systems?
https://hristos.co/blog/editing-python-emacsEditing Python with Emacs2015-09-30T00:00:00+00:00
The recent business with is a great example of how quickly things can change (). Other things, like for example, don't change too terribly much over very long periods of time.
https://hristos.co/blog/wine-is-not-an-emulator-but-it-is-awesomeWine is not an emulator, but it is awesome2015-09-08T00:00:00+00:00
sometimes seems to get a bad wrap, but it really is an amazing project. With it, GNU/Linux users (and Mac users, too!) can run Windows applications - . One thing I've found that's helped me get the most out of wine is to use the latest development versions. Debian and friends usually only keep stable releases in their repositories, so you can easily miss out on a lot.
https://hristos.co/blog/control-the-dotfilesControl the dotfiles!2015-08-30T00:00:00+00:00
When I was first learning to use GNU/Linux and scripting, I was dead set on creating the bestest backup script. You see, during this period I would very frequently hop distros and I wanted an easy way to restore various settings I wanted. I had never really used any kind of version control system, so methodical usage of <code>tar</code> seemed like the logical choice. Even if it wasn't the best solution, I was trying to do what I could to get the most out of my experience working and playing within this ecosystem. I wanted to shape it as close to exactly what I wanted as possible, and maybe along the way find out new things to try and add to the mix.
https://hristos.co/blog/nice-place-beA nice place to be2015-07-04T00:00:00+00:00
The first computers I ever used were Apple IIe systems. At the time, to me they were machines for playing video games that my SNES couldn't. They were magical devices.
https://hristos.co/blog/hello-worldHello, world!2015-06-30T00:00:00+00:00
Hello, world! Greetings and welcome to this, my website and blog. I'm just a dude that grew up in the midwest and has always been enamored with music, games, technology, and nature. I'd like to use this blog as a place to share my thoughts and ideas, especially those that might be useful to other folks.