GNOME Shell Extensions for Quality of Life

I’ve spent over 20 years living in the Linux ecosystem. My journey started with pure curiosity—I wanted to tear down the curtain and understand the architecture from the moment the power button was pressed to the second the bootloader handed off to a desktop environment.

For the better part of the last decade, my Linux use was “workhorse” mode: headless local and remote servers doing the heavy lifting. Very seldom did I need to interact with Linux via a graphical interface.

Recently, I made the jump back to the desktop, migrating from Windows 10 to Ubuntu full time. I’ve always been an advocate for open source (as my archives here will show), but coming back felt different this time.

I started back with Ubuntu 24.10 and have upgraded with each release from 25.04 to now 25.10. With architectural changes such as moving away from X11 to Wayland, many features and apps that I’d previously depended on became limited and in some cases fully incompatible.

I was expecting significant advancements in not just stability, but also out of the box usability. What I found was a user interface that had progressed very little over the past ~10 years and many basic things, such as persistent window positioning on multiple monitors, didn’t just work out of the box as I’d expected.

The Innovation Gap

While the stability of modern Ubuntu is impressive, I felt a distinct lack of the “innovation flare” that made the early days of Linux so exciting. I grew up in the era of Compiz, where the desktop felt alive—windows had weight, light moved with you, and the workspace was a 3D environment rather than a static grid.

Searching for that same “wow factor” in modern GNOME was disappointing. Many of the best visual tools were either:

  • Outdated: Abandoned by original authors years ago.
  • Broken: Missing support for the latest GNOME Shell versions.
  • Lacking: Missing the specific features or “physics” that made the originals great.

I didn’t want to just complain about the lack of polish; I wanted to fix it. I’ve begun forking and maintaining a suite of extensions to ensure that the modern Linux desktop doesn’t have to sacrifice personality for stability.

My primary mission in all of this is to reclaim some fairly insignificant features that improve MY day to day experience. However, like with most hobby projects I spend time on, I’ve pushed these extensions in public repositories and provided documentation and example media.

I am hosting these personally to ensure they stay updated, feature-rich, and compatible with the latest GNOME releases.

A Note on Long-Term Maintenance

My goal is to keep these extensions functional and up-to-date, much like I did previously with my WP-UserAgent WordPress plugin, which I maintained for well over a decade. However, this is a passion project. Updates will be periodic—triage and compatibility fixes will happen as my personal and professional life allows.

If you’d like to contribute, you’ll find some additional notes in GitHub on how best to do so. Lastly, as these were and are still open sourced, I encourage anyone with more time than I to fork, clone and continue to build and improve on top of these implementations.

The “Goodies” Collection

1. Magic Lamp for GNOME Shell Bringing back the classic “Genie” minimize effect with the smoothness modern hardware deserves.

GNOME Magic Lamp extension screenshot
GNOME Magic Lamp

2. Night Light Slider Adding granular, manual control to the GNOME Night Light that was surprisingly missing from the base settings.

GNOME Night Light Slider

3. Window State Manager Because your windows should remember where they belong, even after a reboot or a monitor swap.

GNOME Window State Manager extension
GNOME Window State Manager

4. Wobbly Windows Effect The quintessential Compiz “bling.” I’ve ensured the physics feel right and the compatibility is rock solid for current GNOME versions.

GNOME Wobbly Windows extension
GNOME Wobbly Windows


How to Install: I’ve included a simple one-line terminal command on each page. No need to mess with the official extension site—just copy, paste, and enjoy the wobble.

Conclusion

The modern Linux desktop is undeniably stable, but stability shouldn’t have to mean sterility. By bringing a bit of that old-school Compiz soul into the Wayland era, I’m hoping to bridge the gap between a “workhorse” OS and a workspace that actually feels personal.

While I have several other implementations in the pipeline, my immediate focus remains on refining the physics and polish of this current suite. I invite you to try them out, fork the code, or simply enjoy the nostalgia. Let’s make the desktop feel alive again—one wobbly window at a time.

Setting up my Raspberry Pi 2 for Retro Gaming

