Hacker News new | ask | show | jobs
by nilsb 1921 days ago
I used to spend hours on getting things like window managers, X11, etc. set up just the way I wanted them to be.

However, the older I get the less enthused I am about having to play around with config files to get basic features like suspend/resume to work on my daily work notebook.

20 comments

I've used to do this for a very long time. I've tried to customize almost every aspect of the system. At the time, I've also used to bash on Macs a lot.

I've later figured out it all stops being funny whenever I have some work to do quickly and am not in the mood for bothering with my tiling WM having too many windows open or some random broken packages.

It finally clicked when I had to collaborate on a UX desgin project and it was a big pain... My teammates used Sketch and Photoshop. Sketch is not available on Linux (which I used at the time) and GIMP just didn't want to open/save PSDs right (there was always something wrong with layers).

I've switched to macOS, it was quite a big change but I've since figured out I don't need to tweak every aspect of the OS just because I can.

Don't get me wrong, Linux, FreeBSD, OpenBSD... are great operating systems. They do just work for lots of use cases. It's just that customizing your OS often doesn't justify the time spent.

I jumped from Apple to Linux because I had to get work done and the scientific software that I wanted to use was a pain to keep working on Macs. Also, it was impossible to configure MacOS to work the way I wanted it to, unlike Linux.

By the way, I use a tiling window manager (dwm) and I can’t figure out what you mean by “tiling WM having too many windows open”. I also don’t understand why free software such as the Gimp should be expected to support the binary file format of some closed-source program. But I do understand the need to work with other people without making excuses, even if their choice of tools is shortsighted.

I've been running a work Linux virtual machine (or a few of them) on a MacBook. Best of both worlds really -- I don't have to worry about running Linux on the hardware or running dev tools on macOS.

As a bonus, a full system backup is a simple folder copy to a USB stick, and with that stick I can instantly continue working on any machine, Mac, Linux or Windows.

Yeah, I think there is virtue in this approach. If I had figured this out back then (and if it were possible—I don’t know) I might have gone that route.
> I can’t figure out what you mean by “tiling WM having too many windows open”

Tiling WMs only work for me when I have <5 windows open. Afterwards, they just become a huge mess, unless you have a big screen with a huge resolution.

> I also don’t understand why free software such as the Gimp should be expected to support the binary file format of some closed-source program. But I do understand the need to work with other people without making excuses, even if their choice of tools is shortsighted.

I'm not saying they should be responsible for supporting a random (tho admittedly quite ubiquitous) proprietary format. But on the same topic, where would Open-/LibreOffice be without support for docx/pptx/xlsx? If they never support any proprietary formats then there's no alternative to what everyone else uses.

If you have the privilege of choosing what to work with in all situations then it's of course not a problem. But one can't expect a group of UX designers to completely break their workflow for a project with a strict deadline just because one person holds onto their sacred OS.

> Afterwards, they just become a huge mess, unless you have a big screen with a huge resolution.

Or you can just use several virtual desktops.

Or use tabbed/fullscreen/custom views.

The GP comment is so backwards that I wonder if they even used a tiling wm for any period of time longer than a day or two. Tiling window managers are better at managing many windows than having them all scattered randomly over a desktop with a traditional window manager.

Not all tiling window managers are the same and one of the bigger differences is what they do with new windows, so this is really dependent on the tiling WM you've used.
If you plug every single window into the same workspace no matter how many windows you have you are basically using it ineffectively.

Let us propose you have a really tiny 12" screen and you are using 5 windows that each really need your full screen area to be useful. It makes no sense to split it 5 ways so instead each window is its own workspace. This hardly seems to be a situation where a tiling window manager benefits you you could very well arrange the same thing on any graphical environment by switching to each workspace opening each application and maximizing the window.

However what it did do was keep you from dumping all 5 windows in the same workspace because the result would be painful and ensure that instead of alt tabbing an average of 3 times per window switch or taking your hands off the keyboard and clicking on a ui element to select the individual app from the taskbar. Instead when you want to go from app 1 to 5 or app 2 to 4 you go directly to the correct workspace.

It also automated maximizing the windows as they were created.

To put it succinctly it encouraged a certain workflow and automated the window management steps when using that workflow.

This is also true if you have 18 windows and 3 28" monitors. By far the most common arrangements are going to be simple arrangements of 1-3 windows on the same monitor which can be automatically applied as windows are added.

If we consult one of my favorite infographics

https://xkcd.com/1205/

To save 2 seconds 100 times a day (not depicted) we can spend 96 hours learning to use a tiling window manager and come out ahead over 5 years. In reality the time required is probably on the order of 2-4 hours and as it is a low stress, simple activity it can trivially be done during downtime in the time when you would spend on social media as opposed to when you ought to be working.

In effect you are trading a few hours of playtime for 96 hours of more effective work time which if you think about is a pretty good trade.

It's also entirely possible that you don't enjoy this workflow and thusly wouldn't benefit which is OK too.

Insofar as LibreOffice vs Gimp you are entirely correct. On a related note Bloom although not free claims to have great PSD support

