Skip to content

Instantly share code, notes, and snippets.

View garyritchie's full-sized avatar

Gary Ritchie garyritchie

View GitHub Profile
@vivekthedev
vivekthedev / export_note.py
Created April 26, 2025 08:11
Download NotebookLM notes as PDF
# pip install beautifulsoup4==4.13.4 markdown_pdf==1.7
from bs4 import BeautifulSoup
from bs4.element import Tag
import re
from markdown_pdf import MarkdownPdf, Section
note_data = open("notes.txt", "r", encoding="utf-8").read()
soup = BeautifulSoup(note_data, "html.parser")
def drill_into_tag(tag, ):
@Krutie
Krutie / two-col-layout.gist.rb
Created October 10, 2024 07:23
Ruby extension to create two-column TOC layout for Asciidoctor PDF
module TOCHelpers
# Method to convert integers to Roman numerals
def to_roman(num)
romans = {
1000 => 'M', 900 => 'CM', 500 => 'D', 400 => 'CD',
100 => 'C', 90 => 'XC', 50 => 'L', 40 => 'XL',
10 => 'X', 9 => 'IX', 5 => 'V', 4 => 'IV', 1 => 'I'
}
result = ''
@tool
extends EditorScenePostImport
class MeshInstanceList:
var mesh: Mesh
var aabb: AABB
var transforms: Array
# Converts geometry node instances into MultiMeshInstances
func gn_instances_to_mm(parent: Node, scene: Node):
@bewithdhanu
bewithdhanu / upgrade_python_3.10_to_3.11.md
Last active December 8, 2025 08:56
Upgrade Python 3.10 to 3.11 on Ubuntu 22.04

Check python version use python and python3

The first comman will Not show version info.

The second one show 3.10 as version as it is provided by ubuntu as default

python --version
python3 --version

Add additional repository to download python 3.11

@williamchange
williamchange / themegen.py
Created March 10, 2023 11:06
Simple Theme Generator (Add-on)
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

Enable PipeWire on Ubuntu 22.04

This guide is only for original Ubuntu out-of-the-box packages. If you have added a custom PPA like pipewire-debian, you might get into conflicts.

Ubuntu 22.04 has PipeWire partially installed and enabled as it's used by browsers (WebRTC) for recoding the screeen under Wayland. We can enable remaining parts and use PipeWire for audio and Bluetooth instead of PulseAudio.

Starting from WirePlumber version 0.4.8 automatic Bluetooth profile switching (e.g. switching from A2DP to HSP/HFP when an application needs microphone access) is supported. Jammy (22.04) repos provide exactly version 0.4.8. So, we're good.

Based on Debian Wiki, but simplified for Ubuntu 22.04.

#if UNITY_EDITOR
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using System.Reflection;
using System.IO;
using System.Text;
public class EditorFontResizer : EditorWindow {
@tin2tin
tin2tin / strips_to_asset_browser.py
Last active November 1, 2022 05:02
Convert selected strips to assets via sound, image or clip IDs.
# Convert selected strips to assets via sound, image or clip IDs.
# By tintwotin & batFINGER
import bpy, os
strips = bpy.context.selected_editable_sequences
strips = sorted(strips, key=lambda strip: strip.frame_final_start)
for sq in strips:
if sq.type == "SOUND":
@p2or
p2or / blender-automatic-file-output-node-connections.py
Created November 29, 2020 09:56
Auto file output node connection #Blender
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@andrebrait
andrebrait / keychron_linux.md
Last active December 8, 2025 08:31
Keychron keyboards on Linux + Bluetooth fixes

Here is the best setup (I think so :D) for K-series Keychron keyboards on Linux.

Note: many newer Keychron keyboards use QMK as firmware and most tips here do not apply to them. Maybe the ones related to Bluetooth can be useful, but everything related to Apple's keyboard module (hid_apple) on Linux, won't work. As far as I know, all QMK-based boards use the hid_generic module instead. Examples of QMK-based boards are: Q, Q-Pro, V, K-Pro, etc.

Most of these commands have been tested on Ubuntu 20.04 and should also work on most Debian-based distributions. If a command happens not to work for you, take a look in the comment section.

Make Fn + F-keys work (NOT FOR QMK-BASED BOARDS)

Older Keychron keyboards (those not based on QMK) use the hid_apple driver on Linux, even in the Windows/Android mode, both in Bluetooth and Wired modes.