Earlier in the year I purchased a Raspberry Pi 2 and have been playing around with different distro’s. One interesting distro that I came across was RetroPie. While RetroPie currently has a newer version of their distro in Beta form (Beta 4 at the time of posting), I’m posting these directions as reference instructions to myself and others.

Below you’ll find setup/config instructions specific to RetroPie v2.6 and the parts I’ve listed in my setup. Content below may also be relevant for newer version of RetroPie, however, your mileage may vary and some of the steps may not be necessary in version 3+.

Specs on My Pie

Parts List

 

Guide

Install Operating System

There are a number of Operating Systems you can install and run on your Raspberry Pi, but I won’t cover them all here. Instead I’ll be focusing on installing and configuring RetroPie, which is an Operating System based on Debian Linux with a heavy focus on video game emulation. This guide is also targeted towards Windows users. If you’ll be using Mac or Linux there are other guides that you can follow to install the Operating System on your card.

Continue reading “Setting up my Raspberry Pi 2 for Retro Gaming”

OpenID Authentication Plugin for vBulletin 4

Recently I volunteered to help fix an existing project or develop an OpenID authentication plugin for the vBulletin platform. The group in need was UbuntuForums.org and I would have never known if it hadn’t been for Jorge Castro’s public request for help.

The Story

The existing plugin had been developed specifically for vBulletin 3.x, however, they are (as of writing this) in the process of upgrading their forums to vBulletin 4 especially wanted OpenID to be available when they make the upgrade. That’s where I came in.

Canonical, the company behind Ubuntu, provided me with necessary software licenses for vBulletin 4 and from there it was a lot of late nights attempting to simply get a successful OpenID process to occur.

Working a full time job doesn’t make projects like this as easy as I remember them once being… Nonetheless I was able to successful port the plugin to vB4 where there were several significant differences that took me some time to address and to be honest, the previous code was a bit more complicated to follow than it should have been.

One major change from vB3 to vB4 was the way templates work. I’d never worked with vBulletin before, but I’ve had an extensive amount of experience with phpBB and bbPress in the past. After getting over the frustration of how vBulletin prefers to store ALL template information (in the database rather than pull from template files) I was ready to begin the repair process.

Continue reading “OpenID Authentication Plugin for vBulletin 4”

Debugging PHP in Ubuntu using Eclipse

This guide walks you through the necessary steps to configure the Eclipse IDE for PHP debugging. This can be very handy, especially when you’re trying to resolve an issue in a complex PHP application or plug-in.

Things you’ll need

  • Eclipse
  • Eclipse PHP Development Tools (PDT)
  • Xdebug
Assumptions
This article assumes that you are configuring Eclipse and Xdebug for development on a localhost web server. If you are not, be sure to make appropriate adjustments to accommodation your needs. Likely the only changes you will need to make will be differences in connecting to your server verses localhost.

Quick Overview

For those that are unaware, Eclipse is a very popular IDE for developing in Java. However, Eclipse is much more powerful than that and can in fact easily be used for developing in many other languages including PHP.

Xdebug is a brilliant debugging extension designed for use with PHP. Once configured, Xdebug will allow you to remotely connect to your web server… or in my case connect to my development localhost web server. Rather than using crude echo and logging techniques to debug your PHP code, Xdebug allows you to literally step through and inspect values and function flows in real-time.

Continue reading “Debugging PHP in Ubuntu using Eclipse”

Making CSS UL Menu’s Browser-Consistent

If you’ve ever made a web site and wanted it to look consistent from one browser to the next, then you’re well away of the difficulties that are involved. Fixing these sorts of styling issues can be a major annoyance, however, I like to hunt down issues on my own pages from time to time and stand up to the challenge.

One issue that I can across today was dealing with horizontal menu positioning using unordered lists (<UL>) and some positioning. The positioning wasn’t consistent between browsers or even operating systems.

Continue reading “Making CSS UL Menu’s Browser-Consistent”

[How to] Create a bootable USB stick on OS X

