Since going full-time on my startup, I often work remotely at my local library. Over my time there, my eyes have been opened to what an absolute treasure public libraries are.
Besides the physical books everyone knows about, which are a treasure by themselves, there are many other valuable resources, as you mentioned, including:
- The Adobe suite, even including Character Animator
- Udemy
- Digital access to The New York Times, The Wall Street Journal, and others
- Free notary services
- Print magazines and newspapers
- Puzzles
- Music and films
- eBooks and audiobooks
...not to mention community activities like classes, groups, and concerts.
Just being physically present in the library has benefited me. When I take breaks, I sometimes pick up a book at random. It may be about sales, health, politics, history. I sometimes come away with new ideas for my business, sometimes am just inspired or informed or amused in general.
I encourage anyone reading to stop by a library if you haven't been in a while. See what they offer. You might be surprised. And please, do what you can to support them in whatever way you can, even if that's just to use them, demonstrating the need for them by your patronage. We need these institutions, and they won't be around forever without our support.
I've found templates most useful as personal shortcuts.
I.e., once you've settled on a prompt that you may reuse, save it to something like a snippet manager so that you don't have to type/speak the whole thing again.
I've been doing this with a snippet manager that supports string interpolation. Recent example:
I'm working on an ASP.NET Core Razor Pages web application that I need your help with. I will send you the relevant code over several requests. Please reply "continue" until you receive a message from me starting with the word "request." Upon receiving a message from me starting with the word "request," please carry out the request with reference to the code that I previously sent. Assume I am a senior software engineer who needs minimal instruction. Limit your commentary as much as possible. Under ideal circumstances, your response should just be code with no commentary. In some cases, commentary may be necessary: for example, to correct a faulty assumption of mine or to indicate into which file the code should be placed. Code: {{Code}}
There's obviously nothing magical about the wording; saving it just gives me a quick shortcut for inputting paginated code and then explaining what's needed.
This is great. I'll be trying this next time I'm pumping code into GPT, I really like this instruction: "Please reply "continue" until you receive a message from me starting with the word "request.", I'm impressed it works so well.
One of my favorite things about i3 is that it doesn't force itself on you when it's not needed. You can keep it "in the background" in tabbed mode, effectively using it like a non-tiling WM, as long as you want. Just let your windows pile up and switch between them with fuzzy search (rofi/Switcheroo). Then, once usage patterns emerge, you can tile to take advantage of spatial memory.
Example:
- Start i3 in tabbed mode
- Open a window for coding
- Open a browser to search for some coding question. It opens in a new i3 tab, filling the screen like it would in a non-tiling WM
- Open a terminal to try the sample code (new i3 tab)
- Google the error message you get (new i3 tab)
- Use rofi to search for "code" and press Enter. Your coding window tab is activated and the coding window fills the screen
- Realizing the sample code you found would be useful here, along with the test terminal, tile those windows alongside your coding window. Now you can quickly refer to them and switch between them with spatial keybindings
- Switch back to the error message browser using rofi to check something. It's not part of your core workflow right now, so don't worry about tiling it
That's probably obvious to anyone who's used a tiling WM for any length of time, but tiling was daunting to me until it clicked. I spent too much time thinking about optimal window arrangements. Thinking of tiling as an optional finishing touch rather than a focal point made it much more useful/practical.
This is why I can never switch off i3 (well, Sway). I just use tabs too much. I even hacked Firefox to hide the tab bar and open every "tab" in a new window so I could use Sway tabs for browsing. BSPWM/DWM/etc all look cool, but no built-in tabs.
Hard agree. If you're the kind of person using a tiling WM, you will definitely find the deep customization that Qutebrowser exposes to be liberating. I like the experience so much that I'll start selling it for the rest of this comment:
Do you use vim-like extensions, but hate how surface-level they become due to hard WebExtension limitations? Pining to recapture the days of Pentadactyl? Qutebrowser is built for vim-like navigation from the ground up:
* Hate getting stuck on about//:* / chrome://* pages? Every single page in qutebrowser works with your keybindings!
* Hate PDFs for the same reason? Qutebrowser will read PDFs and keeps your keybindings there, too!
* Wish you could have a dotfile configuration for your browser? Qutebrowser (optionally) does dotfiles (and they're Python!)
* Wish you had a real EX mode? Qutebrowser has one and it does not disappoint in terms of customization/functionality. It's actually the linchpin of the the entire UX, much like the Omnibar is for Chrome.
* Wish you had a keyboard-driven text selection mode? Qutebrowser has one!
* Hate file pickers forcing you to reach for the mouse? Qutebrowser implements its own keyboard-driven file picker (and it's actually really good!)
Have you considered other browsers in the past, but passed them up due to a lack of extension support? Well... Qutebrowser can't handle WebExtensions, but it does provide most features you would miss:
* Dark Mode? It exposes the same performant, engine-level dark mode that Chrome does
* Adblock? Qutebrowser supports hostlist-based adblocking (with auto-update) OR, if you want real Adblock, you can install jblock for qutebrowser, which is comparable functionality-wise to "uBlock"-type extensions (yes, including Youtube)
* Userscripts? Qutebrowser supports loading userscripts and is mostly compatible with the GreaseMonkey 3/4 APIs. This covers what most "minor" extensions (e.g. HTTPS Everywhere / Old Reddit redirectors / UI tweaks) can do
* Custom CSS? Most "userstyle"-type websites package a "Greasemonkey" version that will work just fine with the previously remarked userscript functionality
* Password management? Qutebrowser comes with scripting support that will allow you to interface with your desktop-side password manager. Out of the box, it comes pre-packaged with scripts for connecting to GNU pass, bitwarden, keepass, and lastpass.
As for adblocking, I wouldn't recommend jblock (it's rather buggy from what I've seen so far) - but a built-in adblocker based on Brave's Rust library is almost ready now: https://github.com/qutebrowser/qutebrowser/pull/5317
I imagine people often misattribute JBlock bugs as Qutebrowser bugs, so I can certainly understand the aversion. FWIW, in my own usage, JBlock has consistently functioned as expected without causing any apparent issue. Still, I'll be glad to finally retire it and upgrade to something more fully featured and baked in.
Of course, as always, thanks for the excellent software!
Sure, but will Saka Keys allow you to configure the browser itself? Will it autoload the actual dotfile on startup if it's already in the expected configuration directory?
I'm not saying vim-like extensions aren't worth using, but they are inherently less capable due to hamstringing by WebExtension APIs. If anything, it's proof of how much work and care goes into them, since they have to fight the limitations of a framework not designed for this type of UI overhaul
I completely agree about "spacial memory" - i use my non-i3 WM in the same way.. but i'm not a fan of tiling in most cases. Does i3 still have tools i might find useful?
To further illustrate: I primarily have an open Terminal+Tmux for editing on my main monitor. On my side, i have spacial but overlapping windows. They stick out a bit, such that it's primarily four tabs - left,up,right,down. For example my Slack is on the left tab, and i can always see my contact list, people typing to me, etc. My Browser is usually on the Up tab, as it allows me to see the browsers tabs themselves. I do the same with Zoom on the bottom, such that my Mic (mute/unmute) is always visible. And etc.
This arrangement perhaps isn't ideal, but it's better than a tile for me because in a tile, i lose so much real-estate that the window becomes near useless. I can't shrink Slack to 1/4 of my Monitor, it's got too many boarders/etc. Same goes for my Browser, most sites have non-collapsing sidebars and etc, a tiny 1/4 window is useless.
This method of spacial layout obscures ~90% of my windows but leaves some of it always visible. In some cases that's very useful. But this is something i manage through the day, and a WM to automate this positioning would be amazing.
I’ll assume you don’t actually need to see you browser tabs or the Zoom mute toggle, just to be able to access them instantaneously. If I were you, I might keep Slack filling the screen most of the time, with the browser on workspace 9 — so it can pulled up with Super + 9 — and make a combo like Super + M both focus Zoom (on a third workspace), `xdotool key --clearmodifiers Alt+m` (with the setting enabled for that to toggle mute), and perhaps `xdotool windowmove 80% y` or so Slack and make Super + S or something reset the Slack workspace afterwards.
I haven't used i3 in a while, but you might be able to use stacking/tabbed containers to accomplish what you've outlined above. It doesn't have the advantage that you can see part of the window, though.
Okay you'll need to enlighten me because this is exactly what I want. Currently I use keybinds on my Mac to snap windows to halves of the screen. I3 on my desktop does this automatically but I'd love if I could also have the freedom to let the windows stack up. What is the tabbed mode?
Cross-platform PowerShell is fantastic. It's one of the first things I install on a new Linux box nowadays. I don't think I could go back to a string-based shell. Objects are so much cleaner and easier to manipulate.
Plus you get a huge standard library out of the box with its .NET integration.
It's really impressive what Microsoft has done with it.
Besides the physical books everyone knows about, which are a treasure by themselves, there are many other valuable resources, as you mentioned, including:
- The Adobe suite, even including Character Animator
- Udemy
- Digital access to The New York Times, The Wall Street Journal, and others
- Free notary services
- Print magazines and newspapers
- Puzzles
- Music and films
- eBooks and audiobooks
...not to mention community activities like classes, groups, and concerts.
Just being physically present in the library has benefited me. When I take breaks, I sometimes pick up a book at random. It may be about sales, health, politics, history. I sometimes come away with new ideas for my business, sometimes am just inspired or informed or amused in general.
I encourage anyone reading to stop by a library if you haven't been in a while. See what they offer. You might be surprised. And please, do what you can to support them in whatever way you can, even if that's just to use them, demonstrating the need for them by your patronage. We need these institutions, and they won't be around forever without our support.