Skip to content

Instantly share code, notes, and snippets.

View hym3242's full-sized avatar
💭
still lovin' TIOCSTI

hym3242 hym3242

💭
still lovin' TIOCSTI
View GitHub Profile
@hym3242
hym3242 / terminal_mouse_hover_effect_showcase.c
Created November 24, 2023 12:15
a c program that showcases how to utilize the all event mouse reporting of terminals to create a hover effect
//Copyleft 2023 hym3242
//No rights reserved
//please forgive my bad code
//tested pass on FreeBSD 13.2
//inspired by vttest(1) and xterm manual concerning ctrl sequences (https://invisible-island.net/xterm/ctlseqs/ctlseqs.html)
//Usage: stty -echo -icanon; stdbuf -o0 ./mouse 2>debug_output.txt
#include <stdio.h>
#include <unistd.h>
#include <signal.h>
@hym3242
hym3242 / DisableLineBufferInNetcat&Cat.md
Last active October 25, 2023 15:45
netcat/cat in raw mode (not line buffered, every keypress is immediately sent over)

Put this in your .bashrc/.profile:

rawcat() { sh -c 'trap "stty icanon" SIGINT; stty -icanon; cat $@;' _ $@; }
rawnc() { sh -c 'trap "stty icanon" SIGINT; stty -icanon; nc $@;' _ $@; }

The trap is used to set cat/nc to icanon state when it is Ctrl+C'd, otherwise it will be stuck in -icanon even if you run the normal /bin/cat, or any program that reads stdin like cat, like hexdump.

When using cat > file stty would complain, but still works as expected for some unknown reason

see man stty

@hym3242
hym3242 / ForceCommandUseAlternateScreen.md
Last active October 22, 2023 21:50
Forcing the FreeBSD default man/less/top to use alternate screen.

Add this to your .profile/.bashrc etc:

altdo() { 
  echo -e '\e[?1049h'; "$@"; echo -e '\e[?1049l'; 
}

then run altdo man or altdo less, altdo top etc.

@hym3242
hym3242 / ChatGPT.enhanced.bookmarklet.js
Created May 14, 2023 10:51
Various enhacements for chat.openai.com, including easier to use textarea styling, and less waste of screen real estate
var el = document.querySelector("#__next > div.overflow-hidden.w-full.h-full.relative.flex.z-0 > div.relative.flex.h-full.max-w-full.flex-1.overflow-hidden > div > main > div.absolute.bottom-0.left-0.w-full.border-t.md\\:border-t-0.dark\\:border-white\\/20.md\\:border-transparent.md\\:dark\\:border-transparent.md\\:bg-vert-light-gradient.bg-white.dark\\:bg-gray-800.md\\:\\!bg-transparent.dark\\:md\\:bg-vert-dark-gradient.pt-2 > form > div > div.flex.flex-col.w-full.py-2.flex-grow.md\\:py-3.md\\:pl-4.relative.border.border-black\\/10.bg-white.dark\\:border-gray-900\\/50.dark\\:text-white.dark\\:bg-gray-700.rounded-md.shadow-\\[0_0_10px_rgba\\(0\\,0\\,0\\,0\\.10\\)\\].dark\\:shadow-\\[0_0_15px_rgba\\(0\\,0\\,0\\,0\\.10\\)\\]");
el.style.boxSizing='border-box';
el.style.backgroundColor='#fafafa';
var ta = document.querySelector("#__next > div.overflow-hidden.w-full.h-full.relative.flex.z-0 > div.relative.flex.h-full.max-w-full.flex-1.overflow-hidden > div > main > div.absolute.bottom-0.left-0.w-full.border-t.md
@hym3242
hym3242 / settings.json
Last active May 14, 2023 10:57
VS Code quality of life settings
{
//Also add a css rule: .minimap.slider-always [ border-left: 1px solid #3b3b3b; ]
"workbench.startupEditor": "none",
"editor.scrollbar.horizontal": "visible",
"editor.scrollbar.vertical": "visible",
"editor.mouseWheelScrollSensitivity": 0.25,
"editor.stickyScroll.enabled": true,
"editor.minimap.showSlider": "always",