>You say Bloom imports PSD files. What specifically does it import and does it support layers? We understand why this question comes up. :) A lot of packages claim to import PSD files, but then either end up importing a single flattened image, or layers stripped of styles, masks, and blending effects. We are proud to have created the best-in-class PSD importer for Bloom, which supports not only layers and groups, but also masks on both of them, all layer blending modes, and even layer blending effects such as drop shadows and glows - even on groups! While we can't guarantee the documents will look pixel-perfect compared to Adobe Photoshop (they are completely different software packages, after all), they are very close in terms of their appearance, and all key information is preserved.

https://thebloomapp.com

I haven't tried it personally but it has a free demo.

> It's just that customizing your OS often doesn't justify the time spent.

That really depends on a) what you choose to customize, and b) how adept you are at customizing. In other words, it depends on your skill and foresight.

With enough practice - you get it by simply working with computers over the years - you can recognize the pain points with the biggest payoffs quite accurately. With enough skill, you can fix them relatively quickly. This way you get a "10x" setup tailored for your specific needs.

Of course, trying to indiscriminately customize everything while putting a lot of time into learning how to customize them is a net productivity sink. That's normal. Most people start with such approach, get burned by it, and conclude that the whole customizability-as-a-feature is not worth it.

It's quite possible that it's true for majority of users. The well-tuned, A/B tested, in-depth researched defaults can be good enough for many. I have nothing against such defaults. However, forcing me to use them, while I know precisely what I personally need to be more productive, is something I can't agree to.

My current setup is Linux, AwesomeWM, Firefox, and Emacs. I customized away all the pain points I had with them a decade ago (half a decade with Awesome). The time spent on maintaining the configs across upgrades is trivial, on the order of tens of minutes a year.

To sum it up: customizing your OS can be well worth it if you do it right. You can also go wrong with it, too. But, using software which doesn't allow for customization not only removes the risk of customization going wrong - it also robs you of the possibility of doing it right.

> My current setup is Linux, AwesomeWM, Firefox, and Emacs. I customized away all the pain points I had with them a decade ago (half a decade with Awesome).

Amen brother! Exact same setup here: Linux / AwesomeWM (with a dedicated modifier key on my keyboard only for AwesomeWM related keybindings), Firefox, Emacs and the occasional IntelliJ IDEA for Java stuff.

> The time spent on maintaining the configs across upgrades is trivial, on the order of tens of minutes a year.

Exactly.

As a tech fan, but not a professional programmer, this only took me a couple hours to figure out :-)

Basically the moment you start to use Linux desktop, you will immediately start googling how to twist this and that. Maybe in an hour, you will start to go to this and that folders to change this and that cfg files. For me, I quickly realize that 1) I won't remember what I did and I don't know all the implications of those changes I made, and 2) I don't want to spend time on those stuff.

> 1) I won't remember what I did and I don't know all the implications of those changes I made, and

That's why I keep a log of everything. Any error message I encounter, any change I made and why. Neatly organised, in an org (org-mode) file.

I make exactly the same as I do in programming project or server configuration: keep notes, explaining to my later self (and to others) what I did and why.

> 2) I don't want to spend time on those stuff.

As I commented already: then you're forced to adapt to things others thought it would be best for you instead of adapting the system to your way of working.

Bingo, I just learn to accept the defaults as much as possible. If I can't love them, I accept them.
> It's just that customizing your OS often doesn't justify the time spent.

Of course it does, spending a tiny bit of time optimizing my workflows here and there, now and then, whether OS or text editor, saves hours yearly. Not to mention reducing annoyances and plain friction.

saves hours, yearly? tiny bit of time optimzing?

Hahahaha. Keep telling yourself that.

A linux fanboy would argue that your problem wasn’t linux, it was proprietary software that vendors won’t port to linux. They might also argue that your team should not choose software which is so restrictive.

For me though it boils down to two things: (1) linux does not go out of its way to provide stable ABI’s, which makes porting proprietary software to linux and maintaining it there expensive and (2) if you are serious about doing productive work the best productivity software is often proprietary. Add those together and there is a sort of gradient over time where if you work together with non-linux users there are always things pulling you over to windows or macOS.

> They might also argue that your team should not choose software which is so restrictive.

Which in the end is a valid point.

I've seen offices fighting with their own MS Word templates because neither current MS Word versions nor alternatives like LibreOffice can correctly display and format them anymore. Meanwhile Microsoft Team's online Word is not 100% consistent with the offline package, and when you need your PDF export to just work it's not fun when suddenly PowerPoint decides to always invert the colors for no reason.

Then there are cases like the subscription-based Adobe tools which are nice until you happen to be in a country targeted by a US trade embargo and overnight your subscription is cancelled with no way to even access your own files in cloud storage. Oops.

Is Gimp inferior to a billion dollar corporation's top-seller? Sure. But I know tomorrow I'll still be able to open all my files on almost any device running a desktop OS. If you earn your salary with this kind of software that's still not very convincing of course and I get that, however on the other hand when you depend on this kind of software to be working reliably it's worth considering how much you really want to depend on some corporation's servers being online when you need to rely on it.

> Is Gimp inferior to a billion dollar corporation's top-seller? Sure. But I know tomorrow I'll still be able to open all my files on almost any device running a desktop OS

