Kā izveidot ekrānuzņēmumu OS X vidē

Windows lietotāji ir pieraduši, ka ekrānuzņēmumu (screenshot) var izveidot ar pogu Print Screen. Uz Mac portatīvā datora tādas pogas nav. Kāds teica, ka Mac ir vienkāršāks par Windows? Viņš pajokoja. 😉

Uz mac datora OS X vidē ekrānuzņēmumu var izveidot 3 veidos:

  • Ekrānuzņēmums ar visu ekrānu
    Cmd + Shift + 3
  • Ekrānuzņēmums ar visu konkrētas programmas logu
    Cmd + Shift + 4 -> tālāk nospiež Space (garo atstarpes taustiņu) -> ieklikšķina vēlamajā logā (tas var būt arī fonā)
  • Ekrānuzņēmums ar daļu no ekrāna
    Cmd + Shift + 4 -> iezīmē laukumu, kuru saglabāt kā ekrānuzņēmumu

Tālāk uz darbgalda tiks izveidota bilde ar nosaukumu Screen Shot 2014-09-05 at 10.34.25.png. Vienkārši.

Ko darīt, ja ir vēlme, lai bilde tiktu saglabāta ar citu nosaukumu, citā formātā un citā vietā? Principā to visu var izdarīt ar pāris trikiem.

Tam būs nepieciešama komandrinda. Spiežam Cmd + Space un rakstam terminal, tālāk Enter. Katrai darbībai ir sava maģiskā komanda.

  • Nomainīt bildes formātu (standartā ir: png):
     defaults write com.apple.screencapture type <format>

    kur <format> ir viens no sekojošiem formātiem: jpg, png, bmp, tiff, pdf, pict

  • Noņemt programmas logam ēnas (standartā ir: false):
     defaults write com.apple.screencapture disable-shadow true
  • Nomainīt attēla saglabāšanas vietu (standartā ir: ~/Desktop)
     defaults write com.apple.screencapture location ~/Photos
  • Nomainīt faila nosaukumu (standartā ir: “Screen Shot”):
     defaults write com.apple.screencapture name "ekranbilde"

Kad ir paveiktas izmaiņas, tad vajag pārstartēt programmu, lai izmaiņas stātos spēkā.

killall SystemUIServer

Ja ir drosme, tad var izdarīt vēl vairāk.

Es gribēju nomainīt no standarta nosaukuma Screen Shot 2014-09-05 at 10.34.25.png uz 2014-09-05-103425-screenshot.png. Šajā gadījumā man attēla nosaukums ir aiz datuma un es varu sakārtot failus pēc gada-datuma-mēneša visās vidēs vienādi.

Ejam uz direktoriju, kurā glabājās attiecīgie valodas faili, jo dziļāk jau mēs līdīsim sistēmas saskarnes tulkošanas failos.

cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/English.lproj

Sākumā izveidojam rezerves kopiju. Tā kā šie faili ir pieejami tikai ar administratora (wheel) grupas tiesībām, tad visas darbības veicam ar sudo komandu.

sudo cp ScreenCapture.strings ScreenCapture.strings.old

Šie faili ir binārā formātā, tāpēc tos sākumā vajag konvertēt uz XML, kuru var labot.

sudo plutil -convert xml1 ScreenCapture.strings

Neizmainītā veidā šī faila saturs būs šāds.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>%@ %@</key>
<string>%@ %@</string>
<key>%@ %@ at %@</key>
<string>%@ %@ at %@</string>
<key>%@ %@(%@)</key>
<string>%@ %@(%@)</string>
<key>%@ (%@)</key>
<string>%@ (%@)</string>
<key>-</key>
<string>-</string>
<key>.</key>
<string>.</string>
<key>Cannot write file to intended destination.</key>
<string>Cannot write file to intended destination.</string>
<key>Failure to write image data.</key>
<string>Failure to write image data.</string>
<key>OK</key>
<string>OK</string>
<key>Screen Shot</key>
<string>Screen Shot</string>
<key>Unable to capture desktop image.</key>
<string>Unable to capture desktop image.</string>
<key>Unable to capture window image.</key>
<string>Unable to capture window image.</string>
<key>Unable to create type string.</key>
<string>Unable to create type string.</string>
<key>Unable to create url for path.</key>
<string>Unable to create url for path.</string>
<key>You dont have permission to save files in the location where screen shots are stored.</key>
<string>You don’t have permission to save files in the location where screen shots are stored.</string>
<key>dvderror</key>
<string>Screen grabs are unavailable during DVD playback.</string>
<key>dvderrormessage</key>
<string>Please quit DVD Player first.</string>
<key>yyyy-MM-dd</key>
<string>yyyy-MM-dd</string>
</dict>
</plist>
Ideja ir vienkārša – key satur frāzi, kas ir frāze, kuru meklēt un string ir frāze pret kuru mainīt. Vismaz es tā savā prātā iedomājos. 😉