A couple of days ago I decided to reinstall my operating system since it was failing. I quickly realized that the only functional system that I had at the time was my MacBook Pro. After a bit of Googling, I came up with a pretty straightforward guide, but they really could have formated it to make it easier to follow.

I’m going to run you through the same steps and you should be able to use this guide to create a bootable USB stick for Windows, Ubuntu, Fedora, etc.

Continue reading “[How to] Create a bootable USB stick on OS X”

Ubuntu Software Center vs. Mac App Store

As many of you may already know, Mac OS X now comes installed with a “Mac App Store”. Ubuntu also comes installed with an “Ubuntu Software Center”. Both of these applications serve the same general functionality in very similar formats, but I’m going to take a look at what needs to be improved in the Ubuntu Software Center.

First off, lets take a look at both of these applications from a first impressions point of view. Its pretty obvious at a glance that the user interface of these applications are eerily similar. It’s also pretty obvious that one app has received a little more attention to detail and aesthetics.

First Glance

Mac App Store

Ubuntu Software Center

Continue reading “Ubuntu Software Center vs. Mac App Store”

First Time to the West Coast

I went on a business trip recently to Reno, NV. While I was out that way I decided to make a quick trip to Los Angeles, CA and see the West Coast for the first time.

It was a fun trip and I took a lot of pictures. Unfortunately it rained most of the time I was in LA and the pictures I took didn’t turn out as well as I’d hoped. I do however have some pretty fantastic pictures from my trip that I wanted to share.

Me at North Lake Tahoe in Nevada.
Me at North Lake Tahoe in Nevada.

Room 1191 view from the Grand Sierra Hotel & Resort.
Room 1191 view from the Grand Sierra Hotel & Resort.

This was a pretty interesting view with the clouds and the mountains surrounding everything. There was basically a 360 degree view of these mountains.

Continue reading “First Time to the West Coast”

Akismet + phpBB3 = Clean Forums

Update: deprecated by phpBB 3.1+

I’ve dealt with spam registrations and spam posts for years now in an online forum that I host. Its a burden on the users and a burden on (especially) the owner. No one wants to use a forum that can’t seem to control spam and no one wants to have a daily routine of manually purging hundreds of posts and users either! That’s where Akismet comes into play. 😉

I’ve used it in combination with WordPress from the beginning and to-date it has blocked nearly 500k spam comments! I enjoy working with web stuff, but I enjoy hacking it together even more.. so I’ve put together a “mod” package that will harness the power of Akismet and its super easy to install! While it won’t take care of spam registrations (you’ll need something else for that), it should be able to dramatically curb spam posts!

What you need

  • A web server running at least PHP 5 with phpBB 3 installed (I do not support phpBB2 or lower).
  • An Akismet API Key (* Free for personal use, the donation bar DOES drop to $0, though donate if you wish).
  • My phpBB + Akismet Installation package
  • FTP Access to your phpBB server
  • 15-20 minutes for setup time

Continue reading “Akismet + phpBB3 = Clean Forums”

Create a Bootable Windows 7 x64 Install Flash Drive from 32-bit Windows

Creating a bootable Windows 7 x64 flash drive from within a 32-bit install of Windows is not as straight forward as it may seem. I recently had to go through this process myself, so I’ll document the steps below.

Things you’ll need

  1. Windows 7 x64 disc image
  2. Windows 7 USB/DVD Download Tool
  3. 32-bit bootsect.exe

Create the installer

Continue reading “Create a Bootable Windows 7 x64 Install Flash Drive from 32-bit Windows”

Nvidia patches a bug I’ve waited 9 months for…

I’ve been following an Nvidia bug that’s been affecting me for a while now and am happy to say that its apparently been fixed! I say apparently, because I’ve not been around my Linux box for several days (due to the holidays) and haven’t had a chance to confirm for myself.

If you have an Nvidia card, especially the 7300le model like I have, and have had difficulties using Unity 3D with the proprietary drivers, then you may have experienced this bug: [nvidia, 7300, 7400] display freeze when using unity desktop

Nvidia has just released an update which resolves this issue and it can easily be installed right away!

Continue reading “Nvidia patches a bug I’ve waited 9 months for…”