20 ms·
Show HN: I automated half of my typing
I've been using this for about a year now - I parsed 6 months of my messages on slack and found the most common phrases I use and generated keyboard shortcuts for them.
- michaelhoffman 3y agoThis is super cool. I use Emacs `abbrev-mode` for taking contemporaneous notes but autosuggesting words would be great.
- queuebert 3y agoHot take: If you so frequently say the same things in Slack, do your subordinates think you actually add any value?
- sinuhe69 3y agoIs voice-typing not much faster?
- gcr 3y agoIf you like this, you’ll also like Plover, an IME (input method) that translates chorded keystrokes to text. It can use certain gaming keyboards but people also sell custom hardware. Court reporters frequently use special-purpose chorded keyboards to quickly prepare court transcripts. https://www.openstenoproject.org/plover/ https://www.openstenoproject.org/plover/
- eternityforest 3y agoThis would be especially amazing on mobile. I was not expecting to see an improvement to typing anytime soon, but I think I might actually be more productive with this. Now I'm imagining building a keyboard that has it built in, with a little OLED right on the keyboard, and when you press space it types out the closest match to what's in the buffer, and you don't have to take your eyes away from the board to see what the autocorrect is doing.
- HeavyStorm 3y agoVery interesting! I used to create some abbreviations in Office which saved me a lot of typing, but usually only for very simple words that I typed very frequently. Never occurred me that I could do sit for a few more words and even phrases. But I'm wondering if I would be able to learn all these shortcuts. There would be a lot of time invested, and I don't know how stable a solution this is - ie will I be able to use it everyday for the next five years? I'm betting on the capabilities of LLMs right now - I think they can predict a lot of my typing and save me enough time and, if msft is smart, they will soon enough be present everywhere.
- VectorLock 3y agoCombine this with a chording keyboard for ultimate high speed operator status.
- eschluntz 3y agoI also wrote a blog post with video about the project: https://erikschluntz.com/software/2023/08/26/compressing-my-typing.html https://erikschluntz.com/software/2023/08/26/compressing-my-... This has been one of the rare side projects that has actually saved me more time than I've put in :)
- tsaiDavid 3y agoDamn, this is interesting - instantly reminded me of courtroom stenography in a way
- eschluntz 3y agoAlso the most surprising part of doing this was seeing that abbreviating super short words like "the" -> "t" actually saves far more characters overall than abbreviating long words and phrases that are less common, like "what do you think" -> "wdytk".
- aaron695 3y ago[dead]
- GuB-42 3y agoIt would be interesting to see how much time you save. I guess average typists will type "the" much faster than a complex word. Through muscle memory. I think it will be less noticeable for fast typists, who get their speed by being consistently fast.
- eschluntz 3y agoI thought a bit about this... I feel like for me most of my slowdown comes from needing to get timing correct between my right and left hand. When I go too fast I start to get the letters in the wrong order, which isn't as much of a risk for letters all coming from the same hand (for me at least shrug) I might go look for some research on typing times for different kinds of words beyond letter count!
- LanternLight83 3y agoI think you'd dig Ikcelaks Magic Sturdy layout, which has a dedicated Adaptive Key (ie. morphing based on your last keypress, while fitting in with the overall layout by keeping finger usage and comfortable motions in mind). I mention it here because it expands to "the" if your last "letter" was space. https://github.com/Ikcelaks/keyboard_layouts/blob/main/magic_sturdy/magic_sturdy.md https://github.com/Ikcelaks/keyboard_layouts/blob/main/magic...
- dapookster 3y agoVery cool!
- ReD_CoDE 3y agoCool, thinking how can use it in programming, or other conditions?
- deleted 3y ago[deleted]
- wingerlang 3y agoText expanders are good for this. You can have it as basic as "ty > thank you" up to templates which will ask for input, optional sections in templates, templates in templates, running scripts, and so on. Very useful in eg. customer service when you want to reply to someone with links and whatnot. Giving instructions, etc. For programming you can build up a library of common things, think ";;p -> print("\($place_cursor_here)"). Or whole classes, anything you can think of, really.
- mtlynch 3y agoThis is neat! I've thought about doing something similar with my shell history to help me figure out which shell aliases I should create.
- KomoD 3y ago> I've thought about doing something similar with my shell history to help me figure out which shell aliases I should create. Same here, I end up doing `h | grep "(something about the command)` a lot to get commands with specific options, etc. and think "damn i should really make an alias for this" every single time, but never get around to it
- yorwba 3y agoHow about fzf? https://github.com/junegunn/fzf https://github.com/junegunn/fzf
- jll29 3y agoThere's also Flexpansion for Android (no training required): https://flexpansion.com/wp/ https://flexpansion.com/wp/
- ellieh 3y agoYou might like Atuin*! It fuzzy searches your shell history + optionally syncs it between machines https://github.com/atuinsh/atuin https://github.com/atuinsh/atuin *: shameless plug, I’m one of the maintainers
- KomoD 3y agoYeah wow, I do like that, I'll definitely use it a lot, the full-screen thing on "up" keeps taking me by surprise though Ps. one of the links in the docs is dead, "see the supported shells" on the page https://atuin.sh/docs/commands/shell-completions https://atuin.sh/docs/commands/shell-completions
- 3y ago
- 1729__iykyk 3y ago[flagged]
- 1729__iykyk 3y ago[flagged]
- KomoD 3y agoPretty cool and very useful, as long as you can remember all of the shortcuts (I guess it comes with time!) It kind of reminds me of stenography in a way
- KomoD 3y agoHave you checked how much faster this makes your typing? I can imagine it speeds it up quite a bit
- hello456 3y ago[flagged]
- KomoD 3y agoThis account is just cloning comments...
- Xenoamorphous 3y agoThis is cool but I see so many posts in HN about “hacks” that increase productivity/save time that it makes me anxious. I don’t know if it’s our field or just life these days but I would really love a more relaxed approach to work (or life in general?). It feels like I’m in a race and struggling to keep up with the pack.
- rpmisms 3y agoIt's not healthy to always be running around like a headless chicken. I want well-paced work to become normal.
- nonameiguess 3y agoHopefully, this is most often just an excuse for someone with the hacker spirit to figure out how to automate something because it's fun. If you're really spending that much time replying to Slack and e-mail that making yourself an arbitrarily fast typist puts a meaningful dent in what would otherwise be work blockages, I think there are organizational problems there that you can't solve by being a faster typist.
- deleted 3y ago[deleted]
- gamerDude 3y agoI have found that I am spending more and more time thinking about my solution before implementing. Life is definitely more enjoyable and probably about equally as productive. You just have to carve out that time. Go for a walk and take intentional breaks from the keyboard.
- eviks 3y agoYou can relax more by spending less time doing tedious repetitive work like typing
- JohnFen 3y agoI did this sort of thing quite a lot early in my career, but stopped quite a long time ago. The problem is that I started using multiple machines running different OSes, and not all of those machines are "mine", so I couldn't have these sorts of specializations everywhere. That turned a positive into a negative when using machines that didn't have these optimizations.
- absoluteunit1 3y agoI haven’t done what you or the author have, but one workaround this is using something like QMK or ZMK. Especially the Leader key on QMK. Thanks for the post though, I need to do some analysis of my own typing habits to automate them
- davidtos 3y agoThis is exactly what i do. Pressing the leader key and another key to let it type sentences and boiler plate code. Creating a layer for this sort of typing would also be really cool and not having to use that leader key the entire time.
- JohnFen 3y agoInterestingly enough, I have a macro keyboard I built myself that I use at home. It never occurred to me to use it professionally until you brought it up. Hmmm. Thank you!
- deleted 3y ago[deleted]
- lainga 3y agoFor a similar reason, I did my best to get comfortable with default vim rather than purtying it up with a long .vimrc.
- h1fra 3y agoNeat! Reminds me of stenography keyboards
- tikkun 3y agoIdea for extending this: keylogger (yeah, that's a downside...) that'll watch what you type, learn common phrases, identify common ones, then come up with shortcuts, then each time you type the full phrase it gently reminds you of the shortcut. Then anyone can install it, no friction, and over time it'll slowly start making you gently more productive.
- quadrature 3y agoIts not a keylogger in itself, its a tool to configure your keylogger.
- MobiusHorizons 3y agoI guess you are half right, the tool this repo configures is a shortcut engine (autokey). It has access to the key presses, but afaik does not log them.
- quadrature 3y agoof course, I was just using the same terminology as the OP
- langsoul-com 3y agoI wonder how that's work? Something like auto export slack history each week, get a word frequency. Then mantually assign a bunch of expansions based on what you see?
- tikkun 3y agoI'm imagining it would be a native desktop app, so that it goes across all apps.
- kzrdude 3y agoWould it be better to have some standardized abbreviation? It could gravitate towards those. That should help consistency between different computers (also helps if you have multiple computers..)
- felipesabino 3y agothis reminded me of speed writing [1] [1] https://www.reddit.com/r/Classic_Speedwriting/wiki/list108/ https://www.reddit.com/r/Classic_Speedwriting/wiki/list108/
- jawns 3y agoIf you're going to use models, why not models all the way through? In other words, rather than using them merely to identify words to abbreviate and suggested abbreviations, why not use an LLM that can take a bunch of abbreviated text and infer what you're trying to abbreviate? Tht wy, u dn't hv 2 mem lsts f abbrs ahd f tm. ChatGPT was able to successfully guess that last sentence in abbreviated form: That way, you don't have to memorize lists of abbreviations ahead of time.
- deleted 3y ago[deleted]
- xmprt 3y agoChatGPT is much slower and much more expensive. You don't have to use LLMs for everything.
- input_sh 3y agoAh yes, I'd love to wait about five seconds every time I type some text for ChatGPT to return some output, worrying about boilerplate text around the actual answer, and to introduce unpredictability into the mix.
- tshaddox 3y agoI'd probably try using ChatGPT to suggest the specific abbreviations for the most common phrases.
- zogrodea 3y ago"That way, you don't have to remember lists of abbreviations" and... I can't seem to guess the last few words. Would you mine typing it out in full? Edit: Oh, "That way, you don't have to remember lists of abbreviations ahead of time". ChatGPT must be something impressive if it can beat me at some linguistic games.
- maest 3y ago"ahead of time"
- jaxrtech 3y agoI wish there was a way to just repurpose existing operating system support for CJK language IME for English.
- crazygringo 3y agoCould you elaborate? I'm aware of CJK input methods, but it's not immediately clear how/why you could repurpose them for English. Not to mention there are several types.
- anon____ 3y agoUsing a standard input method editor (IME) was my first thought, too. You can create a custom user dictionary in any IME, mapping the abbreviations to one or more full words or phrases, either in bulk beforehand, or one by one while you use the system. During typing, pressing the space bar brings up a list with the substitutes corresponding to the preceding string. You can select with the up/down arrows and insert by pressing space again. In practice, most of the time you can convert by pressing space twice in quick succession, because either you have a single candidate, or because the default selection, the top candidate is automatically set to your last, or most frequent selection. If there's no match, you can add a new abbreviation to your dictionary. You can turn on/off the system by pressing CTRL-space, or some other key combo.
- dotancohen 3y agoHaving to scroll through a list with the arrow keys sounds slower and more flow-breaking than just typing the word.
- anon____ 3y agoThat's only necessary when you have more than one word abbreviated the same (e.g. "db" could be either "debug" or "database"). Someone here commented that this is a missing feature in OP's solution.
- crazygringo 3y agoThis is a very clever idea. However, I realize that I would never want to use something like this that would change over time. E.g. if I ran it every 6 months and last year "db" produced "debug", while this year it produces "database". Because talk about messing up my muscle memory and habits. And the language I write changes very much over time. So I'd actually be much more interested in a "universal" version of this -- if you ran it across books and e-mails and text messages from thousands of authors covering diverse backgrounds and contexts, then what would most reliably help everyone? E.g. expanding "t" to "the" seems like a no-brainer, just like "st" to "something". Is there a minimal set of, say, 200-500 of these that could simply be turned into a "standard keyboard" that everyone could learn?
- leobabauta 3y agoI think the phrase "changes over time" should be one of your shortcuts.
- calvinmorrison 3y agoCongrats you just invented shorthand!
- IanCal 3y agoYou could make it append only by default. Only ever add new shortcuts - if db was debug for you before then database would have to take on a new shortcut (e.g. dtb)
- munificent 3y agoThat would lead to pointless verbosity over time because the older shortcuts would squat on useful shorter shortcuts for words that are no longer used. It would lead to the "horseless carriage" effect for shortcuts.
- IanCal 3y agoJust delete things manually.
- 3y ago
- zerojames 3y agoI _love_ to see projects like this. I was working on a similar problem this weekend, but with whole words instead of abbreviations I had made in a dictionary, and in the general case, fine-tuned on any given corpus of text. I wanted to know: could I write an autocorrect that is "fine-tuned" on a given corpus of text? Use case: I write a lot of docs with long phrases (i.e. "data augmentation"). Could I automate them? I arrived at: 1. Calculate "surprisal" of unigrams and bigrams (entropy) from a general dataset (an NYT corpus), give a boost to words in the "fine-tuned" index; 2. Create a trie data structure that is weighed by surprisals. The more surprising a word, the more weight it gets. 3. Use that as advanced autocomplete. I got a working solution here: https://github.com/capjamesg/autowrite/blob/main/autocomplete.py https://github.com/capjamesg/autowrite/blob/main/autocomplet... (No docs yet -- coming in the next few days. Leave a GitHub Issue if you want to chat about it!)
- itake 3y agoThis sounds very similar to: https://github.com/wolfgarbe/SymSpell https://github.com/wolfgarbe/SymSpell Or maybe I am confused what you're saying. Are you trying to find more creative ways of saying the same phrase?
- zerojames 3y agoI definitely need to write more docs on this project! I will share them when I'm done. It looks like SymSpell is doing spelling correction, which is part of what my code does. The "surprisal" (information theory: Shannon information) component is doing statistical next word prediction. For example, given a corpus of data in which "data augmentation" is a common phrase, "da" could complete to "data augmentation". "data augmentation" starts with "da", and would be determined as a likely candidate for the next word because it was common in the dataset on which the statistical model was "fine-tuned". This Wikipedia page covers the concept in more depth: https://en.wikipedia.org/wiki/Information_content https://en.wikipedia.org/wiki/Information_content
- zerojames 3y agoBy the way, this project is _awesome_! My programming language [1] does OCR correction via heuristics (possible because there is a restricted grammar) but this project looks like it could help _a lot_ with improving the accuracy of the OCR output. Thank you! [1] https://visionscript.dev/paper/ https://visionscript.dev/paper/
- MobiusHorizons 3y agoI feel like typing is never really the bottleneck for me except maybe in some chat interactions would have benefited from the extra bandwidth of video or audio. Do you actually save time on task with these kinds of shortcuts?
- eschluntz 3y agoMy main motivation was very fast slack conversations (Can you post a screenshot?) and a bunch of email responses that are pretty formulaic (sending my calendly link, etc). For longer writing I'm often frustrated that I can think faster than I can type, so it does help with that too!
- MobiusHorizons 3y agoVery interesting. It sounds like you do a lot more repetitive communication than I do. Thanks for explaining.
- passion__desire 3y agoFor longer writing, why not write anchor words on the scratch notes and then flesh out details? Or do you think, that in the flow of ideas, all sentence details need to be jotted down too? Because you feel they come out perfect the first time?
- eschluntz 3y agoI certainly write outlines first, but when I do sit down to write a full draft I really like to get to something that's "complete" even if it's really bad. Then I can switch into "editing" mode mentally.
- passion__desire 3y agoSome people write in a "white-heat" fashion. [0] "The Last Question" ranks with "Nightfall" (1941) as one of Asimov's best-known and most acclaimed short stories. He wrote in 1973:[3] Why is it my favorite? For one thing I got the idea all at once and didn't have to fiddle with it; and I wrote it in white-heat and scarcely had to change a word. This sort of thing endears any story to any writer. Then, too, it has had the strangest effect on my readers. Frequently someone writes to ask me if I can give them the name of a story, which they think I may have written, and tell them where to find it. They don't remember the title but when they describe the story it is invariably 'The Last Question'. This has reached the point where I recently received a long-distance phone call from a desperate man who began, "Dr. Asimov, there's a story I think you wrote, whose title I can't remember—" at which point I interrupted to tell him it was 'The Last Question' and when I described the plot it proved to be indeed the story he was after. I left him convinced I could read minds at a distance of a thousand miles. [0] https://en.wikipedia.org/wiki/The_Last_Question https://en.wikipedia.org/wiki/The_Last_Question
- manx 3y agoVery interesting. I once recorded all my vim keypresses to do something similar for vim, but never actually did anything with the data. Seems like it should be easily doable with this project now.
- satyajitrai 3y agoVim has a feature called "abbreviations" that can be used to expand abbreviations as well as correct common typos. Here's an article about it - https://www.redhat.com/sysadmin/vim-abbreviations https://www.redhat.com/sysadmin/vim-abbreviations
- habitue 3y agoThis seems like a really good way to make it so you have a hard time typing on anyone's computer but your own.
- queuebert 3y agoAll of us Dvorak users quietly shed a tear.
- albert_e 3y agoI use a trackball and find it makes me more productive and causes less strain Most other people use a normal mouse Since I also have a lot of muscle memory using normal mice, I am able to quickly adjust to working on a new PC Others struggle when they have to take over my PC and show me something by navigating with my trackball I am guessing this might be similar -- since OP does have years or muscle memory with normal keyboards anyway to back them up
- VectorLock 3y agoIts fun watching mouse users try to use a trackball. I don't like pair programming but when people ask me to I say sure just so I can see them flail with a trackball and Kinesis keyboard.
- deafpolygon 3y agoI wish decent trackballs were more common. At this point, a good one would run me 100+ euros where I am. I use a 50 euro Razer Naga X mice at the moment which is nice (with the extra buttons).
- sodapopcan 3y agoIf that's something you do then obviously this isn't for you. I personally haven't typed on someone else's computer in at least 13 years. Since whenever I got my first laptop.
- wizofaus 3y agoYou've never had to help someone do something on their own computer that required typing something in?
- svennidal 3y agoI use the native feature for this in macOS and iOS a lot!
- golem14 3y agoThat feature is a bit of a joke though, isn't it? It seems to only work for apps that have specific integration with it. Specifically, * not in terminal * not in Chrome URL bar (but yes in text areas) * not in emacs * not in vim I'd like a native version very much, but only when it works in most places. As it is now, I'd have to configure many things individually, which is a bit of a maintenance nightmare. I guess a viable answer would be to use an external keyboard with a firmware under your control. All DIY mechanical keyboards and lots of commercial ones fall under that category. But that won't work for laptops on the go...
- IntToDouble 3y agoSelf plug but high relevancy - measuring keystrokes-per-second to convert the characters saved into actual $TIME. Calculation for "the" from the screenshot in the repo: 9933 characters saved / 8 kps = ~20 minutes https://www.inttodouble.com/explore/keystrokes-per-second https://www.inttodouble.com/explore/keystrokes-per-second
- mikysco 3y agohttps://kapeli.com/dash https://kapeli.com/dash Somewhat similar tool to Autokey for MacOS that I use as a text expander. Allows for great customization - appending ; to a phrase ensures you don't accidentally expand a keystroke into a phrase/URL/etc ";url" expands into "whatever string you configure"
- codedokode 3y agoI use similar abbreviations in code editor, for example: r0 -> return false rn -> return null t -> this puf -> public function You can easily find the opportunities for saving typing by analyzing existing code and most used words there.
- heyjamesknight 3y agoPossibly a dumb question but: why not rf for the first one?
- lights0123 3y agor and f are usually pressed with the left index finger, which would have to move between keypresses. With r0, your right hand could align to press the 0 while the r is being pressed, saving time.
- hatthew 3y agoSolution: press both keys with a single "rolling" motion of one finger. I don't do that very often while typing, but when playing some games I'll hold down shift with the tip of my pinky and tap ctrl at the same time by flexing the middle of my pinky downwards.
- jayshua 3y agoI use a similar technique for typing all the symbols. If I press f I get f, r gives me r, but if I press f and r at the same time with my left index finger positioned between the two keys I get $. w and s are {, e and d are }. All the other symbols, parens, etc. are mapped to similar one-finger-two-key shortcuts. Significantly cut down on finger stretching which used to cause me mild pain.
- codedokode 3y agoBecause `return true` is `r1`, so it only makes sense to use `r0` for `false`. Regarding `rt`, it is used for `return this`.
- Nowado 3y agoI was thinking about similar solution (actually, textblaze funded by YC is pretty much that) but I didn't like remembering the shortcuts part. So I made a different kind of indexing for it: https://discu.space/ https://discu.space/ Presentation uses 'what are you answering to' as a key, but you can use anything. It currently exists as (hopefully working for everyone, could use more testing) Chrome extension, but there's a universal API underneath. It could be run entirely locally if one was to give up portability.
- deleted 3y ago[deleted]
- majkinetor 3y agoOn Windows, better fit is Autohotkey and its hotstrings for people wanting to use this. It's much better for that as it supports full programming language so you could use function results and similar to produce abbreviations. https://www.autohotkey.com/docs/v1/Hotstrings.htm https://www.autohotkey.com/docs/v1/Hotstrings.htm
- deleted 3y ago[deleted]
- eschluntz 3y agoI have a windows computer as well (mainly for EE tools and gaming) and have been thinking about extending this to also generate configs for AutoHotkey
- UtopiaPunk 3y agoI use a tool called "Espanso" to accomplish something similar at work. It only runs locally, so no weird data scraping issues to worry about. And it's easy to update as things changes because everything lives in a simple yml file. https://espanso.org/ https://espanso.org/ It can do simple text replacement, so I have words, phrases, and sentences I use frequently compressed into a few keyboard clicks. It can also grab what is in your clipboard, so that can be incorporated into responses, which is simple but very handy. A simple text replacement looks like this in the yml file: - trigger: ":espanso" replace: "Hi there!" But it can even work with a shell, which I think is amazing! For example, I have a particular task at work where I often need to insert a random number into a text document. I can have Espano run PowerShell behind the scenes to run a simple PowerShell command, and that looks something like: - trigger: ";rand" replace: " {{output}}" vars: - name: output type: shell params: cmd: "Get-Random -Minimum 100000" shell: powershell
- Xeophon 3y agoI love espanso. I live it over AHK as it doesn't have some obscure and hard to learn language, so I can just write some python scripts and trigger them with espanso.
- eschluntz 3y agoThat is cool! I use Autokey under the hood, but I'll check out Espanso as well
- deleted 3y ago[deleted]
- n8henrie 3y agoLove espanso, I use it in Mac, Linux, and Windows! The creator is also incredibly nice, one of those rare open source devs that seems to go out of his way to validate concerns and make PRs truly feel welcome. Great project.
- karencarits 3y agoA sidenote, but Espanso can also be set up to communicate with eg chatgpt; you copy some text and type a trigger word such as ":ask" or ":debug" and it makes a request from the trigger and the clipboard and returns the reply from openai https://github.com/rohitna/chatgpt-script https://github.com/rohitna/chatgpt-script
- lxe 3y agoFrom the gif I originally thought this was a "AI" predictive typing assistant, which would not require a shortcut map heuristic but rather predict text based on probability.
- iamthejuan 3y agoI tried this similar concept with ChatGPT and it somehow understands what I am trying to say. Nice to have a tool that works almost the same. Thank you!
- iamthejuan 3y agoInstead of keywords and memorizing it, why not just use the first letters? I played around with ChatGPT with this few weeks ago and I don't think there is an existing software for this, I am not good in programming but hopefully somebody will create. Please see screenshot below. https://imgur.com/a/0o4zLwT https://imgur.com/a/0o4zLwT
- obscur 3y agohttps://chat.openai.com/share/d9d64cf5-3ad5-4491-97a1-43fa01c3a2e8 https://chat.openai.com/share/d9d64cf5-3ad5-4491-97a1-43fa01...
- jdthedisciple 3y agowdym jk
- mistercow 3y agoI built a prototype similar in concept to this, where you can just abbreviate arbitrarily, doing whatever, and ChatGPT fixes it after each sentence. It’s decently accurate (although very annoying when it misses), but I found that even when it’s working perfectly, using it is just way more cognitive effort than typing normally. Concentrating very hard, I could just about match my normal casual typing speed while using the abbreviations, but I couldn’t beat it, and I found myself just gravitating back to normal typing. That said, I’m a fast typist, and I write a lot, so I’m trying to make a prototype beat a process in my brain that has been intensively optimized over 30 years or so. It might work better with someone who isn’t a fast typist in the first place.
- irjustin 3y agoIs there a way to combine steno typing w/ a standard keyboard so that you can seamlessly switch? In the current setup there are too many collisions.
- abhayhegde 3y agoThis is a pretty cool project! I am concerned about how reliant this is on my memory and if the keybindings keep changing every once a while, adapting to new ones might actually be time consuming. This is what I thought while I was learning Vim too, but now I honestly prefer Vim keybindings everywhere. So maybe this is not too bad. I would definitely try out if one can also build a vimtutor like version for this usecase.
- ThinkBeat 3y agoI have spent a good deal of time trying to create text expansions for myself. (manually) It is a lot harder than I thought it would be. To find aliases that dont misfire too often and provide enough value. Give that I daily communicate in several languages that adds even more trouble. I have now split it by application. Different aliases for different applications. I still have misfires. Mostly I have found I need delinators.
- LanternLight83 3y agoIkclaks has been doing something interesting on top of their magic sturdy keyboard layout layout https://github.com/Ikcelaks/keyboard_layouts/blob/main/magic_sturdy/magic_sturdy.md https://github.com/Ikcelaks/keyboard_layouts/blob/main/magic...
- dr_kiszonka 3y agoI prefix my aliases with letter combinations that are unlikely to appear as first letters of words and variable names like kk, zz, qq. For example, qqme is my email signature. I wish OP's tool suggested aliases for longer phrases than what I saw in the readme. I heard TextExpander for MacOs does that but I am not a Mac user.
- eschluntz 3y agoooh yeah, with multiple languages I bet there are WAY fewer available shortcuts. one of my TODOs is to use the actual corpus of text I analyze to also generate the "blacklist" of aliases to avoid
- mackrevinack 3y agomaybe a sweet spot would be to use abbreviations for only the most common words and then have some sort of simple gui pop up where you can fuzzy search things and then have it pasted in
- brimwats 3y agoespanso does that quite well
- nazgulnarsil 3y agoI trd lrnng t tp lk ths as a shrtr wy f lrnng shrthnd, u cn tr t yrslf. Cms prtt fst.
- algas 3y agoStrangely, if you use an alt keyboard layout, dropping most of the vowels actually makes it a little less comfortable to type. Coleman and (particularly) Dvorak both put a lot of effort into making common words either alternate hands or roll off your fingers, as well as making the most common letters and vowels very accessible to your fingers. Since this method of typing makes those convenient letters less common, it seems to actually make tpng lk ths a ltl + uncmftbl.
- kmstout 3y agoTh vc n my hd snds lk sm dd wth hs jw wrd sht.
- VectorLock 3y agohri kri: the act of disemvoweling oneself.
- thatxliner 3y agoHow does this compare to CharaChorders or any stenograph software?
- nitin-pai 3y agoThere is no advantage in doing this. Typing words fully and correctly, with correct spelling and grammar, is a skill worth preserving.
- programmarchy 3y agowr.
- syndicatedjelly 3y agolol
- semireg 3y agoI love the idea of a tool digesting my own writing. Ticket systems like Zendesk should offer this built-in as boilerplate. Instead, I use native iOS/macOS “text replacement” for customer service responses. It saves me so much time. I have all of my FAQ URLs as 4 letter shortcuts. e.g. lltr becomes https://label.live/guides/label-printer-troubleshooting https://label.live/guides/label-printer-troubleshooting llty = Thank you for the email. lllmk = Let me know if this helps.
- derek12 3y ago[dead]
- dghughes 3y agoI do something similar using BeefText. A few long words I set with no modification others or entire phrases I precede with a ` backtick. If no backtick it can quickly become unmanagable.
- cfeduke 3y agoAfter reading this I determined I don't talk about the robot nearly as much as I should or could be.
- eschluntz 3y agohaha, when you start a robotics company you end up spending a LOT of time talking about robots...
- porridgeraisin 3y agoI prefer an autocomplete mobile like experience for most typing. I use autohotkey to have global autocomplete for English, anywhere in any app i type it gives me options in a little tabbable box immediately. I disable it for vscode usually except when I'm typing markdown I manually enable it. I love it. Beyond this I use ahk's hotstrings feature to have "snippets". I separate them by topic and activate them as and when they're required. For example I have one for css which has things like display: flex; justify-content: center; align-items: center; bound to a single hotstring. I know I can use vscode snippets but I prefer this. I also have global hotstrings for say my emails, address, etc,. Unencrypted in my home directory. I don't care too much but you might. The coolest one is a password manager that lets you use your username/email on any website as the password. You just press a hotkey and are prompted to enter the secure master password. Once you do that, it decrypts your passwords and activates the hotstrings required to convert usernames to their respective passwords. When you press enter and submit the form it kills it. This is only one of the variations I have. The previous one had me enter the master password in the form itself, and it'll read the context of the browser itself get the URL from there and automatically replace the correct password. I stopped using this as it became unwieldy once I had to have multiple Gmail accounts for example.
- brimwats 3y agoI would also be really interested in your AHK script!
- dplgk 3y agoAre you on Mac? I could not find any way to get a hotkey for autocorrect and would love to know how!
- planbattack 3y ago>I use autohotkey to have global autocomplete for English, anywhere in any app i type it gives me options in a little tabbable box immediately. Is the script you use publicly available somewhere?
- IAmGraydon 3y agoThis is basically Emmet for the English language, right? A nifty application of the idea, none the less.
- xormapmap 3y agoWhile this is a cool idea, is typing speed really the bottleneck for anyone who uses a keyboard for a living?
- planbattack 3y agoAs a translator who billed approximately 750,000 words last year, yes. Speech to text software is another good tool for circumventing this bottleneck that many translators use.
- TehShrike 3y agoif you're using a keyboard, slow typing speed is overhead on getting your job done.
- rgoulter 3y agoMore precisely, is the effort spent on improving typing speed beneficial for the cost put in? Typing faster is always going to be a benefit. I think it would be too much effort for most people to get to 150wpm, or to learn stenography. But, on the other hand, if people are typing 30wpm, they would benefit from training to improve their typing speed.
- deleted 3y ago[deleted]
- deafpolygon 3y agoAt this point, my keyboard is the bottleneck. I regularly type 100-120wpm and can hit 150-180 peak.
- yieldcrv 3y agoMy friend does this on dating apps, he aliased a bunch of typos in his iphone with paragraphs of progressive sounding text that many women want to hear, interlaced with lots of flirty emojis branches of conversation too, one step above botting works for what he’s looking for
- replwoacause 3y agoHuh, have to say that strikes me as kind of sleezy. It seems disingenuius and shallow. Like, instead of having meaningful conversation with people, relating to them on a substantive level (if possible), he’s just mindlessly automating his way through women “telling them things they want to hear”, hoping to get laid, using macros from his phone. That gives off major creep energy, and this is coming from another guy.
- yieldcrv 3y agoI hope she noticed bro /s aka obviously. redundant to signal your lack of support. anyway, he fills a market need. many women are annoyed by not well thought out short responses, as much as men are
- replwoacause 3y agoHope who noticed? My wife? What's redundant about being critical of your loser friend's programmed responses? He's a goober and I'm pointing that out. Also, calling it a "market need" tells me you're 2 birds of a feather.
- deleted 3y ago[deleted]
- monooso 3y agoThe author is clearly using this for prose (as opposed to code), and I wonder how it compares to dictation in terms of speed. I've never really tried using text to speech for writing blog posts and the like, but I know David Sparks (MacSparky) swears by it; and he produces a lot more written content than I do.
- gamegoblin 3y agoThe real value of dictation, IMO, is it's so much easier to ramble verbally than via text, so you can just bang out a draft without getting blocked on picking the exact correct words.
- eschluntz 3y agomy main use case was quick slack messages and emails. I haven't found any good dictation systems where the latency of starting / stopping it for really quick messages wasn't too high a barrier. For longer form writing I have used dictation and I really liked it!
- lostapathy 3y agoI’ve thought about doing something like this, only using foot pedals to put it into “shorthand mode”. Having the pedal as a modifier would eliminate the need to worry about text collisions between your shorthand and normal typing.
- ideasman42 3y agoThe down side of this is you have to remember them, for some time now I've been writing with n-gram auto-completion based on a large body of text (including code-comments for projects I work on), see https://codeberg.org/ideasman42/emacs-mono-complete https://codeberg.org/ideasman42/emacs-mono-complete I have it configured to be enabled when typing in code-comments or commit logs & it often gives helpful suggestions.
- neurostimulant 3y agoIs it possible to alter built-in autocorrect (e.g. in firefox) to prioritize a list of words/phrases? I feel like remembering a bunch of shortcuts is not ideal.
- Brajeshwar 3y agoFirst, I have to make a personal confession — I never liked the SMS short-hand thingy that worked with pre-iPhone phones. That was one of the reason I seldom use SMS/Text-Messages unless I really need to. I have been using text-expansion since the early days of TextExpander[1], an app that works on iOS and macOS. However good the iPhone keyboard was, it was always not convenient to type and retype details such as home address, home/work map, and many other work/personal related info. TextExpander helped a lot. I started looking for an alternative when TextExpander converted to a subscription model, which I (personal) believe is not suitable for such a tool. I found a better alternative in Alfred[2], bundled with its Powerpack — Snippets. macOS/iOS also has its built-in “Text Replacements” but it fails me quite often in non-Apple apps. What you have here is similar to that of Apple’s Text Replacement. I let that remain and the others are managed via Alfred. Honestly, I may move to this once I can totally walk out of Alfred (Spotlight is becoming good enough.) However, I’d like to use a delimiter to expand so it does not come in the way of my normal typing (I can touch type). Currently, I use “,” (comma) as a delimiter (Affix) because, in English, there is always a space after a comma and my expansion is only after I type a comma and the short-text without a space. Also the comma key is located conveniently when you touch type. If I do reconcile and stay with the OS’s Text Replacement, I might still introduce the delimiter to prevent automatic expansion of the word which wasn’t intended for that particular scenario. 1. https://textexpander.com https://textexpander.com 2. https://www.alfredapp.com https://www.alfredapp.com
- eschluntz 3y agoyeah, I spent a decent amount of time getting delimiter correct in the Autokey configs that I generate. Fanciest thing I do is special case ".py" :) In general "." is a delimiter, EXCEPT for "py" so that it doesn't interfere with me typing python files
- Brajeshwar 3y agoThe problem with "." as a delimiter is that, unlike written English, it is actually pretty common in the computer world -- for instance, file extensions -- .jpg, .txt, .md.
- deafpolygon 3y agoThis would probably drive me up the wall. I like the idea of snippets, but not automatically changing st -> something, hw -> hardware, etc. I type in 2-3 different languages on a regular basis (English and Dutch mainly). There are certain idiosyncrasies in both languages that would drive me up the wall with a system like this.
- botanical 3y agoThis is great. Is it possible to somehow use it with keyd, as I don't use autohotkey? https://github.com/rvaiya/keyd/ https://github.com/rvaiya/keyd/
- eschluntz 3y agoYeah! I'm going to need to migrate away from autokey soon because it doesn't support Wayland. I'll probably create a few different scripts for generating one list of shortcuts into several possible different utilities
- Sparkyte 3y ago1000 mph into a concrete barrier scenario, but I like the enthusiasm behind it. I would imagine some words with nearly the same spelling have potentially collided with automation causing some hilarious feedback. English is a pretty annoying language.
- eschluntz 3y agoI started small and just memorized the first 10, etc, but I definitely had the intention of going all in from the beginning
- alhasaniq 3y agoWe have finite brain power. The power you dedicate to thinking about what hotkey (/combination of) to press for niche tasks, is not, per say, wasted. But it definitely isn't going towards thinking about what to write, the objective. Maybe useful for less information-dense writing.
- deleted 3y ago[deleted]
- p-e-w 3y agoThat's a very important insight. Faster doesn't mean less effort. More efficient doesn't mean more intuitive. I think that today's hacker attitude tends to drastically underestimate the degree to which natural languages have been optimized over time to fit the way our brains work. Most conlangs fall into the same trap. Ithkuil isn't a better form of communication just because it uses fewer characters than English. And Vim isn't a better editor just because you can do things with fewer keystrokes.
- noduerme 3y agoThis is like one of those ideas that's too brilliant to be disclosed here - or to anyone, actually. Bravo.
- vkpdeveloper 3y agoThis is great, would be great if we can train GPT4 directly based on our previous conversations and it can automatically suggest.
- tuposita 3y agoThere are many things that slow down my productivity. Typing speed is certainly not one of them..
- paradite 3y agoHere's something you probably didn't know if you are not native Chinese speaker: Chinese language has this feature "built-in". It is officially called 双拼 (Shuangpin)where you type two (English) characters of each word to type out the entire word: https://zh.wikipedia.org/zh-sg/%E5%8F%8C%E6%8B%BC https://zh.wikipedia.org/zh-sg/%E5%8F%8C%E6%8B%BC Even if you don't use Shuangpin officially, most Chinese input methods supports a similar feature (简拼) for popular phrases, where you type first English character of each word to type out a phrase of several words. For example, to type "thank you" in Chinese (xiexie), you just type "xx" and it should automatically give you "xiexie" (Chinese characters) in most popular Chinese input methods.
- freespirit77 3y agoHeard a real interesting podcast recently around typing chinese using std keyboards. https://radiolab.org/podcast/wubi-effect https://radiolab.org/podcast/wubi-effect
- yellow_lead 3y agoYeah for common sentences it's easy to type quickly with a good pinyin keyboard. Like "what do you want to eat" 「你想吃什麼」 Is typed with n x c s m
- 0RQ2kaTBBlQp 3y agoThis is not related to the topic being discussed at all.
- eschluntz 3y agoIs XLB for Xiao long bao an example of this? Hadn't realized it was a wider system, that's cool!
- indus 3y agoh t e x l b Next time I got to the Din Tai Fung in my neighborhood ;-)
- ulrischa 3y agoReminds me of "Steno" - a German fast writing form
- kqr 3y ago> I was surprised that very short and frequent words topped this list, such as the -> t Having studied some shorthand, I'm not surprised in the least! There, the most frequent words tend to get single-symbol abbreviations. Common wisdom even says that much of the benefit from shorthand writing comes from these few one-symbol abbreviations.
- leokennis 3y agoOut of curiosity...sure you type less, but do you need to think more about which abbreviation was which word? In iOS I maintain a small list of abbreviations (@@ expands to my e-mail address, lk expands to my name etc.) but if it was hundred(s) I'd probably lose more time thinking about "what was the abbreviation of 'online meeting' again" or correcting accidental abbreviations that are part of normal words, than I'd save time typing...but maybe that's just me.
- orlp 3y agoI think it depends on your typing speed, your target speed, and how much time you want to spend learning the method. On desktop I type 110-130 WPM so such a shortcut wouldn't really help in all but the most extreme examples in day to day work. On mobile my typing speed is much, much lower and I extensively use autocomplete. But even at the high end of typing speed there's still a use case for shortcuts, it's just called stenography and it requires specialized software and/or hardware and tons of training.
- matthewtse 3y agoIn iOS, I tried some very simple abbreviations (like 2 characters), and it drove me insane when a typo triggered the abbreviation expansion when I didn't want it, so never got that feature working for me.
- zagfai 3y agoWhy not just speech to text?
- zagfai 3y agoWhy not just speech to text? Or brain to text:)
- coldblues 3y agohttps://www.openstenoproject.org/plover/ https://www.openstenoproject.org/plover/ If you want to go the extra mile.
- edanm 3y agoThe problem with this is you need specialized hardware, you can't really use this on a standard Macbook, at least last time I checked. Also, the learning curve and everything.
- coldblues 3y agoYou don't need specialized hardware. You can use your regular keyboard. Although specialized hardware would be more ergonomic.
- edanm 3y agoAs far as I remember, not a Mac keyboard. Although I do have some better keyboards, and to be honest one of the reasons I got them was some vague idea of learning this at some point. It's just the time investment holding me back at this point, tbh.
- yterdy 3y agoI've tried using it on a regular keyboard. You need specialized hardware (starting at $100 if you don't want to solder the thing together yourself).
- thecleaner 3y agoJust shut up and take my money !
- tyiz 3y agoPhraseExpress for Win/Mac does something similar but different: It parses your choice of documents and send emails and suggest to auto complete frequently used phrases. Advantages: + no need to memorize abbreviations + no interference with your other typing.
- boticello 3y agoEasyScript is another rule-based shorthand system for typists. I created an EasyScript translator for GPT-4: https://gist.github.com/boticello/1ea9c7105e5c369ea937158411c32921 https://gist.github.com/boticello/1ea9c7105e5c369ea937158411... As others have commented, this is not the most efficient or practical approach, but for me it was an experiment which worked. http://www.easyscript.com/ http://www.easyscript.com/
- gulabjamuns 3y agoI've been learning keyscript[0] and it's really fun and concise. [0] https://cassyjanek.webs.com/comparealphashorthands.htm https://cassyjanek.webs.com/comparealphashorthands.htm
- edanm 3y agoThis is really cool! I did something similar on Mac, but completely manually. I'm using Espanso now, but I suffix every shortcut with an ";" character which causes the expansion. Since it's home row, it's incredibly easy to actually type it right after typing some letters, making it ideal, cause then I can use whatever shortcuts I want and very rarely have collisions. I do think this automated generation of suggestions is a great idea, and I it made me realize I hadn't thought enough about the amount of times I type something vs. how big the word is. Since I have an extra letter, I don't want to do this for very very short words, but possibly something I type a lot is still worth it even if it's very short. I tend to use it for semi-long words that I have a hard time typing for whatever reason. Anyways, very cool, I'll probably be running this script sometime soon to get a list of suggestions, then converting them into Espanso scripts!
- fsiefken 3y agoIt reminds me of Bref shorthand and autohotkey: https://www.reddit.com/r/shorthand/comments/esjhdk/bref_shorthand/ https://www.reddit.com/r/shorthand/comments/esjhdk/bref_shor...
- orangepurple 3y agoI aspire to reach 300 wpm at some point like Rocket has https://www.youtube.com/watch?v=no99cJBwqdk https://www.youtube.com/watch?v=no99cJBwqdk
- SpacePortKnight 3y agoYears of autocomplete has already made my second language i.e. English poorer. I know words but I often forget to pronounce them because I can no longer remember their spelling. A tool like this would completely obliterate all of my skills.
- jdthedisciple 3y agoThe obvious issue would be if you - for whatever reason - wanted to actually type something that happens to also constitute a shortcut and it gets involuntarily replaced.
- ughitsaaron 3y agoSpeaking personally, I feel like any time I save by reducing keystrokes would be lost by having to think about shortcuts (or making corrections). However, I Once believed the same thing about vim-mode (which I believe saves me time though I couldn’t prove it).
- samstave 3y agoThere is one key I think all keyboards are missing “toggle case” If you had a key to toggle case on selected texts billions of backspace keystrokes and retyping strokes could be saved
- ughitsaaron 3y agoYou mean like swapping caps lock for control?
- throwaway75 3y agoOk, just who are these people who can type faster than I can ever hope to think?
- James_Henry 3y agoAdd a charachorder to this and you'll be typing crazy fast.
- skenderbeu 3y agoI wonder if you can come up with a smaller keyboard because of this and if so would it make typing with it even faster than current keyboards?
- bruce343434 3y agohttps://en.wikipedia.org/wiki/Chorded_keyboard https://en.wikipedia.org/wiki/Chorded_keyboard
- pro-kythera 3y ago> If the next few words I’m going to write are obvious, why do I even need to write them? Same thing chatgpt (trapped in the philosopher's Chinese room) is asking itself millions of times a day.
- yoav 3y agoI thought this was going to be a post about using an LLM when coding. I type 20% of what I would have with copilot
- mckravchyk 3y agoCool! I thght t wld b bt at-xpndg vwls. I gs smth lk tht shld b psbl nw wth LLMs. smth wh y wldd jst rndml drp chrs t incrs spd nd it wld jst gs th rght wrd 99% f ttime bsd on ctx. Nt sr hw prctl t wld b thgh bt I thnk I cld qckl gt sdd t t.
- thrilling_gem 3y agoif you can make the readline in place, and full access to all your typing history, then c-r is enough
- oalders 3y agoThis looks like a great project. Medieval manuscripts used something similar: https://en.wikipedia.org/wiki/List_of_medieval_abbreviations https://en.wikipedia.org/wiki/List_of_medieval_abbreviations You can go back even farther to ancient inscriptions. Humans have been trying to save a few characters here and there for quite a while.