From 278de2d7f69898b07bdd69edba7d84f9ddf2acab Mon Sep 17 00:00:00 2001 From: Gilles Castel <66gilles99@gmail.com> Date: Fri, 8 Mar 2019 14:16:01 +0100 Subject: Initial commit --- vim.py | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 vim.py (limited to 'vim.py') diff --git a/vim.py b/vim.py new file mode 100644 index 0000000..31d5d36 --- /dev/null +++ b/vim.py @@ -0,0 +1,76 @@ +import os +import tempfile +import subprocess +from constants import TARGET +from clipboard import copy +from press import press +from evdev import ecodes + +def open_vim(compile_latex): + f = tempfile.NamedTemporaryFile(mode='w+', delete=False) + + f.write('$$') + f.close() + + subprocess.run([ + 'urxvt', + '-fn', 'xft:Iosevka Term:pixelsize=24', + '-geometry', '60x5', + '-name', 'popup-bottom-center', + '-e', "vim", + "-u", "~/.minimal-tex-vimrc", + f"{f.name}", + ]) + + latex = "" + with open(f.name, 'r') as g: + latex = g.read().strip() + + os.remove(f.name) + + if latex != '$$': + if not compile_latex: + svg = f""" + + {latex} + """ + copy(svg, target=TARGET) + else: + m = tempfile.NamedTemporaryFile(mode='w+', delete=False) + m.write(r""" + \documentclass[12pt,border=12pt]{standalone} + + \usepackage[utf8]{inputenc} + \usepackage[T1]{fontenc} + \usepackage{textcomp} + \usepackage[dutch]{babel} + \usepackage{amsmath, amssymb} + \newcommand{\R}{\mathbb R} + + \begin{document} + """ + latex + r"""\end{document}""") + m.close() + + working_directory = tempfile.gettempdir() + subprocess.run( + ['pdflatex', m.name], + cwd=working_directory, + stdout=subprocess.DEVNULL, + stderr=subprocess.DEVNULL + ) + + subprocess.run( + ['pdf2svg', f'{m.name}.pdf', f'{m.name}.svg'], + cwd=working_directory + ) + + with open(f'{m.name}.svg') as svg: + subprocess.run( + ['xclip', '-selection', 'c', '-target', TARGET], + stdin=svg + ) + + press(ecodes.KEY_V, [ecodes.KEY_LEFTCTRL]) + press(ecodes.KEY_ESC) -- cgit v1.2.3