Tavilê komeleyên pelan ên nas saz bikin

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 duti. Ew bi rêya tê sazkirin 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

Add a comment