From 053761b58c70dc8037887341f03f9c575cbc2660 Mon Sep 17 00:00:00 2001 From: laki Date: Sat, 31 Jan 2026 17:44:21 +0000 Subject: Initial commit for thunar-copy-button --- copy_filename.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 copy_filename.py (limited to 'copy_filename.py') diff --git a/copy_filename.py b/copy_filename.py new file mode 100755 index 0000000..15265e5 --- /dev/null +++ b/copy_filename.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python3 +# +# Copy Filename Thunar Plugin +# Copyright (C) 2026 laki +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk, Gdk + +def copy_to_clipboard(text): + clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD) + clipboard.set_text(text, -1) + clipboard.store() + # Briefly wait to ensure the clipboard is set + Gtk.main_iteration_do(False) + +if __name__ == "__main__": + if len(sys.argv) < 2: + sys.exit(0) + + # sys.argv[1:] contains the filenames + # Thunar's %N passess them as separate arguments + filenames = "\n".join(sys.argv[1:]) + copy_to_clipboard(filenames) -- cgit v1.2.3-70-g09d2