All Projects → rliang → nvim-pygtk3

rliang / nvim-pygtk3

Licence: MIT license
PyGTK3 frontend to Neovim with some visual GUI elements.

Programming Languages

python
139335 projects - #7 most used programming language
Vim Script
2826 projects

Projects that are alternatives of or similar to nvim-pygtk3

Drill
Search files without indexing, but clever crawling
Stars: ✭ 224 (+348%)
Mutual labels:  gtk, gtk3
gftp
gFTP is a free multithreaded file transfer client for *NIX based machines. 56 language translations available.
Stars: ✭ 81 (+62%)
Mutual labels:  gtk, gtk3
Granite
Library that extends GTK with common widgets and utilities
Stars: ✭ 164 (+228%)
Mutual labels:  gtk, gtk3
Galacritty
WIP GTK terminal emulator based on Alacritty
Stars: ✭ 136 (+172%)
Mutual labels:  gtk, gtk3
Paperwork
Personal document manager (Linux/Windows) -- Moved to Gnome's Gitlab
Stars: ✭ 2,392 (+4684%)
Mutual labels:  gtk, gtk3
Gintro
High level GObject-Introspection based GTK3/GTK4 bindings for Nim language
Stars: ✭ 141 (+182%)
Mutual labels:  gtk, gtk3
Awesome Gtk
List of awesome GTK+ (gtk3) applications
Stars: ✭ 174 (+248%)
Mutual labels:  gtk, gtk3
Glide
Linux/macOS media player based on GStreamer and GTK+
Stars: ✭ 123 (+146%)
Mutual labels:  gtk, gtk3
GabTag
A gtk linux application to handle audio tags 🎵
Stars: ✭ 34 (-32%)
Mutual labels:  gtk, gtk3
Files
File browser designed for elementary OS
Stars: ✭ 187 (+274%)
Mutual labels:  gtk, gtk3
Ephemeral
A private-by-default, always-incognito browser for elementary OS
Stars: ✭ 133 (+166%)
Mutual labels:  gtk, gtk3
Nwg Launchers
GTK-based launchers: application grid, button bar, dmenu for sway and other window managers
Stars: ✭ 211 (+322%)
Mutual labels:  gtk, gtk3
Mail
Mail app designed for elementary OS
Stars: ✭ 130 (+160%)
Mutual labels:  gtk, gtk3
Clamtk
An easy to use, light-weight, on-demand virus scanner for Linux systems
Stars: ✭ 151 (+202%)
Mutual labels:  gtk, gtk3
Byte
A Music Player designed for elementary OS
Stars: ✭ 128 (+156%)
Mutual labels:  gtk, gtk3
Gala
Gala Window Manager
Stars: ✭ 173 (+246%)
Mutual labels:  gtk, gtk3
Dino
Modern XMPP ("Jabber") Chat Client using GTK+/Vala
Stars: ✭ 1,637 (+3174%)
Mutual labels:  gtk, gtk3
Gsimplecal
Simple and lightweight GTK calendar (BSD license)
Stars: ✭ 121 (+142%)
Mutual labels:  gtk, gtk3
Swiftgtk
A Swift wrapper around gtk-3.x and gtk-4.x that is largely auto-generated from gobject-introspection
Stars: ✭ 180 (+260%)
Mutual labels:  gtk, gtk3
Srain
Modern IRC client written in GTK
Stars: ✭ 197 (+294%)
Mutual labels:  gtk, gtk3

nvim-pygtk3

PyGTK3 frontend to Neovim with some visual GUI elements.

  • Provides GTK's clipboard (no need for xclip/xsel)
  • Buffers on header bar
  • GUI Tabs
  • Overlay scrollbars
  • Applies GTK's light/dark themes according to &bg
  • Applies font from :GuiFont, or from GSettings' org.gnome.desktop.interface:monospace-font-name
  • Customizable with Python scripts

Preview

Installation

Requirements:

  • python 3.6+
  • python-setuptools (make)
  • python-neovim
  • python-gobject
  • vte3

Per-user:

$ python setup.py install --user --root=/

System-wide:

$ sudo python setup.py install --root=/

Python scripts

Scripts in $XDG_CONFIG_HOME/nvim_pygtk3/*.py are exec'd at startup, exposing the following globals:

  • connect: Utility wrapper to connect GObject signals.
  • window: The GTK top-level window. Docs
    • window.terminal: The VTE terminal that hosts neovim. Docs
    • window.switcher: The GtkStackSwitcher that displays buffers. Docs
    • window.notebook: The GtkNotebook that displays tabs. Docs
    • window.viewport: The GtkViewport that holds the terminal. Docs

The window object has the following additional signals:

  • nvim-setup: Emitted when neovim has started.
  • nvim-notify: Emitted when neovim has notified the GUI.
  • nvim-request: Emitted when neovim has requested the GUI.

Example script ~/.config/nvim_pygtk3/a.py:

@connect(window, 'nvim-setup')
def a(nvim):
    nvim.command(f'call rpcnotify({nvim.channel_id}, "hello", "world")')

@connect(window, 'nvim-notify')
def b(nvim, event, args):
    if event == 'hello':
        print('hello', args)

@connect(window.terminal, 'cursor-moved')
def c():
    print('cursor moved!')
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].