Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tecosaur/emacs-everywhere
Mirror of https://git.tecosaur.net/tec/emacs-everywhere
https://github.com/tecosaur/emacs-everywhere
emacs keyboard-shortcuts mirror
Last synced: about 3 hours ago
JSON representation
Mirror of https://git.tecosaur.net/tec/emacs-everywhere
- Host: GitHub
- URL: https://github.com/tecosaur/emacs-everywhere
- Owner: tecosaur
- License: gpl-3.0
- Created: 2021-02-06T17:29:30.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-16T10:23:06.000Z (10 months ago)
- Last Synced: 2024-04-28T07:45:12.584Z (10 months ago)
- Topics: emacs, keyboard-shortcuts, mirror
- Language: Emacs Lisp
- Homepage:
- Size: 78.1 KB
- Stars: 493
- Watchers: 12
- Forks: 51
- Open Issues: 20
-
Metadata Files:
- Readme: README.org
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
#+title: Emacs Everywhere
#+author: TEC
#+date: 2021-02-06#+html:
![]()
#+html:![]()
#+html:![]()
#+html:![]()
#+html:![]()
#+html:A re-implementation of the fantastic idea in [[https://github.com/zachcurry/emacs-anywhere][zachcurry/emacs-anywhere]].
[[https://user-images.githubusercontent.com/20903656/107152385-814f2c00-69a2-11eb-978f-b3e78067b3f3.gif]]
* Installation
Just install from [[https://melpa.org/][MELPA]], and you're ready to go.
** Doom
Available with the =:app everywhere= module (and with a nice modeline).
** Dependencies
On Linux, ensure you have the following dependencies satisfied: =xclip=, =xdotool=, =xprop=, and =xwininfo=.
* Usage
Invoke the Emacs Everywhere executable^{†}.
I recommend doing this by [[*Binding a Shortcut][binding a shortcut]] to:
#+begin_src shell
emacsclient --eval "(emacs-everywhere)"
#+end_srcA new Emacs frame will appear, within which you can type away to your heart's content.
It will remember which window you have focused.By default, ~emacs-everywhere-insert-selection~ is a hook in
~emacs-everywhere-init-hooks~, and will insert the last text selection into your
new buffer. To clear this, type =DEL= or =C-SPC= /before anything else/.Once you've finished and want to insert the text into the window you triggered
Emacs Everywhere from, just press =C-c C-c= or =C-x 5 0= to close the frame and
paste the content into the window (as long as ~emacs-everywhere-paste-command~ is
non-nil).If you do /not/ wish to paste the buffer content into the original window, =C-c
C-k= still copies the content to the clipboard, but never pastes.-----
^{*†*} This requires the Emacs daemon to be running, but that's super easy.
Just call =emacs --daemon= and you're sorted!* Binding a Shortcut
Emacs-everywhere needs a way to launch when a not-emacs application has focus. The easiest way to do this is to have a global keybinding/keyboard shortcut dedicated to launching (same as above): ~emacsclient --eval "(emacs-everywhere)"~
On linux/bsd, use your desktop environment, windows manager, or a dedicated processes (like sxhkd, xbindkeys). The [[https://help.ubuntu.com/stable/ubuntu-help/keyboard-shortcuts-set.html.en][ubuntu]] and [[https://wiki.archlinux.org/title/Keyboard_shortcuts#Customization][archlinux]] guides are informative.
On MacOS, options include [[http://www.hammerspoon.org/][hammerspoon]], [[https://www.alfredapp.com/help/workflows/triggers/hotkey/][alfred]], [[https://apps.apple.com/us/app/thor-launcher/id1120999687?mt=12][thor]], or [[https://github.com/pqrs-org/Karabiner-Elements/issues/134#issuecomment-439658876][karabiner]]. (Untested, see [[https://github.com/tecosaur/emacs-everywhere/issues/1#issuecomment-781329521][the relevant issue]])
** Example
For xbindkeys, =~/.xbindkeysrc= would include the entry
#+begin_src shell
"emacsclient --eval '(emacs-everywhere)'"
Alt + Mod4 + e
#+end_src