eviks 5 minutes ago

Charitably, yes: great defaults are indeed great, and we do need more tools to drop the unergonomic awfulness of the defaults made up decades ago.

But literally, no: it's practically impossible for a very wide variety of tools to have great defaults.

Case in point - that you have zero config in fish and helix is just you, there are also people who have plenty of OMF plugins or use a totally different keybinding scheme, so hundreds of lines of config

nitinreddy88 20 minutes ago

I try to use most of the tools (linux) as standard as possible without customisation including shortcut keys. The problem is, once you are in remote sever/dev ops boxes, you can't have fancy tools or fancy shortcuts. It's better to train your mind to standard tools as much as possible.

rty32 25 minutes ago

When I develop tools/real products for others, I try to come up with the best defaults and provide the best experience out of the box, because most people don't ever touch settings. On the other hand, I think it is important to have almost as many settings as technical possible/feasible and try to make them discoverable, and encourage people to customize -- although maybe not spend too much time on that.

One setting that completely changed how I use vim: relative line number (and the "smart" version). I learned about it recently and realized I had wasted a stupid amount of time in the past decade since I used vim. Should that be the default? Probably not. But people do need to customize the editor to make it the most efficient and productive for themselves. I just wish relative line numbers are marketed more, and there is a way to gradually discover settings that people may want to tweak.

rcxdude 26 minutes ago

Sensible defaults are very much appreciated (and I've also adopted the philosophy of trying to avoid depending on elaborate customised configurations), but zero-config is not a good goal in and of itself. Very frequently I've found a configuration option is the difference between a tool that does and doesn't work at all for me.

lionkor 31 minutes ago

I've "riced" Linux machines, Windows machines, different editors, terminals, file browsers, shells, web browsers, even commandline tools, to fully customize my own work machine.

I used to install cool tools, new non-standard programs and made edits to config files.

Now I basically just install Arch (personal machines) or Debian (servers), and leave almost everything at default. I have a handful of necessary tweaks for i3, mostly keybinds (Meta+O for emoji keyboard, a different runner, etc.) which I can reasonably remember, look up, or copy-paste to new machines. I used to have an intricate kickstart.nvim-based neovim setup, but I don't use it anymore.

I like tools which have configs, but I try not to touch them, so I don't have to care about which machine I'm on too much. I can ssh into any Linux or Unix-adjacent machine and just get work done. Visual Studio Code and Zed/Zeditor are wonderful with good defaults, which I don't need to change.

I adjust the font of all my terminals and editors to Fira Code, but that's pretty much it. The defaults are usually sane, and, if they're not, I look for a different program.

This is why I appreciate ArchLinux so much, too; They keep the default configs for most tools, and (almost) only make sane adjustments if any. I've given up on customizing the hell out of my machine(s). If customizing your own machine(s) is your hobby, go for it, but if you want to be productive, consider getting used to default keybinds, default naming, typing out `ls -l` instead of `ll`, and getting the job done. You can own and fully control your machine without exercising this control just because you can, everywhere.

Mashimo 21 minutes ago

I would love it more open source tools and projects would subscribe to the "Easy to learn, hard to master" / sane defaults / zero config approach.

I used to love the photo editor DarkTable. I would spit out very close to camera Jpeg by default, but I could deep dive into some pictures if I wanted to. I don't know what changed, but with every update it just got harder to get something I liked from the pictures. I stopped using it.

I already use fish (with temux) and will take a look at zellij.

vouaobrasil 39 minutes ago

I don't mind configuration when the configuration is discoverable through a few menu options. But when you have to crawl through man pages and the options are endless like Vim, it starts to get annoying.

I liked that when I was in my teens because it was cool, but not now. Too boring.

That's why I switched from Vim to VS Code with the Vim plugin. It's sane by default.

BartjeD 34 minutes ago

So essentially we need more sane defaults?

I've read about sane defaults before, it used to be a best practice haha.

pitah1 31 minutes ago

This was also my philosophy behind creating insta-infra (https://github.com/data-catering/insta-infra). Single command to run any service. No additional thinking required.

Too many times I've become very frustrated when an installation doesn't work the first time or it has some dependencies that you haven't installed (or worse, you have a different version). Then you end up in some deep rabbit hole that you can't dig out from. Now for each tool I make, it must have a quick start with a single command.

bpx51 44 minutes ago

Another tool that I can't live without, which requires no configuration at all is fzf, you can easily and (fuzz)yly find files in your system, move into directories, search in your command history, search active processes and kill them and a lot more. Give it a try

  • Zababa 20 minutes ago

    fzf (https://github.com/junegunn/fzf) is really great. Very useful for providing a quick and easy user interface. For example, I use it to fuzzy find inside git branches to have an "improved checkout". I do that since at work branches are usually named "<project>-<issue number>", it's faster to search for the issue number.

assanineass 24 minutes ago

Although I agree it’s tough making a strong point when comparing Vim to Helix, it’s like saying you prefer Ubuntu over Arch since it’s nicely preconfigured.

keyle an hour ago

I don't mind configuring my tools to work for me. For example I'm a polyglot, inevitably I work with a lot of tools, IDEs, and programs. I've rigged everything so I have a lot of continuity; and context switching isn't a nightmare.

For some I use VSCode, IntelliJ, Micro or others. They all have similar(ish) shortcuts. It means I can transition so much quicker without grinding my teeth.

My point is, I don't mind configuring my tools. What I do mind, is having ease of transfer between environments, so that my configuration comes with me.

I love IntelliJ's config to cloud, it somewhat just works. It allows me to change something on the work laptop that will apply at night on my home machines. VSCode does the same now (it used to require a plugin and github).

Micro and other tools use a ~/.config/subfolder which also works, I use git to pass stuff around various computers, with various degrees of success.

My .zhsrc / .profile is carried around and I have all my 2-3 letters aliases that do complex things, so I don't need to remember everything. This is a powerful way to be very productive very easily. And if you forgot how it works, just read the file. The amount of time where I saw a senior professional waste time re-googling the same thing over, or fumbling around their shell history has boggled my mind. ref. [1]*

If you're a professional, chances are you're going to cart your configs and settings with you for many years to come. So make it as portable as possible.

Even my lazygit is configured. One time, I got a new job, I left it as default... and forced push changes by mistake (because it's not turned off by default and very easy to fat finger it), and that caused a lot of grief. So be careful about acting proud in being 'zero config'.

I'd recommend being efficient, not a purist in search of minimalism. It also shields you from upstream software changing their default on a whim.

[1] https://xkcd.com/1205/

  • ericvsmith an hour ago

    For managing config files I use yadm https://yadm.io/, which I learned of on HN.

    Among other great features, it lets me tailor settings per OS (Windows, Mac, Linux) and per client. And my settings are all in git, so they’re easy to save and copy around, and they’re all in one place, not dependent on each tool to know how to save their settings on some server.

    • mway an hour ago

      Have you used Chezmoi (https://chezmoi.io) before? I've been using that for a few years now; I'd be curious to understand how YADM compares.

kkfx 39 minutes ago

Well, zero-config generally means the tool is "modern", meaning it's defaults are current with the current tech/prefs of the most. Does not mean anything else. The issue here is that people tend to customize so they do not like their customization breaks because someone else have made new defaults.

Aside the real "no config", no need to read a manual etc was tempted, historically the most successful who tried it was Microsoft and we know how bad it is...

My take is that yes, we need sane defaults, but also full customization possible, a thing essentially absent in modern software.

mattlondon an hour ago

I know this will be unpopular but I try to live a zero-config life. I just live with the defaults 99% of the time. I prefer not to be beholden to some special keyboard map or shell config or that essential plugin that does something very niche that you could simply not live without any more, because what if you do need to live without it?

If you ever change machine or do pair programming or whatever where you are not using your highly-tweaked config, and you are essentially a frustrated jibbering wreck and barely more competent than a 3 year old using a computer for the first time because there is only vi and not Emacs, or your "essential" key bindings are not there or your "essential" plugins are not there or horror of horrors it is vanilla bash and not zsh with your 9000 line config file.

These days I have learnt to abandon the configs, and learn to love the default life. Just open a vanilla laptop and guess what, it already has "your" config since they are all the defaults! Spend that mental energy and time on something else and get stuff done.

  • BlackFly 28 minutes ago

    > If you ever change machine or do pair programming or whatever where you are not using your highly-tweaked config, and you are essentially a frustrated jibbering wreck

    Not really, for much of the same reasons that I don't lose it when I visit a friend's house and find they stored their utensils in a different location relative to the sink: it is obvious that someone will set things up differently.

    Ever help a friend, who being French, has an azerty keyboard? Defaults are also contextual and this is but one example. Heck if you are a windows/linux/mac user who occassionally helps people on another OS you will experience the difference in defaults. Being a touch typer, it was weird the first few times, but it is amazing at how quickly you learn to touch type on an azerty with just helping a friend. I even managed to help people with qwerty keyboards who insisted on using dvorak layouts.

    So I don't find your argument for defaults convincing because I find my environment to be already more heterogeneous with respect to defaults than you seem to and modifying configuration is the only way to achieve some level of homogeneity for my own use.

  • cjk 29 minutes ago

    I try to do this as well, with the notable exceptions of neovim, zsh, and tmux.

    My zsh configuration, despite being quite large, has never broken in strange and hilarious ways when adopting a new version of zsh. The opposite is true for neovim, and to a lesser degree, tmux.

    Nearly every time I install a neovim update, something breaks (often LSP-related). The devs don't seem to give a rat's ass about backwards compatibility.

    They also introduce silly issues like this[1], which are innocuous but annoying, and are then super pissy with people trying to comment on the issue to add context/etc.

    All this to say: I'm definitely in the market for a new editor that has better defaults. Having to ditch my vim muscle memory is non-ideal, though.

    [1]: https://github.com/neovim/neovim/issues/28058

    • Zababa 23 minutes ago

      Maybe you've already heard about it but Helix (https://helix-editor.com/) mostly just works out of the box.

      • cjk 13 minutes ago

        Yep -- saw that listed in the linked article. I'm going to give it a shot, but this bit of the article gives me pause:

        > I will say that it takes some getting used to as it folows the selection -> action model, i.e. you need to run wd instead of dw to delete the next word.

        It'll take...a lot of effort for me to break that habit.

      • ephaeton 19 minutes ago

        On the cost of ditching that vi muscle memory.

  • kunley an hour ago

    Not always makes sense, especially when the defaults are counterintuitive.

    Example: I never understood why tmux folks have chosen different key bindings than screen, as their product was meant to replace screen, not to be run like one inside another. But the brain has been wired over the years. Then I am always remapping tmux to ctrl-a.

    There are also other examples when defaults have been made to satisfy some perceived but unrealistic expectation.

    • oneeyedpigeon an hour ago

      I can't speak to specifics of tmux/screen but, generally, one approach to this problem is to pick tools with the defaults you want. If a tool doesn't have good defaults, pick one that does. Sure, you have to be pragmatic about this—if no tool has good defaults, just pick the one with the best (and the best support for configuration...)

      • ulbu an hour ago

        so instead of configuring a single tool, produce multiple tools of different configurations?

        you need to put system parameters somewhere.

      • exe34 19 minutes ago

        that's a very wild take - pick tools based on the key bindings instead of the features you actually need....

        • oneeyedpigeon a minute ago

          Well, it obviously depends on which tools you're talking about. For some types—terminal emulators, text editors—there are so many choices with near-identical feature sets that this approach can make sense.

        • kunley 15 minutes ago

          Yeah exactly, in the said example, tmux survived because it had better features - who uses screen today? The key bindings confusion was a fixable annoyance. We weight pros and cons quite often and not necessarily based on a default configuration

  • eviks 14 minutes ago

    > Spend that mental energy and time on something else and get stuff done.

    You'll waste mental energy on getting stuff done in worse conditions, in some cases even with a long-term risk to your health. All for a made up risk of

    > you are essentially a frustrated jibbering wreck ... or your "essential" key bindings are not there

    Nope, humans can hold multiple key bindings in their head.

    So better invest some of that waste upfront and make your future self comfortable 99% of the time when you don't do pair programming or whatever

  • Cushman 25 minutes ago

    > If you ever change machine or do pair programming or whatever where you are not using your highly-tweaked config, and you are essentially a frustrated jibbering wreck and barely more competent than a 3 year old using a computer for the first time

    I was once pairing on the lead’s laptop and switched the keyboard to Dvorak. This was back in 2010 or so, when the input menu wouldn’t show on the lock screen by default. The lead could not type Dvorak, and of course I did not know their password. I remember that moment of silent contemplation keenly…

    That’s to say, yes, and the sensation of being a frustrated jibbering wreck can be contagious :')

  • nox101 13 minutes ago

    the logic here doesn't work for me.

    Don't use vi/emacs because someday I might only have nano/notepad

    Don't use a computer because someday I might not have one

    Don't use a refrigerator because sometime I might not have one.

    Don't use a washing machine because someday I might not have one.

    Don't use toilet because someday I might not have one

    Don't use a shower because someday I might not have one.

    Configs can be a 10x speed boost. The time spent getting familiar with a machine without, at least for me, is rare enough I can live with the few minutes of frustration. Otherwise, my configs are backed up so I can update the new machine to my preferences.

  • dimal 28 minutes ago

    I can understand that POV and would love to be able to do that, but as a neurodivergent person, I could never live that way. The default settings for the world are generally intolerable to me. I customize absolutely everything in my life. Without that, I’d be a jibbering wreck 99% of the time. If I have to forgo pair programming to function optimally the rest of the time, I’ll take that deal.

    I would love simpler configs though. In my view, technology should adapt to humans, not the other way around. The problem isn’t that things are too configurable. The problem is that configuration is too difficult.

    • Iulioh 25 minutes ago

      My Android homepage had a 4 hour setup process, it was not fun but oh god it's cool.

  • Tainnor an hour ago

    Defaults are fine if you live a default life.

    I moved to another country 15 years ago, but I was never going to learn a different keyboard layout after having already been quite proficient in my previous one. And if I use e.g. a Mac at work and Linux at home, I want certain special characters to be available with the same key combinations (for some reason, that's not the case by default), otherwise I'll just confuse myself.

    • nox101 18 minutes ago

      I thought the same as you. I arrived in a new country, paniced at the foreign keyboard, had family send me my keyboard from home ASAP. It arrived 4 weeks later. I tried to use it but my fingers had already gotten used to the foreign keyboard and it would have been more work to switch back. So, I was wrong. I did get used to it. I got so used to it that when I moved back to my home countries I kept using the foreign keyboard for ~2 years. Until I got a laptop with a local keyboard. At which point I finally switched back on my desktops.

  • sharperguy 15 minutes ago

    or just ask them to install nix and temporarily import your entire setup to their machine

  • simion314 20 minutes ago

    So 1% of the time you change the configs?

    Maybe you are very average, or your tools are hard to configure or you are forced to work on other computers daily.

    I have bad eyes so would be stupid to use regular font sizes instead of bigger fonts, I also use a Zoom tool that has the shortcuts set to be easy to remember but require 2 hands to use so of course I change them to use them with one hand. Most of the keyboard shortcuts use Ctrl so I remap it to a more comfortable position (it would be confusing for others to use my computer but this is not a shared machine). I also use TTS software, the default voice speed is good for the average person but I maxed the speed , I can do things much faster.

    I used Windows, Mac, GNOME but KDE is my system because I can configure it, like Windows Zoom tool had no way to reconfigure the keyboard shortcuts last time I checked and this tool was supposed to be created by people that think about accessibility.

    Side story, my son is different, I installed a program for him, then hours later I asked about this experience and he complained that some keys were not set as he was used to but he managed, he did not consider to check and change the keyboard shortcuts, some people just prefer to suffer mental and body pain and adapt to the tool instead of adapting the tool for them (GNOME users are the supreme example)

  • exe34 21 minutes ago

    > it already has "your" config since they are all the defaults!

    that made me laugh, thank you for that!

    in practise, every distribution has different defaults and every version changes everything around. I've gone full autistic in my nixos install: xmonad, xterm, emacs. now I can keep the config frozen for the rest of my life. what if I find myself in front of a different computer? I'll tell them the same thing I tell windows people: I have no idea what's going on. sorry.

  • znpy 22 minutes ago

    I understood this the "hard way" when I lost my highly tweaked emacs config.

    Since then I keep a fairly light emacs config which largely revolves around pacakges to install and a few package-specific settings. But I mostly learn and use default emacs keybindings.

    That config is published on a publicly available webpage and I can quickly pull it if I'm working with a new machine (happens fairly often).

  • Zababa 25 minutes ago

    > barely more competent than a 3 year old using a computer for the first time because there is only vi and not Emacs,

    I think this is very exaggerated. I have git alias to "g" to save a few keystrokes, docker to "d", use a lot fd instead of find as it's better/more intuitive. I have a VSCode with the Go LSP. Sometimes I'm on systems without all of that, with plain vi/nano, and yes I'm slower but far from a "3 year old using a computer for the first time". I don't lose the speed I got from my experience of using a computer suddenly. I lose some of it, but not that much.

    I would even say that it's more about managing emotions (I really really really don't like tools that don't work how I want to/needing to write more than I actually need) than raw speed, even if I also get raw speed.

    > Just open a vanilla laptop and guess what, it already has "your" config since they are all the defaults! Spend that mental energy and time on something else and get stuff done.

    It's like a few hours and I change laptops less than once a year. Also that's not actually true because you'll probably don't have Git installed, or a LSP, or the ssh config for your VPS, or your passwords, or any other stuff that you need.

  • lnxg33k1 34 minutes ago

    I mean if you spend some time learning some automation tool, like ansible, you can pretty much have a custom setup easily on any laptop, I only modify my local config with ansible, and every time I have a new machine I have all my custom stuff right away