From 3d2738a86358711c46947859e25017e45085a0b1 Mon Sep 17 00:00:00 2001 From: "Irving A.J. Rivas Z." Date: Fri, 14 Feb 2025 19:33:36 -0400 Subject: [PATCH 1/2] Better Alacritty Integration - Set alacritty as the preferred x terminal emulator, so that e.g. Ctrl+Alt+T opens Alacritty - Install the nautilus-python extension and a script that results in adding an "Open Alacritty" option to the Nautilus File Manager context menu --- install/desktop/app-alacritty.sh | 72 ++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/install/desktop/app-alacritty.sh b/install/desktop/app-alacritty.sh index 4957733..e308ff1 100644 --- a/install/desktop/app-alacritty.sh +++ b/install/desktop/app-alacritty.sh @@ -5,3 +5,75 @@ cp ~/.local/share/omakub/configs/alacritty.toml ~/.config/alacritty/alacritty.to cp ~/.local/share/omakub/themes/tokyo-night/alacritty.toml ~/.config/alacritty/theme.toml cp ~/.local/share/omakub/configs/alacritty/fonts/CaskaydiaMono.toml ~/.config/alacritty/font.toml cp ~/.local/share/omakub/configs/alacritty/font-size.toml ~/.config/alacritty/font-size.toml + +# Make alacritty default terminal emulator +sudo update-alternatives --set x-terminal-emulator /usr/bin/alacritty + +# Adding alacritty to nautilus contextual menu requires the python wrapper for the libraries +sudo apt install -y python3-nautilus +mkdir -p ~/.local/share/nautilus-python/extensions/ + +cat > ~/.local/share/nautilus-python/extensions/open-alacritty.py < None: + filename = unquote(file.get_uri()[7:]) + + os.chdir(filename) + os.system("alacritty") + + def menu_activate_cb( + self, + menu: Nautilus.MenuItem, + file: Nautilus.FileInfo, + ) -> None: + self._open_terminal(file) + + def menu_background_activate_cb( + self, + menu: Nautilus.MenuItem, + file: Nautilus.FileInfo, + ) -> None: + self._open_terminal(file) + + def get_file_items( + self, + files: List[Nautilus.FileInfo], + ) -> List[Nautilus.MenuItem]: + if len(files) != 1: + return [] + + file = files[0] + if not file.is_directory() or file.get_uri_scheme() != "file": + return [] + + item = Nautilus.MenuItem( + name="NautilusPython::openterminal_file_item", + label="Open Alacritty", + tip="Open Alacritty In %s" % file.get_name(), + ) + item.connect("activate", self.menu_activate_cb, file) + + return [ + item, + ] + + def get_background_items( + self, + current_folder: Nautilus.FileInfo, + ) -> List[Nautilus.MenuItem]: + item = Nautilus.MenuItem( + name="NautilusPython::openterminal_file_item2", + label="Open Alacritty", + tip="Open Alacritty In %s" % current_folder.get_name(), + ) + item.connect("activate", self.menu_background_activate_cb, current_folder) + + return [ + item, + ] +TECHNICALLYNOTACONFIGSOHEREDOCCEDITIS From 969d3558ee319adb71f3c41be85daf0560a1d84a Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Sat, 1 Mar 2025 18:51:54 +0100 Subject: [PATCH 2/2] Match "Open in Terminal" --- install/desktop/app-alacritty.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/desktop/app-alacritty.sh b/install/desktop/app-alacritty.sh index e308ff1..c6e3a31 100644 --- a/install/desktop/app-alacritty.sh +++ b/install/desktop/app-alacritty.sh @@ -53,7 +53,7 @@ class OpenTerminalExtension(GObject.GObject, Nautilus.MenuProvider): item = Nautilus.MenuItem( name="NautilusPython::openterminal_file_item", - label="Open Alacritty", + label="Open in Alacritty", tip="Open Alacritty In %s" % file.get_name(), ) item.connect("activate", self.menu_activate_cb, file) @@ -68,7 +68,7 @@ class OpenTerminalExtension(GObject.GObject, Nautilus.MenuProvider): ) -> List[Nautilus.MenuItem]: item = Nautilus.MenuItem( name="NautilusPython::openterminal_file_item2", - label="Open Alacritty", + label="Open in Alacritty", tip="Open Alacritty In %s" % current_folder.get_name(), ) item.connect("activate", self.menu_background_activate_cb, current_folder)