Bash mlocate und rofi, linux

PvcZ

Cadet 4th Year
Registriert
März 2020
Beiträge
88
Hallo,

ich bin gerade dabei von Gnome zu Spectrwm zu siedeln und versuche meinen Workflow zu übernehmen.

Eine wichtige Funktion für mich ist die Dashboard-Suche von Gnome. Eine alternative habe ich in rofi gefunden - aktivierbar mit einem Klick auf der Tastatur kann ich lostippen und meine Anwendungen starten. Bei Gnome wird dies auch noch mit einer Dateisuche verbunden. Die Dateisuche ist nativ nicht in Rofi integriert.

Ein Skript habe ich aber gefunden, welches genau dies tut:
Abhängigkeiten: mlocate, rofi
Code:
locate home media | rofi -threads 0 -width 100 -dmenu -i -p "locate:" | xargs -r -0 xdg-open
Das Problem bei dem Skript ist, dass es eine eigene Instanz öffnet und nicht wie weiter unten zu sehen, die Funktion in die bestehende Instanz mit einem zusätzlichen Tabs erweitert

Ich bin absoluter Laie wenn es zu Bash kommt. Über Rofis Github-Site habe ich bereits erfahren wie man Scripts von Rofi aus einbindet:

Code:
rofi  -show find -modi find:~/.local/share/rofi/finder.sh

Ein Beispiel einer anderen Suche, welche aber richtig implementiert wurde verlinke hier euch: https://github.com/davatorium/rofi-scripts/blob/master/rofi-finder/finder.sh
Problem bei der Suche ist definitiv die Geschwindigkeit. mlocate ist da um einiges schneller :)

Hoffe auch Hinweise wie man hier weiterkommt :o
Ergänzung ()

Nach meiner Suche, wie man rofi Scripts erstellt bin ich auf folgende Reddit Antwort gestoßen:


It's not well documented but very simple if you know how to do it. Rofi calls the script once and every line of output the script produces is displayed by rofi as one list entry. After you selected an entry rofi calls the script again and passes the list entry you selected as argument to the script. A untested rough version could look like this:
Code:
#!/bin/bash
if [[ -z "$@" ]]; then
find $HOME/bin -type f
else
bash -c $@
fi

rofi -modi bin:run-from-bin.sh


Bringt mich leider auch nicht wirklich weiter, scheinbar übersteigt dies mein Bash bei weitem x(
 
Zuletzt bearbeitet:
PvcZ schrieb:
OK, kannte ich bisher nicht, benutze i3.

Was hast Du eigentlich vor?
Willst Du nur Anwendungen starten, oder mehr?
Ergänzung ()

locate indiziert Dein Dateisystem. Ich denke man braucht das nicht wenn man ein b-tree Dateisystem verwendet, wie z.B. xfs oder btrfs da die Suche dann viel schneller geht.
Ergänzung ()

Generell Suche: man find
Da gibt es sogar Bücher dazu.

rofi war mir zu langsam. Ich verwende j4-dmenu-desktop
 
Zuletzt bearbeitet von einem Moderator:
Hi @cgs,
also ich möchte Dateien UND Applikationen suchen und starten können.
Beispiel: "gimp" liefert mir die Anwendung Gimp, eine Textdatei mit dem Namen Gimp_Anleitung_7 und einen Ordner mit dem Namen Gimp_Tutorials.

Das oben genannte Beispiel wäre der Idealfall. Der Einfachheit halber dachte ich ich trenne die zwei, wenn beides in einem geht - noch besser. In Rofi wären es somit zwei Reiter: einmal "drun" und mein "costumsearch" Tab.

Ich hoffe es ist verständlich :) (Leider etwas komisch zu erklären.)

Dein j4-dmenu-desktop sieht super aus, aber wie ich dem entnehme kann er meine Dateinen/Ordner nicht finden....

Ich benutze übrigens Ext4 (nicht mehr empfehlenswert?)
Ergänzung ()

PS: schöner Vergleich: https://acampbell.uk/wp/2019/06/15/i3-and-spectrwm-compared/
 
Ja j4 sucht nach /usr/share/applications/*.desktop oder so ähnlich

find <pfad> -iname "gimp*" findet alles gimp

Ich habe ~/bin im Pfad, und habe einige scripts für öft benötigte Dinge. j4 nehme ich nur Apps zu starten. Oft nehme ich einfach des Terminal.

ext4 ist weiterhin empfehlenswert. Mir ist nur zufällig beim experimentieren aufgefallen, daß xfs auf hdds Dateien viel schneller findet, als ext4. Bei ssd ist es aber wieder egal.

Vor i3 hatte ich awesome, aber mir waren die tiling modes zu kompliziert, d.h. ich konnte mich nicht entscheiden welchen ich verwenden will. i3 hat 10 Desktops, und ich verwende fast nur noch Vollscreen oder 2 Apps nebeneinander. Umschalten und Verschieben der Fenster geht auch ganz einfach. Aber jeder muß selbst ausprobieren was einem am Besten gefällt.
 
Eigentlich müsste ich doch das Skript von j4 nur so anpassen, dass er nach allen Dateien sucht und nicht nur .desktop Files.

Naja aber Source Code anpassen und kompilieren - das ist leider zu hoch gesteckt für meine Kenntnisse.

Ich scheitere ja schon an dem Bash scripting weiter oben...
 
Zurück
Oben