don't sleep on the kwanzaa Fonts
the google fonts link- Monoton
- Bungee Hairline
- Sankofa Display
add to /etc/samba/smb.conf
force user = bweew
vfs objects = streams_xattr
Instrument | MIDI Command |
---|---|
drums | B0 00 78 B0 20 00 C0 |
piano | B0 00 00 B0 20 00 C0 01 |
bass | B0 00 00 B0 20 00 C0 21 |
jazz-gt | B0 00 00 B0 20 00 C0 1A |
on release, scroll down to the bottom where Midi Actions are to choose send midi message. Custom hex midi messages are key! Before I tried using program change and it wouldn't let me get my drums even if i told it it send on midi channel 10.
#!/bin/bash
# Loop through all PDF files in the current directory
for file in *.pdf; do
# Skip if no PDF files
[ -e "$file" ] || continue
# Set output file name
output="${file%.pdf}.bw.pdf"
echo "Converting: $file -> $output"
# Ghostscript command to convert to grayscale
gs \
-sDEVICE=pdfwrite \
-dCompatibilityLevel=1.4 \
-dProcessColorModel=/DeviceGray \
-dColorConversionStrategy=/Gray \
-dColorConversionStrategyForImages=/Gray \
-dAutoRotatePages=/None \
-dNOPAUSE -dBATCH -dQUIET \
-sOutputFile="$output" "$file"
done
I installed vosk in a venv inside a directory for nerd-dictation which is another script that works great if you want to run vosk in the background and output it into vim. Heres my transcribe.sh for running vosk-transcriber on audio files
#!/bin/bash
# Activate the virtual environment
source "$HOME/.applications/nerd-dictation/venv/bin/activate"
# Check if a file argument was provided
if [[ -z "$1" ]]; then
echo "Usage: $0 "
exit 1
fi
AUDIO_FILE="$1"
# Check that the file exists
if [[ ! -f "$AUDIO_FILE" ]]; then
echo "Error: File '$AUDIO_FILE' not found."
exit 1
fi
# Run transcription and output to file
vosk-transcriber -i "$AUDIO_FILE" -o test.txt
# Print the output to the terminal
echo "Transcription output:"
cat test.txt
heres my vosk.sh for running nerd-dictation
#!/bin/bash
# Absolute path to the project
BASEDIR="$HOME/.applications/nerd-dictation"
# Activate the virtual environment
source "$BASEDIR/venv/bin/activate"
# Run nerd-dictation with the 'begin' command
"$BASEDIR/nerd-dictation" begin
came across this 5mb app on the hunt for a parametric modeller for cad stuff. you can import text files extrude them, set the background green and key them out in lumafusion to add cool 3d animated text. This is my basic script:
define words import "Text.txt"
font "Menlo-Bold"
color grey
extrude {
size 2 2 0.5
metallicity 0.9
text words
}
//background green
shapescript mobile on the app store
a 6.99$ cad vectorizing app that seems promising for local offline use, 15mb. its nice to see something thats a one time payment instead of subscription.
heres the link to it
on the app store
Font Name | Style | Common Use Case | License Info |
---|---|---|---|
Bebas Neue | All-caps, tall, condensed | Action, thriller, indie posters | Free for commercial use |
League Spartan (Condensed) | Bold, geometric, narrow | Modern drama, minimalist films | Open source (OFL) |
Nexa Light / Thin | Light, clean, minimalist | Sci-fi, tech, design-driven | Commercial license needed |
Futura Condensed | Geometric, classic sans | Sci-fi, classic films | Commercial license needed |
Gotham Narrow / Light | Modern, versatile sans | Drama, thriller, biopics | Commercial license (Hoefler) |
Roboto Condensed Light | Digital, minimal | Sci-fi, modern thrillers | Free (Google Fonts) |
Helvetica Neue Thin | Sleek, iconic sans | Drama, minimalist | Commercial license (Adobe) |
DIN Condensed | Industrial, narrow, bold | Thriller, noir, military themes | Commercial license needed |
Montserrat Thin | Elegant, modernist | Romance, indie, drama | Free (Google Fonts) |
Eurostile Condensed | Futuristic, squarish | Cyberpunk, tech, space themes | Commercial license needed |
The fix - thunar archive plugin
I knew I needed xarchiver but despite being installed it wasn't showing up. what i needed was the plugin version
sudo apt install xarchiver thunar-archive-plugin
csvxlsx converter app on the ios app store
Affinity publisher on ipad doesn't support csv imports. Datamerge is only on the desktop version. You can import xlsx spread sheets. I prefer being able to quickly enter in data using textastic as csv or shortcuts actions to streamline the prompting of forms for quickly capturing things. I opened up an xlsx made from some free csv converter websites hoping it would look like xml but it was unreadable junk. Thankfully I found a small app that does exactly what I want locally it was only a buck and it doesn't ask for permissions or take up tons of space. numbers is great but its huge. This is perfect because its only 2mb. Hopefully affinity adds csv support but for now im happy with this work around for prettying up my tables.
Term | Definition |
---|---|
Baseline | The invisible line on which most letters sit. |
Cap Height / Cap Line | The top boundary of uppercase letters. |
X‑Height | The height of lowercase letters (like “x”), excluding ascenders and descenders. |
Ascender | The part of a lowercase letter that extends above the x‑height (e.g., “h”, “b”). |
Descender | The part of a lowercase letter that extends below the baseline (e.g., “g”, “y”). |
Serif | Small strokes attached at the end of letterforms; found in serif typefaces. |
Sans‑Serif / Grotesque | Typefaces without serifs; “Grotesque” is an early sans‑serif category. |
Slab Serif | Serif typeface with thick, block‑like serifs. |
Monospaced | A font where each character takes up the same horizontal width. |
Ligature | Two or more characters joined into a single glyph (e.g., “fi”, “æ”). |
Kerning | Adjustment of space between specific letter pairs. |
Tracking | Uniform adjustment of spacing across a range of characters. |
Leading (Line‑Spacing) | Vertical space between baselines of consecutive lines of text. |
Weight | The thickness of strokes in a typeface (e.g., Light, Bold). |
Italic / Oblique | A slanted version of the font; italics are redesigned, obliques are mechanically slanted. |
Typeface vs. Font | Typeface is the design; font refers to a specific file or style implementation. |
Glyph | A single visual representation of a character in a font. |
Alternate Glyph / Swash | Optional stylized or decorative glyph variations. |
Stroke / Stem | The lines that make up a glyph; stems are the main vertical strokes. |
Bowl / Counter / Aperture | Enclosed or partially enclosed spaces in letters; apertures are open counters. |
Arm / Leg / Shoulder / Spine | Specific stroke parts—arms and legs extend, shoulders curve, the spine is the central curve of an “S”. |
Apex / Vertex | The upper (apex) or lower (vertex) pointed junctions of strokes. |
Arc | A curved stroke element within letters. |
Foot / Spur | The base of a stroke or a small projection from a curved stroke. |
Ball / Teardrop Terminal | Rounded decorative stroke endings, often found on serif fonts. |
Joint / Crotch | The point where two strokes meet, like in “v”. |
Double‑Story | Letters like “a” or “g” with two counters (e.g., Times “a”). |
Point Size | The size of the font, measured in points (~1/72 inch). |
Em / En (units) | Em equals the current font size; En is half that. Used for spacing metrics. |
Condensed / Expanded | Width-variant styles of a typeface. |
Contrast | Variation between thick and thin strokes in a font. |
Typographic Color / Rhythm | The overall texture or ‘grayness’ of text blocks. |
Hierarchy / Scale | Visual importance created through size, weight, etc. |
Legibility / Readability | How easily text can be read, influenced by spacing, x‑height, etc. |
Copyfitting / Optimal Line Length | Adjusting font and layout for readability—ideal line length is typically 50–70 chars. |
Widows / Orphans / Rivers | Layout issues—lone lines or distracting vertical spaces in paragraph text. |
Dingbats / Fleurons | Symbol or ornamental fonts (bullet fonts, decorative elements). |
Drop Cap | A large initial letter spanning multiple lines. |
Pilcrow / Ellipsis / Octothorp | Special characters like ¶, …, and #. |
Raster / Anti‑aliasing | Pixel rendering of fonts and smoothing techniques on screens. |
Hinting | Instructions in fonts improving legibility at small sizes. |
Static / Kinetic / Fluid Typography | Static, animated, or responsive typographic styles. |
Axis / Stress | The orientation of stroke thickness variation in letterforms. |
Small Caps | Capital letterforms scaled to x‑height. |
Subscript / Superscript | Smaller characters positioned below or above the baseline. |
Gutter | Spacing between columns in multi-column layouts. |
Justify | Aligning text evenly to both left and right margins. |
Typography | The craft and technique of arranging type. |
GSUB (Glyph Substitution Table) | OpenType table that substitutes glyphs—used for ligatures, alternates, contextual forms. :contentReference[oaicite:1]{index=1} |
GPOS (Glyph Positioning Table) | OpenType table that handles precise glyph placement—kerning, mark positioning, cursive attachments. :contentReference[oaicite:2]{index=2} |
GDEF (Glyph Definition Table) | OpenType table that classifies glyphs (base, mark, ligature) and defines caret positions. |
BASE (Baseline Table) | OpenType table for baseline alignment across scripts (e.g., roman, ideographic, hanging). |
JSTF (Justification Table) | OpenType table that supports script-specific justification (e.g., Arabic kashida). |
Unicode | The universal character encoding standard covering nearly all scripts and symbols. |
Blackletter | A Gothic script style (Textura, Fraktur) with medieval calligraphic texture. |
Transitional Serif | Serif style between old-style and modern (e.g., Baskerville), moderate contrast. |
Old‑style Serif | Serif faces with diagonal stress and bracketed serifs; inspired by Renaissance writing. |
Didone / Modern Serif | High-contrast serif fonts with vertical stress and fine hairlines (e.g., Bodoni). |
Display Typeface | Highly stylized fonts for headlines or large sizes, often too decorative for body text. |
Text Typeface | Fonts optimized for body text and readability at small sizes. |
Geometric Sans‑Serif | Sans fonts based on simple geometric shapes (e.g., Futura). |
Humanist Sans‑Serif | Sans faces with calligraphic influence and subtle stroke contrast. |
Neo‑Grotesque Sans‑Serif | Neutral, modern sans-serifs (e.g., Helvetica, Univers). |
Script Typeface | Typefaces that mimic cursive handwriting or calligraphy. |
Variable Font | A single font file that supports multiple axes (weight, width, optical size). |
Ligature Caret | A marker in ligature glyphs to define cursor/caret placement. |
Contextual Alternates (calt) | An OpenType feature for substituting glyphs based on context. |
Stylistic Set (ssXX) | Predefined alternate glyph sets that can be turned on manually. |
Oldstyle Figures (onum) | Numerals with varied heights and alignments for flowing text. |
Lining Figures (lnum) | Numerals aligned to cap height, consistent with uppercase letters. |
Proportional Figures (pnum) | Numbers with variable widths designed for visual harmony. |
Tabular Figures (tnum) | Monospaced numerals for tables and aligned columns. |
Discretionary Ligatures (dlig) | Decorative ligatures applied optionally for stylistic effect. |
Fractions (frac / afrc) | OpenType features that auto-create fraction glyphs. |
Swash Capitals | Highly decorative uppercase glyphs, often with flourishing strokes. |
Initial/Final Forms (init / fina) | Contextual forms used at the beginning or end of words (common in Arabic). |
Split Diacritics | Diacritics positioned separately from base glyphs (e.g., Vietnamese). |
Glyph Coverage | The set of Unicode blocks and scripts supported by a font. |
Script Tag | An OpenType label identifying the script for a set of features (e.g., “latn”). |
Feature Tag | A four-letter code defining OpenType features (e.g., kern, liga). |
Lookup Table | A GSUB/GPOS structure defining specific substitutions or positioning rules. |
Coverage Table | Specifies which glyphs are affected by a lookup in GSUB/GPOS. |
Arandr was scriptable and made sense after being replaced with raindrop I couldn't find any info on setting up a config for raindrop the drop in Arandr replacement. First I added an exec no startup id to load raindrop on login with i3 but I finally came up with a better solution.
exec --no-startup-id xrandr --output HDMI-1 --mode 1680x1050
The raspberry pi loads perfectly when I am on my smaller computer monitor but when on the TV text would be cut off on the top of the screen. This was bugging me for ages. I'm glad I finally have this sorted out so all I have to do is plug it in and it auto starts
you need to flick the switch on the back of the controller to d instead of x for direct mode instead of x mode
you get a permissions error about usb devices to fix that create a udev rule
sudo vim /etc/udev/rules.d/99-logitech-f310.rules
# Logitech F310 Gamepad in DirectInput mode
KERNEL=="hidraw*", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c216", MODE="0666", GROUP="plugdev"
sudo udevadm control --reload
sudo udevadm trigger
sudo usermod -aG plugdev $USER
my hid mapping
its cool not needing to use antimicrox, this is as far as I got with the mapping. I was hoping to map the superknobs to controll the delay but have'nt figured it out yet
I still need to add the left/right nudge functionality
shift 1-8 for samples, removed the loop stuff because i never use it,
ctrl vx turn deck 1 super knob up and down c resets
ctrl r angle and m are up and down for deck 2 super knob
ctrl c and ctrl left angle bracket turn super knob send to zero
[Sampler1]
cue_gotoandplay Shift+!
[Sampler2]
cue_gotoandplay Shift+@
[Sampler3]
cue_gotoandplay Shift+#
[Sampler4]
cue_gotoandplay Shift+$
[Sampler5]
cue_gotoandplay Shift+%
[Sampler6]
cue_gotoandplay Shift+^
[Sampler7]
cue_gotoandplay Shift+&
[Sampler8]
cue_gotoandplay Shift+*
// -----------
// THE SUPER KNOB
// -----
[QuickEffectRack1_[Channel1]_Effect1]
enabled b
[QuickEffectRack1_[Channel1]]
super1_down Ctrl+x
super1_set_default Ctrl+c
super1_up Ctrl+v
[QuickEffectRack1_[Channel2]_Effect1]
enabled n
[QuickEffectRack1_[Channel2]]
super1_down Ctrl+m
super1_set_default Ctrl+,
super1_up Ctrl+.
Its like a spreadsheet its really easy to see everything this way.
trying a few clipboard managers out so I don't need to manually type everything out each time.
diodon, parcellite, copyq
out of all of these my favorite is autohotkey
With it I can easily set it up to label genres like shift 1 jungle shift 2 footwork etc..
kind of freaks me out for djing.
tau lets you back up your database to iCloud or dropbox
it's stored locally within the app.
be careful because it might pull down an old version and overwrite your hard work setting cue points and adjusting beat grids.
They say the safest thing is to turn off your device to prevent corrupting it.
my hercules dj control compact mapping
They got rid of the tempo faders on this controller. The software workaround is to hold shift and turn the jog wheel but the default mapping doesn't do that. This map fixes that but at the expense of being able to finely nudge which isn't great but its works if you just use the touch screen for that.
michael harmon is the man for making this fontforge tutorial series on youtube.
install pipewire-jack and run pw-jack renoise to run it with the jack settting but have it bridged to run in the back with pipewire
Its a 3.99 IAP
beorg encryption
I usually sync everything in icloud and the notes app lets you lock notes
testing it out by using dropbox and syncing notes using organice.200ok.ch
to decrypt on linux:
gpg -d mynote.org
you can use the iSH app to decrypt also
apk add gnupg
I was sad
when this app stoped working it was a one time purchase light version without dvs and midi but still very wicked. I was able to still download it and install from under purchase history but it would stuuter.
the fix:
under output options enable experimental 96k output
im so glad it works again
they no longer aell dj player pro
tried to install that and it wouldnt let me subscribe.
the app is now a one time purchase of 50$ called tau djv1
sudo vim /boot/config.txt
#on the dtoverlay line add:
fps=30,speed=42000000
#so it reads like
dtoverlay=waveshare35a,fps=30,speed=42000000
this makes it refresh faster at the expense of screwing up the colors a bit
inside it add:
exec i3
# if tty loads then startx and i3 if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then startx fi
in .config/i3/config put:
# This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # # Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). # # i3 config file (v4) # # Please see https://i3wm.org/docs/userguide.html for a complete reference! set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:monospace 12 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). #font pango:DejaVu Sans Mono 8 # Start XDG autostart .desktop files using dex. See also # https://wiki.archlinux.org/index.php/XDG_Autostart exec --no-startup-id dex --autostart --environment i3 # The combination of xss-lock, nm-applet and pactl is a popular choice, so # they are included here as an example. Modify as you see fit. # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. exec --no-startup-id nm-applet # Use pactl to adjust volume in PulseAudio. set $refresh_i3status killall -SIGUSR1 i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # move tiling windows via drag & drop by left-clicking into the title bar, # or left-clicking anywhere into the window while holding the floating modifier. tiling_drag modifier titlebar # start a terminal bindsym $mod+Return exec i3-sensible-terminal # kill focused window bindsym $mod+Shift+q kill # start dmenu (a program launcher) #bindsym $mod+d exec --no-startup-id dmenu_run # A more modern dmenu replacement is rofi: bindsym $mod+d exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+semicolon move right # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # split in horizontal orientation bindsym $mod+h split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+m fullscreen toggle # change container layout (stacked, tabbed, toggle split) #bindsym $mod+s layout stacking #bindsym $mod+w layout tabbed #bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. set $ws1 "1" set $ws2 "2" set $ws3 "3" set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" set $ws8 "8" set $ws9 "9" set $ws10 "10" # switch to workspace bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. # Pressing down will grow the window’s height. bindsym j resize shrink width 10 px or 10 ppt bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } bindsym $mod+r mode "resize" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { status_command i3status } #remove title bar for_window [class="^.*"] border pixel 0 #open file manager bindsym $mod+f exec thunar bindsym $mod+w exec firefox
Created: 2025-06-20 Fri 03:59
inside it add:
exec i3
# if tty loads then startx and i3 if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then startx fi
in .config/i3/config put:
# This file has been auto-generated by i3-config-wizard(1). # It will not be overwritten, so edit it as you like. # # Should you change your keyboard layout some time, delete # this file and re-run i3-config-wizard(1). # # i3 config file (v4) # # Please see https://i3wm.org/docs/userguide.html for a complete reference! set $mod Mod4 # Font for window titles. Will also be used by the bar unless a different font # is used in the bar {} block below. font pango:monospace 12 # This font is widely installed, provides lots of unicode glyphs, right-to-left # text rendering and scalability on retina/hidpi displays (thanks to pango). #font pango:DejaVu Sans Mono 8 # Start XDG autostart .desktop files using dex. See also # https://wiki.archlinux.org/index.php/XDG_Autostart exec --no-startup-id dex --autostart --environment i3 # The combination of xss-lock, nm-applet and pactl is a popular choice, so # they are included here as an example. Modify as you see fit. # xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the # screen before suspend. Use loginctl lock-session to lock your screen. exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork # NetworkManager is the most popular way to manage wireless networks on Linux, # and nm-applet is a desktop environment-independent system tray GUI for it. exec --no-startup-id nm-applet # Use pactl to adjust volume in PulseAudio. set $refresh_i3status killall -SIGUSR1 i3status bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod # move tiling windows via drag & drop by left-clicking into the title bar, # or left-clicking anywhere into the window while holding the floating modifier. tiling_drag modifier titlebar # start a terminal bindsym $mod+Return exec i3-sensible-terminal # kill focused window bindsym $mod+Shift+q kill # start dmenu (a program launcher) #bindsym $mod+d exec --no-startup-id dmenu_run # A more modern dmenu replacement is rofi: bindsym $mod+d exec "rofi -modi drun,run -show drun" # There also is i3-dmenu-desktop which only displays applications shipping a # .desktop file. It is a wrapper around dmenu, so you need that installed. # bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop # change focus bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right # alternatively, you can use the cursor keys: bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right # move focused window bindsym $mod+Shift+j move left bindsym $mod+Shift+k move down bindsym $mod+Shift+l move up bindsym $mod+Shift+semicolon move right # alternatively, you can use the cursor keys: bindsym $mod+Shift+Left move left bindsym $mod+Shift+Down move down bindsym $mod+Shift+Up move up bindsym $mod+Shift+Right move right # split in horizontal orientation bindsym $mod+h split h # split in vertical orientation bindsym $mod+v split v # enter fullscreen mode for the focused container bindsym $mod+m fullscreen toggle # change container layout (stacked, tabbed, toggle split) #bindsym $mod+s layout stacking #bindsym $mod+w layout tabbed #bindsym $mod+e layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle # change focus between tiling / floating windows bindsym $mod+space focus mode_toggle # focus the parent container bindsym $mod+a focus parent # focus the child container #bindsym $mod+d focus child # Define names for default workspaces for which we configure key bindings later on. # We use variables to avoid repeating the names in multiple places. set $ws1 "1" set $ws2 "2" set $ws3 "3" set $ws4 "4" set $ws5 "5" set $ws6 "6" set $ws7 "7" set $ws8 "8" set $ws9 "9" set $ws10 "10" # switch to workspace bindsym $mod+1 workspace number $ws1 bindsym $mod+2 workspace number $ws2 bindsym $mod+3 workspace number $ws3 bindsym $mod+4 workspace number $ws4 bindsym $mod+5 workspace number $ws5 bindsym $mod+6 workspace number $ws6 bindsym $mod+7 workspace number $ws7 bindsym $mod+8 workspace number $ws8 bindsym $mod+9 workspace number $ws9 bindsym $mod+0 workspace number $ws10 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace number $ws1 bindsym $mod+Shift+2 move container to workspace number $ws2 bindsym $mod+Shift+3 move container to workspace number $ws3 bindsym $mod+Shift+4 move container to workspace number $ws4 bindsym $mod+Shift+5 move container to workspace number $ws5 bindsym $mod+Shift+6 move container to workspace number $ws6 bindsym $mod+Shift+7 move container to workspace number $ws7 bindsym $mod+Shift+8 move container to workspace number $ws8 bindsym $mod+Shift+9 move container to workspace number $ws9 bindsym $mod+Shift+0 move container to workspace number $ws10 # reload the configuration file bindsym $mod+Shift+c reload # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" # resize window (you can also use the mouse for that) mode "resize" { # These bindings trigger as soon as you enter the resize mode # Pressing left will shrink the window’s width. # Pressing right will grow the window’s width. # Pressing up will shrink the window’s height. # Pressing down will grow the window’s height. bindsym j resize shrink width 10 px or 10 ppt bindsym k resize grow height 10 px or 10 ppt bindsym l resize shrink height 10 px or 10 ppt bindsym semicolon resize grow width 10 px or 10 ppt # same bindings, but for the arrow keys bindsym Left resize shrink width 10 px or 10 ppt bindsym Down resize grow height 10 px or 10 ppt bindsym Up resize shrink height 10 px or 10 ppt bindsym Right resize grow width 10 px or 10 ppt # back to normal: Enter or Escape or $mod+r bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" } bindsym $mod+r mode "resize" # Start i3bar to display a workspace bar (plus the system information i3status # finds out, if available) bar { status_command i3status } #remove title bar for_window [class="^.*"] border pixel 0 #open file manager bindsym $mod+f exec thunar bindsym $mod+w exec firefox
Created: 2025-06-20 Fri 03:57
Plug 'jamessan/vim-gnupg'
" GPG SETTINGS for just password
let g:GPGPreferSymmetric = 1
" gpg so temp is also encrypted
" Prevent backup files (avoid leaving decrypted content on disk)
set nobackup
set nowritebackup
" Encrypt temporary files too
let g:GPGUseAgent = 1
Add above to vimrc and below to bashrc
# vim gpg
GPG_TTY=`tty`
export GPG_TTY
This symmetrical encryption prompts for a password on save and for 10 mins lets you re-open without a password in vim. To clear the cache so you are prompted immediately run in the terminal:
gpgconf --kill gpg-agent
I downloaded FreeCad as an app image I want to create a desktop shortcut but I needed an Icon
./freecad.AppImage --appimage-extract
csvtool col 4 vertagogo.csv | tail -n +2 | awk -F: '{
min=$1;
sec=$2;
total += min * 60 + sec;
} END {
h = int(total / 3600);
m = int((total % 3600) / 60);
s = total % 60;
if (h > 0) {
printf "Total Duration: %d hour%s %d minute%s %d second%s\n",
h, (h!=1?"s":""),
m, (m!=1?"s":""),
s, (s!=1?"s":"");
} else if (m > 0) {
printf "Total Duration: %d minute%s %d second%s\n",
m, (m!=1?"s":""),
s, (s!=1?"s":"");
} else {
printf "Total Duration: %d second%s\n", s, (s!=1?"s":"");
}
}'
Assuming duration is in the 4th col then this script works
I also jumped through some hoops trying to figure out a way to sort them in the CLI by bpm but you can just click on them in mix.
this shell script makes an html table out of a simple 2 col csv
#!/bin/sh
echo ""
echo " item quantity "
echo " "
tail -n +2 "$1" | awk -F',' '{print " " $1 " " $2 " "}'
echo " "
echo "
"
I don't want to install numbers on my Ipad. A-shell mini/pythonista can run csvkit (csvtools is another good one) instead to do alot of basic data
The way I would do it before was to use scribus but then I found pages can do linked text boxes.
Heres how you would do the formula to get the same result in libre office calc
=A2 & CHAR(10) & B2 & CHAR(10) & C2
# | Math Trick | Description | Use Case Example |
---|---|---|---|
1 | Moving Averages | Smooths data using a rolling average (SMA, WMA, EMA) | Forecasting trends in sales or traffic |
2 | Exponential Smoothing | Weights recent data more for responsive short-term forecasting | Predicting next day's value |
3 | Linear Regression | Fits a straight trend line to data | Predicting future sales or prices |
4 | Polynomial Regression | Fits a curve to account for nonlinear trends | Modeling growth with acceleration |
5 | Logarithmic/Exponential Trend | Fits curved models like exponential or logarithmic | Forecasting growth or decay |
6 | Percent Change / Growth Rate | Uses % increase/decrease to project future values | Estimating next month's revenue |
7 | Seasonal Averaging | Averages data by time periods (month, week, etc.) | Forecasting monthly sales |
8 | Rolling Regression | Applies linear regression over a sliding window | Short-term stock price prediction |
9 | Z-Score Anomaly Detection | Identifies and removes outliers using standard deviations | Cleaning noisy time series |
10 | Fourier Transform (FFT) | Finds cyclical patterns via frequency analysis | Detecting seasonality in demand patterns |
why not have another 10?
# | Math Trick | Description | Use Case Example |
---|---|---|---|
11 | CAGR (Compound Annual Growth Rate) | Measures average annual growth rate over time | Forecasting investment growth |
12 | Autoregressive (AR) Models | Uses past values to predict the next one | Time series forecasting like AR(1), AR(2) |
13 | Differencing (Δ) | Subtracts previous values to remove trend or seasonality | Stationarizing a time series |
14 | Cumulative Sum (CUSUM) | Tracks cumulative change from a reference point | Detecting slow shifts in process metrics |
15 | Holt-Winters (Triple Smoothing) | Adds seasonality and trend to exponential smoothing | Forecasting seasonally fluctuating data |
16 | Simple Lagged Features | Adds previous values as new columns | Enhancing model input with past behavior |
17 | Normalization/Standardization | Scales data to make it comparable or Gaussian | Preprocessing before regression or modeling |
18 | Clustering for Pattern Detection | Groups similar trends using K-means or DBSCAN | Discovering behavior groups in data |
19 | Savitzky–Golay Filter | Smooths data while preserving shape | Denoising noisy sensor or measurement data |
20 | Quantile Forecasting | Predicts a range (not just average) using percentiles | Risk modeling, demand estimation with bounds |
10 more
# | Math Trick | Description | Use Case Example |
---|---|---|---|
21 | Slope Calculation (Rate of Change) | Measures steepness between data points | Detecting acceleration in trends |
22 | Cross-Correlation | Measures similarity between two time series | Lag detection between related variables |
23 | Seasonality Index | Normalizes values by seasonal averages | Adjusting for repeating seasonal patterns |
24 | Principal Component Analysis (PCA) | Reduces dimensionality while preserving variance | Feature compression before modeling |
25 | Residual Analysis | Analyzes difference between actual and predicted values | Improving model accuracy by modeling errors |
26 | Bootstrapping | Resamples data with replacement to estimate confidence intervals | Estimating forecast uncertainty |
27 | Time Series Decomposition | Separates series into trend, seasonality, and residual | Understanding data components for forecasting |
28 | Interpolation | Fills in missing values between known data points | Reconstructing incomplete datasets |
29 | Weighted Least Squares (WLS) | Linear regression giving more weight to certain data points | Handling heteroscedasticity in data |
30 | Bayesian Updating | Updates forecast with new data based on prior beliefs | Dynamic forecasting as new data arrives |
# | Math Trick | Description | Use Case Example |
---|---|---|---|
31 | K-Nearest Neighbors (KNN) Forecasting | Predicts based on the average of similar past patterns | Forecasting similar behavior sequences |
32 | Dynamic Time Warping (DTW) | Measures similarity between time series with time shifts | Comparing sequences with misaligned timing |
33 | Prophet Model (by Facebook) | Decomposable time series model with trend, seasonality, holidays | Business forecasting with multiple components |
34 | Recurrent Patterns Detection | Identifies repeating patterns in time series | Analyzing periodic signals |
35 | Residual Smoothing | Smooths the error component of a forecast | Reducing noise in forecast residuals |
36 | Rolling Median | Like moving average, but uses median for robustness to outliers | Smoothing noisy data with outlier resistance |
37 | Data Binning | Groups continuous values into categories | Trend simplification or histogram generation |
38 | Signal Denoising (Wavelet Transform) | Removes high-frequency noise while preserving structure | Processing raw sensor or stock data |
39 | Granger Causality Test | Determines if one time series can predict another | Identifying causal predictors |
40 | Lead-Lag Analysis | Measures which variables lead or follow others in time | Input feature timing alignment |
41 | Change Point Detection | Detects shifts in trend or distribution | Finding when market behavior changes |
42 | Trend Strength Index | Quantifies how strong the trend is | Deciding if forecasting is appropriate |
43 | Signal-to-Noise Ratio (SNR) | Compares signal strength to background noise | Evaluating data quality for prediction |
44 | Elastic Net Regression | Combines Lasso and Ridge for robust regression | Forecasting with high-dimensional features |
45 | Lag Correlation Matrix | Compares correlation across time lags | Feature selection from past data |
46 | Time-Weighted Averages | Weighs recent data more heavily based on time decay | Real-time adaptive forecasting |
47 | Histogram-Based Forecasting | Predicts based on distribution of past values | Probabilistic forecasting from historical data |
48 | Rolling Standard Deviation | Tracks volatility over time | Measuring uncertainty or instability |
49 | Confidence Interval Forecasting | Predicts with upper and lower bounds | Risk-aware forecasting |
50 | Ensemble Averaging | Combines forecasts from multiple models | Improving accuracy through diversity |
my mom lost her phone. got me asking myself "how could I prepare if I knew I was going to loose my phone?" I want to make a nice table of some important contacts to stick on the fridge without having to manually click through each one.shortcut to batch export contacts as a zip full of vcfs
sudo apt install python3-vobject
python tool to convert vcf to csv
heres my scribus templatethe SG_NEXT-RECORD needs to not be on the first record or it won't show. It needs to be in smaller also. This tripped me up at first
Blend Mode | What It Does | Effect Description |
---|---|---|
Normal | Displays the top layer as-is. | No blending occurs — pixels on top layer simply cover the bottom layer. |
Multiply | Multiplies base and blend layer colors. | Darkens the image; white does nothing, black stays black. |
Screen | Multiplies the inverse of the colors, then inverts the result. | Lightens the image; black does nothing, white stays white. |
Overlay | Combines Multiply and Screen based on base brightness. | Increases contrast; darks get darker, lights get lighter. |
Color Dodge | Brightens the base color to reflect the blend color. | Intense lightening; highlights are boosted dramatically, midtones stay. |
Color Burn | Darkens the base color to reflect the blend color. | Increases contrast by darkening; shadows deepen. |
Difference | Subtracts the darker color from the lighter one (absolute difference). | Inverts colors where layers differ; useful for creative or abstract effects. |
Soft Light | Gently darkens or lightens based on blend color. | A subtle overlay; like shining a diffused spotlight. |
Hard Light | A harsher version of Soft Light, combines Multiply and Screen. | High-contrast lighting effect; amplifies intensity. |
Darken | Keeps the darker of the base and blend colors. | Replaces lighter areas with darker ones. |
Lighten | Keeps the lighter of the base and blend colors. | Replaces darker areas with lighter ones. |
Blend Mode | When to Use It | Example Use Case |
---|---|---|
Normal | When no blending is needed. | Adding a logo or icon to a design without any blending. |
Multiply | To darken an image or add shadows and shading. | Adding realistic shadows under objects or deepening midtones in a photo. |
Screen | To lighten an image or simulate light. | Creating a soft glow effect or simulating bright light over an object. |
Overlay | To boost contrast and make textures pop. | Enhancing details in skin or fabrics in photo retouching. |
Color Dodge | To create intense lighting or shine. | Adding sparkles, lens flares, or lighting highlights on metallic surfaces. |
Color Burn | To deepen shadows or create high-contrast gritty effects. | Creating dramatic poster effects or adding depth to a stylized illustration. |
Difference | For abstract, surreal, or comparison visuals. | Creating glitch art, testing pixel alignment, or designing inverted backgrounds. |
Soft Light | For subtle lighting effects and texture enhancement. | Gently increasing contrast on portraits or applying a textured paper overlay. |
Hard Light | To emphasize highlights and shadows more aggressively than Soft Light. | Adding strong rim lighting or punchy contrast to action scenes or comics. |
Darken | To keep only the darkest parts of overlapping layers. | Merging grunge textures into a background while preserving shadowed details. |
Lighten | To reveal only the brightest parts of a texture or image. | Overlaying bokeh or light leaks without affecting darker image areas. |
app store link to fontself for ios
seems like the best app for making your own custom fonts
Rembg is a python tool to remove backgrounds
problem is i used pipx to install it so inkscape cant find it
It works fine in the cli though and its great
link to linuxlinks page on rembg
rembg i 'path to input' 'path to output'
You can batch generate documents from csv like scribus or affinity publishers datamerge
learned about DTP (desktop publishing software)
It has a cool feature called datamerge where you can use spreadsheets to populate designs. Scribus can do mailmerge from csv. being able to patch process multiple things into a cohesive publication is a big deal. the data entry format looks like this.
%VAR_placeholder%
Here is the link for the python script that adds this functionality
scribus generator
you can print your own shipping labels and make stickers!!
The link is to a pdf I made of spread voiced chords in every key. alternating between a major 6 and a diminished chord to harmonize up the major scale using the b6 as a passing note to create an even octatonic scale. each diminished chord can resolve to 4 different keys. page 4 is on half whole diminished scales on ukulele and then I included a few other scales for fun
mapped it all out as mermaid then touched it up in autodesk sketchup
bc it was super short and wide.
previewed it with mermaid js
screenshot with flameshot
added mermaid js and markdown support to my blog to try
to do it all with mermaid but im not going to keep it
I like using html now and its not worth loading the
highlight js cdn twice.
ai upscaled it in ibispaint because it was pixelly.
printerfriendly version dropbox link
the lowest diminished chord on uke is c#dim7.
the c#,e,g,Bb diminished chord is a half step below the d,f,ab,b diminished chord where the 1 chords live.
im saying m6 and m3 meaning b3 here
ios and on mac you can use the pages app. It has a scroll function. I don't trust the free apps the data harvesting creeps me out. many of the paid ones you can't even own they are like a 60$ yearly subscription. Even after you buy them you still need to by a two way mirrored glass camera attachment. If its not going to be good even after spending 60$ Id rather just memorize it. If your eyes arent looking at the camera directly theres no point. Might be useful for some makeshift karaoke
Mode Name | Scale Degrees |
---|---|
1. Harmonic Major | 1 – 2 – 3 – 4 – 5 – ♭6 – 7 |
2. Dorian ♭5 | 1 – 2 – ♭3 – ♭4 – ♭5 – 6 – ♭7 |
3. Phrygian ♭4 | 1 – ♭2 – ♭3 – ♭4 – 5 – ♭6 – ♭7 |
4. Lydian diminished | 1 – 2 – 3 – ♯4 – 5 – ♭6 – ♭7 |
5. Mixolydian ♭2 | 1 – ♭2 – 3 – 4 – 5 – ♭6 – ♭7 |
6. Lydian Augmented ♯2 | 1 – ♯2 – 3 – ♯4 – ♯5 – 6 – 7 |
7. Locrian ♭♭7 | 1 – ♭2 – ♭3 – 4 – ♭5 – ♭6 – ♭♭7 |
Scale | Degrees (Relative to Major Scale) |
---|---|
Ukrainian Dorian | 1 – 2 – b3 – ♯4 – 5 – 6 – b7 – 1 |
Byzantine | 1 – b2 – 3 – 4 – 5 – b6 – 7 – 1 |
Hungarian Minor | 1 – 2 – b3 – ♯4 – 5 – 6 – 7 – 1 |
Melodic Minor | 1 – 2 – b3 – 4 – 5 – 6 – 7 – 1 |
Harmonic Minor | 1 – 2 – b3 – 4 – 5 – b6 – 7 – 1 |
Aeolian | 1 – 2 – b3 – 4 – 5 – b6 – b7 – 1 |
Dorian | 1 – 2 – b3 – 4 – 5 – 6 – b7 – 1 |
Lydian Dominant | 1 – 2 – 3 – ♯4 – 5 – 6 – b7 – 1 |
Lydian ♯2 | 1 – ♯2 – 3 – ♯4 – 5 – 6 – 7 – 1 |
Half-whole Diminished | 1 – b2 – ♯2 – 3 – ♯4 – 5 – 6 – b7 – 1 |
Whole-Half Diminished | 1 – 2 – b3 – 4 – b5 – ♭6 – 6 – 7 – 1 |
Altered Scale | 1 – b2 – ♯2 – 3 – ♯4 – b6 – b7 – 1 |
Major 6
LH | RH |
---|---|
1, 6 | 3, 5, 1 |
2, 7 | 4, b6, 2 |
3, 1 | 5, 6, 3 |
4, 2 | b6, 7, 4 |
5, 3 | 6, 1, 5 |
b6, 4 | 7, 2, b6 |
6, 5 | 1, 3, 6 |
7, b6 | 2, 4, 7 |
degree | LH | RH | note | third details |
---|---|---|---|---|
1st | major 6th | minor third, 4th | egc over ca | bottom note in RH |
3rd | minor 6th | maj 2nd, 5th | g,a,e over ec. The g,a cluster is 4th inv of A min7 | bottom in LH top in RH |
5th | 6th | minor third, 5th | a min7 fifthless (acg) over g6 shell | top in LH |
6th | b7th | maj third, 4th | 6th chord cea (am7 2nd inv) over ag 7th shell | 2nd note in RH |
Notice how the third isn't voiced in the right hand on the 5th degree but it is on the 1st, 3rd and 6th. The third is in the left hand on the 3rd degree as the bottom note, then on the 5th degree the third is the top note in the left hand. It's absent from the left hand on the 6th degree while the RH takes it.
Its cool how the third shuffles back and forth between hands. On the 3rd degree the pinkies get joint custody on that day.
Minor 6
LH | RH |
---|---|
1, 6 | b3, 5, 1 |
2, 7 | 4, b6, 2 |
b3, 1 | 5, 6, b3 |
4, 2 | b6, 7, 4 |
5, b3 | 6, 1, 5 |
b6, 4 | 7, 2, b6 |
6, 5 | 1, b3, 6 |
7, b6 | 2, 4, 7 |
The difference between the major and the minor is the b3. The Diminished patterns stays the same.
Root | Root Hz | Third | Third Hz | Fifth | Fifth Hz | Octave | Octave Hz |
---|---|---|---|---|---|---|---|
E3 | 164.81 | G#3 | 207.65 | B3 | 246.94 | E4 | 329.63 |
F3 | 174.61 | A3 | 220.00 | C4 | 261.63 | F4 | 349.23 |
F#3 | 185.00 | A#3 | 233.08 | C#4 | 277.18 | F#4 | 369.99 |
G3 | 196.00 | B3 | 246.94 | D4 | 293.66 | G4 | 392.00 |
G#3 | 207.65 | C4 | 261.63 | D#4 | 311.13 | G#4 | 415.30 |
A3 | 220.00 | C#4 | 277.18 | E4 | 329.63 | A4 | 440.00 |
A#3 | 233.08 | D4 | 293.66 | F4 | 349.23 | A#4 | 466.16 |
B3 | 246.94 | D#4 | 311.13 | F#4 | 369.99 | B4 | 493.88 |
C4 | 261.63 | E4 | 329.63 | G4 | 392.00 | C5 | 523.25 |
C#4 | 277.18 | F4 | 349.23 | G#4 | 415.30 | C#5 | 554.37 |
D4 | 293.66 | F#4 | 369.99 | A4 | 440.00 | D5 | 587.33 |
D#4 | 311.13 | G4 | 392.00 | A#4 | 466.16 | D#5 | 622.25 |
E4 | 329.63 | G#4 | 415.30 | B4 | 493.88 | E5 | 659.26 |
F4 | 349.23 | A4 | 440.00 | C5 | 523.25 | F5 | 698.46 |
F#4 | 369.99 | A#4 | 466.16 | C#5 | 554.37 | F#5 | 739.99 |
G4 | 392.00 | B4 | 493.88 | D5 | 587.33 | G5 | 783.99 |
G#4 | 415.30 | C5 | 523.25 | D#5 | 622.25 | G#5 | 830.61 |
A4 | 440.00 | C#5 | 554.37 | E5 | 659.26 | A5 | 880.00 |
A#4 | 466.16 | D5 | 587.33 | F5 | 698.46 | A#5 | 932.33 |
B4 | 493.88 | D#5 | 622.25 | F#5 | 739.99 | B5 | 987.77 |
C5 | 523.25 | E5 | 659.26 | G5 | 783.99 | C6 | 1046.50 |
C#5 | 554.37 | F5 | 698.46 | G#5 | 830.61 | C#6 | 1108.73 |
D5 | 587.33 | F#5 | 739.99 | A5 | 880.00 | D6 | 1174.66 |
D#5 | 622.25 | G5 | 783.99 | A#5 | 932.33 | D#6 | 1244.51 |
E5 | 659.26 | G#5 | 830.61 | B5 | 987.77 | E6 | 1318.51 |