Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/karimaziev/gnome-gifcast

GIF recording using gnome-screencast and ffmpeg.
https://github.com/karimaziev/gnome-gifcast

Last synced: 4 days ago
JSON representation

GIF recording using gnome-screencast and ffmpeg.

Awesome Lists containing this project

README

        

#+OPTIONS: ^:nil tags:nil num:nil

* About

Gif recording using =gnome-screencast= and =ffmpeg=.

[[./gnome-gifcast.gif][./gnome-gifcast.gif]]

* Table of Contents :TOC_2_gh:QUOTE:
#+BEGIN_QUOTE
- [[#about][About]]
- [[#requirements][Requirements]]
- [[#installation][Installation]]
- [[#with-use-package-and-straightel][With use-package and straight.el]]
- [[#manual-installation][Manual installation]]
- [[#usage][Usage]]
- [[#commands][Commands]]
- [[#customization][Customization]]
#+END_QUOTE

* Requirements

| Name | Version | Description |
|------------------+---------+--------------------------------------------------------------------------------------------|
| Emacs | 29.1 | Text editor. |
| [[https://github.com/juergenhoetzel/emacs-gnome-screencast][gnome-screencast]] | 1.3 | Emacs interface for initiating GNOME Shell's built-in screencasting capability. |
|------------------+---------+--------------------------------------------------------------------------------------------|
| gnome-shell | | The graphical shell of the GNOME desktop environment with native screencast functionality. |
| [[https://ffmpeg.org/][ffmpeg]] | | Command-line tool used for video and audio processing. |
| dbus | | Message bus system that gnome-screencast uses to communicate with GNOME Shell. |
| | | |

#+begin_quote
[!NOTE]

This list assumes you're using a GNOME environment where the native screencasting capability (=gnome-screencast=) and =dbus= are available.
#+end_quote

* Installation

** With use-package and straight.el
#+begin_src elisp :eval no
(use-package gnome-gifcast
:straight (gnome-gifcast
:repo "KarimAziev/gnome-gifcast"
:type git
:host github)
:commands (gnome-gifcast
gnome-gifcast-start
gnome-gifcast-stop))
#+end_src

** Manual installation

Download the source code and put it wherever you like, e.g. into =~/.emacs.d/gnome-gifcast/=

#+begin_src shell :eval no
git clone https://github.com/KarimAziev/gnome-gifcast.git ~/.emacs.d/gnome-gifcast/
#+end_src

Add the downloaded directory to the load path:

#+begin_src elisp :eval no
(add-to-list 'load-path "~/.emacs.d/gnome-gifcast/")
(require 'gnome-gifcast)
#+end_src

* Usage

** Commands

**** ~gnome-gifcast~
Toggle =gnome= screencast recording.
**** ~gnome-gifcast-start~
Start recording a screencast with =gnome=.
**** ~gnome-gifcast-stop~
Stop recording and convert to =gif=.
** Customization

**** ~gnome-gifcast-record-current-window-only~
Determines whether to record only the current window during a screencast. When non-nil, the screencast will capture only the contents of the currently focused window. When nil, the entire screen will be recorded.
**** ~gnome-gifcast-ffmpeg-args~
List of arguments for =ffmpeg= command.
**** ~gnome-gifcast-screencast-directory~
Directory for saving screencast videos before conversion.
**** ~gnome-gifcast-post-record-hook~
Hook run after recording a =gif= screencast. =a= hook that is run after the recording of a screencast is stopped.
**** ~gnome-gifcast-pre-init-hook~
Hook run before =gnome= =gif= screencast starts.
**** ~gnome-gifcast-post-process-hook~
Hook to run after =gif= creation from screencast.