Skip to content

Instantly share code, notes, and snippets.

@triplrrr
Last active April 22, 2024 14:28
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save triplrrr/d2250db71f0b3a93ed60daa65fe5668f to your computer and use it in GitHub Desktop.
Save triplrrr/d2250db71f0b3a93ed60daa65fe5668f to your computer and use it in GitHub Desktop.
Windows Ricing Kit 2020

Ricing Windows in 2020

Many people like their things to look nice. I am one of those people. I like things to look nice all the time. One of the things I like to look nice is my PC's desktop. I have to look at it constantly, so it might as well be pretty.

What is 'ricing?'

Ricing is the term used to describe the process of making a desktop environment look nice. This usually involves at least several steps, including installing a window manager, a theme, custom icons, and making the terminal look nice. Windows, however isn't meant to have every single part of it tweaked and customized, so we have to make some concessions.

Note that many ricers think that ricing is about making their computer more efficient for their workflow. I disagree. I believe that improved workflow is a sideeffect of good aesthetic, and my personal aesthetic is based in functionality. Also cyberpunk.

What does this guide include?

This guide aims to be a resource for entry level ricers to ricing their Windows 10 environment. It also applies to anyone seeking to be a power-user, or someone who tries to use their system to its full capabilities. Most of this is my personal preference, but I'll try to be impartial.

Included in this guide are links to software, config files, and application specific themes. I also make some reccomendations as to other software to include if you're a developer who's looking to make Windows more functional for general development.

An important note

Prior to starting this guide, I'd warn that this guide will lead to something that works with my personal taste. I recommend that you tweak the styles and settings for everything I do after finishing this. Almost everything I use, I tweak constantly, as I figure out what works for me.

Step 1: Wallpapers

This one seems simple and it is. All this is is choosing a wallpaper that matches what you like. I chose some fantasy pixel art by Noah Bradley, but that's just because I already liked his stuff. But know that choosing a wallpaper is still very important because this will determin how your aesthetic goes for the rest of the process. Sticking to a single theme will create a more cohesive environment for your work and will be more pleasing to a passerby. Additionally, try to choose something high resolution, as it'll look bad on your screen otherwise.

Step 2: Window Manager

This is where things get fun. Window Managers, or WMs for short, come in many varieties. In Windows 10, you have a panelled WM, which has applications running in panels that are manually moved by the user. One of the most popular varieties is the tiling WM, which has applications fit snugly into predefined boxes on the screen. A popular example for *nix systems is awesome, which is known for having a complex keyboard scheme for complex window movement. I personally don't like to use awesome, as it is too complex for my tastes.

The are 2 WMs I would recommend.

bug.n is good for anyone who prefers the keyboard over their mouse. It is also highly configurable and the Hotkeys can be changed. One issue with bug.n is the lack of development. It recieves few updates regularly so I wouldn't expect many of the existing bugs to be fixed. Another issue is running bug.n at startup. As a result of being written in a scripting language not native to Windows, running bug.n at startup didn't work on my system. If you plan to use bug.n, I'd recommend that you add a shortcut to your Start Menu to start it manually.

  1. FancyZones from Microsoft PowerToys

FancyZones is a great WM for people who prefer their mouse over their keyboard. It offers the ability to be customized quickly and easily. It also allows for keys to be used to move windows around the layout, but these may not work for every application, depending on how they handle the "Windows" key. One drawback of FancyZones is that it does not autosort your windows. Moving one window into a zone that is already occupied simply places it over that window. While this won't be an issue for everyone, it is a feature I wish it had. It also doesn't force windows into a zone, which may or may not be an issue for you. Additionally, it is also attached to the other tools in PowerToys, which I like, but it means that you cannot install FancyZones alone.

Either of these may work depending on your needs. I use FancyZones, but only because I wanted to use as many standalone applications as possible. Again, I implore you to try out both and determine what works best for you. Additionally, if you feel that neither of these fit your needs, there are other WMs out there, but they usually cost money.

Step 3: The Terminal

This is where things get a little strange for Windows 10 users. Unlike *nix systems, Windows 10 doesn't require you to use the console at all. Everything you need to do, you can accomplish without even knowing the console exists. This goes for programming as well.

I'm still going to cover the basics of ricing a terminal, but it's not really necessary for everyone.

The reason I use Windows 10 instead of an *nix is because Windows has more support. Do I wish I had Ubuntu often? Yes. But Window is easy to use by default and it makes up for it's lack of customizability with a wealth of software options to choose from for everything. I don't recommend Windows, I actually like *nix more, but for development, I find that Windows is just easier to setup. Because this isn't a guide to setting up a development environment on Windows 10, I will not be covering the installation process for WSL here, but they already have a really simple guid on that, but because I use WSL, the terminal I mention here is compatible with it by default, which is something I was specifically looking for. If you find that it doesn't suit your needs, I suggest looking for something you do like.

For anyone who uses the terminal, however, it is one of the things that everyone has an opinion on. There are dozens of terminals to choose from, even for Windows users. Here is a list of things I like to see in a terminal.

  • Easy to configure
  • Allows for multiple tabs
  • Allows for custom and third-party themes to be easily installed.
  • Responsive
  • Compatible with WSL (See above aside)

