Vesazkirina otomatîkî ya komeleyên pelan, ango hilbijartina bernameyek ku dê pelek ji Explorer/Finder veke. Û ez parve dikim.
Pirsgirêkên pêşîn. Pelên bi pêvekên pêwîst bi gelemperî ji hêla xwerû ve nayên vekirin, û heke ew werin vekirin, wê hingê ji hêla hin iTunes ve. Di bin Windows-ê de, dema sazkirina (an tewra rakirina) bernameyan carinan komeleyên pêwîst bi tevahî winda dibin: carinan hûn GIMP jêbirin, û pelên ico ji temaşekera pelê ya gelemperî berbi Galeriya Wêne ya standard têne girtin. Çima? Bo çi? Nenas... Ger min edîtorek nû an jî, ji ber sedemên cihêreng, sazkirinek nû bibîne, çi dibe? Ger ji yek kompîturê zêdetir be, çi dibe? Bi gelemperî, klîkkirina mişkan di diyalogan de şahiyek wusa ye.
Di şûna wê de, min du pelan li ser Dropbox tomar kir û naha ez dikarim cîhana komputerê hema di cih de vegerînim rewşa normal. Û ev çend sal in hûn li benda çi ne... Paşê reçeteya Windows û macOS-ê ye.
Windows
Di konsolê Windows-ê de cmd.exe
ev di du qonaxan de pêk tê:
ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt
Guhertin di cih de tê bandor kirin. Tevî vê rastiyê ku komele ji bo bikarhênerek taybetî hatî tomar kirin, ji ber hin sedeman pêdivî ye ku ev ferman wekî rêveberek bêne xebitandin. Û ji bîr nekin ku dema ku ji pelê batê dimeşin sembola ji sedî (%%1) ducar bikin. Cîhana efsûnî ya Windows 7 Ultimate 64-bit…
MacOS
Di MacOS-ê de hêsan e ku meriv komeleyan bi karanîna amûreyê saz bike brew install duti
. Mînaka bikaranînê:
duti -s com.apple.TextEdit .txt "editor"
Guhertin tavilê bandor dibin, sudo hewce nake. Li vir argumana "com.apple.TextEdit" bi navê "bundle id" ya bernameya ku em hewce ne ye. Argumenta "edîtor" celebê komeleyê ye: "edîtor" ji bo sererastkirinê, "temaşevan" ji bo temaşekirinê, "hemû" ji bo her tiştî.
Hûn dikarin "nasnameya pakêtê" bi vî rengî bibînin: heke "/Applications/Sublime Text.app" ya guhertoya sêyemîn hebe, wê gavê nasnameya wê ya pakêtê dê "com.sublimetext.3" be, an jî yekî din:
> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3
Li ser macOS Sierra ceribandin.
Nivîsara dawîn ji bo Windows (.bat)
@echo off
set XNVIEW=C:Program Files (x86)XnViewxnview.exe
set SUBLIME=C:Program FilesSublime Text 3sublime_text.exe
set FOOBAR=C:Program Files (x86)foobar2000foobar2000.exe
call :assoc_ext "%SUBLIME%" txt md js json css java sh yaml
call :assoc_ext "%XNVIEW%" png gif jpg jpeg tiff bmp ico
call :assoc_ext "%FOOBAR%" flac fla ape wav mp3 wma m4a ogg ac3
goto :eof
:assoc_ext
set EXE=%1
shift
:loop
if "%1" neq "" (
ftype my_file_%1=%EXE% "%%1"
assoc .%1=my_file_%1
shift
goto :loop
)
goto :eof
Nivîsara dawîn ji bo macOS (.sh)
#!/bin/bash
# this allows us terminate the whole process from within a function
trap "exit 1" TERM
export TERM_PID=$$
# check `duti` installed
command -v duti >/dev/null 2>&1 ||
{ echo >&2 "duti required: brew install duti"; exit 1; }
get_bundle_id() {
osascript -e "id of app """ || kill -s TERM $TERM_PID;
}
assoc() {
bundle_id=$1; shift
role=$1; shift
while [ -n "$1" ]; do
echo "setting file assoc: $bundle_id .$1 $role"
duti -s "$bundle_id" "." "$role"
shift
done
}
SUBLIME=$(get_bundle_id "Sublime Text")
TEXT_EDIT=$(get_bundle_id "TextEdit")
MPLAYERX=$(get_bundle_id "MPlayerX")
assoc "$SUBLIME" "editor" txt md js jse json reg bat ps1 cfg sh bash yaml
assoc "$MPLAYERX" "viewer" mkv mp4 avi mov webm
assoc "$MPLAYERX" "viewer" flac fla ape wav mp3 wma m4a ogg ac3
Source: www.habr.com