Not only that, skills you learn on an open platforms don't really expire. I spent a while getting pretty good at using both Photoshop and GIMP, but these days I'm not using Photoshop enough to warrant paying a subscription fee to use it when I do need it. Those skills and time invested in using it essentially go to waste without a license. GIMP, on the other hand? I've been benefiting from the time I've invested in it for over 15+ years now without a hitch.

    > (1) linux does not go out of its way to provide stable ABI's, which makes porting proprietary software to linux and maintaining it there expensive
My impression is that the opposite is true for user space - https://yarchive.net/comp/linux/gcc_vs_kernel_stability.html Maybe you're referring to GNU or kernel modules? There are more than a few anecdotes of people running 20+ year old binaries that still work with X11.
Linux keeps the userspace<->kernel ABI stable, sure. But that's largely an implementation detail; what matters is the ABI presented to applications - at the library level, not underneath libc. And this varies between libraries and distributions.
About (1), Linux itself actually does go out of its way to provide stable ABIs as do some very common infrastructure-level libraries like the GNU C libraries. X11 itself is also very stable and both code and the protocol has been compatible going back to the early 90s.

However everything built on top of those is not and does not care about ABI or even API stability and now several desktop projects are actively undermining X11's stability with Wayland. Gtk+ breaks its API and ABI every major version as does Qt - and IMO even if Qt wanted to remain stable, as a C++ library it is very hard to do. Also Qt is really middleware and its developers have very different priorities than what you'd need for an actual platform (not to mention how intentionally misleading they have been towards users of their library).

There is a stable desktop API on Linux, Motif, but that is ugly and nothing targets it anymore and the company behind it nowadays actively promotes Qt instead.

Regarding Gtk's frequent breakages, I really can't understand the thought process of whoever is making these decisions.

Gtk is pretty much only relevant on Linux, the Linux desktop is itself a tiny fraction of the desktop market, and the amount of developers who're willing to write GUI apps for Linux, to write documentation or tutorials on the subject, etc. is already extremely low. So you'd think it makes sense to keep things as stable as possible, to make sure that no unnecessary effort is wasted and to encourage people to improve their apps or write new ones.

But apparently the Gtk people don't care. So much effort has been wasted due to stability issues, not even talking about the multitude of good-willing people who got burned in the process and just stopped caring about Gtk altogether. It's really a sad state of affair.

It's unfortunate about the ABIs - I think this probably adversely affects linux stability even when you have the source and allow a recompile.
Couldn't they trivially use QT and bundle the libraries needed with the software?

This doesn't seem dissimilar to how one could ship software for windows.

Got a massive jump start to my career by spending high school recompiling X11 and such endlessly.

I have much gratitude for how much I learned. Apple had made great money in my desire to never do that again.

Why would you recompile X11? Back in the 90ies, early 00s, I did compile kernels to make them lean and enable some functionality that was not in the default kernels. But I never saw anyone recompiling X11 outside Gentoo and other source-based distributions.
I remember Gentoo linux being quite the rage in the early 2000's (at least in my office). Compiling everything and getting your system up and running was a badge of honor, I guess.
I remember booting from a Knoppix live CD and using that to install Gentoo so that I could use a web browser, IRC client, and GAIM to keep in contact with friends while the full-day process of the stage1 install worked on my old, slow computer. I remember not including GNOME or KDE in my ebuild flags so that the build took less time, and then using WindowMaker as an X11 window manager because it took less time to compile and ran faster than trying to run GNOME or KDE on that old machine (PII 400, 96 MB RAM, 8 MB ATI onboard video back around 2003 or so).
Gentío taught me so much. When their documentation went through that weird phase where stuff went missing was when I dropped off and my Linux knowledge declined. I stopped using it and lost track of what’s trendy nowadays.

Compiz times with the cube desktop and compiling kernels overnight in my Pentium 4 kept me away from making out with girls many times.

For quite a while, if you wanted to learn how a Linux system really operated, you'd build a Gentoo system.

Eventually, you'd get tired of all the options and switch to something more stable, especially for servers. I have some fond memories of Gentoo and emerge and compiling all of my software, just so. Sadly, it was never very stable... and not really through any fault of it's own. Really, the customization you could do was great... but there was always one more thing to tweak, one more knob to turn...

Badge of honor -- yes. I'd almost call it a requirement for someone to work through once or twice.

> For quite a while, if you wanted to learn how a Linux system really operated, you'd build a Gentoo system.

Because watching 'configure' output scroll across your screen 40 times makes one a computer expert, natch.

It wasn't watching the compiler output... it was choosing the components. You'll need A, B, C, etc. For each category there was often more than one choice. You had to choose which syslogger you'd use, for example. With RedHat or SuSE or other distributions, those choices were already made. You may not have otherwise known what options were available.

Imagine starting out with Linux today and not knowing that systemd isn't the only option for an init system. (Regardless of whether or not you like it, it's helpful to know what alternatives exist).

In the end, with Gentoo, when you had your config set, yes, you'd get hours of compiler messages. And if you were lucky, none of them would be errors.

