Мульти-ярлики, або оптимізація рутини

Не знаю, як ви, а я коли тільки но сідаю за комп’ютер, то одразу запускаю певний типовий набір програм. Зазвичай це: браузер, ІМ, поштовий клієнт, твіттер-клієнт і аудіоплеєр. Типово це займає з десяток кліків, (чи гарячих клавіш) а в наслідок специфіки софту, я запускаю програми в певному порядку і з інтервалом (даючи час прожерливому фаєрфоксу завантажитись). Коротше, це все потребує певної кількості затрат роботи голови та інших органів.

Одного дня мене дістало, тож було вирішено оптимізувати процес.

Далі я розповім вам, як створити ярлики для наборів улюблених програм під Віндовс та Лінукс, змусити їх робити те що ви хочете, та про інші цікаві штуки.

Найпростіший шлях досягти бажаного — з допомогою shell скриптів.
Отож, почнемо з типового прикладу, набір стартового софту:

код скрипту для Лінукса матиме приблизно наступний вигляд:

#/bin/bash
choqok;
kopete;
sleep 5;
kontact;
sleep 5;
firefox;

Скрипт запускає програми одна за одною, достатньо вказати їх назву (команду якою вони викликаються в консолі). Директива sleep створює часову затримку в секундах, щоб не перенавантажувати жорсткий диск стрибками і дати програмам встигнути завантажитися.

Цей скрипт можна покласти в автозавантаження, але особисто я так не роблю, бо деколи потрібно увімкнути комп’ютер на пару хвилин з конкретною задачею, і тоді завантаження цілої купи непотребу дратує.

Краще створити ярличок, або пунктик в меню:
Для KDE: клацаємо правою клавішею по меню Редактор меню
Створюємо ярличок, який посилається на наш скрипт, налаштовуємо, тішимось.

В гномі це робиться якось подібно:))

Тепер, ще один типовий сценарій, але вже на прикладі Віндовс:
Стандартне заняття веб-розробника/верстальника, перевірити як працює веб-сайт у різних браузерах.
Для цього, кожен з них потрібно запустити. Можна щоразу клацати по п’яти ярличках, а можна… Ну, ви мабуть здогадалися:)

Створюємо bat-файл (наперед рекомендую покласти його просто у «Мої Документи», якщо він там вам не заважатиме)

Пишемо скриптик наступного вигляду (код буде пізніше):


Створюємо ярличок, називаємо, чіпляємо прикольну іконку:


Вуаля, тепер по одному ярличку запускатимуться всі браузери одночасно.
Та, можна ще трохи покращити процес.
Якщо в рамках роботи, ми тестуємо один сайт, то чому б не сказати браузерам його і відкрити.
Сказано: зроблено

скрипт має наступний вигляд:

@echo off
set page="beta.enetri.com"

start "" "C:\Documents and Settings\Admin\Local Settings\Application Data\Google\Chrome\Application\chrome.exe" %page%
start "" "C:\Program Files\Core Services\IETester\IETester.exe" %page%
ping -n 5 localhost >null
start "" "C:\Program Files\Opera\opera.exe" %page%
start "" "C:\Program Files\Mozilla Firefox\firefox.exe" %page%

exit

пояснення:
start "" (програма) (aргумент) — запуск програми (порожні лапки на початку потрібні, чому — не питайте)
ping -n (секунди) localhost >null — це такий жестяковий метод робити затримки в dos та win.

Ну що ж, вже не погано. Але можна зробити ще краще. А якщо працюємо ми не весь час з одним проектом? Можна змінну в файлі поміняти на аргумент командного рядка:
set page=%1

А тепер бонус:
жмакаємо win+r
Викликаємо наш скрипт, вказуючи сторінку, яку хочемо відкрити:


Запускаємо, милуємося результатом:

Вікна я розмістив так навмисне, для наглядності, якщо ж хочемо наперед встановити їм параметри відображення то після команди start можна додати один з параметрів:

/minimized або /m
/maximized або /max
/restored або /r

Щоб скрипт викликався через «Виконати програму» потрібно щоб він був у одній з path-директорій Віндовса. Найпростіший варіант — в „Моїх документах“.
Якщо ні, то можна в файлі C:\Autoexec.bat написати:
SET PATH=<тека зі скриптами>

Отож, як бачите — простір для ідей безмежний. Я лише подав принцип дій, тож чекаю ваших пропозицій, що ще цікавого можна зробити у цій сфері:)
(і так, я не спеціаліст у віндовс-скриптингу, якщо там якась індусятина — не бійтеся, кидайте каміння. Підправлю)

доповнення:

В Linux-скриптів для паралельного запуску команд, (бо в типовому випадку вони чекають завершення одна другої) слід в кінці кожного рядку з командою ставити символ &.
Наприклад:

#!/bin/bash
decibel-audio-player&
gedit&
firefox

