Skip to content

Instantly share code, notes, and snippets.

View eggbean's full-sized avatar

Jason Gomez eggbean

  • London, United Kingdom
View GitHub Profile
@eggbean
eggbean / add_vim_to_path.ps1
Last active April 15, 2026 17:48
PowerShell script to make a persistent symlink to Vim for Windows and add it to $PATH
# Jason Gomez - June 2024
# Problem 1: When installing Vim for Windows using winget it's not added
# to $PATH so it cannot easily be used from the command line.
# Problem 2: The path to the Vim executables keeps changing as the
# version number is part of the path.
# Solution: This script makes a persistent symlink to the latest installed
# version of Vim for Windows and adds it to $PATH. Re-run the
# script when a new version of Vim is installed.
# Get all Vim directories and sort them by version number
@eggbean
eggbean / eza-wrapper.sh
Last active April 1, 2026 04:30
Now moving from exa to eza fork. Wrapper script to give it nearly identical switches and appearance to ls. Also automatically adds --git switch when in a git repository.
#!/bin/bash
## Change following to '0' for output to be like ls and '1' for eza features
# Don't list implied . and .. by default with -a
dot=0
# Show human readable file sizes by default
hru=1
# Show file sizes in decimal (1KB=1000 bytes) as opposed to binary units (1KiB=1024 bytes)
meb=0
# Don't show group column
@eggbean
eggbean / windirstat-add-context-menu.ps1
Last active April 1, 2026 02:27
WinDirStat PowerShell script or registry file to add context menu entries to open on drives or folder, with a little icon. No longer needed with WinDirStat v2.
# Adds shell integration for WinDirStat. The program should be installed in
# Program Files (x86) but it will check if that directory is not on C:
#
# Alternatively, if installed on C: you can use the reg file below instead.
if (-not ([security.principal.windowsprincipal][security.principal.windowsidentity]::getcurrent()).isinrole([security.principal.windowsbuiltinrole]::administrator)) {
write-error "this script needs to be run as an administrator. please restart powershell as an administrator and try again."
exit
}
@eggbean
eggbean / install_scoop.ps1
Last active January 18, 2026 17:10
PowerShell script to install scoop for multi-users and install packages that I use.
# PowerShell script to install scoop for multi-user and packages.
# If re-run when scoop is already installed, any additional packages
# are installed and shims are reset in order of the package list.
# I prefer to keep user and global packages as the same, so there's
# a minor inconvenience in some situations where packages will
# be listed twice with global commands.
#
# To avoid git ownership warnings, read this:
# https://stackoverflow.com/a/71904131/140872
# git config --global --add safe.directory "*" (double quotes on Windows)
@eggbean
eggbean / $profile
Last active November 12, 2025 09:36
PowerShell $profile which automatically updates in the background when a new version number appears in this gist.
# Version 1.7.0
$gistUrl = "https://api.github.com/gists/81e7d1be5e7302c281ccc9b04134949e"
$gistFileName = '$profile' # Change this to match the filename in your Gist
$checkInterval = 4 # Check for updates every 4 hours
$updateCheckFile = [System.IO.Path]::Combine($HOME, ".profile_update_check")
$versionRegEx = "# Version (?<version>\d+\.\d+\.\d+)"
$localProfilePath = $Profile.CurrentUserCurrentHost
# Last update check timestamp
@eggbean
eggbean / oci-fupdate
Last active July 11, 2025 15:13
Firewall Network Security Group update script for Oracle Cloud. Good for remote working or for use as cron job for people with dynamic IP addresses at home.
#!/bin/bash
# Oracle firewall update script
# Usage: oci-fupdate [ <source-CIDR> ] [ --query ]
#
# Updates an existing Network Security Group to allow SSH access through the OCI
# firewall to reach instances in a public subnet, like bastion hosts. With no
# argument your current public IP address is used, or you can add a source address
# block in CIDR format. The --query option returns the current source address.
#
@eggbean
eggbean / dynu.sh
Last active December 19, 2024 11:16
Secure dynu.com dynamic IP update script using OAuth2 authentication
#!/bin/bash
# dynu.com dynamic IP update script
# variables can be added in file, in sourced file or as command line arguments
set -e
# https://www.dynu.com/en-US/ControlPanel/APICredentials
# oauth2='{Client-Id}:{Secret}'
oauth2='EOJ2S-Z6OoN_le_KS1d75wsZ6y0SFdVsY9183IvxFyZp:EClusMEUk8e9ihI7ZdVLF5cZ6y0SFdVsY9183IvxFyZp'
@eggbean
eggbean / install_awscliv2.sh
Last active October 26, 2024 09:46
Script to install or update AWS CLI v2 on Linux/WSL (x86_64 and aarch64 supported). Can be used in ansible or bootstrap script.
#!/bin/bash
# AWS CLI v2 install/update script
# For v2 you either need to install manually
# or use a script like this
#
# For bash v5 >
#
# For auto-completion add `cli_auto_prompt = on` to config
# ..or add AWS_CLI_AUTO_PROMPT=on environment variable
@eggbean
eggbean / install_golang.sh
Last active October 1, 2024 09:36
Script for automated installation or updating Go. For Linux and macOS, x86_64, arm64 and arm.
#!/bin/bash -e
# This script installs or updates to the latest version of Go.
# Multi-platform (Linux and macOS)
# Multi-architecture (amd64, arm64, arm) support
#
# Add to your .profile, .bash_profile or .zshenv:
# export PATH=$PATH:/usr/local/go/bin
error_string=("Error: This command has to be run with superuser"
// ==UserScript==
// @name Twitter Go Back with H key
// @namespace https://gist.github.com/eggbean/ba4daf82f132421c69dbd2c2e0b3e061/raw/twitter_go_back.user.js
// @version 1.1
// @description Makes the unused H key a browser back button for better H,J,K,L keyboard navigation
// @author https://github.com/eggbean
// @match https://x.com/*
// @icon https://x.com/favicon.ico
// @grant none
// ==/UserScript==