Skip to content

Instantly share code, notes, and snippets.

@sophuric
sophuric / util.c
Created January 30, 2025 12:43
C file reading util function
#include "util.h"
struct file get_file(FILE *fp, void *(*malloc_)(size_t), void *(*realloc_)(void *, size_t), void (*free_)(void *)) {
return (struct file){
.fp = fp,
.size = 0,
.capacity = 0,
.data = NULL,
.error = false,
.complete = false,
@sophuric
sophuric / crontab
Created January 9, 2025 21:49
cronjob to update packages (uses checkupdates)
# /etc/crontab: configuration file for cron
# See cron(8) and crontab(5) for details.
# m h dom mon dow user command
0 * * * * root /root/idlenice /root/fetch-updates
@reboot root /root/idlenice /root/fetch-updates
@sophuric
sophuric / README.md
Created October 6, 2024 06:18
Arduino caps lock LED indicator

This script reads the state of the Caps Lock key and sends it to an Arduino connected to a serial port. The Arduino then controls an LED to indicate the state of the Caps Lock key.

The script can be run multiple times, but only one instance will be running at a time. If another instance is started, it will send a message to the running instance to update the state of the Caps Lock key.

If you use Hyprland, paste this into your config file:

@sophuric
sophuric / shrink-video
Created July 27, 2024 02:10
Script to shrink video file sizes
#!/bin/bash
fIn="$1"
if [[ ! -f "$fIn" ]]; then echo file does not exist; exit 1; fi
ext="${fIn##*.}"
fOut="${fIn}.shrunk.${ext}"
durationSeconds="$(ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 "$fIn" || exit 1)"
mul="$(($2))"
[[ "$mul" == "0" ]] && mul=20
mul="${mul:-1}"
echo "Target size: ${mul}MB."
@sophuric
sophuric / update-dracut.sh
Created June 15, 2024 05:45
Script to regenerate dracut initramfs
#!/bin/sh
set -o errexit
KERNEL="$(pacman -Q linux | awk '{print $2}' | sed 's/\.\([a-z]\+\)/-\1/')"
echo "Generating initramfs for kernel $KERNEL"
echo "This may take a while..."
echo "Generaing /boot/initramfs-linux.img..."
dracut --hostonly --no-hostonly-cmdline /boot/initramfs-linux.img -f "$KERNEL"
echo "Generaing /boot/initramfs-linux-fallback.img..."
dracut /boot/initramfs-linux-fallback.img -f "$KERNEL"
@sophuric
sophuric / explain.bash
Last active January 14, 2025 18:44
Explain a command using explainshell.com
#!/bin/bash
explain() {
if [[ "$#" == 0 ]]; then
echo "Usage: explain <command>..."
echo "Explain a command using explainshell.com"
echo "Example: explain 'ls -l -a'"
echo "For best results, quote the command to prevent shell expansion"
return 1
fi
diff --git a/src/bot.js b/src/bot.js
index ce523a4..716f3da 100644
--- a/src/bot.js
+++ b/src/bot.js
@@ -171,7 +171,7 @@ async function handleMessage(message) {
if (reply.author.id != client.user.id) return;
if (messages[channelID] == null) return;
if ((context = messages[channelID][reply.id]) == null) return;
- } else if (message.type != MessageType.Default || (message.guild && !message.content.match(myMention))) {
+ } else if (message.type != MessageType.Default) {
@sophuric
sophuric / swapfile
Last active April 28, 2023 08:55
bash script to swap two files around
#!/usr/bin/bash
if [[ "$#" != "2" ]]; then echo "Usage: swapfile <file1> <file2>"; exit 1; fi
f1="$1"
f2="$2"
if [[ ! -e "$f1" ]]; then echo "File not found: $f1"; exit 1; fi
if [[ ! -e "$f2" ]]; then echo "File not found: $f2"; exit 1; fi
while [[ "$f1" == */ ]]; do f1="${f1%\/}"; done
while [[ "$f2" == */ ]]; do f2="${f2%\/}"; done
echo "Swapping $f1 and $f2"
IDTEMP="$(uuidgen|tr -d '-')"
@sophuric
sophuric / openpgp.md
Created April 21, 2023 02:26
pgp key proof

openpgp4fpr:EAB0A643ABD82124552040FE39F3751CDD35BB5F

@sophuric
sophuric / minecraftcolors.sh
Created April 17, 2023 04:26
preview minecraft colours in terminal
#!/usr/bin/bash
echo -e ' \x1b[48;5;15;38;2;0;0;0mblack\x1b[0m - &0 - §0 - \\u00a70 '
echo -e ' \x1b[48;5;15;38;2;0;0;170mdark_blue\x1b[0m - &1 - §1 - \\u00a71 '
echo -e ' \x1b[48;5;15;38;2;0;170;0mdark_green\x1b[0m - &2 - §2 - \\u00a72 '
echo -e ' \x1b[48;5;15;38;2;0;170;170mdark_aqua\x1b[0m - &3 - §3 - \\u00a73 '
echo -e ' \x1b[48;5;15;38;2;170;0;0mdark_red\x1b[0m - &4 - §4 - \\u00a74 '
echo -e ' \x1b[48;5;15;38;2;170;0;170mdark_purple\x1b[0m - &5 - §5 - \\u00a75 '
echo -e ' \x1b[48;5;15;38;2;255;170;0mgold\x1b[0m - &6 - §6 - \\u00a76 '
echo -e ' \x1b[38;2;170;170;170mgray\x1b[0m - &7 - §7 - \\u00a77 '
echo -e ' \x1b[48;5;15;38;2;85;85;85mdark_gray\x1b[0m - &8 - §8 - \\u00a78 '