diff options
author | Arjan Adriaanse <arjan@adriaan.se> | 2020-05-05 11:05:49 +0200 |
---|---|---|
committer | Arjan Adriaanse <arjan@adriaan.se> | 2020-05-05 11:05:49 +0200 |
commit | 316d2cee8734dbc22f0a1a1e5d4debac89c8cbce (patch) | |
tree | 79138022fc86e49c3cdbeed100daffd9b78c42cb /app-emacs | |
parent | app-misc/apidb: adding package (diff) | |
download | guru-316d2cee8734dbc22f0a1a1e5d4debac89c8cbce.tar.gz guru-316d2cee8734dbc22f0a1a1e5d4debac89c8cbce.tar.bz2 guru-316d2cee8734dbc22f0a1a1e5d4debac89c8cbce.zip |
app-emacs/vterm: add new package
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Arjan Adriaanse <arjan@adriaan.se>
Diffstat (limited to 'app-emacs')
-rw-r--r-- | app-emacs/vterm/Manifest | 1 | ||||
-rw-r--r-- | app-emacs/vterm/files/50vterm-gentoo.el | 2 | ||||
-rwxr-xr-x | app-emacs/vterm/files/bashrc | 26 | ||||
-rw-r--r-- | app-emacs/vterm/files/config.fish | 30 | ||||
-rw-r--r-- | app-emacs/vterm/files/zshrc | 25 | ||||
-rw-r--r-- | app-emacs/vterm/metadata.xml | 26 | ||||
-rw-r--r-- | app-emacs/vterm/vterm-20200504.544.ebuild | 61 |
7 files changed, 171 insertions, 0 deletions
diff --git a/app-emacs/vterm/Manifest b/app-emacs/vterm/Manifest new file mode 100644 index 000000000..0fa0a8c1c --- /dev/null +++ b/app-emacs/vterm/Manifest @@ -0,0 +1 @@ +DIST vterm-20200504.544.tar 184320 BLAKE2B 9a705ef3e36b8b1991e9b152b59a40f5d784631ee613056ccedffc85c690c83b0860f900d1494388047b2fec8ef7803adc7c5550b2d210e3cda95ebd8894be5c SHA512 c2971628778e9128efae5c567bd0e9453a8260032d0c220e4348e135e2d2c1af56429eebe613641bd13a148dec53e10c4604dd93a0261f2db74a1bcb8a240ff8 diff --git a/app-emacs/vterm/files/50vterm-gentoo.el b/app-emacs/vterm/files/50vterm-gentoo.el new file mode 100644 index 000000000..a050b7a5d --- /dev/null +++ b/app-emacs/vterm/files/50vterm-gentoo.el @@ -0,0 +1,2 @@ +(add-to-list 'load-path "@SITELISP@") +(load "vterm-autoloads" nil t) diff --git a/app-emacs/vterm/files/bashrc b/app-emacs/vterm/files/bashrc new file mode 100755 index 000000000..bafa9f16e --- /dev/null +++ b/app-emacs/vterm/files/bashrc @@ -0,0 +1,26 @@ +function vterm_printf(){ + if [ -n "$TMUX" ]; then + # Tell tmux to pass the escape sequences through + # (Source: http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1324) + printf "\ePtmux;\e\e]%s\007\e\\" "$1" + elif [ "${TERM%%-*}" = "screen" ]; then + # GNU screen (screen, screen-256color, screen-256color-bce) + printf "\eP\e]%s\007\e\\" "$1" + else + printf "\e]%s\e\\" "$1" + fi +} + +if [[ "$INSIDE_EMACS" = 'vterm' ]]; then + function clear(){ + vterm_printf "51;Evterm-clear-scrollback"; + tput clear; + } +fi + +PROMPT_COMMAND='echo -ne "\033]0;\h:\w\007"' + +vterm_prompt_end(){ + vterm_printf "51;A$(whoami)@$(hostname):$(pwd)" +} +PS1=$PS1'\[$(vterm_prompt_end)\]' diff --git a/app-emacs/vterm/files/config.fish b/app-emacs/vterm/files/config.fish new file mode 100644 index 000000000..ce47d71af --- /dev/null +++ b/app-emacs/vterm/files/config.fish @@ -0,0 +1,30 @@ +function vterm_printf; + if [ -n "$TMUX" ] + # tell tmux to pass the escape sequences through + # (Source: http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1324) + printf "\ePtmux;\e\e]%s\007\e\\" "$argv" + else if string match -q -- "screen*" "$TERM" + # GNU screen (screen, screen-256color, screen-256color-bce) + printf "\eP\e]%s\007\e\\" "$argv" + else + printf "\e]%s\e\\" "$argv" + end +end + +function fish_title + hostname + echo ":" + pwd +end + +function vterm_prompt_end; + vterm_printf '51;A'(whoami)'@'(hostname)':'(pwd) +end +functions -c fish_prompt vterm_old_fish_prompt +function fish_prompt --description 'Write out the prompt; do not replace this. Instead, put this at end of your file.' + # Remove the trailing newline from the original prompt. This is done + # using the string builtin from fish, but to make sure any escape codes + # are correctly interpreted, use %b for printf. + printf "%b" (string join "\n" (vterm_old_fish_prompt)) + vterm_prompt_end +end diff --git a/app-emacs/vterm/files/zshrc b/app-emacs/vterm/files/zshrc new file mode 100644 index 000000000..eb9255ad5 --- /dev/null +++ b/app-emacs/vterm/files/zshrc @@ -0,0 +1,25 @@ +function vterm_printf(){ + if [ -n "$TMUX" ]; then + # Tell tmux to pass the escape sequences through + # (Source: http://permalink.gmane.org/gmane.comp.terminal-emulators.tmux.user/1324) + printf "\ePtmux;\e\e]%s\007\e\\" "$1" + elif [ "${TERM%%-*}" = "screen" ]; then + # GNU screen (screen, screen-256color, screen-256color-bce) + printf "\eP\e]%s\007\e\\" "$1" + else + printf "\e]%s\e\\" "$1" + fi +} + +if [[ "$INSIDE_EMACS" = 'vterm' ]]; then + alias clear='vterm_printf "51;Evterm-clear-scrollback";tput clear' +fi + +autoload -U add-zsh-hook +add-zsh-hook -Uz chpwd (){ print -Pn "\e]2;%m:%2~\a" } + +vterm_prompt_end() { + vterm_printf "51;A$(whoami)@$(hostname):$(pwd)"; +} +setopt PROMPT_SUBST +PROMPT=$PROMPT'%{$(vterm_prompt_end)%}' diff --git a/app-emacs/vterm/metadata.xml b/app-emacs/vterm/metadata.xml new file mode 100644 index 000000000..a9708bd94 --- /dev/null +++ b/app-emacs/vterm/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="person"> + <email>arjan@adriaan.se</email> + <name>Arjan Adriaanse</name> +</maintainer> +<longdescription> + Emacs-libvterm (vterm) is fully-fledged terminal emulator inside GNU + Emacs based on libvterm, a C library. As a result of using compiled + code (instead of elisp), emacs-libvterm is fully capable, fast, and + it can seamlessly handle large outputs. + + This package automatically compiles the needed module and provides + configurations for better integration with some shells. +</longdescription> +<upstream> + <maintainer status="active"> + <email>fuermetz@mailbox.org</email> + <name>Lukas Fürmetz</name> + </maintainer> + <doc>https://github.com/akermu/emacs-libvterm/blob/master/README.md</doc> + <bugs-to>https://github.com/akermu/emacs-libvterm/issues</bugs-to> + <remote-id type="github">akermu/emacs-libvterm</remote-id> +</upstream> +</pkgmetadata> diff --git a/app-emacs/vterm/vterm-20200504.544.ebuild b/app-emacs/vterm/vterm-20200504.544.ebuild new file mode 100644 index 000000000..6de8fb88a --- /dev/null +++ b/app-emacs/vterm/vterm-20200504.544.ebuild @@ -0,0 +1,61 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit elisp cmake + +DESCRIPTION="Emacs libvterm integration" +HOMEPAGE="https://github.com/akermu/emacs-libvterm" +SRC_URI="https://melpa.org/packages/${PN}-${PV}.tar -> ${P}.tar" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + app-editors/emacs[dynamic-loading] + dev-libs/libvterm +" + +ELISP_REMOVE="${PN}-pkg.el" +SITEFILE="50${PN}-gentoo.el" + +src_configure() { + elisp-make-autoload-file + + local mycmakeargs=( "USE_SYSTEM_LIBVTERM=yes" ) + cmake_src_configure +} + +src_compile() { + elisp_src_compile + + cmake_src_compile +} + +src_install() { + elisp_src_install + + dodoc README.md + + # install vterm module + elisp-install ${PN} *.so + + # add shell config files + if has_version app-shells/bash; then + elog "Adding configuration for bash." + exeinto /etc/bash/bashrc.d/ + newexe "${FILESDIR}/bashrc" bash-emacs-vterm.sh + fi + if has_version app-shells/zsh; then + elog "Adding configuration for zsh." + exeinto /etc/profile.d/ + newexe "${FILESDIR}/zshrc" zsh-emacs-vterm.sh + fi + if has_version app-shells/fish; then + elog "Adding configuration for fish." + exeinto /etc/fish/conf.d/ + newexe "${FILESDIR}/config.fish" emacs-vterm.fish + fi +} |