коментарі:

slik 10.11.2009 14:04
ping -n 5 localhost >null
в вінді такі костилі потрібні ? :D
meako 10.11.2009 14:08
Можливо я погано шукав, але так і не знайшов вбудованої функції часової затримки. Всюди пропонують або шось таке, або качати окремі ліби/батники для того:)
Enetri 10.11.2009 15:00
Традиційний коментар: ...*
meako 10.11.2009 15:59
І що ви ним хотіли сказати?
Enetri 10.11.2009 16:01
Є простий FF-плагін для тестування розмірів Енетрі-картинок на різних екранах: Firesizer,
ну або швейцарський ножик типу Web Developer :)
Enetri 10.11.2009 16:11
Будь ласка, останню ілюстрацію меншу за 800 в ширину, інакше навіть на 1280 з’являється скролл. А зараз і 1024 ще далеко не рідкість - майже 10% у нас. В сумі, понад 70% аудиторії Енетрі.
meako 11.11.2009 09:22
А, ви про це. Я глянув що скрол впливає лише на картинку, і вирішив що це прийнятно. Принаймні в фф текст не скролиться. Під різними розширеннями пробував.

Розмір ілюстрації — зміню.

В свою чергу пропоную до css сайту додати пару рядків:
.text img{
max-width:100%
}

Котрі позбавлять нас від наступних оказій такого плану. Це доволі популярне рішення.
(або дати можливість виставляти розміри в тезі img)
Enetri 11.11.2009 12:23
Обхідний маневр вже функціонує (нарешті:) Проте у прев’юшці малюнки все ж залишатимуться у нас 1:1. На випадок різних хороших фотографій, розміром так 2 на 3 тисячі пікселів. UGC - специфічна штука :)

Стосовно атрибута: занесено в замітки на майбутнє, напевно у варіанті [width="70%|80%|90%"]
meako 11.11.2009 12:33
Стосовно атрибута: занесено в замітки на майбутнє, напевно у варіанті [width="70%|80%|90%"]
Буде дуже добре:)

Ще, знову оффтоплю, але було би добре, якби прев’юшки не мали синього фону, бо він типу як дезорієнтує прев’юшність, особливо в плані розміщення картинок (якщо в них є білий фон і т.д.)
Було би краще, якби прев’ю візуально було максимально наближене до бойової публікації. Можна обмежитися синім контуром.
Enetri 11.11.2009 15:38
Ще, знову оффтоплю, але було би добре,
Ну, це ваш топік .) Хоча можна і в план дій перенести, щоб не згубилося десь в часі.
якби прев’юшки не мали синього фону
Без помітного фону (чи ще якоїсь чіткої візуалізації, типу широкого маркера зліва) поля редагування і перегляду будуть занадто плутатися, що теж буде, погодьтеся, не зовсім гуд. Медаль з двома кінцями… Але:

В дорожній карті є опція з додатковою фальш-сторінкою — для попереднього перегляду наживо, 1 в 1 :)
meako 11.11.2009 15:58
типу широкого маркера зліва
Теж непоганий варіант.Я ж кажу не про поля редагування, а на контент в режимі попереднього перегляду.
meako 11.11.2009 16:00
*про контент. Перепрошую.
+1chugylo 12.11.2009 14:23
У першому скрипті пропущено знак оклику. Має бути:
#!/bin/bash
meako 12.11.2009 16:56
Так, ви праві. Щоправда статтю я вже не підправлю.
А ще краще писати:
#!/usr/bin/env bash
MFX 14.11.2009 10:37
Може все ж "посилання", а не "ярлик"?
meako 14.11.2009 10:58
Може. Правити статтю вже неможна.
+1Станiслав 16.11.2009 08:18
Такий скрипт
<code>#!/bin/bash
decibel-audio-player;
sleep 5;
gedit;
sleep 5;
firefox;</code>
Після запуску першої команди чекає її завершення. Я зробив так:
<code>#!/bin/bash
decibel-audio-player&
gedit&
firefox</code>
meako 16.11.2009 09:27
Ах ну да:) Схоже в кедівських програм є хороша звичка форкатися при запуску, на відміну від.
Станiслав 16.11.2009 10:08
Забув сказати, це в гномі так :)
StarWolf 15.05.2010 09:39
Робив колись подібне, за винятком того, шо кожна програма запускалася на своєму робочому столі: браузери на своєму, аудіо-плеєр на своєму, термінал і т.д. От тільки згадати не можу як звалась софтина.
meako 15.05.2010 09:47
Якщо четверті Кеди, то то в системних праметрах можна виставити яке вікно де відкривати.
StarWolf 15.05.2010 13:09
Це було в Gnome.
+1meako 15.05.2010 13:12
В гномі це здається Компіз-Конфігом можна зробити:)

додати коментар: