31 ms·
Show HN: I wrote an entire book to build a mouseless dev environment
- thanato0s 6y ago"I don't want to try i3 or Vim. What's the point using less of the mouse? Such a waste of time!" That was me, 6 years ago. My colleagues were pushing me to try the tools they were already using for years. They are very good developers, so at the end they convinced me to look at them. I had to admit I was wrong. I fell in love with these tools. From there, I built my system step by step, configured it as I wanted, according to my own needs. I had the feeling that I was more efficient with it, but more importantly I really enjoyed using it. Fast-forward 2 years ago. An idea popped up in my mind: what about writing a book to pass on all the knowledge I had about this kind of mouseless development environment? What about enabling every developer to build their own system if they wanted to? After shortening a trip in Asia beginning of 2020 because of Covid-19, I came back in Berlin without any job or even a flat, only some clothes and my old Lenovo x220. Fortunately, I found a temporary place to live where I decided to write this book. I've spent hundreds of hours on it, and now I'm really proud to finally release Building Your Mouseless Development Environment, where I explain in detail how to build a similar system to the one I use every day. This system is based on Arch Linux, i3, Neovim, Zsh, and tmux. The goal is not to impose a particular workflow; I tried to explain every single shell command and piece of configuration for the readers to be able to shape their systems to their own needs. If you're curious, you can read the first 30 pages of the book, including the whole table of content there: https://matthieucneude.com/building_mouseless_environment_sample.pdf https://matthieucneude.com/building_mouseless_environment_sa.... If you want to know how this system looks, I've made a short video (https://www.youtube.com/watch?v=67lbLKTm91U https://www.youtube.com/watch?v=67lbLKTm91U) describing the one we build in the book. Last thing: If you already know and use all these tools, you won't learn much from the book I'm afraid. Any feedback, positive or negative, is welcome!
- ryan-duve 6y ago> If you already know and use all these tools, you won't learn much from the book I'm afraid. Hah! If I kept count of every time I heard that about Vim, and then went ahead and read the article and learned yet another new thing about Vim, well, I'd be getting pretty good at Vim... Don't sell yourself short. Even just seeing how others use the same software you use can be eye opening. I'm going through the linked PDF now. One question: what did you use to make the book itself? I noticed the links in the chapter don't work, at least in Firefox's PDF reader, so if that is unexpected it might be a point to improve.
- thanato0s 6y agoI used Pandoc for the PDF; the links don't work because it's a sample. They work in the real book. About selling myself short: you're probably right. I'm struggling with imposter syndrome, like many, so I've a tendency to do that. At the same time, I'm trying to be honest and I don't want to deceive people.
- throwaway888abc 6y agoLooks great and helpful! Will read the sample more over weekend. Just sidenote: You should put some sort of newsletter box there. Send some tips and occasional promotions -> more sales.
- thanato0s 6y agoThanks! I had a newsletter, and my subscribers were super helpful. Seriously, without them, I wouldn't have finish the book. I thought about keeping the newsletter, but I already had one for my blog. So I simply asked them to switch from one newsletter to the other. I'm not sure it was a wise decision, but maintaining two newsletter, a blog, and a book was a bit too much for me. I'm still thinking launching a newsletter about mouseless tools though, with tips and tricks; maybe later.
- madhadron 6y agoI was fully mouseless with a tiling window manager (larswm) back in the 1990's. It was very nice, but these days I am very happy with my mouse and graphical tools. Maybe it's senility.
- mssundaram 6y agoFor all my years as a developer I've used a dark terminal and vim theme, until last weekend I just couldn't focus with it anymore. Happy with a light theme for the first time in my life
- TimTheTinker 6y agoI think there really is something to switching things around every once in a while — color themes, lighting, even where I’m sitting and which way I’m facing. I think part of is is that varying my environment keeps me more conscious of what I’m doing and helps me avoid falling into ruts of behavior.
- thanato0s 6y agoI think that's true. It's always good to explore new ways, especially the ones you don't agree with. Even if you still disagree at the end, I'm sure you'll learn something. I tried Ubuntu a couple of months ago, as well as other distros (elementaryOS, Linux Mint, and Manjaro). For Ubuntu, it's better than before. These distros had some interesting ideas, but I'm still very happy with my system :D
- thanato0s 6y agoChange is part of life, isn't it? That was deep, I know :D Seriously, maybe I'll write in 10 years "I was wrong: just install Ubuntu and you'll be happy". It will be a very short book though... but it's good to change and not staying in our little bubble.
- surajs 6y agohate to be the devil's advocate, but could you throw some numbers about how your productivity or skill set improved as a direct result of not using the mouse?
- thanato0s 6y agoI think it's good to be the devil's advocate. Different opinions are great to ask questions about our own. I don't have any number, that's true. But I know that I enjoy using this system way more than any other I tried (including many "easy-to-use" Linux distros, Windows, or macOS). As a result, when I discover this way of working, I began to participate way more in open source projects. In general, I didn't only like the result of what I was doing, I liked the way too. It changed everything for me. I don't think we should always focus on the tools but more what we're creating with them. But if you use tools you truly enjoy using, I'm sure your productivity will increase as well. This book is not to impose a system to anybody, it's more to dive into Linux and another way of working. That's why I explain everything in details: for anybody to shape their system and swap their tools as much as they want.
- the_svd_doctor 6y agoGreat read. I like the style. Looking forward to the complete version.
- thanato0s 6y agoThanks! The complete version is available :D
- serf 6y agoyour explanation as to why the book isn't 'free or open source' is an explanation that you need money to continue the endeavor while living life successfully. This makes one feel like a broken record, but this compels me to mention that there are major differences between 'gratis' and 'libre'.[0] Open-source/free and for-profit are not at odds with each other. They describe different ideas. [0]: https://en.wikipedia.org/wiki/Gratis_versus_libre https://en.wikipedia.org/wiki/Gratis_versus_libre
- glangdale 6y agoThis gets explained a lot; what doesn't get explained as much is how folks can continue to make money for their work in the "libre" world. It's certainly possible - dual licensing, services, premium editions, physical books, etc., and it's not a bad thing. But my guess is that a "libre" version of this guy's book would rapidly turn into a "gratis" version of it too - a "good enough" PDF would get passed around and ultimately be the main way most people would see his stuff.
- glangdale 6y agoI might add that 90% of the situations where I've thought about this in a software context as well have been "libre" -> "gratis" more or less inevitably. Again, there are exceptions, but it's surprising how many people are happy to take something and run with it, no support, no "enhanced edition", no training, etc.
- hurflmurfl 6y agoI wouldn't say it's surprising at all.
- oneeyedpigeon 6y agoDo we actually know this, for sure? Obviously, it seems like common sense, but there's a similar argument about piracy, and an opposing position that piracy never managed to kill the industries it was apparently a threat to — if anything (so the argument goes), it might have even boosted them. I've bought physical books in the past, even though they were open source. I might also spend money on a digital open source book for various reasons, some of which you mention. It's likely that an author won't make as much direct income from an open-sourced book, but they might make 'enough', even before you consider indirect income.
- mewse 6y agoI have used (and still use) pretty much this same mouseless setup on both my main dev machines; I love it. I just wanted to mention that a few years ago I swapped over to dwm from i3. If you haven't tried dwm before (it seems relatively little-known these days), then it might be worth spending an afternoon trying it out to see whether it suits your workflow as well as it does mine! It's a lot more opinionated than i3, but if its opinions happen to match yours then it requires even fewer keypresses to zip windows around!
- felixhummel 6y agoYour video was a little too long for my taste. You maybe could create a shorter video showing the full speed of productivity gained by getting rid of the mouse. I imagine some workflow every programmer does all the time: - read code - check docs - write code - test and look at logs I use the keyboard for 80% of my work and regularly people (including devs) are in awe of the speed of my movements. I would even go so far and say that it improves Flow (psychology) by reducing mental overhead (muscle memory). Best wishes! :)
- thanato0s 6y agoThanks for your wishes :) That's a good point. To me, the speed is not the first appeal for this kind of system, but more the flow as you say, and it's difficult to demonstrate that on a video :D but I'll think about that for sure.
- Multicomp 6y agoAny chance of having this uploaded to lulu or similar for print on demand copies?
- deleted 6y ago[deleted]
- brudgers 6y agoFor what it's worth, I think there is a lot of space between what you use and what might work for other people. It's not that there is anything wrong with Arch. Rather Ubuntu is probably easier for many people. The general idea here is Linux. Similarly, there are several tiling window managers. A neutral description of the options and links to resources might have broader appeal. Text editors are another place where the right tool varies among people. I guess what I am getting at is "highly opinionated" is better suited for ongoing processes than it is for soft goals. Arch Linux is highly opinionated. This makes reasoning about the ongoing process of maintaining a Linux installation consistent. The strong opinions of Arch Linux are orthogonal to the goal of switching to a tiling window manager. Ubuntu has a different way of reasoning about system maintenance that might offer less friction for other people. Tiling window managers are not dependent on distribution. I'm not trying to change your opinion. Rather, I think that there are ways to make the book a more useful resource for more people by broadening it to "here's how I do it and here are some other ways that might work better for you." Good luck.
- thanato0s 6y agoIf I simplify a bit, I see two different approaches: 1. You write something broad as you say. You present many options to the reader. The book is not practical anymore, because you don't speak about something in particular but some general ideas. As a result, the readers can't really practice with a concrete project, and they might end up lost in an ocean of links. If I wanted to do that, I would have created another "Awesome list of Linux tools" on GitHub. 2. You write something more focused, as I did: the readers can practice, you can describe and explain everything they're doing because the focus is more narrow. You eliminate a whole class of problems as well, because you know exactly the tools they're installing and using. As a result, you enable them to understand what's happening. I went for the second solution, because I think we lack books which are really practical. I wanted the readers to be actively engaged into a project, learn by practicing, and be able to swap every tool they want afterward. Because they'll have a deeper understanding of Linux, a modal editor, a tiling window manager, and so on. It's not because I use these tools that I want to impose them to the world. I choose these tools for the book because they allow the reader to understand what's happening under the hood. Even if I was using another wm or another distro, I still would go with these tools, because it allows me to teach what I want to teach. Because they're not too difficult for beginners if you explain them right. I think people are smart, and I think they can learn way easier than most people think. To me, Ubuntu is highly opinionated. Who cares? It's not about me, it's about what the readers can learn from the experience. I'm not convinced you learn a lot by installing Ubuntu, or that you understand the benefits to work with a tiling manager, or you understand the important place of the shell in the Linux ecosystem. Thanks for the good luck :)
- geekthattweaks 6y agoLove the look of this! I'll pick this up once I have a paycheck again. Some of the tools are already in my tool-belt but looks like there is plenty to chew on.
- thanato0s 6y agoThanks for your kind words! I hope you'll like it!
- SilasX 6y agoDefinitely going to check this out! I got fascinated with mouseless interaction several years ago, even to the point that I registered tyrannyofthemouse.com: http://blog.tyrannyofthemouse.com/2012/02/ending-tyranny-of-mouse-in-web-browsing.html http://blog.tyrannyofthemouse.com/2012/02/ending-tyranny-of-... Unfortunately, I've had to give up on it for web browsing. Too many sites break the ability of my extensions to pick up clickable elements. I can probably find a long-term workaround, but I'll have to get up to speed on low-level details of what's going on. Working strictly from the keyboard -- if and when it's possible -- is one way that I can really get "in the zone" and very productive.
- loa_in_ 6y agoIn Firefox, by default, you can search for text of an element using forward slash. Then you hit escape and hit enter to activate it, or tab to navigate past it. That alone made 90% of websites practically mouseless for me
- SilasX 6y agoI just tried that, and while it does select the element, it still doesn't allow me to click on them as you suggested or any other way I could find[1]. (That is, it works in general, but only on links where my extension would be able to pick up the clickability already.) [1] Example: clicking on a currency here [2] or a time window here [3]. [2] https://www.coinbase.com/ https://www.coinbase.com/ [3] https://www.coinbase.com/price/bitcoin https://www.coinbase.com/price/bitcoin
- loa_in_ 6y agoIt seems the site is actively preventing it somehow. It might enable clicks only after onmouseenter or onmouseover events. You might want to try simulating them. It also might register onkeydown events that catch pressing enter key on them. You might want to disable those.
- loa_in_ 6y agoAdditionally some sites register click events on parents higher up in the DOM tree and then determine the child/spot under the cursor. That forces you to supply some coordinates yourself.
- hartator 6y agoI never got the hate of mouse in the dev community. Isn’t most of work browsing code and Googling things? Making a mouse a way to navigate way more efficient than a keyboard? It seems retrograde.
- blunte 6y agoFor those of us who can type very quickly, every movement of the hand away from the keyboard (to the mouse) and back has a high cost in terms of lost typing opportunity. If speed and subconscious operation are the goal, then it's best to stick to as much keyboard only as possible, or alternately to learn to maximize the one hand keyboard + mouse approach (which can actually be very fast once you know your tools).
- whatever1 6y agoFor most of us mortals, typing is not the bottleneck when we are writing code, an article or whatever. In any case, keyboard-only interfaces make the assumption that you know all of the shortcuts for each program you use. And boy they are inconsistent. They also offer zero discoverability for someone that did not read the manual (see the vim jokes). I like software that offers both good pointer UI + robust keyboard shortcuts for those who have learned the ins and outs and need to go faster.
- blunte 6y agoWe're all mortals :). Like other endeavors of growth, a good approach is to regularly make a small effort to learn a little more about something (like your tools, which includes keyboard shortcuts). As one simple example, if you have a URL somewhere and you want to quickly open it in a new window, you just use the keyboard shortcuts to copy (which hopefully everyone knows), switch to browser (alt-tab or cmd-tab or even [cmd-space fire return]), ctrl-t or cmd-t to open a new tab, paste, return). This sequence becomes so hard-wired that you can go from seeing a URL to reading it in a new tab in a couple of seconds. And since it is hard-wired, your train of thought is not interrupted with common small thoughts like, "hmm where is my mouse pointer? wiggle mouse - ahh there" But like I also suggested, with left hand on the keyboard and right hand on the mouse, and knowing a few very common shortcuts, you can be very fast at getting things done. In both cases, knowing keyboard shortcuts is... key. Lastly, there are some awesome tools like Keyboard Maestro or possibly Hammerspoon (I use the former, but have heard the latter is decent). With a bit of effort, you can make some really useful macros and do a lot. Heck, even just using Automator can do wonders. For example, it's pretty easy to make a file right click action that will resize and export an image into one suitable for web publishing. The summary of all this really is that learning your tools makes you much more effective and performant. Seems obvious, but it's easy to forget.
- gumby 6y agoAll I can say is that the medieval plague was spread by rodents. We are back in plague conditions. If ever there was a time to avoid the mouse, this is it!
- deleted 6y ago[deleted]
- jbaber 6y agoOne of the pleasures of the ratpoison window manager is that the mouse is actually referred to as the "rat" in documentation http://www.nongnu.org/ratpoison/doc/Other-Commands.html#Other-Commands http://www.nongnu.org/ratpoison/doc/Other-Commands.html#Othe...
- bslorence 6y agoah, ratpoison. I passed many a fair hour doing network-appliance dev with ratpoison + screen + vi (not even vim) back in the day.
- thanato0s 6y agoThis will be the main theme of my marketing campaign. I will print some t shirts: "Save your family! Burn the mice! Buy my book!".
- blunte 6y agoSuggestion: show a sample from your book that is relevant to the purpose of the book. What is currently available as a sample is mostly front matter, Linux fundamentals, and Arch info. (And also, was it not possible to generalize the information so readers don't have to switch to Arch to follow along?)
- thanato0s 6y agoI thought about generalizing the information, but if I do that I'll have other problems: 1. The reader would bump into many more problems because the book is less focused. It's about installing a whole system, so many things can go wrong already, and I wanted to reduce the friction by being precise. To be precise, I needed to know what tools the reader would install. 2. I use these tools because I know they can teach a lot of fundamentals. This means that, when you're done with the book, you should hopefully have enough knowledge to swap anything you want, even the Linux distro. I think you're on something about the sample. You can look at my blog though, there are many free articles (look at the "mouseless" tag) which are more general and capture maybe better the essence of the book.
- pwillia7 6y agoAwesome work! Mouseless is a deep passion of mine though I've never gone all the way like you have here. Will definitely take a look. Have you ever used emacs? I am a relatively new user and longtime vim user and curious to get your thoughts.
- thanato0s 6y agoThanks for your interest and your kind words! I tried emacs (I like to try many stuff :D) but it felt a bit too much "program which does everything". I'm a big fan of small programs which can complete each other. You know, the Unix philosophy: "Make each program do one thing well". I'm not a big fan of the keystrokes either, but maybe it's because I'm more used to Vim. Maybe I should try more seriously one day.
- pwillia7 6y agoYeah that's a good insight. It is more like its own os than a pipe in a system, though you could use it that way too. I've fallen in love with elisp and tools like org. Take a look at doom emacs and oxhugo package if you want to take a spin again. Org-roam might be something else that resonates for you.
- mraza007 6y agoReally interesting book, I love the idea of mouseless and i might get this book to challenge myself to use no mouse
- thanato0s 6y agoThanks for your kind words! You can look at the sample and the video I made for you to be sure you want to try what I'm describing in the book. In any way, I'm sure you'll learn some stuff about Linux-based systems. It's always useful I think.
- mraza007 6y agoI have been using linux for about three years and i3 for about two years and this book will help gain new knowledge. I did take a look at the sample and I’ll definitely get this book
- jamcohen 6y agoFor anyone using iterm2, copy mode (https://iterm2.com/documentation-copymode.html https://iterm2.com/documentation-copymode.html) was a big help in reducing my mouse use.
- RMPR 6y agoYou can achieve something similar in Alacritty with the vi mode[0] 0: https://github.com/alacritty/alacritty/blob/master/docs/features.md https://github.com/alacritty/alacritty/blob/master/docs/feat...
- arch-ninja 6y agoAm I a bad person for buying the book immediately after reading the title? I guessed the arch/i3 setup from reading "mouseless", and after watching the youtube video from the comments I dislike the _specific_ environment but enjoy the fundamentals that led to the environment being built because they remind me of my own journey. I don't think I'll ever read this book, but I want other people to read it. Actually scratch that, the entire world needs to know this is an _option_. This needs to be required reading in K-12 education systems. EDIT: Is there a paperback copy available?
- thanato0s 6y agoTo me you're not a bad person :D thanks a lot for buying it! Maybe you should have looked a bit at the sample and the video before though, I don't want to deceive anybody. There is no paperback copy available, because there are many commands and pieces of configuration in there, and I thought it would be easier for everybody to be able to copy and paste. That said, if there is a demand, I would be happy to look at that. Last thing: I explain everything in the book, so you don't have to stick with this system at the end, you should be able to build your own depending on your needs. You can swap any tool you want (even the Linux distro if you want), hopefully you should have enough knowledge to do that easily.
- moosebear847 6y agoYes, you should be in prison since you are a terrible person.
- mr_vile 6y agoSurprised to see no mention of Acme here. As much as I love keyboard-based tools, I must begrudgingly admit that from a scientific standpoint it is much quicker to use a pointing device because there is no recall associated with the action, you intuitively drive the device. However that said, there is appallingly little effort to actually utilise this power. Anyway, this is a roundabout way of saying that I don't think mouseless development should be celebrated. Good on him for figuring it out, but did we really need to figure that one out?
- taeric 6y agoDriving a mouse is far from effortless. Or intuitive, if seeing my family try and use them is any indication. A wacom screen is intuitive, but surprisingly hard to use. Then there are all of the rsi implications of a mouse. I use a roller mouse that I love, but older members of my family just can't figure that out.
- thom 6y agoI don’t understand this at all. No matter what happens, my hands are mostly on the keyboard. Moving to the mouse is wasteful, and just the act of aiming for it involves more recall than remembering any common key binding. Plus the mouse can only point at or navigate to things on or adjacent to the screen. If I want to navigate to a symbol not on screen or run an arbitrary command then resume typing, I don’t see how the mouse helps me go faster. What workflow are you picturing here that a scientific standpoint backs up?
- jeromenerf 6y ago> Surprised to see no mention of Acme here. Don’t be surprised; plan9’s acme is not a popular application and its mouse orientation is too radical for high flying reviewers to grasp the merits of its original workings. That said, I don’t want to use a mouseless environment, I just want the mouse to be useful and efficient when I use it.
- thanato0s 6y agoIt's intuitive because you're used to it. I thought the same, till I tried different ways. I think it's just that: exploring new possibilities. I'm happy I tried mouse-driven and keyboard-driven workflow, because I could choose what I like the most. I didn't know about Acme. Thanks for that!
- PhillyG 6y agoIf I was going to go mouseless, it would be to just use a touch screen. But then I'm much more keen on front end stuff. It would have to find a way to decrease the amount of inputted text right down though.
- xbar 6y agoGlory to the Holy Shell!
- xupybd 6y agoI attempted this. I didn't really find it more productive. It only really managed to annoy my boss at the time.
- thanato0s 6y agoYour boss lacks patience. I think it depends how you try it. You need to go step by step, not swapping your whole system from one day to another. That's why trying these tools on a virtual machine for example can be nice. You don't have to use them, but you can come back to them when you feel like to. Or use them only for modifying config files and not your whole codebase, for example.
- Leimi 6y agoIt's not that it's such a boost in productivity, more a boost in comfort. You stop switching from mouse to keyboard all the time.
- diehunde 6y agoNice! Does the book provide instructions on how to install and configure Arch from scratch?
- dharmab 6y agoSuch books tend to become outdated very quickly. See the Arch Wiki installation guide for up to date information.
- thanato0s 6y agoI'm using Arch Linux for 6 years and I've my own install scripts I describe in the book. I didn't have to change them very often. Even if I love the Arch Wiki, the problem is: it's not tailored for beginners. Now, you could say that Arch Linux is NOT for beginners, but I think everybody should make their own mind. I think people are smart, even if they're beginners. But you're right, sometimes the install change; that's why every update of the book will be free. I'll try to keep up with Arch Linux last updates.
- diehunde 6y agoAgreed. But the thing is: What’s a beginner ? I’m a software engineer, been using Linux ( Ubuntu, Fedora) for almost 10 years and when I tried installing arch following the docs I still ran into issues I couldn’t solve or instructions I wasn’t sure about.
- thanato0s 6y agoYes. I tried to explain every single command as much as I could. The reference is still Arch Wiki though, and it's very good, but I find it difficult to follow if you never installed it before...
- blackrock 6y agoLife is too short to program in 80 characters wide.
- j1elo 6y agoI've been meaning to finally upgrade from my ancient but perfectly functional Linux Mint 18.3 (based on Ubuntu 16.04) to Regolith Linux, with the intention of getting into an i3 environment. Any thoughts or comments about Regolith? EDIT to mention that for people interested in getting into tiling window managers (such as i3), the Pop_OS distro also comes with its own, optional tiling wm that can be switched on/off, which might be a nicer and more approachable middleground for newcomers
- haxel 6y agoNot OP, but I swapped over to Regolith a couple of months ago on my laptop and now it's on my main workstation too. Coming from Ubunutu MATE on both. Very happy with it. It's my first time using i3 or any tiling WM for that matter. Took about a day to get used to the basics (sane defaults), and that's mostly all I've needed so far. My one attempt to use the dedicated installer didn't work properly so instead I installed Ubuntu and then Regolith from PPA.
- j1elo 6y agoSane defaults is key. I've seen lots of comments about how nice i3 is, but also about how it's a rabbit hole of small config changes until you reach some nice settings. I like to adapt myself to default settings instead of the other way around, because that allows me to seamlessly move between workstations. So a carefully selected choice of default settings is a very nice thing to have.
- blackoil 6y agoIs it possible to disable mouse input in VSCode / Idea? A neat plugin would replace all click actions to show corresponding shortcut keys.
- dininski 6y agoFor both there are shortcuts already available for a "command" input. For example in IntelliJ it's called "Actions" - you can use it to look up basically any command/functionality from there. I've been using Idea essentially without a mouse for a few years now. It takes a little bit of time to get used to all the shortcuts, but it definitely pays of in the long run.
- 4dahalibut 6y agoI'd pay for a guide to setting up pycharm mouseless :)
- bobrenjc93 6y agoI'm so glad you wrote this book. The benefits seems small - 3 seconds here, 6 seconds there, etc. but compounded over decades, it makes a huge difference.
- thanato0s 6y agoYou're welcome! I hope you'll like it! If you have any question, feedback, or problem, don't hesitate to reach out. My address email is on the page where I sell the book. Always happy to help!
- lanius 6y agoDoes going mouseless reduce risk of RSI?
- dharmab 6y agoDepends on your keyboard, mouse and overall desk setup. Myself and a coworker use Ergodox keyboards to combat arthritis and carpal tunnel, but if you're using a standard keyboard and terrible posture it might be worse.
- thanato0s 6y agoThat's interesting. My setup is pretty standard, but with the millions I'll do with the book (ahah) I think I'll try an ergonomic keyboard. I put Ergodox in the "stuff I need to check". If you have any other recommendation, please don't hesitate to share :)
- dharmab 6y agoBefore you get an ergodox, make sure your desk height, chair position, monitor height, etc. are as good as you can make them. I've resorted to using stacks of books when necessary :)
- thanato0s 6y agoThanks for the advice! I've a nice standing desk (best investment EVER) and an arm with my monitor, so I think it should be fine :)
- 0x008 6y agoThis is peak hacker news. Writing a book about your DE.
- garren 6y agoJust picked up a copy. I’ve been using regolith on Ubuntu for about a year and love it. I like the idea of being able to put together a similar environment, while not needing to get neck deep in figuring out configuration and gory details. Your book basically covers all of that, and checks another box I’ve been interested in (arch). Sweet spot, thanks for the book!
- thanato0s 6y agoThanks for picking it! I hope you'll like it. If you have any question, feedback, or problem, don't hesitate to reach out. I'm always happy to help and I'll try to answer as fast as I can. My address email is on the page where I sell the book.
- iamgopal 6y agoMassive popularity of Indian accounting software tally is because of mouse-less handling of the whole interface. Mouse uses three organs while keyboard uses only one.
- jeofken 6y agoMouse requires coordination between hand and eye to do action, but what is the third organ, that a keyboard does not require?
- bauble 6y agoMy guess would be the arm, which has to move when moving the mouse pointer.
- raghava 6y agoMany of the older core banking systems were keyboard only, because it made the tellers work a lot faster. I know because I had been on some of those unfortunate teams that transitioned to GUI that required to use the mouse and the teller's productivity decreased terribly - something that took 30 seconds ended up taking almost 4 minutes, and seeing this, the banks refused to transition to the "new and advanced" versions, until the old charmode UI was slapped on it again.
- richardpetersen 6y agoHow are you meant to use Stack Overflow?
- dharmab 6y agoI use a vim keybindings extension [1]. It allows mouseless browsing of most of the good parts of the web. Notably, it adds a keybind that labels every hyperlink and interactive page element with a sequence of characters you can type to open the link. [1] https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en https://chrome.google.com/webstore/detail/vimium/dbepggeogba...
- ttt0 6y agoI can bet there are command line tools that allow you to browse SO from the terminal.
- thanato0s 6y agoI know it might sound surprising but I don't use that much Stack Overflow anymore :D I'm using the shell for many things, and the documentation is so good I don't need to go on Stack Overflow. For problems I have in programming languages, either way I look at the implementation of some unknown stuff (class, function, and so on), or I go on the official doc. Other than that, there are many solutions for browsing without the mouse (but they're not working for every website). You should look at qutebrowser, or some browser extension like Vimium or Pterodactyl. I speak about it quickly in the book.
- redcat7 6y agoi dont like typing. it is a waste of time and very slow and error prone method at least in my case. i have too big fingers and i make too much spelling errors(not related to fingers). i developed my own style copy/paste/search/replace method. simply i just copy paste tons of code(you cant type so fast) and replace names. removing redundand code is faster then typing new one :) you are not bored typing for the milionth time a for loop? :) dev environments suck with mouse, because people talk things like that(that mouse sucks and that you have to keep your hands on keyboard) and by that no one is spending time on developing dev environments for the mouse. and they are really flawed in this matter. vim and emacs suck at using mouse so please dont say mouse sucks. those editor suck at that. for years i was looking for tools good for my style of work until i figured out that no one makes them and my coding style is completly different from the one for which the tools are made for(i think people sit and type in the code as they go). you can find in many places that to be a dev you have to write code. that to be cool dev you have to type and use vim and there is no other way. which is bullshit. you want to make software faster? you have to operate on big chunks of code and not a single lines. the snippets suck also - you have to know them and interface is often clumsy by default. most of the things you have to remember(i think that makes being a dev hard). why we dont have starcraft like interface to dev?
- enriquto 6y agoupvoted because your experience is so diametrically opposed to mine that I find your message very interesting. One comment, though; when you say > you are not bored typing for the milionth time a for loop? I don't really follow you. Do you ever use a bicycle? You are not bored pushing for the millionth time the left pedal?
- redcat7 6y agoYou could have already asked me if breathing makes me bored. when i go ona a bike trip, i dont like wasting time on going through the neighborhood i know. so i take the train and go up to the more interesting part of the trip and have fun. do you know this trick?
- redcat7 6y ago
- tkainrad 6y agoSounds great, and thanks for the generous sample! I think a lot about mouseless computer interaction myself as I am making KeyCombiner[1], which is an application to organize, learn, and practice keyboard shortcuts. Among many other things, it can map collections of keyboard shortcuts onto a virtual keyboard. This helps immensely when looking for free combinations or conflicts, which is often the case with VSCode and Neovim. You can have a look at the public VSCode collection[2] to see the visualizer in action. KeyCombiner's concept of building your own shortcut collections could be very handy for your proposal to create your own cheat sheets. With KeyCombiner Desktop[3], you can instantly look up these cheat sheets. In addition to your own collections (cheat sheets), the instant lookup always shows the default keyboard shortcuts of the active application. [1] https://keycombiner.com https://keycombiner.com [2] https://keycombiner.com/collections/vscode/ https://keycombiner.com/collections/vscode/ [3] https://keycombiner.com/desktop/ https://keycombiner.com/desktop/
- foreigner 6y agoQuick practical tip: "turtle your mouse". We all know we should probably learn more keyboard shortcuts to be more efficient, but it's hard to have the discipline to practice them when we're busy and the mouse is so easily accessible. My hack for this is to "turtle" my mouse: flip it upside down so it looks like a turtle on its back. This introduces a tiny bit more effort to using the mouse - you have to flip it over first. I find adding that little bit of resistance makes me much more likely to learn keyboard shortcuts, which in turn make me more efficient overall.
- Cloudef 6y agoEvery time i have to use mouse heavy interface I just lose the motivation. It feels like in GUIs you just spend most time searching things, while with cli and plain text files you can easily search existing examples and documentation for reference while typing whatever you want to accomplish. Recently I had to work with Unity and it reminded me how I loathe monolith integrated workflows.
- Grustaf 6y agoI don't know about you, but when I'm programming I probably spend 95% of the time thinking, so making navigation faster won't affect my overall efficiency much. Come to think of it, I'm also thinking while typing and navigating so I'm not sure this would save any time at all. It might _feel_ faster though, which might increase the well-being of some developers.
- haspok 6y ago^^^ this If you are constrained by the speed of your typing while "programming", you are not really a programmer, you are just a secretary with a typewriter.
- thanato0s 6y agoI didn't write this book for everybody to type crazy fast, I wrote this book for people to try to stay on their keyboard. You're switching a lot between documentation, your browser, your shell, your IDE, your debugger, and all your tools when you're coding. What I'm describing in the book can really help you not always moving your hand between the mouse and the keyboard. You think it's not a problem? Well, you should still try to see if you're right. It won't cost you anything: I've many free articles on my blog, linking to other interesting resources too, so be my guest :) I'm sure you'll learn some stuff.
- Uberphallus 6y agoThe "95% thinking" trope is fake or I'm really weird, because half of the time I'm navigating/comparing/reading code/docs/tests which would usually involve switching to mouse and looking through taskbars to find the particular piece I want. Sure, actual writing is 5%, but the 95% remaining isn't just thinking, so it also benefits from muscle-memory switching to docs/test/code panes. My dev env is mouseless (I use Vim and AwesomeWM instead, though) except for everything corporate (Gitlab, notably) and it always feels like a drag and slow AF. Only now I added vim-mr-interface and even with its shortcomings it's like night and day.
- miguelrochefort 6y agoI don't know about you, but for me thinking is almost impossible without writing, drawing, or interacting with some external medium. I can't just sit still and think deep thoughts. This only works for very shallow thoughts. I used to think this was a property of my aphantasia. However, in recent years, I've heard a lot of people claim that writing is thinking. In fact, most writing out there is an artifact of thought, and not designed to be read by others. Few people recognize that distinction, and that's why good writing is so rare.
- hiq 6y agoNobody has mentioned keynav[0] yet. "It lets you move the pointer quickly to most points on the screen with only a few key strokes." With some software or web pages you're better off with this kind of workaround than installing browser plugins or configuring the software, especially if you use them infrequently. Another tip: use ' in firefox to search for links when the focus is not in a text area. For instance, typing |'comment| (without the pipes) here selects a link containing "comment", and you can circle through other matches with F3 / Shift-F3 just like regular searches. [0]: https://www.semicomplete.com/projects/keynav/ https://www.semicomplete.com/projects/keynav/
- AnthonBerg 6y agoBravo! To name other tools that can support an environment like this and speak to me personally more than the ones in the article, there are: - NixOS / GuixSD (declarative OSes; may save typing and mousing :) ) - fish (shell. Very nimble and comfortable!) - xmonad (x11 autotiling window manager) - Amethyst (macOS autotiling window manager) - macOS keyboard shortcut definitions (these are surprisingly deep) - iTerm2 (macOS terminal emulator; Has nice tmux integration) - Quicksilver (macOS launcher utility. Very configurable and has quite powerful keyboard shortcut definitions) - spacemacs (Vim-on-Emacs) - Jetbrains IntelliJ-based IDEs are very keyboard-friendly
- anthk 6y ago- fbterm - tmux - urview - nvi - lynx/felinks - nail - irssi + bitlbee - fbi - fbpdf2 - mpv - rclone/cadaver Perfectly doable.
- easytiger 6y agoI went mouseless for a few months once. On a Solaris native desktop of all things. Only thing I noticed was a practically never did much idle web browsing. But back then web pages were much easier to navigate by keyboard.
- michaelcampbell 6y agoIs there any experience equivalent to i3 or other pure tiling manager on Mac OS?
- bananaowl 6y agoI switched to this kind of mouseless setup a couple of years ago and haven't looked back. It takes some time getting into, but the rewards were worth it for me. I'm now relying on muscle memory for navigation, and my mouse arm inflammation is gone!
- z5h 6y agoHelp me understand. I’ve always felt the limiting factor for me was the speed of thought, not typing or other text manipulation. My IDEs (Jetbrains stuff) with their defaults makes it so I spend more time thinking than typing. Often times my best work occurs in the shower, or on a walk and has nothing to do with keyboards or mice. On occasion, I need to do something highly repetitive in which case I’ll do something on the command line (with sed, awk, and peers) or I’ll open the file in vim, record a macro and apply it appropriately. Am I missing something? Am I a weirdo or a dummy in that I’m not itching to type faster and interact more efficiently?
- thanato0s 6y agoI'm not itching to type faster either, so we might be both weirdo :D I'm using these tools to stop switching between my mouse and my keyboard all the time. It might not bothering you, and it wasn't bothering me either before I tried to spend most of my time on the keyboard. After that, like many things in development, it's a question of preferences; but you can try and see for yourself. You don't have to buy the book for that: I've many articles about mouseless tools on my blog for free for example, and there are even more on Internet :)
- fizixer 6y agoYou don't touch type I assume? Touch typing is not only about typing faster. It gives you this other ability of "running your control panel" out of the home keys only (four fings on each hand resting on a,s,d,f and j,k,l,;). When you have to lift one of the hands off the home keys and move it to the mouse to do anything, and I mean anything, it's super annoying and frustrating. Those who never learned to touch type are not likely to grok the appeal of mouseless work.
- z5h 6y ago"Those who never learned to touch type are not likely to grok the appeal of mouseless work." I think this is the problem. If it can't be explained, it makes me doubt there are objective improvements.
- 6y ago
- webgoat 6y agoI've been finding zsh to feel extremely bloated lately and killing my workflow. Mainly because I use oh-my-zsh with several additional plugins, and also because I use guake with at least 10 terminal tabs open at any time. Zsh has some strange refresh issue when SIGWINCH is called to switch back to the guake window that results in more cpu usage when switching back in the longer zsh is open for. Has anyone experienced something similar?
- thanato0s 6y agoYep, I did. That's why I don't any "Zsh framework" anymore, like oh-my-zsh or prezto. In the book I don't advise to install any framework either.
- qwerty456127 6y agoI want mouseless everything. Unfortunately mouseless browsing isn't easy and mouseless usage of the rest of the apps is next to impossible because of inconsistent hotkeys (except on Mac perhaps).
- galoisscobi 6y agoI have had some luck with vim browser extensions like Tridactyl (Firefox extension), you could give that a shot if you haven't tried it. There are also similar extensions for Safari and Chrome but my best experience with mouseless browsing has been with Firefox+Tridactyl.
- utxaa 6y ago?? but the mouse is so useful!