But you'd also know how the system worked. Honestly, it was also about control. With Gentoo, you could configure the system exactly as you wanted, down to the compiler flags. How many other systems let you really do that? Instead of targeting a well-known arch (ex: i686), Gentoo let you set your compiler flags for the entire system to match your exact CPU. The upside was that it was your system. The downside was that it was your system and if/when it broke, you'd have to figure it out. If your goal is to learn how to use Linux, that's also a feature. If your goal is to have a stable server, not so much.

Like the original parent commenter, I was playing with Gentoo back in the early 2000's, so much has probably changed. But I definitely learned a lot back then.

Compiling and installing large amounts of system software, a la `emerge world` or `make buildworld`, is great exposure to many system components. `make menuconfig` introduces one to various features of the Linux kernel, and yes, even a humble `./configure` illustrates how the software in question depends on libraries and hardware. I wouldn't casually dismiss the educational value of these experiences, nor the curiosity of those partaking. They're certainly more expository than the digests displayed in a `docker pull`.
I built a Gentoo system once or twice, and I learned a lot that I otherwise wouldn't. Even just following the directions forced me to go to parts of the system I otherwise wouldn't have.

Now I use Macs on the desktop and linux on the server.

I've had my fair share of X11 builds at different work places.

The typical use case is when you have to work on some Linux dev box which does not have any (or a somewhat recent) X11 and the distribution is either too old to get one, or simply you're not root.

In these cases, the simplest (though annoying) solution is to rebuild X11 and a wm from source on the box as user.

Given OP mentioned he was doing his studies, I guess he was required to work on some old boxes and wanted a decent modern environment.

> or simply you're not root.

Maybe I misremember, but didn't X11 require the SUID bit set before systemd-logind if you wanted to use a GPU?

