Posts

customize sudo prompt

Intro I am writing a wrapper that executes sudo anyconnect. I am then asked for a sudo password, then asked for the password that goes with my anycnonnect destination. Doing this repeatedly, especially where it might not ask the sudo password again because you are already logged in to SUDO for this session, it can be confusing which password it really wants. The answer1 can be installed in your .bashrc:

Re-Writing a GlobalProtect OpenConnect VPN Connect script in Babashka

** Edit 2023.001.17: fixed syntax errors CLI command in /usr/bin and username > user This is an update of a previous Babashka1 project2, changed because my organization has switched to a Palo Alto GlobalProtect VPN instead of our former Cisco one. Originally this posed a major problem for OpenConnect, which had troubles with GlobalProtect, but with wersion 9+ of OpenConnect it works smoothly (as long as your provider doesn’t require SAML authentication, which is apparently still buggy in OpenConnect 9).

Change Firefox default zoom level

Intro I use several three-monitor setups and one of the setups has a large TV-size screen as the monitor. I typically put my browser instances over there and need to shrink them to a more zoomed-out level to make websites usable at that size. The answer was to change the layout.css.devPixelsPerPx in the about:config1. I changed mine to 0.8, which was equal to about the 80% zoom level which works for me.

dragon drag-on with emacs dired

Dragon drag-and-drop The “dragon"1 application (think drag-on) is super handy for #emacs #exwm and probably was made for tiling window managers like iw3m. Go from dired to, eg, Google Drive drag-and-drop. . Footnotes 1 Dragon is available from https://github.com/mwh/dragon

Clojure Libraries in ODH

Intro The following is a copy of a blog post for our organization, originally posted at https://odh.byu.edu/blog/clojure-libraries-in-odh My work with The Office of Digital Humanities is as a senior web developer. My teams and I build applications in the Clojure programming language1 to serve the college of Humanities and the Office of Digital Humanities, and utility libraries that serve the university and the broader developer community. Here are a few of our heavily used utility libraries, which have been used internally for years.

finding and changing a status-bar face

Problem: unreadable font in the mode-line Inquired on Reddit1 I use Bookmarks+, a superb package. But for some reason the status message face when I want to delete a bookmark is night unreadable, and although I can customize all the faces that appear in my actual bookmark list, I cannot figure out how to change that one. So, in principle, how do I find out what face is causing the ugliness when it’s in my status bar (so I can’t do the usual inspecting)?

viewing epub in emacs

Intro I finally arranged my employer to purchase Mastering Emacs1, which provided it in pdf and epub. PDF2 has long since been my standard thanks to being able to view it nicely on all my devices, but I thought I would give epub a try, too. It’s major feature sounds like both emacs-window text resizing, and page memory so it keeps track of where you’ve read. It turns out that the lauded epub mode has some extra steps with the installation.

SystemD devops run and restart services

Getting an app to redeploy as fixes and upgrades are uploaded to a linux server For most webapps I oversee it is desirable to have a mechanism in place not only for having them start when the server reboots, but also to restart the app when I need to deploy an update or (most recently) a fix to the application.1 This process requires sudo access2 and five files for a full redeployment system3:

converting text to pdf

Intro I keep a store of some of my emails as PDFs which I later have print and bound. So, what to do when some of those emails are sent in plain text instead of pdf format? Convert to PDF so they can be bound uniformly. From xmodulo1, there is a two-step process (after dependencies are acquired). Probably there’s a nifty way to do this in one-line, but I haven’t figured it out yet.