Skip to content

Instantly share code, notes, and snippets.

View ssokolow's full-sized avatar

Stephan Sokolow ssokolow

View GitHub Profile
@ssokolow
ssokolow / prompt_gentoo_setup.sh
Created August 12, 2022 17:12
My performance-optimized Zsh prompt
#!/bin/zsh
# Modified gentoo prompt theme
# customized by Stephan Sokolow for git branch and virtualenv display based on:
# http://www.jukie.net/~bart/blog/20071219221358
# http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/#comment-4166
# https://virtualenvwrapper.readthedocs.io/en/latest/tips.html
#
# See also:
# https://www.topbug.net/blog/2016/10/11/speed-test-check-the-existence-of-a-command-in-bash-and-zsh/
@ssokolow
ssokolow / onelinespelltextedit.py
Last active July 22, 2022 19:53
QLineEdit replacement with automatic PyEnchant spell-checking (based on QPlainTextEdit because it's easier to implement)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Single-Line QPlainTextEdit With Inline Spell Check mimicking QLineEdit
Original PyQt4 Version:
https://nachtimwald.com/2009/08/22/qplaintextedit-with-in-line-spell-check/
Multi-Line Version:
https://gist.github.com/ssokolow/0e69b9bd9ca442163164c8a9756aa15f
TODO:
@ssokolow
ssokolow / com.ssokolow.DodgeTheCreeps.desktop
Created June 8, 2022 04:05
Example Flatpak manifest for a Godot game using Godot's tutorial game
[Desktop Entry]
Version=1.0
Type=Application
Name=Dodge The Creeps
Categories=Game;ArcadeGame;
Icon=com.ssokolow.DodgeTheCreeps
Exec=godot-runner
Terminal=false
@ssokolow
ssokolow / README.md
Last active October 4, 2022 00:48
Files for making Flatpak builds of lgogdownloader

A Flatpak release of LGOGDownloader to provide easy access to up-to-date builds with the optional QtWebEngine dependency enabled.

Note that the included patch for the htmlcxx dependency was submitted to upstream, but the project appears to be unmaintained.

@ssokolow
ssokolow / godot_game.iss
Created March 23, 2022 22:57
Example Inno Setup script for Godot games
; IMPORTANT: Follow the instructions at
; https://docs.godotengine.org/en/stable/getting_started/workflow/export/changing_application_icon_for_windows.html
; and make sure the "Options > Application > Product Version" field is set
; in Godot's Export dialog before exporting your EXE file. Otherwise,
; Inno Setup will mistake the Godot version for your game's version.
;
; You can check whether you were successful by examining the .EXE file's
; properties dialog on Windows, or by using the `peres -v` command from `pev`
; on Linux.
;
@ssokolow
ssokolow / git-extract-paths-with-history
Last active March 14, 2023 22:40
Wrapper for git-filter-repo to extract paths into a new clone, preserving history across renames
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Wrapper for git-filter-repo to extract paths into a new clone, following the
rename history to preserve all revisions of whitelisted paths.
WARNING: There appears to be no way to ask git-filter-repo to exclude stuff
that later takes on a name a renamed file gave up, so this will be
insufficient if you move a/b.py to b/b.py and then create a new a/b.py
and only want to preserve the history of b/b.py without keeping the
unrelated a/b.py.
@ssokolow
ssokolow / update_flatpak_cli.py
Last active February 28, 2025 20:20
Utility for making Flatpak-installed apps available in the terminal through their normal command names
#!/usr/bin/env python3
"""Flatpak CLI Shortcut Generator
A simple no-argument tool that generates launchers with traditional non-flatpak
command names for your installed Flatpak applications in ~/.local/bin/flatpak.
Does full collision detection and warns you if you forgot to add its output
directory to your PATH. Also overrules the command-line specified in the
``.desktop`` file if the Flatpak maintainer didn't include support for
command-line arguments.
@ssokolow
ssokolow / strip_emoji.py
Created March 17, 2021 21:09
Simple script to rename non-BMP Unicode characters out of file and folder names, recursively
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Strip emoji and other non-BMP codepoints from paths to make them compatible
with mkisofs/genisoimage"""
# Prevent Python 2.x PyLint from complaining if run on this
from __future__ import (absolute_import, division, print_function,
with_statement, unicode_literals)
__author__ = "Stephan Sokolow (deitarion/SSokolow)"
@ssokolow
ssokolow / trackball.sh
Last active July 13, 2024 17:20
xinput configuration for an old two-button Logitech Marble Mouse
#!/bin/sh
# Setup for comfortable use of an old two-button Logitech Marble Mouse
# via a cheap USB-PS/2 adapter.
#
# Resulting functionality:
# 1. Pointer acceleration is tweaked to be usable on a three-monitor spread
# 2. Press and hold left button for 300ms to get right-click
# 3. Right mouse button is remapped to middle mouse button
# 4. Holding the right button turns the trackball into a scroll wheel
# 5. Both vertical and horizontal scrolling are enabled
@ssokolow
ssokolow / nugar_on_perfect_lionheart.md
Created September 21, 2020 12:51
A mirror of Nugar's analysis/rant on the author Perfect Lionheart for people who don't want to link to a post in a thread

Nugar said:

Sociopathy and Psychopathy the wikipedia article.

Yes, I know it's wikipedia. I know wikipedia isn't exactly reliable. Still, it's easy and convienient. It also states that there's functionally very little difference between psychopathy and sociopathy. Given the medical definitions and such for each, okay, I'll go along with that.

Now. Lets look at some of this.

They make a superficially good first impression.