(Of course, if you want to run remote X11 clients, then you don't need elevated privileges.)

Sure, I was talking about remote dev boxes, I would then connect to them using a local X server.
I remember recompiling X11 around the time freedesktop was getting started. Because features like XRender, XFT, etc. were coming online and I didn't want to wait for my distro to update. Having decent fonts was that good.
I certainly remember rebuilding X to get it to work with a new graphics card. Normally a little investigation to find out the changes I’d need to make to the code for identifying the card and sometimes some other small changes.
Slackware. Constantly trying to install things managing dependencies breaking the entire system starting from scratch etc.

All I really wanted at the time was a Photoshop clone (GIMP). Broke high schooler that didn’t want to pirate.

Installing slackware from a stack o' floppies. Fond HS memories...
I'm guessing at some point in the distant past the distribution you were running didn't build X with the options you needed this wasn't normal 18 years ago and it certainly isn't now.

A Linux Mint install normally consists of a friendly gui installer followed by installing common software from an app store interface. It's more friendly than installing windows.

> It's more friendly than installing windows.

When's the last time you installed windows? I installed w10 about 3 weeks ago and I: - Plugged a USB key & Ethernet cable into my PC - clicked through a handful of GUI options - Made a coffee

And when I returned (~15 minutes, I didn't time it), it had installed windows, done the post-install reboot crap, and was ready for me to install my own software. Out of the box I had internet connectivity, power management, semi-modern graphics drivers (< 3 months old) and was ready to rock.

I had a fresh install of windows from 6 months ago that just committed unrecoverable suicide a few weeks past after an update. The filesystem was fine but it wasn't able to boot any longer and absolutely nothing had changed save for the update.

Going through the recovery tools built into windows was pretty easy but nothing including "refreshing" the OS which is basically just a reinstall while saving your files didn't work either and ultimately I had to just start from scratch.

When I did the reinstall I decided to switch it from legacy to EUFI boot and enabled that. The installation of windows tried to get me to link my account with my imaginary microsoft account. Opting out of that is designed to be confusing. Then it tried to get me to enable invasive telemetry with promises of functionality I didn't care about. It wouldn't have worked anyway because without changing another peripherally related option in my motherboards settings menu windows consistently malfunctioned when enabling networking in a way that was not an issue under Linux. One hour later thinking I had somehow created the windows install usb with the wrong option I figured out what was wrong and finally had windows working again.

In the course of 6 months windows had to be installed twice and took over 2 hours total time and tried to trick me into tying my ability to use my own computer to their permission and giving up my privacy.

The only reason I bother to keep it around is that its still easier to game under Windows. Might as well call it XboxOS because its surely unsuitable for any other use.

I had a non-standard monitor (mid-90s) which will not work with xf86config out of the box. Spent a nice summer trying various settings and was such an aha moment when it worked.
I'm there too right now. Went from using BSPWM on Arch with all kinds of custom hijinks to just sitting on KDE because it lets me go about my work without much hassle. Both have their merits, and if I was on weaker hardware I'd have no qualms going back to my WM-only setup. But KDE keeps getting leaner and lighter, and it's smooth and hassle-free for the most part.
And now we get Wayland by default on 5.22.
I have a super petty reason for disliking wayland. There are no cool retro Desktops/WMs for it. On X I can run shit like WindowMaker, CTWM and if I want to CDE.

That and my xdotool scripts don’t work.

Kind of have to agree w/you. I run KDE on Wayland, it's pretty good, but I'd like to have a really slimmed down desktop like XFCE run on Wayland, possibly on BSD too as well as Linux. That would indeed be killer. CDE? Man..I didn't even know CDE is around anymore.
It’s open source now and somewhat fragile / buggy. I haven’t been able to get it working on Linux yet but the FreeBSD port was quite easy to build.
> the FreeBSD port was quite easy to build

Forget easy to build; it's in the official ports tree; you can `pkg install cde` :)

https://svnweb.freebsd.org/ports/head/x11/cde/

Think of it this way: we get to use "cutting edge" things on Wayland now which people will be calling retro in a few years.
Surprisingly usable, but I'm still holding out because one of the things I need (auto-type on KeepassXC) is still not available on Wayland. It's an active issue[1] and will hopefully be sorted soon. MOST of my workflow looks and works just fine on it though, which is very impressive.

[1]: https://github.com/keepassxreboot/keepassxc/issues/2281

> However, the older I get the less enthused I am about having to play around with config files

That's why you leave around your config files from the '90s, you don't touch them and they still work!

Sent from a FreeBSD machine running fvwm ...

Yeah, I do most of my work inside VNC servers running fvwm with emacs, xterm+tmux+zsh, and firefox. My config files haven't substantially changed in 25 years. The desktop login environment has changed many times over this period (enlightenment, sawfish, compiz, metacity, mutter, mutter-on-wayland, even Windows 7 and 10 for work) but I only configure that enough to set up virtual desktops in which I just bring up VNC viewers for multiple hosts.
> running fvwm

That's the secret. I've been running Windows 10 on the desktop for almost the last decade, but ran Linux for more than a decade prior to that. If I want a Linux desktop, I know I can pull out my old archived FVWM configs and be set.

I hear that from people all the time who are more advanced in their careers than me. But I can't imagine finding myself in a place where I don't have my current setup. I am able to do everything so much faster having my custom i3, Emacs setup than anyone else I work with. People often comment "Wow you are able to do that so fast."

Now that I discovered Vimium I consider it a UX failure if I ever have to use the mouse. Like I don't think I could ever go back to having a system that doesn't navigate by jkl;, everything else seems to slow and clunky. Like yesterday I had to upload a file and the interface only supported drag and drop, and I took it personally that I had to use a mouse.

Sorry I am ranting, but after having experienced the power of the keyboard all time and the ease of doing things in the terminal how can you stand going back? This isn't rhetorical either I genuinely just wonder how you overcome the additional pointing and clicking required?

>how can you stand going back

For me, like many things, it is a tradeoff. Am I THAT more efficient in some uber config - balanced against the time it takes to fix/update/tweak/keep it current, and deal with multiple systems and repeated setups.

And the answer for me is, well, no, no I'm not. So these days I use a much smaller set of "must have" custom configs and mostly go with the defaults.

>a UX failure if I ever have to use the mouse

I can see that for certain systems/applications. But, I have to deal with various webapps - jira, confluence, continuous integration settings, our internal source code instance, etc - and I can't imagine the scenario where spending the time to configure and learn keyboard-only navigation would result in an efficiency payoff.

It's similar to the argument about why dvorak/colemak/workman/etc is "better". Yes, yes they are, but there is no way I'll ever get the time back in efficiency that it would take to become proficient. I'd need some outside motivation, such as RSI or an injury to alter the cost-benefit calculation.

I don't need to turn every webpage I need to deal with into a keyboard optimization puzzle in order to shave a few seconds here and there. That's the time savings we're talking about right?

>I can't imagine finding myself in a place where I don't have my current setup

Do you mostly work on a single system?

> I can see that for certain systems/applications. But, I have to deal with various webapps - jira, confluence, continuous integration settings, our internal source code instance, etc - and I can't imagine the scenario where spending the time to configure and learn keyboard-only navigation would result in an efficiency payoff.

That's the beauty of Vimium, it gets you 90% there, but those 90% work the same everywhere.

I guess it's a spectrum.

I share OP's point of view. I've had my youth years of complete custom desktop experience, every single detail under control and finely customized, on whatever distribution was the apogee of the time (gentoo, arch,...).

Years passing by though, I've grown past it. Now I just install Ubuntu, I don't want to loose time on wifi drivers, keyboard backlight, acpi suspend/resume, etc.

Doesn't mean that I don't customize my environment though. I've been using i3 for 10 years and would not stand anything else. Same for my vim configuration.

I just prioritize some things (i3, vim) over others (distribution, package manager).

Can you explain why you're so find of i3? I've played with it but it never stuck.
It hink the other comments already made good points, but just to complete it for me:

- There's very little learning curve with i3. After setting/learning 2 or 3 keyboard shortcuts you're good to go. That makes the adoption a no brainer.

- 99% of what I do is done in a shell (code, sysadmin) or a browser (read doc, write doc). That means I often need a lot of shell windows all over the place. The tiling really helps here. I could use tmux/screen for that (that's what I did before i3), but I often already have tmuxes on the remote boxes I ssh to, and the inception makes navigation harder.

- it's fast, there no animation or latency whatshowever. I can very quickly open a shell, ssh, run a command, close it, etc.

Most of these could be done with any keyboard oriented tiling wm, I just so happen to use i3.

Not the original commenter here but

- i3 treats individual monitors as virtual desktops instead of having them stretch across all monitors which makes it easy to shift say a workspace with a browser or a chat app into a secondary monitor without losing the current task or having to rearrange everything.

- i3 lets you define keybinding modes that work much like modes in vim

- i3 is very simple and comprehensible its about as non magical as can be making it using it predictable and simple

For me personally, it's about putting the right amount of emphasis on your tools. Using your mouse shouldn't be outright verboten, but I do see your point about having a properly set-up editor. I could probably be 30-50% more efficient with just the right vim config. For reference, here's mine:

$ ls -l .vimrc ls: .vimrc: No such file or directory

However, as a counter example, instead I've spent time on learning how to use Ansible which lets me automate parts of my job in a way that just wasn't feasible 15 years ago. To me that provides a much larger benefit (easily 10X, maybe even 100X).

I guess my point is that I don't want to spend too much time on the plumbing part of technology and leave figuring that out to someone else - much in the same way we're using libraries nowadays instead of re-implementing hash tables ourselves in every new project.

My setups have never been customized that deeply, but I used to be much more into the process than I am today.

What changed that was the frequency of needing to set up a working environment from scratch, for whatever reason whether that be a fresh OS install or a change of personal or work machines. After a while it becomes tiresome, both in initial setup and in maintenance (regardless of OS, highly custom configurations are more brittle and can break in more ways).

I still customize a fair bit but generally speaking I keep things closer to default and gravitate towards OSes and distributions that come reasonably close to where I want my environment to be out of the box so the amount of setup and maintenance is reduced to something sustainable.

I would love to see a video of how one operates a GUI using a keyboard. I'm know some vi and zero emacs, so how Vimium works eludes me, but it would be great to someone do some impressive stuff without ever touching the mouse. I imagine the learning curve must be really steep, and not something I'd like to sped any portion of my work day learning.
Well if you are familiar with Vim learning Vimium was super easy barely any inconvience. I used an Anki deck to become familiar with all of the shortcuts and boom, off to the races.

The biggest keys to remember is f which shows all the links you can click on. I should add a disclaimer however that I ended up using vimium probably only 50% of the time, I've noticed when I am in the middle of working I use vimium more heavily, during light browsing I tend to use the mouse a bit more.

I will also say the other big thing that wasn't possible before Vimium is that I can now add a bookmark to pretty much any page I will visit more than once and then that page is only a 'Shift + b' and a couple of keystrokes away. Super efficient when dealing with giant bloated web apps that take 5 seconds to render every state change.

Vimium for gui in two secs: f - show keys to press to click something and open the link in the current window F - same except opens in a new window /<chars> <enter> - search, n for next and p for previous V - visual cursor selection, y copies esc - get out of anything

There's a lot more, but you can go a long way just with that.

Check out Luke Smith on Youtube.
> Like yesterday I had to upload a file and the interface only supported drag and drop, and I took it personally that I had to use a mouse.

keynav to the rescue! (As I’ve said before it’s no replacement for proper vi bindings like Vimium or better Pentadactyl, but it is useful as a second-to-last resort before a hardware pointing device.)

Dragging is not bound by default but it is easy to uncomment in the example config (cp /usr/share/doc/keynav/keynavrc ~/.keynavrc and gg72 in vi on Debian):

  ### Drag examples
  # Start drag holding the left mouse button
  #q drag 1
  # Start drag holding middle mouse + control and shift
  #w drag 2 ctrl+shift
I used vim for a decade and now use PyCharm+VSCode. I don’t know what you mean about not using the keyboard as I still use the terminal for everything except editing code and I don’t use the mouse at all. There are keyboard shortcuts for everything in both the ides I use,
> However, the older I get the less enthused I am about having to play around with config files...

I'm in my late forties and I don't play with config files a lot because... Once X11 / Awesome WM is set up it is set up, well, for years. Literally years. Does not move: not a iota.

At times I've had my "workstation" (just a big PC) with an uptime of 6 months. 6 months of uptime, for a desktop. That's how stable things can be. (I had my reasons for leaving my computer up at night for one of its core was computing something: but that's not the point... The point is these Linux and BSDs can be so stable you can, if you want and kernel security patch excepted, easily reach one year of uptime).

My current desktop PC is six years old and I'll soon buy a new one and I'll reinstall everything from scratch: I've got notes and may need to "fight" new hardware and whatnots for a few hours (if I'm unlucky) but then hopefully I'll be good for another six years?

The thing is: if you don't like tailoring your system to the way you like it to work, then you're forced to use the way others thought it'd be best for you...

So, sure, it may be a bit more work than a Windows or OS X machine, but the stability and uptime is also on a whole another level.

Same for me.

I have spent way too much time trying different window managers: i3,i3 gap,sway,bspwm,etc. Usually you also need to find a menu bar, customize it, deal with screen locking, multiple screens setup with different dpi, etc.

I stopped trying to create my personalized environment. I just installed Gnome Wayland (Arch) on my personal laptop with some extensions: dash-to-dock, unite. It is good enough for me, requires almost none maintenance and has a MacOSX vibe. It has been quite stable since I made the switch (more than a year).

I still keep an i3 config that I use in a VM running on my work laptop (I prefer it over WSL2). Because I wanted to keep a very lightweight WM environment. But I don't really use i3 tiling. I just launch Tmux in a maximized terminal window. I do some light development in it with neovim and OPS from it (cloudformation, terraform,etc.). I ssh connect to it with VScode.

If the CPU performance gap is not reduced between Mac CPUs and intel/amd laptop cpus for ultrabook, I think my next personal laptop will be an Apple one. I don't want to spend too much time on making the whole setup work.

Similar experience here. I was one of minority of die-hard Linux users until I had a hardware issue and just said f*ck it let me get a company provided mac. I had a super customized i3 setup but now on a 2020 mac I can get by just fine with the OS but the hardware is a ton better. My previous laptop was a higher end dell though not an XPS and the keyboard on this is 100x better imo and the trackpad is 1000x better. And MacOS is a bit more annoying in places but it-really-just-works and I don't think about it really.

I brew installed all the gnu core utilities so now I've got gcat and g-this and g-that. I use many workspaces and fullscreen apps usually with a terminal side-by-side and my productivity is better. I guess I discounted how much good hardware means to me.

i have the opposite use case - i would like a full-fledged desktop environment with all the bells and whistles i can get, but even more than that i want tiling. i settled for mate + i3, since gnome and kde both made it hard to replace just the window manager.
OpenBSD for that when it works it does OOTB.

Setup cwm, some XTerms, Otter Browser/Chromium, and done.

Or xfce4, paper-theme and paper-icon-theme if you are lazy.

Setup the theme, edit the panels, done.

> Setup cwm, some XTerms, Otter Browser/Chromium, and done.

Chrome patched three high-priority security vulnerabilities last week. And OpenBSD 6.8 hasn't rebuilt their package since October 1, unless I'm missing something: https://cloudflare.cdn.openbsd.org/pub/OpenBSD/6.8/packages/...

OpenBSD 6.8-stable packages are in a different directory, the ones you linked are -release packages which are unchanged since OpenBSD 6.8 was released.

https://cdn.openbsd.org/pub/OpenBSD/6.8/packages-stable/

The OpenBSD package tools will automatically prefer newer packages from this location.

That being said, this is a best effort, not all packages receive updates, security fixes for chromium cannot backported to 6.8-stable due to significant changes between versions, and it would be a major burden for the maintainers to update to later versions without potentially also needing to update other ports dependencies. ABI breakages cannot happen on -stable.

There are newer versions of chromium available for users who follow -current and are running 6.9-beta snapshots.

https://cdn.openbsd.org/pub/OpenBSD/snapshots/packages/

Yeah, well that's kind of my point. Recommending new users to install stable OpenBSD as their work/home PC/laptop is irresponsible, especially if the lack of updates (presented as stability / ease of maintanence) is explicitly mentioned.
Who's recommending it? It's up to the user to decide whether to stick with -release/-stable, with the understanding that packages won't see significant updates or new features until they upgrade to the next release in 6 months. But they have the option of following -current and testing the same snapshots developers are running on their laptops, and they can even help contribute so that the next release has even more tested and up-to-date packages.
The OpenBSD documentation does not really make that balance clear to the new user though. And of course there is no mechanism for regular updates either.

> New users should be running either -stable or -release.

https://www.openbsd.org/faq/faq5.html

EDIT: Haven't used OpenBSD in a while, but unless I'm misreading https://www.openbsd.org/faq/faq10.html, syspatch & binary patches only apply for release branches - in which case you would need to either deal with obsolete packages or compile them yourself. On the other hand if you where to track -stable branch you would get semi-regular binary packages (not everything for example no chromium, but at least you get firefox), but in that case syspatch won't work and you'd need to recompile kernel & userland.

Also, which exactly packages get updates is completely non-transparent for the end user if they follow official instructions.

Same, I used to spend a week+ tweaking things ever so slightly. Now I just install a base system and use kde5 plasma. Easy to theme, has an app launcher. (Which Windows also just got, same shortcut weirdly enough alt + space).
I was a linux and freebsd user in my younger days for a decade, until I switched to macOS. Now I am approaching my 40s and I would never do a customisation craze of my younger days, where I would spend time selecting a wallpaper and themes. My wallpaper is grey, I barely see it, so why bother?

But I still customise – just different things. Mac lets me customise my workflows with little effort. All the UI scripting, keyboard maestro, Launchbar actions and hyperkey shortcuts help me a lot. Computers are good at tedious and boring tasks, but I am not. It may seldom get me back the time spent for doing the workflows, but it helps me to stay sane with all the mouse-clicking, keeps my RSI in check, and gets me some satisfaction knowing that my craft is not only good for reading sales items out of the database.

How often do you start from scratch when installing an OS?, I've changed my laptop 4 times now in 5 years for different reasons, when I do so, there's only a couple of things to consider:

if I'm upgrading the HDD (for example when I made the jump from HDD to SSD or from my 2.5inch SSD to my M2 SSD currently) I need to clone the drive to my new storage, otherwise I only need to swap out my storage device from my old laptop to my new one.

With linux it just works I don't have to fiddle for my devices to be found, everything is just where I left it, the biggest change was when I went from an intel based PC to an AMD one, I only had to switch the display drivers after the fact (I knew because X crashed, I had to do this from tty), but it is expected since the display cards are totally different, btw all it took was a: sudo pacman -S xf86-video-amdgpu.

having a rolling release distro helps too, because you really don't have a reason to nuke your install and start from scratch, but even if I decided to do that for whatever reason, since most configuration is done via text files I can easily save those in a repo and just clone them to my new install and be done in a few minutes.

drwx------ 2 root root 16384 Dec 25 2016 /lost+found

^ that's when I last installed linux, I've been using the same install through 5 years in 4 different devices, it's pretty cool.

I'll be honest though I do still miss photoshop and Illustrator, I run Illustrator CS6 in wine, but it is missing a lot of features that have been added through the years, but Krita is a decent replacement for photoshop in the Illustration space, which is why I used photoshop in the first place, but nobody is stopping adobe from making a suite for linux I guess.

> I used to spend hours on getting things like window managers, X11, etc. set up just the way I wanted them to be. However, the older I get the less enthused I am about having to play around with config files to get basic features like suspend/resume to work on my daily work notebook.

The most predictable top comment on HN ever.

This is why I use GhostBSD instead of plain FreeBSD.

It’s like a Linux Mint experience but on FreeBSD.

Me too. But that never drove me away from Linux. I just started embracing two specific things:

* Sane defaults.

* Slow moving software that's focused on not changing things constantly (for better or worse).

I.e. Debian Stable :-)

I still don't understand how people who primarily code or wrangle data can possibly prefer Mac or Windows. I'm too old for stuff changing under my feet, but at least on sane Linux distros I have some power in my hands when this happens.

95% of my time re: configuration is dealing with getting suspend/resume to work and not corrupt the desktop environment. Why has this been so damn broken on open source OSes?

The one thing I could do to fully stabilize my env is to ditch the gnome/XMonad hybrid and go full XMonad. That would probably solve all my config issues. Really wish that XMonad with gnome was a first class supported setup though.

It's broken in open source because hardware is horrible but OEM's must make at least a minimalistic effort to make their hardware work with windows lest their hardware be returned to walmart. Presumably infinite effort to figure out how windows does it would yield software that works as well but in the real world of imperfect documentation and finite effort results in imperfect results.

There was a thread on this a while back

https://news.ycombinator.com/item?id=25385860

Short answer buy hardware known not to suck at it.

Same experience on my GNU/Linux zealot days, eventually I settled back on Windows, macOS and whatever Linux distributions do by default.
Same here. My path was pretty much Gentoo -> Arch -> MacOS. There were some slight short lasting deviations, such as Ubuntu and Suse.
I am solemnly transitioning from neovim to JetBrains for this reason.

Feels weird to be on a subscription model for my fundamental text editing needs.

Life on the teat.

I have used vim and later Emacs + evil for years. Recently, I subscribed to the whole JetBrains suite. I had a license for IntelliJ 7-8 years ago when I needed to write Java for work. But these days it's hard to beat CLion, PyCharm et al. It's just so more productive, especially when you have to refactor code.

Magit is still the best git porcelain though ;).

I miss when vim was my full IDE. But on a large project, I could not it keep it from thrashing the system while indexing.
I'd plug Doom Emacs my friend, all the power of a full IDE with all the keybindings of Vim.
If you think Doom Emacs has all the power of a full IDE, you have no clue about IDEs.
I'm an emacs fan. But when it comes to Java and big codebase (5+ developpers), JetBrain or Eclipse are just the way to go . They provide : code navigation and fast indexing (emacs LSP is just so slow), super integrated debugger, tons of predefined stuff to open common's file. They just more intelligence about your code packed in. With emacs it's all bare bones. So basically for me it's about big project == big IDE and everything else is emacs (which is a sizeable share !). Also, I'd say that Emacs makes my life much more pleasant too : the community, the license, the endless customization, the millions packages; that's part of my life too and the more "pro" IDE's just absolutely don't deliver on that side.
Instead of being rude and snarky, maybe you could highlight some IDE-only features that you find compelling?
Have you tried setting up LSC on either vim or emacs? It does everything an IDE does, aside from a debugger. Compile time errors are highlighted as soon as you're done typing, and many other IDE-like features.
LSP provides the bare minimum semantic support (navigation, completion, inline error annotations and basic refactoring support) to make emacs or vim worth of consideration for serious coding at all, and only because the inferior code understanding both have even with LSP is often more than compensated by other advantages such as being able to work in a terminal compelling plugins like magit for emacs, or, at least in the case of vim, general snappiness. I like and use all three, they all have their pros and cons, but saying that LSP (via LSC or one of the other myriad of lsp-support plugins) is about as true as saying that Jetbrains + Vim plugin lets you do everything you can do with VIM.

BTW: emacs does in fact have a debugger: GUD (with a bit of tweaking, it's bearable, too).

LSC is just a language server plugin, right? That's not even close to covering what an ide like Intellij does, eg static analysis, code coverage, profiling, etc.
Is this not easily automatable? My Mac(s) is/are provisioned using Strap, and this includes configuration of the terminal/Neovim/general settings. Surely this could all be done for a BSD setup?
>However, the older I get the less enthused I am about having to play around with config files

Ha! i am the opposite, i love to customize my system to perfection and use it then for years.

My newest project:

http://wotho.ethz.ch/tk4-/

yes i want my mainframe :)