I have found these things in a Microsoft supported, open-source terminal.

Windows Terminal is the best, in my opinion. It has all of the things I mentioned above. Microsoft even went ahead and created a monospaced font specifically for their terminal as well. Becuase of the fact that I like this terminal so much, I have shared my personal config with you in a file called wt-settings.json. It includes a theme called "Scarlet Protocol" form the site Windows Terminal Themes where they have a variety of common and uncommon themes available for free. Additonally, it supports features that I don't use, such as split-panes. I cannot speak highly enough of Microsoft for supporting the developers who use Windows.

Before I move on

It's at this point that you could stop ricing your Windows 10 system. No one would judge you. These tools make it easy to have a beautiful system that's pleasing to look at and fun to use. If you'd like to keep going, however, that's also fine. Most of the following steps are mostly about aesthetic.

// This file was initially generated by Windows Terminal 1.3.2651.0
// It should still be usable in newer versions, but newer versions might have additional
// settings, help text, or changes that you will not see unless you clear this file
// and let us generate a new one for you.
// To view the default settings, hold "alt" while clicking on the "Settings" button.
// For documentation on these settings, see: https://aka.ms/terminal-documentation
{
"$schema": "https://aka.ms/terminal-profiles-schema",
"defaultProfile": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
// You can add more global application settings here.
// To learn more about global settings, visit https://aka.ms/terminal-global-settings
// If enabled, selections are automatically copied to your clipboard.
"copyOnSelect": false,
// If enabled, formatted data is also copied to your clipboard
"copyFormatting": false,
"tabWidthMode": "titleLength",
// A profile specifies a command to execute paired with information about how it should look and feel.
// Each one of them will appear in the 'New Tab' dropdown,
// and can be invoked from the commandline with `wt.exe -p xxx`
// To learn more about profiles, visit https://aka.ms/terminal-profile-settings
"profiles":
{
"defaults":
{
// Put settings here that you want to apply to all profiles.=
"fontSize": 8,
"fontWeight": "bold",
"padding": "4, 4, 4, 4",
"useAcrylic": true,
"acrylicOpacity": 0.5,
"colorScheme": "Scarlet Protocol",
"cursorShape": "vintage"
},
"list":
[
{
"guid": "{07b52e3e-de2c-5db4-bd2d-ba144ed6c273}",
"hidden": false,
"name": "Ubuntu-20.04",
"tabTitle": "WSL",
"source": "Windows.Terminal.Wsl",
// change this to the right name for your wsl environment and username
// "startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\home\\triplrrr",
"fontFace" : "Cascadia Code PL",
"icon": "ms-appdata:///roaming/ubuntu_32px.png"
},
{
// Make changes here to the powershell.exe profile.
"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
"name": "Windows PowerShell",
"tabTitle": "WPS",
"commandline": "powershell.exe",
"hidden": false
},
{
// Make changes here to the cmd.exe profile.
"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
"name": "Command Prompt",
"tabTitle": "CMD",
"commandline": "cmd.exe",
"hidden": false
},
{
"guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
"hidden": true,
"name": "Azure Cloud Shell",
"tabTitle": "ACS",
"source": "Windows.Terminal.Azure"
}
]
},
// Add custom color schemes to this array.
// To learn more about color schemes, visit https://aka.ms/terminal-color-schemes
"schemes": [
{
"name": "Scarlet Protocol",
"black": "#101116",
"red": "#ff0051",
"green": "#00dc84",
"yellow": "#faf945",
"blue": "#0271b6",
"purple": "#ca30c7",
"cyan": "#00c5c7",
"white": "#c7c7c7",
"brightBlack": "#686868",
"brightRed": "#ff6e67",
"brightGreen": "#5ffa68",
"brightYellow": "#fffc67",
"brightBlue": "#6871ff",
"brightPurple": "#bd35ec",
"brightCyan": "#60fdff",
"brightWhite": "#ffffff",
"background": "#1c153d",
"foreground": "#e41951"
}
],
// Add custom actions and keybindings to this array.
// To unbind a key combination from your defaults.json, set the command to "unbound".
// To learn more about actions and keybindings, visit https://aka.ms/terminal-keybindings
"actions":
[
// Copy and paste are bound to Ctrl+Shift+C and Ctrl+Shift+V in your defaults.json.
// These two lines additionally bind them to Ctrl+C and Ctrl+V.
// To learn more about selection, visit https://aka.ms/terminal-selection
{ "command": {"action": "copy", "singleLine": false }, "keys": "ctrl+c" },
{ "command": "paste", "keys": "ctrl+v" },
// Press Ctrl+Shift+F to open the search box
{ "command": "find", "keys": "ctrl+shift+f" },
// Press Alt+Shift+D to open a new pane.
// - "split": "auto" makes this pane open in the direction that provides the most surface area.
// - "splitMode": "duplicate" makes the new pane use the focused pane's profile.
// To learn more about panes, visit https://aka.ms/terminal-panes
{ "command": { "action": "splitPane", "split": "auto", "splitMode": "duplicate" }, "keys": "alt+shift+d" }
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment