diff options
Diffstat (limited to 'copy_filename.py')
| -rwxr-xr-x | copy_filename.py | 38 |
1 files changed, 38 insertions, 0 deletions
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 <https://www.gnu.org/licenses/>. + +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) |
