Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Tip: een handige zelf-bouw bestandszoeker en starter  (gelezen 2684 keer)

Offline vanadium

  • Lid
Tip: een handige zelf-bouw bestandszoeker en starter
« Gepost op: 2018/03/04, 16:19:47 »
Met het handige en lichte menu "Rofi" bouw je zelf een handige starter om zeer efficiënt bestanden te zoeken en te openen. Met een druk op een sneltoets, bijvoorbeeld Ctrl+spatie, verschijnt het rofi menu.

Je tikt delen van de bestandsnaam in, en de keuzes beperken zich tot alleen de bestanden die aan je criterium voldoen. Je kiest een bestand met de pijltjestoets, of drukt meteen op de <enter> toets om het opgelichte bestand in de bijhorende toepassing op te starten. Handig is dat rofi in de ganse padnaam zoekt, en dat de volgorde van je zoektermen geen rol speelt. Je kan zo systematisch je lijst inkorten.

Dat opzetten houdt een beetje knutselwerk op zondagnamiddag in. rofi is flexibel en wordt heel veel gebruikt door linux gebruikers die graag zelf hun systeem volledig naar hun hand willen zetten, en daarom enkel lichte windowmanagers gebruiken zoals i3wm en openbox. Het scheelt al veel dat je nu zelf het "hoe" niet meer moet opzoeken  =D.

1) Installatie: je hebt (enkel) rofi nodig. Installeer het via synaptic of via de terminal
sudo apt install rofi

2) Zoekfunctie voor rofi aanmaken:We maken onze eigen "modus" voor rofi, een script dat rofi in staat stelt een lijst met je bestanden te tonen. Dat tekstbestand mag in principe eerder waar staan, maar willen we het netjes plaatsen, dan kan dat bijvoorbeeld in een folder .local/share/rofi.

Open je favoriete texteditor (bijvoorbeeld nautilus):
gedit ~/.local/share/rofi/findfiles.sh

en plak daarin onderstaand script
#!/bin/bash
DOCUMENTS=Documenten  # Vervang "Documenten" door "Documents" als je op een Engelstalige Ubuntu werkt
CACHED=Y              # Vervang Y door N als je wil dat de bestandslijst telkens aangemaakt wordt bij opstart - vertraagt de werking

if [[ -z "$@" ]]; then
    if [ $CACHED == N ]; then
    find ~/$DOCUMENTS -iname '*' -type f | sed "s|^$HOME/$DOCUMENTS/||" | grep -v -e '/\.' -e '~$' -e '\.bk$' -e '\.bak$'
    else
        cat ~/.local/share/rofi/findfiles.cache
    fi
else
    coproc ( xdg-open "$HOME"/$DOCUMENTS/"$@" )
    exec 1>&-
    exit;
fi

# Start rofi op met
# rofi -show find -modi find:~/.local/share/rofi/findfiles.sh
# Om via Ctrl+Tab te kunnen schakelen naar een programmamenu:
# rofi -modi drun,find:~/.local/share/rofi/findfiles.sh -show find
#
# Geïnspireerd op rofi-finder, https://github.com/carnager/rofi-scripts/tree/master/rofi-finder. Dat script begint met een leeg scherm,
# laat de gebruiker een zoekterm ingeven, en gebruikt dan find om de gezochte bestanden te tonen. Mijn aangepaste script
# toont rofi met alle bestanden geladen, zodat je zoektermen de lijst steeds meer inperken. Vlugger en handiger!
#
# Vanadium van Ubuntu nl.

Maak in de tweede en derde lijn indien nodig aanpassingen. Op een Nederlandstalig systeem heb je de folder Documenten. Wijzig naar "Documents" op een Engelstalig systeem.
Vervang in de derde lijn Y door N als je wil dat het script telkens bij aanroep een nieuwe bestandslijst aanmaakt. Dit heeft al voordeel dat ook de allernieuwste bestanden gevonden worden, maar vertraagt de opstart (enkele ms op een ssd, maar mogelijk enkele seconden op een oudere PC met klassieke harde schijf). 

Maak nu het script uitvoerbaar:
chmod +x ~/.local/share/rofi/findfiles.sh

3) Bestandslijst maken: Plaats volgend script in een folder "bin" in je home folder. Dit script maakt de lijst van bestanden op je harde schijf aan, die in het menu getoond wordt. Als je hierboven CACHE op N (niet) hebt gezet, dan is deze stap niet nodig.

gedit ~/bin/roficache

Plak hierin volgende code:
#!/bin/bash
DOCUMENTS=Documenten  # Vervang "Documenten" door "Documents" als je op een Engelstalige Ubuntu werkt
ROFIFOLDER=~/.local/share/rofi
find ~/$DOCUMENTS -iname '*' -type f | sed "s|^$HOME/$DOCUMENTS/||" | grep -v -e '/\.' -e '~$' -e '\.bk$' -e '\.bak$' > $ROFIFOLDER/findfiles.cache

Maak uitvoerbaar:

chmod +x ~/bin/roficache

4) Testen:Probeer eerst: voer het volgende commando uit in de terminal: rofi zou moeten verschijnen. Zoek een bestand door een deel van de naam te typen, en start het op met de enter toets.

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

5) Binden aan een sneltoets.
Werkt het goed, wijs dan het commando toe aan een sneltoets. Dan roep je met één toetsencombinatie het menu op om razendsnel een bestand te openen.

In standaard Ubuntu 17.10 en 18.04 (gnome shell) gaat dat als volgt: Instellingen - Apparatuur - Toetsenbord. Ga helemaal onderin de lijst sneltoeten en klik op het + tekentje. Een dialoog verschijnt: Vul de naam in: dat kan eender wat zijn, bijvoorbeeld "Rofi bestandszoeker". Onder commando voeg je het commando toe waarmee je rofi wil opstarten: "rofi -show find -modi find:~/.local/share/rofi/findfiles.sh". Klik dan op het veldje "sneltoets": druk nu op de toetsencombinatie die je hieraan wil toewijzen, bijvoorbeeld Ctrl+Enter. Sluit de dialoog. Het menu zal nu verschijnen van zodra je de gekozen sneltoets indrukt.

6) Regelmatig de cache bijwerken
Het bestand met de bestandsnamen moet regelmatig worden bijgewerkt. Je kan dat handmatig doen door aan de terminal eens "roficache" in te geven, maar je laat dat beter ook automatisch gebeuren, bijvoorbeeld door het script toe te voegen aan je opstartbestanden. Beter nog is een cronjob aan te maken, zodat het script automatisch op regelmatige tijdstippen wordt uitgevoerd.
crontab -e
De eerste keer dat je dit commando uitvoet, wordt gevraagt welke editor je wil gebruiken. Kies als je het niet zeker weet, nano: dit is de eenvoudigste editor.

Voeg op het einde van het bestand een lijn toe die definieert hoe vaak je het script wil laten lopen
0  *  *   *   *     /home/$USER/bin/roficache
Belangrijk: vervang hier $USER door je login naam! Variabelen werken niet in een crontab bestand.
Hier wordt roficache om het uur (op h:00) uitgevoerd. Wil je bijvoorbeeld dat het commando pas elke twee uur wordt uitgevoerd, dan maak je ervan: 0  */2  *   *   *     /home/$USER/bin/roficache

En verder:

  • Je kan het uiterlijk van rofi aanpassen. Om van thema te veranderen kan je gebruik maken van rofi-theme-selector. Je kan ook je eigen thema maken. Ook hoe rofi verschijnt, centraal op je scherm, andere breedte of hoogte, of als een paneel dat links, rechts of van bovenaf te voren komnt, kan je aanpassen.
  • Het script werkt enkel voor de bestanden onder je Documenten folder. Het kan aangepast worden om gans je home folder te doorzoeken. Een andere mogelijkheid is met verschillende scripts te werken, één wat Documenten opzoekt, een ander bijvoorbeeld "Muziek". Dan maak je twee sneltoetsen aan. Rofi kan ook zo ingesteld worden, dat het de twee scripts tegelijk inlaad. Met Ctrl+tab ga je dan van de éne naar de andere lijst.
  • Hier wordt het script opgezet als een "rofi-modus". Dat houdt in dat je het menu kan combineren met andere menus, bijvoorbeeld de ingebouwde programmalauncher (drun). Zo kan je rofi starten met het commando "rofi -modi drun,find:~/.local/share/rofi/findfiles.sh -show find". Rofi start nu net als voorheen met de lijst van je bestanden, maar met Ctrl+tab schakel je naar een menu om programma's op te starten. Zelf heb ik het menu zo opgezet met een tweede script, dat een druk op de Ctrl+tab toets alle folders toont. Handig om heel vlug een specifieke folder te openen. De zoekterm die je ingegeven had, blijft behouden, zodat onmiddellijk enkel de relevante folders getoont worden.
Je ziet, de sky is the limit met rofi.
« Laatst bewerkt op: 2018/03/06, 19:55:27 door vanadium »

Offline Tom

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #1 Gepost op: 2018/03/06, 18:40:05 »
Is mij veels te ingewikkeld ,ben meer voor Catfish etc .4
Netbook Xuby Xenial 16.04.5 Lts (totaal gestripte versie). Desktop Xuby Bionic 18.04.6 Lts Gestripte versie - Laptop Xuby Bionic 18.04.6 Lts. Ubuntu CoC Signed.Yes.

Offline h2o

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #2 Gepost op: 2018/03/06, 19:15:58 »
Ik gebruik Catfish ook en wel via een 'Aangepaste actie' in Thunar op mijn XFCE-systemen. Maar deze tip ga ik wel een keer uitproberen.
Werk laptops + werkstation: Debian Testing
Privé laptops: Debian Testing/Unstable
Test laptop: Diverse andere Linux distribities
Chromebooks: ChromeOS Flex

Offline vanadium

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #3 Gepost op: 2018/03/06, 19:20:32 »
Mogelijk, maar met rofi of dmenu werkt het toch oneindig beter: je zoekt niet alleen op naam, maar ook op de ganse padnaam. Als je bijvoorbeeld je brieven aan oma opslaat onder  ~/Documenten/Brieven/Oma/2018-03-06.odt, dan kan je je bestand enkel vinden door iets te typen wat in 2018-03-06.odt voorkomt. Geen probleem als je elders niet veel bestanden hebt met die letter. Met rofi typ je "brieven oma 2018", in eender welke volgorde, en je bestand zal al heel vlug herkenbaar verschijnen.

Catfish is niet goed ontworpen voor efficiënt toetsenbordgebruik. Stel dat je het met een sneltoets oproept en je zoektermen ingeeft (er is trouwens een extra "enter" nodig", probeer dan maar eens een bestand dat je gevonden hebt op te starten. "Enter" en je zoekt gewoon opnieuw. "Pijl naar beneden":  werkt niet. Tab: ga je eerst naar die instellingenknop, dan pas naar de lijst. Ja, juist: muis en klikkerdeklik geeft de oplossing, maar dan moet je weg van het toetsenbord. Nautilus doet dit met zijn ingebouwde zoekfunctie al veel beter.

@h2o, ik zal mij post aanpassen om via een gecached bestand te werken: dan is er geen enkele vertraging, en op oudere harde schijven en oudere PC's werkt het op de nu voorgestelde werkwijze wellicht al te traag. 

Offline HWE64

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #4 Gepost op: 2018/03/06, 19:41:28 »
Is mij veels te ingewikkeld ,ben meer voor Catfish etc .4
Sluit me bij Tom aan. Buiten Catfish gebruik ik ook Recoll.
Niet panikeren, er is een Ubuntuforum.

1] Linux Mint 21.3 Xfce (Desktop hoofd pc). 2] LMDE 6 Xfce/LM21.3 Xfce (Clevo laptop) 3] LMDE 6 Xfce (Dell Laptop ). 4] LMDE 6 Xfce/Linux Mint 21.3 Xfce (HP Desktop test pc).   5] Xubuntu 22.04.3 Xfce (Dell desktop). 6] W10 (Dell Desktop)

youpie123

  • Gast
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #5 Gepost op: 2018/03/06, 20:12:59 »
Ik heb de link naar dit topic opgeslagen voor een regenachtige zondagmiddag   =D Lijkt me leuk eens mee te experimenteren, Dank Vanadium!

Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #6 Gepost op: 2018/03/06, 21:39:55 »
Hier ga ik zeker mee aan de slag!
Ik heb nog een werkeloze g2020 (pentium dual core) 8gb met een GTX1050 liggen en de bedoeling was om er een minimale Ubuntu 18.04 op te zetten in combinatie met een lichte window manager (blokkendoos). Rofi lijkt dan 1 van de betere opties.

Dus bedankt voor de informatie.
Ryzen 7 1700 16gb, RX 580 8gb, AOC 24" FreeSync scherm,  Corsair Strafe Red (mechanisch toetsenbord), 256GB SSD, 4 TB HDD. OS: Linux Mint

Offline vanadium

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #7 Gepost op: 2018/03/06, 23:21:15 »
@youpie123, die regenachtige zondag komt er gauw genoeg aan!

@Theo1971, dmenu en het veel krachtiger rofi zijn inderdaad bij uitstek geschikt voor superlichte, maar krachtige werkomgevingen zoals openbox of i3wm. rofi heeft standaard de modi "run" (menu met elke mogelijke binary van je systeem), drun (menu gebaseerd op de grafische programma's die een .desktop bestand hebben, "window":  een vensterwisselaar, en "ssh" om snel met ssh in te loggen op een server

Probeer maar eens: deze commandolijnen werken zonder meer
 * De verschillende standaard modi

rofi -show run
rofi -show drun
rofi -show window

* Je kan verschillende modi combineren. Met Shift+pijltje of Ctrl+tab wissel je tussen de menus:

rofi -modi window,drun -show window : toont je de actieve vensters. Met ctrl tab ga je naar de launcher. Leuk is dat je zoektekst bewaard blijft. Wil je naar firefox switchen, maar blijkt dat die niet meer open is (geen zoekresultaten), dan druk je op Ctrl+tab en onmiddellijk kan je firefox opstarten. Probeer ook eens de variant rofi -modi window,drun -show window  -sidebar-mode

* Modi kunnen ook samen op één menu:

rofi -combi window,drun -show combi

Dat alles slechts één commandolijn, dus eenvoudiger dan mijn bestandszoekertje. Maar dit toont aan hoe rofi (of dmenu) als bouwblokje voor van alles ingezet kan worden.


Offline h2o

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #8 Gepost op: 2018/03/07, 07:45:00 »
@h2o, ik zal mij post aanpassen om via een gecached bestand te werken: dan is er geen enkele vertraging, en op oudere harde schijven en oudere PC's werkt het op de nu voorgestelde werkwijze wellicht al te traag.
Ik snap niet wat je hier allemaal mee bedoelt, want ik heb het helemaal niet over oude hardware?

'Aangepaste actie' bij Thunar is dat je met de rechtermuisknop binnen Thunar bijv. een terminal, een rootterminal of een ander commando of actie uit kunt voeren. Zo heb ik in Thunar een aangepaste actie waarmee ik Catfish open en laat zoeken binnen die directory en de subdirectories.
Werk laptops + werkstation: Debian Testing
Privé laptops: Debian Testing/Unstable
Test laptop: Diverse andere Linux distribities
Chromebooks: ChromeOS Flex

Offline vanadium

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #9 Gepost op: 2018/03/07, 09:24:53 »
@h2o, ik zal mij post aanpassen om via een gecached bestand te werken: dan is er geen enkele vertraging, en op oudere harde schijven en oudere PC's werkt het op de nu voorgestelde werkwijze wellicht al te traag.
Ik snap niet wat je hier allemaal mee bedoelt, want ik heb het helemaal niet over oude hardware?
Mijn script heeft twee mogelijkheden van werken:

1) niet gecached (CACHE=N): het script maakt zelf een lijst van de bestanden (met "find): dat vraagt een beetje tijd, want find moet je harde schijf doorzoeken. Op een SSD is dat (voor mij) misschien maar 0.2 s (koude start), maar ik stel mij voor dat dit met een klassieke schijf al gauw zou kunnen oplopen tot een seconde of meer. Een seconde vooraleer je menu verschijnt: dat is te lang.

2) cached (CACHE=Y): het script gebruikt een reeds bestaande lijst van bestanden. Die lijst wordt op een ander moment aangemaakt.
- Voordeel: snel. Je menu start onmiddellijk.
- Nadeel: je menu is niet helemaal up to date: de nieuwste bestanden staan er nog niet in, sommig bestanden die er instaan zijn in werkelijkheid reeds gewist.

Citaat
'Aangepaste actie' bij Thunar is dat je met de rechtermuisknop binnen Thunar bijv. een terminal, een rootterminal of een ander commando of actie uit kunt voeren. Zo heb ik in Thunar een aangepaste actie waarmee ik Catfish open en laat zoeken binnen die directory en de subdirectories.
Dat zijn interessante mogelijkheden die meer zichtbaar zijn bij de lichte bestandsbeheerders zoals thunar en pcmanfm. Nautilus kan dat ook, maar het is zeer verborgen en je moet weten hoe. Out of the box heb je de nautilus scripts, maar dit werkt niet meer als er niets geselecteerd is (vb. rechtsklik op lege plaats in folder;  vroeger kon je zo een script altijd ook opstarten vanuit het menu). Daarnaast is er nautilus-actions, wat je extra moet bij installeren. Dit laat zeer grote controle toe over wanneer een bepaalde menukeuze getoond wordt of niet (vb: alleen voor folders, alleen voor text documenten, alleen als je recht-klikt op een lege plaats ...). Zo krijg je je rechts-klik optie enkel als die ook van toepassing is. Wel ingewikkeld om op te zetten als je het mij vraagt.

Offline BaukeP

  • Lid
Re: Tip: een handige zelf-bouw bestandszoeker en starter
« Reactie #10 Gepost op: 2018/04/17, 18:12:33 »
Ik gebruik het aloude synapse en dat werkt prima. Doet m.i. hetzelfde.

Bauke