Sziasztok! Debian+xfce alatt...
Van sok szépen paraméterezett alias-om. Hogyan lehet rávenni az xdg-open-t arra, hogy ha egy adott könyvtárban kiadom az xdg-open * parancsot, akkor az adott default app (be)paraméterezett alias-át hívja meg?
pl. a ~/.bashrc-ben van egy ilyenem: alias vlc="vlc --fullscreen --repeat --quiet --no-video-title-show --key-play-pause '5' --key-next '3' --key-prev '9' --key-faster '1' --key-slower '7'"
Ha vlc * a parancs, akkor a fenti paraméterek működnek. Ha viszont xdg-open *, akkor nem.
Átmeneti megoldásként az adott fájlra jobb-klikk és Megnyitás -> Egyéni parancs használata sorba bepastézva működik, de a fájlok változnak és nem akarnám/tudnám folyamat ezt eljátszani.
Bash script írásban sem vagyok jártas, de ha azzal meg lehetne oldani a fájltípus felismerést, majd annak az alias-szal való megnyitását, akkor az is jó lenne :)
- 2095 megtekintés
Hozzászólások
Ez igy kozvetlenul nem megoldhato. Az a problema, hogy az aliasok csak a shellen belul elnek, az xdg-open viszont nem hiv vissza kozvetlenul a futo bash folyamatba, hogy azzal nyittassa meg a fajlokat, hanem o maga lovi fel azokat a programokat, amik hozza vannak kotve az adott fajlhoz, meghozza olyan parameterezessel, ahogy a program beregisztralta magat a megfelelo MIME tipushoz.
Ami megoldas lehet, az egy script irasa case meg for szerkezetekkel, viszont az messze nem lesz ennyire dinamikus, mint az xdg-open.
#!/bin/bash
# mivel scriptnel a bashrc nem kerul kozvetlen ertelmezesre, erdemesebb az aliasokat kulon pakolni
source ~/.bash_aliases
for x in "$@" do
t="$(file -i "${x}")"
case "${t}" in
video/*)
vlc "${x}"
;;
image/*)
gqview "${x}"
;;
*)
xdg-open "${x}"
;;
esac
done
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
Pedig megoldhato, mert az xdg-open meg tud hivni custom alkalmazasokat, csak meg kell neki mondani, hogy adott mime typeot mi kezeljen, es megirni hozza a desktop filet.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Igen, ez igy megoldhato, az viszont, amit a kerdezo mondott, hogy hasznaljon aliasokat, az nem.
Amugy meg szerintem a desktop fajlt megirni meg kitesztelgetni sokkal nagyobb szivas, mint irni egy scriptet. Probaltam.
Szerintem egy scriptben ezek sokkal jobban egyben vannak, ha mar ilyesmit kell csinalni, akkor inkabb scriptet irok ra. Persze, ha az az igeny, hogy nautilusbol is ugyanilyen parameterekkel induljon el a vidi, az mar mas teszta...
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
Valo igaz, aliasokat nehezen lehet beleheggeszteni (bar az sem teljesen lehetetlen, csak gany). Cserebe az alapproblemat megoldja.
Es lehet scriptet irni, amit megfelelo nevre symlinkel az ember, es sajat neve + grep alias ~/.zshrc kombinacio alapjan mukodik. Az valahol feluton van a ketto kozott.
(Mondjuk szvsz egyszerubb .desktop filet irni, vagy az adott toolt beconfigolni, hogy az altalam kivant beallitasokkal induljon by default, mert akkor csak xdg-open -t kell megjegyezni.)
--
|8]
- A hozzászóláshoz be kell jelentkezni
Megirni egyszeru a desktop file-t, azzal tenyleg nincsen gond. Hibakeresni, az a pocsek, ha valamiert megse ugy indul be a progi, es kinyomozni, hogy hol ment felre a regisztracio. Mondom, egyszer kiserleteztem ilyesmivel, es a vege az volt, hogy beleuntam keresni, epp miert nem akar jol mukodni a dolog, lett belole script. Jo dolog az xdg-open, de nekem nincs turelmem az ilyesmihez, pontosabban amikor lenne, akkor meg masvalamivel foglalkozok.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
bash -x =xdg-open, sokmindent megold :)
En inkabb ezt debugolom (sosem kellett; egyszer kitalaltam hova kell rakni, az belekerult nagyjabol 5 percbe, azota megy), mint sajat scriptet ami a fel xdg-open-t reimplementalna.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Nekem elsosorban az volt a bajom, hogy bemasoltam a desktop file-t a helyere, es nem tortent semmi. Vegul kiderult, hogy le kell futtatni az update-desktop-database vagy ilyesmi cuccot, mert a GNOME 2 (akkor meg az volt) nem mindig veszi fel az uj desktop fajlokat automatikusan, mert persze, hogy az xdg-open epp mit mi alapjan nyit meg, azt nem tudod vele lelogoltatni sehova. De ez relative sok man olvasgatasba telt. Most mar persze okosabb vagyok, csak egyszeruen akkor elment a kedvem az egesztol.
--
Ki oda vágyik, hol száll a galamb, elszalasztja a kincset itt alant:
()=()
('Y') Blog | @hron84
C . C Üzemeltető macik
()_()
- A hozzászóláshoz be kell jelentkezni
~/.local/share/applications/mimeapps.list
file-ba:
[Default Applications]
video/mpeg=vlc-custom.desktop
Es ugyanezen konyvtarba csinalsz egy
vlc-custom.desktop
filet:
[Desktop Entry]
Version=1.0
Terminal=no
Exec=/usr/bin/vlc --akarmi %2
Name=Custom VLC blabla
Icon=vlc
Elvileg, xdg-open forrasaba belekukkantva.
--
|8]
- A hozzászóláshoz be kell jelentkezni