Zum Inhalt springen

Imv: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
KKeine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
{{SEITENTITEL:imv}}{{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}}
{{SEITENTITEL:imv}}{{inuse|[[Benutzer:Dirk|Dirk]] ([[Benutzer Diskussion:Dirk|Diskussion]])}}
imv ist ein sehr minimalistisch gehaltener Bildbetrachter, der sich konzeptionell primär über die [[:kategorie:Shell|Befehlszeile]] bedienen lässt, und sich als Tool im Umfeld von [[:Kategorie:Fenstermanager|Tiling-WMs]] positioniert, aber selbstverständlich überall eingesetzt werden kann.
imv ist ein sehr minimalistisch gehaltener Bildbetrachter, der sich konzeptionell primär über die [[:kategorie:Shell|Befehlszeile]] bedienen lässt, und sich als Tool im Umfeld von Tiling-WMs positioniert, aber selbstverständlich überall eingesetzt werden kann.


{{installation|imv}}
{{installation|imv}}

Version vom 18. Februar 2025, 15:41 Uhr

„Imv“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.


imv ist ein sehr minimalistisch gehaltener Bildbetrachter, der sich konzeptionell primär über die Befehlszeile bedienen lässt, und sich als Tool im Umfeld von Tiling-WMs positioniert, aber selbstverständlich überall eingesetzt werden kann.

Installation

Das Programm ist als imv in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S imv

Mittels imv wir der Bildbetrachter gestartet. Optional kann man mit imv-wayland bzw. imv-x11 explizit die gewünschte Version starten. imv-msg dient zur IPC-Steuerung. Mittels imv-dir kann man imv im Verzeichnismodus starten.

Verwendung und Konfiguration

Beim starten prüft imv in dieser Reihenfolge ab, ob die Datei existiert, und lädt bei vorhandensein aus dieser die Konfiguration.

  • $XDG_CONFIG_HOME/imv/config
  • $HOME/.config/imv/config
  • $HOME/.imv_config
  • $HOME/.imv/config
  • /usr/local/etc/imv_config
  • /etc/imv_config

Zudem kann imv beim Starten mittels des beliebig oft wiederholbaren Parameters -c in der angegebenen Reihenfolge weitere Konfigurationsoptionen („Commands“) übergeben werden, die nach dem Laden der gefundenen Konfigurationsdatei angewendet werden.

Fensterdekorationen anzeigen

Aufgrund seiner Positionierung im Umfeld von Tiling-WMs werden die Fensterdekorationen von imv standardmäßig nicht angezeigt. Dies liegt darin begründet, dass die meisten Tiling-WMs entweder genrell keine Fensterdekorationen anzeigen, oder aber selbständig eigene Lösungen für die Fensterdekorationen verwenden, und die Konfiguration von Programmen diesbezüglich sowieso ignorieren.

Will man Fensterdekorationen verwenden, so muss man diese explizit in der Konfiguration des Compositors oder Fenstermanagers aktivieren. imv lässt sich sowohl unter Wayland als auch unter X über die ID, bzw. Fensterklasse imv konfigurieren.

Bei Verwendung von labwc (Wayland) kann man zum Beispiel diese Fensterregel benutzen. Dadurch wird für alle imv-Fenster der Status der Fensterdekoration umgeschaltet.

<windowrules>
  <windowRule identifier="imv">
    <action name="ToggleDecorations" />
  </windowRule>
</windowrules>

Bei Nutzung von Openbox (X11) kann man die Dekoration ebenfalls umschalten. Auch hier gilt dies dann für alle Fenster.

<application class="imv">
  <decor>yes</decor>
</application>

Es sei auf die Konfiguration der Compositoren oder Fenstermanager verwiesen.

Tastenkombinationen

imv verfügt standardmäßig über diverse Tastenkombinationen, die sich grob an den Vim-Tastenkombinationen orientieren.

  • G, G springt bei Ansicht merherer Bilder zum ersten Bild
  • ⇧ Shift + G springt bei Ansicht merherer Bilder zum letzten Bild
  • X schließt das Aktuelle Bild (aber nicht imv)
  • Q schließt imv und damit alle geöffneten Bilder
  • / zoomt in das Bild hinein, bzw. wieder heraus
  • H/J/K/L verschiebt ein Bild in die jeweilige Richtung
  •  :  aktiviert die Befehlseingabezeile

Viele weitere Tastenkombinationen lassen sich in der Manpage nachlesen.

In der Konfiguration kann man im Abschnitt [binds] eigene Tastenkombinationen anlegen.

~/.config/imv/config
[binds]
<KP_Add> = zoom 10
<KP_Substract> = zoom -10