Labojam failu ar savu teksta redaktoru, kas manā gadījumā ir vim.

sudo vim ScreenCapture.strings

Rezultātā izmainītais fails manā gadījumā izskatās šādi.

Screenshot plist

Sarežģītākā daļa ir saprast, kas un kurā vietā notiek. To es paveicu ar testiem. Nevarēju izdomāt, kur dabūt dokumentāciju par šo failu.

<key>%@ %@ at %@</key> - standarta faila nosaukums "Screen shot" datums (formāts no sistēmas) at laiks minūtēs.sekundēs.simtdaļās
<string>%2$@-%3$@-%1$@</string> - tā kā mums ir 3 mainīgie, tad attiecīgi arī tiem ir secība, kuru es pamainīju pēc sava prāta - datums (2$) plkst. (3$) nosaukums (1$). Sintakse ir tieši šāda, nevis $1.
<key>%@ %@(%@)</key> - nepārbaudīju, bet izskatās pēc formāta, kas tiek izmantots, ja gadījumos, kad tieši tāds faila nosaukums jau eksistē un iekavās liek (1,2,3,4 utt.)
<string>%@ %@(%@)</string>
<key>%@ (%@)</key>
<string>%@ (%@)</string>
<key>-</key> - atdalītājs
<string>-</string> - ja šajā vietā atstāj tukšumu, tad "-" pazudīs no visām vietām
<key>.</key> - plkst. atdalītājs (10.59.59)
<string>.</string> - izņēmu ārā jeb nomainīju pret tukšumu

Tagad, kad izmaiņas ir veiktas, tad vajag konvertēt atpakaļ uz bināro formātu.

sudo plutil -convert binary1 ScreenCapture.strings

Un aktivizēt izmaiņas.

killall SystemUIServer

Veiksmīgu hakošanu!

Idejas smēlos no šiem avotiem – izmaiņas failosmainīgo nosaukumi un standarta komandas.

7 thoughts on “Kā izveidot ekrānuzņēmumu OS X vidē

  1. Edgars

    Īstenībā labākais rīks, kādu jebkad esmu izmantojis šim gadījumam ir Monosnap – http://monosnap.com/, fantastiski ātrs, ērts un iespējams nokonfigurēt da jeb ko, gan augšuplādēšanu, gan saglabāšanu konkrētā vietā. Un jā – pēc screenshot izveides links uz bildi ir jau nokopēts, kas nereāli saīsina laiku, kad jāaizsūta kolēģim ekrānšāviņš skaipā. Un jā – tas ir bezmaksas pasākums.

    Atbildēt
    1. coolynx Raksta autors

      Droši vien, ka ir vēl kaudze un nākotnē būs daudzas labas programmiņas. Šajā gadījumā es izmantoju iebūvētās iespējas.

      Atbildēt
      1. Edgars

        Te ir protams svarīgi apzināties, kam tie screenšoti ir vajadzīgi 🙂 Ja sev un tikai local usage, tad jā, iebūvētās iespējas pilnībā atbilst. Bet nu izmēģinot visu, sākot ar jetscreenshot, gyazo, un citiem neskaitāmiem variantiem beigu beigās secināju, ka šis ir ideāls gabals.

        Atbildēt
    1. Krišs

      “Snipping tool” analogs Mac vidē saucas “grab”. Viens no jaukumiem, kas piemīt šim rīkam – spēja uzņemt ekrānattēlu pēc 10 sekundēm. Tas ļauj iebildēt īslaicīgi novērojamas parādības.

      Atbildēt

Atbildēt uz komentāru Edgars Atcelt atbildi

Tava e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *