Giter Site home page Giter Site logo

selectric-mode's Introduction

selectric-mode

MELPA MELPA Stable

IBM Selectric

Photo By Oliver Kurmis - Self-photographed, CC BY 2.5, https://commons.wikimedia.org/w/index.php?curid=104015

Make your Emacs sound like a proper typewriter. Extremely useful if you have a puny, silent, rubberish, non-clicky keyboard.

"I noticed this in the Spacemacs config and have it set up for occasional use. Makes writing documentation feel more important." -- mcguire on Hacker News

The sound of the typewriter moving and typing was recorded by a person nicknamed "secretmojo" and is available on https://www.freesound.org/people/secretmojo/sounds/224012/ and the bell was extracted from https://freesound.org/people/knufds/sounds/345955/, recorded by "knufds", both available under a Creative Commons license. The sound of the margin bell, was extracted from https://www.youtube.com/watch?v=vOIPN70f_-I by Joe Heyming.

To install it, simply add it to your load-path, require it:

(add-to-list 'load-path "~/.emacs.d/plugins/selectric-mode")
(require 'selectric-mode)

And then activate/deactivate with M-x selectric-mode. When it's activated, you'll hear a typing sound for confirmation. When it deactivates, you'll hear a carriage movement sound instead.

Alternatively, you can install it from MELPA.To install it, type M-x package-install [ret] selectric-mode

selectric-mode on MELPA

selectric-mode's People

Contributors

algernon avatar codesuki avatar csanchezdll avatar hyozd avatar joeheyming avatar rbanffy avatar syohex avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

selectric-mode's Issues

Use custom commands to play audio files

Hello,

It would be nice if we could manually set the command (afplay, aplay) for systems that don't have those installed. Or maybe someone needs/wants to use another command for specific purposes.

For example on my computer I have archlinux (and it's probably true for other linux distributions), I don't have ALSA installed which has the aplay command, so this mode doesn't work for me. But I do have play which works the same, I would love to be able to change the setting in my config file.

move sound keys cause "apply: Creating pipe: Too many open files" after re-enabling

After enabling, disabling, and re-enabling selectric-mode, keys on selectric-affected-bindings-list cause Emacs to hang briefly and then emit an ugly sound and the "apply: Creating pipe: Too many open files" error message. It appears that when re-enabling, the key binding being saved off is the selectric-mode-map binding, which causes a ton of backed up sounds to trigger. Looks like all that needs to be done is to undefine the keys in selectric-mode-map when exiting the mode.

Lisp nesting exceeds max-lisp-eval-depth

I sometimes get this (for instance when in a buffer-menu):

Debugger entered--Lisp error: (error "Lisp nesting exceeds `max-lisp-eval-depth'")
  selectric-move-sound()
  #[0 "\302 \210\303\304\300	\"!\207" ["<up>" selectric-saved-bindings selectric-move-sound call-interactively gethash] 4 "\n\n(fn)" nil]()
  call-interactively(#[0 "\302 \210\303\304\300	\"!\207" ["<up>" selectric-saved-bindings selectric-move-sound call-interactively gethash] 4 "\n\n(fn)" nil])
  #[0 "\302 \210\303\304\300	\"!\207" ["<up>" selectric-saved-bindings selectric-move-sound call-interactively gethash] 4 "\n\n(fn)" nil]()

I have to disable selectric-mode for the keyboard to work in the buffer again.

Melpa recipe?

Could you submit this to MELPA ? this looks awesome, otherwise I volunteer to do it for you with your consent :)

Feature request: Delete sound

It would be nice if there was an (optional) delete sound, subtler and quieter than the typing sound. It throws me off a bit to hear the typing sound suddenly stop when I go delete words.

Performance issues

I noticed that if you type fast emacs starts becoming unresponsive. It is noticeable when typing normally too but still bearable. If emacs would support async calls that would fix the issue.

Add sound for other kinds of editing

Currently selectric-mode makes a noise only when you type. Would be great if it also make a (different) noise for when you yank, kill, complete and for any other kind of editing to notify a user about a change in a buffer.

Still maintained?

Hi @rbanffy,

I recently started using this extension, and it's great fun! Few of the sounds didn't quite sound right, so I found this repo. Looking at the last commit, and open PRs I am wondering whether this is still maintained?

It would be great if you could even spare a few minutes to go through what's here and make this mode even better!

Thanks for your work,

tecosaur.

Major mode key bindings disabled

This is a really cool mode! One thing I noticed, though, is that selectric-save-bindings only saves global key bindings, meaning all major mode key bindings are disabled in selectric-mode. I'm not sure what the way to fix this would be.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.