# The Year of Ricing/Homelab This year I worked on a handful of personal tech projects as well as professional. I shifted from Mobile development to Backend (I'm a .Net boy now!) ## Ricing While the term itself has existed for a while in the car world ive only been hearing it recently in tech. It refers to tweaking/modifying your current working environment, usually visually, in a way that allows you to hopefully work better/smoother/cooler. This involved doing alot of research into the current software environment across all of the Operating Systems I use. #### Personal - Windows Desktop (Personal) - Gaming, Development when i'm too lazy to turn on my mac mini - Mac Mini - Development, Tinkering - Fedora Frame.work Laptop - Mobile workstation #### Work - Macbook - Windows - Mostly in parallels, so I ignore this one as its really just a way for me to "Launch Visual Studio" Now... Do I need to run 3 operating systems? Could I forego the frame.work laptop and get a macbook? Sure.... but I don't want to! 🤣 My goal this year was to ensure that my experience while using any of my machines was as OS agnostic as possible. ie. I use the same tools (or similar) with the same hotkeys, to me the operating system I am using should be as irrelevant as possible. The list of apps that I found is VERY long so for this I will focus on the handful of apps that I use daily and have become mandatory (to me) in my day to day work. For more information on my exact configuration/the scripts I use to setup my personal/work machines take a look at this repo!! https://github.com/eholtrop/pc-setup/ ### Keyboard Shortcuts Using 3 operating systems with the same (ish) keyboards is a struggle to say the least. With windows requiring the windows key for most of its shortcuts... And OSX claiming double duty for the CMD key (seriously its half a ctrl key and half super...) I had to find a solution. Its good to note that both Linux and Windows shortcuts behave incredibly well together. This is mostly due to the flexibility of Linux/Gnome shortcuts. In the past I had made a ton of effort to remap keys and update shortcuts. But this year I found a "simple" solution by switching keyboard layouts and making some key *hardware* level mapping updates ![[IMG20250112100529 1.jpg]] My keyboards themselves are small which I prefer, which removes the option of customization using the (visible) F keys. But let me ask a question. Now overall the issues arise with the Ctrl/Cmd keys. To remedy this I remapped the CMD and CTRL keys within OSX itself, and remapped the "Super" key on my keyboard to something else (in my case I mapped it to F23 to avoid any default bindings) This allowed me to utilize the super key for whatever I desired! And also made windows management much easier by ignoring the default Windows bindings (more on that later!) The last thing I did (which I think everyone should consider) is remapping the Caps Lock key. I never use it and whenever it is enabled its usually by accident. So I remapped mine to the "\`~" key as I use it nearly daily across both Slack and whatever IDE I am using ### Application Launcher An application launcher is a key tool that not only launches apps, but can house entire workflows and in some cases, replace core features of an operating system! Most operating systems come with one of these built in (as you will need to launch apps in some way) for windows this is the Start menu, OSX its spotlight, and linux its whatever your flavor of linux comes with (for Fedora that would be Gnome!) I have replaced all of these! The key feature I am looking for in an Application Launcher are. 1. Launch Applications (Duh) 2. Fast 3. Plugin Support (preferably with a large selection of plugins) #### Windows - Flow Launcher https://www.flowlauncher.com/ This may be my favourite one so far. While Alfred on OSX is much older and more powerful, I find it to be a bit too bloated (for me). Flow launcher has the right amount of scope, it solves the problems I need while maintaining a easy to use interface. #### OSX - Alfred https://www.alfredapp.com/ While Alfred has been a mainstay in my workflow for MANY years I have been wanting to tinker with Raycast while will be a 2025 project! (and it seems like a windows version is one the way!) I don't use alfred for nearly as much as I could. But it does what it does and outside of curiosity I have no reason to switch! #### Linux - uLauncher https://ulauncher.io/ While I dont use this one near as much as the others it handles the requirements stated well enough. Granted out of the 3 solutions here it does seem to be the most "basic" (and in classic Linux fashion it requires a bit more tweaking to get running perfectly) ### Window Manager This year was the switch to a Tiling Window Manager! If you have used something like i3 from the linux world that may sound familiar. The idea being that you as a user no longer fully control where your windows will open. Windows will always open beside each other splitting the difference equally (ex: three vertical columns across your screen) unless you configure it otherwise. The hard part here was getting all of the shortcuts to match across the three services that were picked. To do this I had to remap the "Super/Windows" key to something different (I chose F23). This allowed me to ignore the current windows mappings and truly unleash what a tiling manager can do. This update has skyrocketed the speed in which I can tinker around with my current workspace, while it did take some getting used to. I would be hard pressed to return to previous window managers #### Windows - Komorebi https://github.com/LGUG2Z/komorebi Great but requires a restart more often than id like. Overall has all the configuration required and the animations are *slick* #### OSX - Aerospace https://github.com/nikitabobko/AeroSpace #### Linux - Hyprland* https://hyprland.org/ This is one that I am still actively tinkering with. If you have ever tried to use Hyprland you know that once enabled, Your entire machine disappears and all you get is a terminal/cmd prompt 🤣it requires TONS of configuration to get working perfectly. While I do have aspirations of getting this working flawlessly, its still safe to say that I "Daily Drive" gnome. ### Terminal #### Wezterm https://wezterm.org/ Finally something truly cross platform! Wezterm has been breath of fresh air in the terminal space (for me) historically I was just using the default emulators but finally landed on one to use going forward (Granted I am looking at Ghosty... its pretty cool) In my research I also found a handful of tools that made my terminal experience significantly better! (Note: these tools are note specific to Wezterm) Zioxide - Better CD eza - Better LS P10k - Pretty terminal theming ## I made many other changes to my workflow setup over the past year but these were the major ones! ## Homelab This year I made some massive updates to my homelab/home network. My initial single machine has since evolved into cluster of machines. My initial Unraid Server (Steve) was getting a little bloated with all of the docker containers, so I decided to setup a few other servers to help delegate tasks and reduce bottlenecking (read/write speeds, network speeds... etc etc) Before the responsibilities looked like so: #### Steve - Home assistant - Grocy - Plex - Radarr - Sonarr - Readarr - Unpacker - Deluge - Pi-hole - Local AI - Kuma - Lancache - ... - ... - . This needed a few updates. So to help remedy this I created a second Unraid Server (Martin) as well as purchased a handful of Raspberry Pi's and smaller "single use" computers | Steve | Martin | Home Assistant Green | 3x Raspberry Pi | Mac Mini | | -------- | -------- | -------------------- | --------------- | -------- | | Readarr | Deluge | Home Assistant | Pihole | Ollama | | Sonarr | Unpacker | Grocy | Kuma | | | Readarr | | | | | | Kapoarr | | | | | | Plex | | | | | | Lancache | | | | | The idea being that Steve would still be the main storage server, but the "consistent/daily work" would be done by other machines, leaving Steve to be a storage/plex streaming machine! This also "required" a networking upgrade for the home. At the start of this year I "only" had a 1GB intranet connection between all of my devices, as well as a modem that was... difficult to improve (the amplifi Alien). I made the switch from Ubiuitis Amplifi line to their "big boy sys admin" Unifi line. The UCG Max launched this year and it had everything I needed! - LAN 2.5g ports - Unifi Management Software/Compatibility While it also has on device storage for video feeds, I found this was unnecessary as I do have my unraid servers to store things on! I then swapped out the handful of 1GB switches for these Mokerlink switches (some POE, some not, depending on the requirements for the room) https://www.amazon.ca/gp/product/B0CCD9X4QT/ref=ox_sc_saved_image_1?smid=A3QDIXKZEEMM5K&psc=1 Giving me a 10GB uplink to any of my rooms, and a 2.5GB connection between any of the devices connected locally on the network. And POE if required (which most of the raspberry Pi's are setup to run on, as well as the Unifi Access Points) # Conclusion Well.... thats been my year in tech! There was definitely lots more as well. I launched the Beta for Lift Bro (a personal workout tracking application) as well as made some major updates to Budgey this year! But those are for another time!