Codeberg

summaryrefslogtreecommitdiff
path: root/README.md
blob: 91a9444656a2f49b9ad4358b1ef128db5d498921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# Thunar "Copy Filename" Custom Action

A simple Thunar Custom Action that adds a "Copy Filename" option to the right-click menu, allowing you to copy the full filename and extension of one or more selected files.

This implementation uses a very simple Python script (~600 bytes) with GTK3 to handle the clipboard, making it compatible with systems that don't have `xclip` or `xsel` installed.

## Where is Thunar located?

- **Binary:** The Thunar executable is usually at `/usr/bin/thunar`.
- **Configuration:** Custom actions are stored in your user profile at `~/.config/Thunar/uca.xml`.
- **System Actions:** System-wide defaults are located at `/etc/xdg/Thunar/uca.xml`.

This tool installs to your **user configuration** (`~/.config/Thunar/uca.xml`), which is where other custom actions are stored. To add other custom actions, you can either edit the XML or head to **Edit** --> **Configure custom actions**.

## Installation Guide (Automatic)

The easiest way to install or update the action is to use the provided `install.sh` script:

```bash
cd ~/path-to-program
chmod +x install.sh
./install.sh
```

## Installation Guide (Manual)

### 1. Prerequisites
Ensure you have Python 3 and the GObject Introspection libraries for GTK3 installed. On most Debian/Ubuntu-based systems, you can install them with:

```bash
sudo apt update
sudo apt install python3 python3-gi gir1.2-gtk-3.0
```

These dependencies are usually installed by default on your system.

### 2. Download/Place the Script
Create a directory for the script and place `copy_filename.py` inside it.

```bash
mkdir -p ~/.config/Thunar/
# Move the script to this directory
```

### 3. Make the Script Executable
Ensure the script has execution permissions:

```bash
chmod +x ~/.config/Thunar/copy_filename.py
```

### 4. Add the Custom Action to Thunar (Manual)
1. Open **Thunar**.
2. Go to **Edit** -> **Configure custom actions...**.
3. Click the **+** (plus) button to add a new action.
4. Fill in the **Basic** tab:
   - **Name:** Copy Filename
   - **Description:** Copy the filename and extension to clipboard
   - **Command:** `/home/your-username/.config/Thunar/copy_filename.py %N`
     *(Note: Replace `your-username` with your actual username)*
   - **Icon:** `edit-copy` (or any icon you prefer)
5. Fill in the **Appearance Conditions** tab:
   - **File Pattern:** `*`
   - Check all the boxes (Directories, Audio files, Image files, etc.) to ensure it appears everywhere.
6. Click **OK** and then **Close**.

### 5. Restart Thunar
You have to restart Thunar to get the action to appear:

```bash
thunar -q
```

## How It Works
The `copy_filename.py` script takes the filenames passed by Thunar (via `%N`), joins them with newlines if multiple files are selected, and uses `Gtk.Clipboard` to store the text in the system clipboard.