# Kontextmenü

# pendant zu Senden an Desktop hinzufügen

Beschreibung:

Es gibt Situationen, da möchte man gern eine Verknüpfung von einer Datei auf dem Schreibtisch haben.  
  
Lösung:

Abhängigkeiten installieren.  
Gedit ein Texteditor mit Zeilennummern vorran.

```
apt install gedit
```

Nun die Datei für die Action erstellen. Actions das sind die Kotextmenüeinträge, diese werden mittels Action Dateien  
im Verzeichnis `~/.local/share/nemo/actions/` erstellt. Das ist das Verzeichnis für User Actions.  
Damit sie als Action Dateien erkannt werden, haben sie die Endung `.nemo_action`

<div id="bkmrk-hinweis%3A-wenn-man-gl" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Wenn man globale Actions möchte, was wir hier nicht wollen, denn jeder hat ja ein anderes User Verzeichnis dann känmen die Actions in dieses Verzeichnis : /usr/share/nemo/actions/ und die Skripte in /usr/share/nemo/scripts/</div>```
gedit ~/.local/share/nemo/actions/create-desktop-link.nemo_action
```

Nun den Inhalt einfügen. Im   
Exec bereich darauf achten das das Home Verzeichnis richtig ist, denn ~ funktioniert hier nicht

```
[Nemo Action]
Name=Erstelle Verknüpfung auf Desktop
Comment=Erstellt eine Verknüpfung auf dem Desktop zur gewählten Datei
Exec=/home/duffy/.local/share/nemo/scripts/create_desktop_link.sh %F
Icon-Name=emblem-symbolic-link
Selection=s
Extensions=any;
```

---

Nun das Script was von unserem Kontextmenü aufgerufen wird erstellen

```
gedit ~/.local/share/nemo/scripts/create_desktop_link.sh
```

Das Zielverzeichnis im Script anpassen. Bei mir ist es Schreibtisch weil ich Linux Mint in Deutsch installiert habe, könnte aber auch Desktop heißen. Oder Ihr wollt ein ganz anderes Verzeichnis. Dieses dann anpassen.

Inhalt

```
#!/bin/bash

for file in "$@"
do
    ln -s "$file" ~/Schreibtisch/
done
```

Das Script ausführbar machen

```
chmod +x ~/.local/share/nemo/scripts/create_desktop_link.sh
```

Danach nemo im terminal neustartenwird zwar der Eintrag angezeigt, aber nicht ausgeführt

```
nemo -q
```

Nun sieht das ganze so aus:

[![Menü_006.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-07/scaled-1680-/CmGP5fbhOgAZtzD0-menu-006.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-07/CmGP5fbhOgAZtzD0-menu-006.png)

Nun die erstellte Verknüpfung

[![Auswahl_1023.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-07/scaled-1680-/LGzAIkqwaCkn1lQW-auswahl-1023.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-07/LGzAIkqwaCkn1lQW-auswahl-1023.png)

# senden per Email Eintrag

### Beschreibung:

In den neueren Versionen von Linux MInt, fehlt der Eintrag senden per Email.  
Wir können uns diesen Eintrag aber einfach selbst wieder bauen.  
Warum der allerdings weg ist, weiß ich nicht.

### Installation:

eine neue Datei mit dem Namen

```
send-email.nemo_action
```

im Benutzerverzeichnis unter

```
/home/DEIN_BENUTZERNAME/.local/share/nemo/actions/
```

Sollte das Verzeichnis actions nicht existieren erstellen wir diesen.  
proforma einfach das Verzeichnis erstellen lassen,wenn es das schon gibt, gibts halt ein Fehler ;-)

```
mkdir /home/DEIN_BENUTZERNAME/.local/share/nemo/actions/
```

dann

```
nano /home/DEIN_BENUTZERNAME/.local/share/nemo/actions/send-email.nemo_action
```

Inhalt

```
[Nemo Action]
Name=Senden per E-Mail
Comment=Datei mit Evolution senden
Exec=Exec=/home/DEIN_BENUTZERNAME/.local/bin/send_email.sh %F
Icon-Name=mail-send
Selection=Any
Extensions=nodirs;

```

Script ausführbar machen

```
chmod +x /home/DEIN_BENUTZERNAME/.local/share/nemo/actions/send-email.nemo_action
```

Was macht der Eintrag:

Diese Konfiguration erstellt einen Eintrag „Senden per E-Mail“, der unser Script send Mail (wird gleich erstellt) öffnet und die ausgewählte Datei als Anhang hinzufügt.

`Selection=Any` erlaubt die Auswahl von einer oder mehreren Dateien,   
aber keine Verzeichnisse (`nodirs`).

Das Sendmail Script

```
nano /home/DEIN_BENUTZERNAME/.local/bin/send_email.sh
```

Inhalt

```
#!/bin/bash

# Starten der mailto-URI mit den angehängten Dateien
uri="mailto:?body=Siehe Anhang&subject=Dateianhang"

# Hinzufügen jeder Datei als Anhang
for file in "$@"
do
    uri="${uri}&attach=$(realpath "$file")"
done

# Starte Evolution mit der zusammengesetzten URI
evolution "$uri"


```

Wenn man es Ohne Subject unjhd Emailtext haben möchte:

```
#!/bin/bash

# Starten der mailto-URI mit den angehängten Dateien
uri="mailto:?subject="

# Hinzufügen jeder Datei als Anhang
for file in "$@"
do
    uri="${uri}&attach=$(realpath "$file")"
done

# Starte Evolution mit der zusammengesetzten URI
evolution "$uri"

```

Dann ausführbar machen

```
chmod +x /home/DEIN_BENUTZERNAME/.local/bin/send_email.sh
```

Fertig