Coder Social home page Coder Social logo

emacsmirror / yequake Goto Github PK

View Code? Open in Web Editor NEW

This project forked from alphapapa/yequake

0.0 3.0 0.0 5.56 MB

Drop-down frames, like Yakuake

Home Page: http://github.com/alphapapa/yequake

License: GNU General Public License v3.0

Emacs Lisp 100.00%

yequake's Introduction

yequake

https://melpa.org/packages/yequake-badge.svg

This package provides configurable, drop-down Emacs frames, similar to drop-down terminal windows programs, like Yakuake. Each frame can be customized to display certain buffers in a certain way, at the desired height, width, and opacity. The idea is to call the yequake-toggle command from outside Emacs, using emacsclient, by binding a shell command to a global keyboard shortcut in the desktop environment. Then, with a single keypress, the desired Emacs frame can be toggled on and off, showing the desired buffers.

There are many options to configure yequake-frames, but the customization UI makes it easy. Try M-x customize-option RET yequake-frames RET

Screenshots

Note that the animation of the Emacs frame in this example is provided by the window manager. Yequake simply displays the frame.

images/animation.gif

That animation was produced with this yequake-frames configuration:

(setq yequake-frames
      '(("Yequake & scratch" .
         ((width . 0.75)
          (height . 0.5)
          (alpha . 0.95)
          (buffer-fns . ("~/src/emacs/yequake/yequake.el"
                         split-window-horizontally
                         "*scratch*"))
          (frame-parameters . ((undecorated . t)))))))

To activate it, call this command from a shell, e.g. by binding it to a global keyboard shortcut:

emacsclient -n -e '(yequake-toggle "Yequake & scratch")'

Contents

Installation

Quelpa

quelpa-use-package makes installation easy:

(use-package yequake
  :quelpa (yequake :fetcher github :repo "alphapapa/yequake"))

MELPA

If you installed from MELPA, you’re done!

Manual

Put yequake.el in your load-path, and this in your init file:

(require 'yequake)

Usage

  • Start an Emacs daemon (e.g. with emacs --daemon, or M-x server-start RET).
  • Configure yequake-frames, e.g. with M-x customize-option RET yequake-frames RET.
  • Call yequake-toggle:
    • From inside Emacs, it can be called as an interactive command with M-x yequake-toggle RET, and will prompt for a Yequake frame.
    • From outside Emacs, call emacsclient and eval the command with the name of a Yequake frame, like:
emacsclient -n -e '(yequake-toggle "FRAME-NAME")'

You’ll probably want to bind that to a global keyboard shortcut in your desktop environment.

  • Call yequake-toggle again to hide the frame.

Tips

  • You can customize settings in the yequake group.
  • The yequake-retoggle command toggles the most recently toggled frame.

Org Capture

The yequake-org-capture function is suitable for use in a Yequake frame used for Org Capture. It calls org-capture and sets org-capture-after-finalize-hook to close the Yequake frame after the capture is finalized or canceled. (Note that if another Yequake frame is toggled before the capture is finalized, when the capture is finalized, the wrong Yequake frame will be toggled.) For example, with this configuration:

(use-package yequake
  :quelpa (yequake :fetcher github :repo "alphapapa/yequake")

  :custom
  (yequake-frames
   '(("org-capture" 
      (buffer-fns . (yequake-org-capture))
      (width . 0.75)
      (height . 0.5)
      (alpha . 0.95)
      (frame-parameters . ((undecorated . t)
                           (skip-taskbar . t)
                           (sticky . t)))))))

You could then run:

emacsclient -n -e '(yequake-toggle "org-capture")'

And after the capture is finalized or canceled, the frame will be closed, like this:

images/org-capture.gif

Changelog

0.1

First tagged release.

Credits

  • This package was inspired by Benjamin Slade’s equake package, and by good ol’ Yakuake.
  • The animations were created with Bashcaster and GIMP.

Development

Bug reports, feature requests, suggestions — oh my!

License

GPLv3

yequake's People

Contributors

alphapapa avatar

Watchers

 avatar  avatar  avatar

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.