Last active
May 29, 2022 17:18
-
-
Save aunetx/f93fd4c2287d4670173fda747cb72623 to your computer and use it in GitHub Desktop.
A nautilus extension to open kitty in the current directory, instead of gnome-terminal.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# placed in ~/.local/share/nautilus-python/extensions/open-kitty.py | |
# you will need the package nautilus-python on fedora, or python-nautilus on ubuntu... | |
# french version | |
# translate and enjoy | |
import os | |
try: | |
from urllib import unquote | |
except ImportError: | |
from urllib.parse import unquote | |
import gi | |
gi.require_version('GConf', '2.0') | |
from gi.repository import Nautilus, GObject, GConf | |
class OpenTerminalExtension(Nautilus.MenuProvider, GObject.GObject): | |
def __init__(self): | |
self.client = GConf.Client.get_default() | |
def _open_terminal(self, file): | |
filename = unquote(file.get_uri()[7:]) | |
os.chdir(filename) | |
os.system('kitty --detach') | |
def menu_activate_cb(self, menu, file): | |
self._open_terminal(file) | |
def menu_background_activate_cb(self, menu, file): | |
self._open_terminal(file) | |
def get_file_items(self, window, files): | |
if len(files) != 1: | |
return | |
file = files[0] | |
if not file.is_directory() or file.get_uri_scheme() != 'file': | |
return | |
item = Nautilus.MenuItem(name='KittyTerminal::open_terminal_for_dir', | |
# TIPs: translate sentences here... | |
label='Ouvrir dans un terminal' , # 'Open in a terminal' | |
tip='Ouvrir un terminal dans %s' % file.get_name()) # 'Open a terminal in %s' | |
item.connect('activate', self.menu_activate_cb, file) | |
return item, | |
def get_background_items(self, window, file): | |
item = Nautilus.MenuItem(name='KittyTerminal::open_terminal_current_dir', | |
# TIPs: ...and here! | |
label='Ouvrir un terminal' , # 'Open a terminal' | |
tip='Ouvrir un terminal dans %s' % file.get_name()) # 'Open a terminal in %s' | |
item.connect('activate', self.menu_background_activate_cb, file) | |
return item, |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Yeah, I actually placed it in user's local dir, but did not update it here :) thanks a lot