My TabFern tab-management Chrome extension is ready for its next great leap and I need your help! For years, TabFern has been all-or-nothing: all the tabs in a window are open, or none of them are. Prerelease version 0.3.0-pre.1 removes that limitation. If the instructions below are your speed, or you already know how to load unpacked Chrome extensions, would you please install TabFern 0.3.0-pre.1 and let me know how it works for you? Please report problems through the GitHub issues page. Once this release has had some testing, I will roll it out to the over 1,000 users of TabFern! Thanks very much for your help, and for using TabFern!
(Reminder: as always — and especially when testing prereleases — backup early and often! TabFern comes with no warranty of any kind!)
make Keyboardio/Model100 VERBOSE=1. This should leave output in output/Keyboardio/Model100/default.bin.
Unplug the Model100, hold Prog, and plug the Model100 back in. The prog key should light steady red.
Run dfu-util -d 3496:0005 -D ./output/Keyboardio/Model100/default.bin -R — use your locally-built dfu-util. You should see something like the below “Sample dfu-util output”. The first column of keys will cycle green while this is happening.
When the programming is done, the keyboard should reset. If it doesn’t, unplug and replug it.
Sample dfu-util output
dfu-util: Warning: Invalid DFU suffix signature
dfu-util: A valid DFU suffix will be required in a future dfu-util release
Opening DFU capable USB device...
Device ID 3496:0005
Copying data from PC to DFU device
Download [=========================] 100% 167104 bytes
DFU state(7) = dfuMANIFEST, status(0) = No error condition is present
DFU state(2) = dfuIDLE, status(0) = No error condition is present
Resetting USB to switch back to Run-Time mode
dfu-util: error resetting after download: LIBUSB_ERROR_OTHER
Upload: When I try to upload, I get an error because the bundled dfu-util needs glibc 2.34, which my dev machine does not currently have. Therefore:
Sketch | Upload
Copy the dfu-util command line from the error window
Unplug the keyboard, then plug it back in while holding prog
Run the dfu-util command using my built-from-source dfu-util
Unfortunately, the result is a nonfunctional keyboard! The led key’s LED breathes green briefly but the keyboard is otherwise inert (although does show as USB-connected). I am able to use Chrysalis to get back to factory firmware, however.
For several months, I have not been able to drag tabs off a Chromium window. When I let go of the mouse button to release the tab, Chromium didn’t respond. That is finally fixed!
First, thanks to jangxx for discovering that turning off Chromium’s “Use system titlebar and borders” option fixes the problem. Unfortunately, my Chromium doesn’t have that option! I had to do it by hand:
In the browser, go to chrome:settings
Under Appearance, make sure “Theme” is “GTK+”. If it’s not, hit “Use GTK+”.
In the browser, go to chrome:version
Make a note of the “profile path”.
Exit Chromium entirely.
In a shell, cd to the profile path
cp Preferences Preferences.bak
Edit Preferences and change "custom_chrome_frame":false to "custom_chrome_frame":true
Restart Chromium. You should be able to drag tabs!
Let me know if this helps you, or if you need more information about these steps. Happy browsing!
Good variety and nice beats! I think I’m on my third consecutive play-through 🙂 .
This mix reminds me of some albums from Cyan Music, as did the last Cafe de Anatolia set I wrote about. I haven’t checked Cyan’s catalog recently and it is clearly time to do so 🙂 . Any recent favorites you’d recommend?
Sometimes I run a complicated search-and-replace (:s/../../) in Vim, and I then want to repeat it somewhere else. In the past, I have always hit :, up-arrow to retrieve the command from the history. It should be no surprise by now that there is an easier way!
@: in normal mode (at-sign, colon) will repeat the last : command. Once you have done @:, you can hit @@ to re-run the command. Quick and easy!
This works because the : register, ":, holds the last Ex command. @ runs a macro, and knows that using the : register means you want to repeat an Ex command. @@ runs the last macro, so works for @: just as it does for @a or any other normal-mode macro.
I found ": in :help registers when I was looking for a register that held the filename of the file open in another window, as opposed to the alternate filename in the current window. Details of ": are at :help ": (believe it or not! 😉 ).