Skip to content

Instantly share code, notes, and snippets.

@milnak
milnak / mousejiggler.ps1
Last active March 14, 2023 01:35
App to demonstrate how to programmatically move mouse on an interval
Param(
# Number of seconds for the interval.
[ValidateRange(1, 60)]
[int]$IntervalSecs = 60,
# Start with zen (invisible) jiggling enabled.
[switch]$Zen = $false
)
$source = @'
using System;
using System.Runtime.InteropServices;
@milnak
milnak / PowerPoint-Notes-To-Markdown.ps1
Last active November 6, 2024 17:46
Extract Powerpoint (PPTX) Notes to Markdown
# Convert PPT notes to Markdown
param ([Parameter(Mandatory)][string]$Path)
$fullpath = Resolve-Path $Path
$msoFalse = 0
$msoTrue = -1
$ppPlaceholderBody = 2
# https://learn.microsoft.com/en-us/office/vba/api/powerpoint.application
@milnak
milnak / garlic-os-tips.md
Last active October 17, 2025 09:52
My set of GarlicOS tips #rg35xx

Garlic OS Tips (Windows-based)

GarlicOS Cookbook

Follow these instructions for an easy way to get up and going quickly! These are complete instructions, and will be the easiest way to get started on a new RG35XX.

Set up SD Card

Get a high quality SD (e.g. SanDisk Extreme) card, 128GB or larger, 256GB is recommended. Don't skimp here, they're cheap, and don't use the card that comes with the RG35XX as it's crap.

@milnak
milnak / putty-config.md
Last active May 26, 2025 16:34
Putty Configuration

Putty Configuration

Putty sessions are saved under HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions.

Click on "Default Settings", Click "Load", then set these settings. Then Click "Save". All new sessions will have these settings.

Terminal

Bell

@milnak
milnak / foobar2000-dsd-sacd.md
Last active September 29, 2025 14:12
Foobar 2000 DSD and SACD support: Guide to setting up Foobar2000 player for hi-res audio (DSF, DFF, SACD, ISO)

Foobar2000 DSD and SACD support

I've successfully followed these steps to get DSD (.dsf filetype) and SACD (.iso filetype) playing at high bit rate using foobar2000 on my S.M.S.L M500 DAC.

This has been adapted from "SECTION II" of this page, thanks to "sirblew" for the tip!

Introduction

DSD stands for Direct Stream Digital and it is a high-definition lossless audio format with a twist. PCM signal solutions (like FLAC, TTA or APE) measure a set of bits multiple times per second to capture the audio data, hence the 16/24-bit parameter. On the other hand, DSD uses only one bit but samples it 2.8 million times a second to capture the audio signal.

@milnak
milnak / aria-download.ps1
Last active August 15, 2024 18:08
Torrent Download: PowerShell Function to download torrent using Aria
<#
.SYNOPSIS
Download torrent using ARIA
#>
function Invoke-Aria {
Param([Parameter(Mandatory = $true)][Uri]$Uri)
aria2c.exe --continue=true --max-connection-per-server=8 --min-split-size=1M --split=8 --file-allocation=none --max-tries=50 --retry-wait=30 --disable-ipv6=true --seed-time=0 --allow-piece-length-change=true --summary-interval=0 --console-log-level=warn $Uri
}
@milnak
milnak / clrmame-dat-check.ps1
Last active August 15, 2024 18:06
ClrMame DAT checker: Utility to check a MAME ROM set against a DAT file
# clrmame-dat-check.ps1
# Utility to check a MAME ROM set against a DAT file
# Assumptions: that clones aren't desirable, and that all zip files are split, not merged.
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[string]$RomPath,
[Parameter(Mandatory = $true)]
[string]$DatPath,
@milnak
milnak / generate-romlist-md.ps1
Last active August 15, 2024 18:07
Generate MarkDown from Skraper romlist: Convert Skraper DAT files into a markdown file
# Convert Skraper DAT files into a markdown file.
[CmdletBinding()]
param (
[Parameter(Mandatory = $true)]
[string]$Path
)
'# Game List'
''
@milnak
milnak / ytdownloader.ps1
Last active November 6, 2025 22:45
ytdownloader a parallel yt-dlp wrapper
#Requires -Version 7.0
Param([string]$Path = './ytdownloader-urls.json')
# Sample ytdownloader-urls.json file:
#
# {
# "urls": [
# "# Comment 1",
# "https://www.youtube.com/playlist?list=list_id1",
@milnak
milnak / DecodeSafelink.ps1
Last active August 15, 2024 18:07
Decode an ATP safelink: Decode Microsoft Defender ATP SafeLink to plain text