Linux Terminal Commands

These are some useful Linux Terminal Commands for productivity: Commands using ls etc. use to ls -ltr list files in reverse modification history order with details. `ls -ltr tail -n 5` `ls head -n 5` rename 's/original/new/' * To rename all filenames and directories containing “original” string to “new” string. To recursively do this in sub-directories, use **/*. See: here and here for dir in */; do mkdir -- "$dir"/{tmp1,foo,bar,qux}; done To create directories within sub-directories in one go!...

 May 9, 2021  •   1 min  •   188 words  •   Suyog Garg

Mac No‑Mouse Keyboard-only Rescue

How to turn on Bluetooth & Reconnect Your Mouse Using Only the Keyboard (Sonoma/Ventura) iMac when used with bluetooth Apple keyboards and mouse has a faintly annoying problem of the inability to use the mouse if it doesn’t automatically gets connected to the system. A possible remedy and workaround for this is to use keyboard keys for mouse control. Press F8 (or F7 in the Macbook) key on the keyboard to enable switching the command palettes in the settings window....

 November 7, 2025  •   5 min  •   857 words  •   Suyog Garg

BibTex, Zotero and REVTex

Killing the \@lbibitem Error in REVTeX and Auto‑Truncating Huge Author Lists from Zotero (Better BibTeX) This note documents the exact fixes I used when REVTeX + APS style blew up on a long collaboration paper (Abbott et al. 2016, LIGO/Virgo), and how I automated Better BibTeX (Zotero) to truncate 100+ authors at export and/or prefer the Collaboration name. TL;DR If you see ! File ended while scanning use of \@lbibitem., your ....

 November 3, 2025  •   4 min  •   785 words  •   Suyog Garg

Jennie Voice: ChatGPT Auto Read Aloud

From Zero to “Jennie Voice” — Building ChatGPT Auto Read Aloud (v0→v3) and the Upgrade to v3.3.0 How I taught ChatGPT to auto-read answers out loud, added a cute floating panel, and learned a bunch about web UI quirks along the way. TL;DR We built a Tampermonkey userscript that automatically (or on demand) plays ChatGPT’s Read Aloud for the latest assistant message. Clean floating panel, mini 🔊, ETA/elapsed timers, skip-code, engine choice (Built-in or Web Speech), hotkeys....

 August 15, 2025  •   5 min  •   1043 words  •   Suyog Garg

Installing tmux on CentOS server

🧵 Building libevent, ncurses, and tmux Without sudo on a CentOS Server (While Escaping Anaconda) This guide shows how to install ncurses, libevent, and tmux locally under $HOME, without sudo, and without interference from Anaconda, on older CentOS systems. 🧼 Step 1: Start a Clean Build Shell env -i bash --noprofile --norc Then set up the build environment manually: export HOME=/home/yourusername export PATH=/usr/bin:/bin:/usr/local/bin export LD_LIBRARY_PATH= export LIBRARY_PATH= export PKG_CONFIG_PATH="$HOME/local/lib/pkgconfig" export CFLAGS="-I$HOME/local/include -I$HOME/local/include/ncursesw" export LDFLAGS="-L$HOME/local/lib -Wl,-rpath=$HOME/local/lib" 📦 Step 2: Install ncurses Locally If your system is missing the ncursesw headers, or has an old version, build your own:...

 June 17, 2025  •   2 min  •   359 words  •   Suyog Garg