Dies fügt Zoom in 10-Prozent-Schritten über die Tasten + und auf dem Nummernblock hinzu.

Will man die Standardtastenkombinationen nicht benutzen, so kann man dies ebenfalls konfigurieren

~/.config/imv/config
[options]
suppress_default_binds = true

Dadurch werden die meisten Standard-Tasten(kombinationen) deaktiviert.

Scripts und Programme ausführen

Scripts oder generell Programme lassen sich innerhalb von imv mittels des Befehls exec ausführen. Hierzu kann man entweder die Befehlseingabezeile mittels  :  öffnen, oder im Abschnitt [binds] eine Tastenkombination festlegen.

Sowohl die Scripts, als auch die Programmaufrufe haben dabei Zugriff auf diverse von imv erstellte Umgebungsvariablen.

  • $imv_current_file beinhaltet den Pfad der aktuell angezeigten Bilddatei
  • $imv_pid ist die Prozess-ID der aktuellen imv-Instanz (für die IPC-Steuerung relevant)
  • $imv_width und $imv_height beschreiben die Dimensionen des Bildes in Pixeln
  • $imv_file_count ist die Anzahl der aktuell in dieser Instanz geladenen Bilder

In der Manpage sind noch einige weitere Umgebungsvariablen zu finden.

Beispielscript

Dieses Beispielscript benutzt einige der verfügbaren Umgebungsvariablen, um das aktuelle Bild mittels waybg als Hintergrundbild zu setzen, es zuvor aber noch in ein Wallpaper-Verzeichnis zu kopieren.

~/wp.sh
#!/bin/sh
_name=$(basename "${imv_current_file}")
_wpdir="${HOME}/.wallpapers"

echo "Benutze ${_name} (Bild ${imv_current_index} von ${imv_file_count}) als Hintergrundbild"

cp "${imv_current_file}" "${_wpdir}/${_name}"
echo " -> ${_name} ins Wallpaper-Verzeichnis kopiert"

echo " -> Führe swaybg zum setzen aus"
$(swaybg -m fill -i "${_wpdir}/${_name}" & disown) &

Wenn man das Script nun zum Beispiel aus imv-dir heraus ausführt, mit dem man sich die Bilder eines Verzeichnisses ansieht, werden die per echo ausgegebenen Texte angezeigt, und die anderen Befehle ausgeführt.

imv-dir /home/user/bildersammlung
Setze mein_bild.png (Bild 2 von 6) als Hintergrundbild
 -> mein_bild.png ins Wallpaper-Verzeichnis kopiert
 -> Führe swaybg zum setzen aus
 ... - [swaybg-1.2.1/main.c:282] Found config * for output ...

Im Beispiel wird mein_bild.png, das zweite von sechs Bildern, also erst in das im Script konfigurierte Verzeichnis kopiert, und dann swaybg in einer Subshell in den Hintergrund verfrachtet, damit imv sich weiter bedienen lässt und das Wallpaper auch nach dem beenden bestehen bleibt.

Fernsteuerung mittels IPC

Für die IPC-Steuerung wird beim starten einer imv-Instanz ein Socket unter $XDG_RUNTIME_DIR/imv-$PID.sock erstellt. Diesr Socket kann direkt verwendet werden. Einfacher ist es allerdings, das mitgelieferte Tool imv-msg zu verwenden, das die Benutzung des Sockets vereinfacht, da man lediglich die Prozess-ID (PID) der imv-Instanz angeben muss, die man „fernsteuern“ möchte. Im Beispiel wird 11361 als PID einer imv-dir-Instanz angenommen.

imv-msg 11361 overlay                      # Befehl
imv-msg 11361 background checks            # Option setzen
imv-msg 11361 exec ./wp.sh                 # Script ausführen
imv-msg 11361 exec 'echo $imv_file_count'  # Programm ausführen
imv-msg 11361 quit                         # Befehl

Die Bedienung entspricht dem, was auch über die eingebaute Befehlszeile möglich ist. Im Beispiel wird zuerst ein einfacher Befehl (das Textoverlay mit den Bildinformationen umschalten) ausgeführt, dann wird eine Option gesetzt (Hintergrund von Transparenten Bildern auf Schachbrettmuster umschalten), dann wird mittels exec ein Script ausgeführt. Der Programmaufruf von echo gibt die Anzahl der aktuell geladenen Bilder nicht an die Shell zurück, aus der man imv-msg aufgerufen hat, sondern an die, in der imv-dir läuft. Sum Schluss imv noch sauber beendet.

Wenn man imv-msg innerhalb eines aus imv heraus aufgerufenen Scripts verwenden möchte, so geht dies mittels imv-msg $imv_pid ..., ohne dass man selbst erst die PID ermitteln muss.

Weblinks