Skip to content

Instantly share code, notes, and snippets.

View egigoka's full-sized avatar
💭
I may be slow to respond.

Egor Egorov egigoka

💭
I may be slow to respond.
View GitHub Profile
@tdcosta100
tdcosta100 / WSL2GUIWSLg-XWayland-en.md
Last active December 7, 2025 20:04
A tutorial to use GUI in WSL2/WSLg replacing original Xorg by Xwayland, allowing WSL to work like native Linux, including login screen

Full desktop shell in WSL2 using WSLg (XWayland)

Note

If you want to use Wayland in WSLg in a simpler setup, you can try the WSLg (Wayland) tutorial.

In this tutorial, we will setup GUI in WSL2. No additional software outside WSL (like VcXsrv or GWSL) is required. You will find this tutorial very similar to the one that replaces Xorg with Xvnc. Indeed, it's pretty much the same tutorial, with some few changes.

The key component we need to install is the desktop metapackage you want (GNOME, KDE, Xfce, Budgie, etc), and after that, replace the default Xorg by a script that calls Xwayland instead.

For this setup, I will use Ubuntu 24.04, and install GNOME Desktop. Unfortunately older versions of Ubuntu lack some fundamental things, so we cannot reproduce it in older versions (at least not fully). Since the key components aren't bound to Ubuntu or GNOME, you can use your favorite distro and GUI. Check the [Sample screenshot

@mjkstra
mjkstra / arch_linux_installation_guide.md
Last active December 7, 2025 15:17
A modern, updated installation guide for Arch Linux with BTRFS on an UEFI system
@Cryptiiiic
Cryptiiiic / ios16_downgrading.txt
Created March 1, 2023 00:10
The unfortunate state of iOS downgrading
Unfortunately I have some bad news for downgrading.
Before I explain the bad news at the end of this post, I first need to introduce a background of iOS devices.
In iOS 16, Apple introduced a new firmware component known as Cryptex1. Technically, this is a "virtual" co-processor.
It's purpose is to allow Apple to push RSRs (Rapid Security Responses) which are separate from traditional iOS updates and can be installed much faster.
Like other firmwares, it also has a signing ticket locked to a cryptographic nonce (number-used-once).
We commonly refer to the Apple signing tickets as SHSH blobs.
Meaning the firmware can't be installed without a valid signing ticket as well as a matching nonce.
The "big two" components we deal with signing/nonces are AP and SEP. AP is basically the main device chip (Application Processor).
SEP is the security chip (Secure Enclave Processor).
With regards to APNonce, Apple conveniently gave us the com.apple.System.boot-nonce NVRAM property which we use to set the APNonce generator.
@aquelemiguel
aquelemiguel / psplusplus.md
Last active December 6, 2025 20:16
🔍 Reverse engineering a search bar into PlayStation Plus

Reverse engineering a search bar into PlayStation Plus


🆕 @MaciekBaron reimagined this gist in https://github.com/MaciekBaron/PSPLUSTilesTheme with a cleaner and more efficient implementation. Give it a go!


The reimagined PlayStation Plus service is finally here!

However, PC users are stuck with a reskin of the old, not-so-great PlayStation Now launcher. It's built with Electron, so it's bound to eat up your RAM. But worse of all, even now as the library clocks at 700+ games, Sony still refuses to add a search function.

@biosmanager
biosmanager / userChrome.css
Last active November 22, 2025 00:54
Firefox Proton macOS Close Tab Left (updated for version 113)
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
.tabbrowser-tab .tab-close-button {
opacity: 0;
margin-left: -4.5px !important;
margin-right: 2px !important;
}
.tabbrowser-tab:not(:hover) .tab-close-button {
display: none;
@ysimonson
ysimonson / bluetooth_sleep.lua
Last active July 29, 2025 20:55
Hammerspoon script to disable bluetooth when the computer is put to sleep. Requires `blueutil` to be installed (`brew install blueutil`).
require "string"
function checkBluetoothResult(rc, stderr, stderr)
if rc ~= 0 then
print(string.format("Unexpected result executing `blueutil`: rc=%d stderr=%s stdout=%s", rc, stderr, stdout))
end
end
function bluetooth(power)
print("Setting bluetooth to " .. power)