22/05/07

Mise à jour de VLC DVD.scpt

VLC DVD.scpt

Voir le billet précédent : ouverture automatique des DVD avec VLC.

Télécharger le script : scptVLC4DVD.zip (±27 Ko).

Le script est maintenant doté d'une icône (resource fork), ce qui explique le poids de l'archive. La mise à jour concerne diverses optimisations du code : essentiellement l'abandon de fullscreen remplacé par un keystroke, et une meilleure gestion de la fenêtre…

VLC DVD.scpt

(*    
    VLC DVD.scpt
    HP <http://blogosx.jupiterii.com>
 
    updated May. 23, 2007
*)
 
property lastDVD : ""
property VLC : "VLC"
 
on run
	set isDVD to false
	
	quitVLC()
	
	set testDisks to do shell script "ls /dev/rdisk?"
	set diskNumberMax to (count words of findAndReplace("/dev/", "", testDisks))
	
	set itemsDisks to (count words of testDisks) + 1
	
	set diskList to {}
	set itemNum to 0
	repeat
		try
			copy word itemNum of testDisks to the end of diskList
		end try
		set itemNum to itemNum + 1
		if itemNum = itemsDisks then
			exit repeat
		end if
	end repeat
	
	try
		set lastDVD to (lastDVD / 1)
		try
			set diskString to "/dev/disk" & lastDVD
			detectDVD(diskString)
			if isDVD is true then
				launchDVD()
				set diskNumber to lastDVD
			end if
		end try
	end try
	
	if isDVD is false then
		repeat with i from 1 to the count of diskList
			set this_item to "/dev/" & findAndReplace("rdisk", "disk", (item i of diskList))
			set diskNumber to findAndReplace("/dev/disk", "", this_item)
			try
				if diskNumber is not equal to lastDVD then
					detectDVD(this_item)
					if isDVD is true then
						launchDVD()
						exit repeat
					end if
				end if
			end try
			
			if (isDVD is true) then
				exit repeat
			end if
		end repeat
	end if
	set lastDVD to lastDVD
end run
 
on detectDVD(pathDisk)
	global isDVD, diskNumber
	
	set testDisk to ¬
		do shell script "diskutil info " & pathDisk ¬
			& "|grep -i \" Media Type:\" | awk '{print $3}' | tail -1"
	if testDisk contains "DVD" then
		set isDVD to true
		set lastDVD to diskNumber
	end if
end detectDVD
 
on launchDVD()
	global diskNumber, isDVD
	
	if exists application VLC then
		tell application VLC to open ":dev:rdisk" & diskNumber
		tell application "System Events"
			set frontmost of application process VLC to true
			tell process VLC
				keystroke "f" using command down
			end tell
		end tell
	end if
end launchDVD
 
on findAndReplace(tofind, toreplace, TheString)
	set ditd to text item delimiters
	set res to missing value
	set text item delimiters to tofind
	repeat with tis in text items of TheString
		if res is missing value then
			set res to tis
		else
			set res to res & toreplace & tis
		end if
	end repeat
	set text item delimiters to ditd
	return res
end findAndReplace
 
on quitVLC()
	tell application "System Events"
		if exists process VLC then
			try
				quit application "VLC"
			end try
		end if
	end tell
end quitVLC

commenter (0)

22/05/07

Emacs sous Mac OS X

Emacs

Emacs, mais lequel !?

Il faut se rendre à l'évidence, ce ne sont pas les version des Emacs qui manquent sous Mac OS : toutes présentent divers avantages et inconvénients et nécessitent, donc, plus ou moins de configuration.

les différents versions de Emacs sous Mac OS X

AquaMacs : Emacs for Mac OS X, semble une des versions les plus plébiscitées, cependant, les réglages par défaut m'ont assez peu convaincu… comme l'ouverture des documents dans de nombreuses fenêtres et la disparition de l'autocopy UNIX.

Emacs.app : NeXT/OpenStep Emacs for GNUstep and OS X, bon, alors cette version ne m'a pas vraiment convaincu non plus ! Aucune icône d'association de fichier alors que sur le site officiel de Emacs.app on peut lire : this port […] makes an […] attempt […] to follow OS X desktop and UI conventions (Apple Human Interface Guidelines: Icons) ; maintenant, je me demande si ça ne peut être fixé en éditant le .plist ?! Sinon, il faut reconnaître que le début de menu "Préférences" est une réelle avancée, bien qu'embryonnaire.

Carbon Emacs : Carbon Emacs Package qui présente la facilité de pouvoir utiliser les raccourcis claviers OS X, Command (⌘) + C par exemple, très facilement via le menu "Help > Carbon Emacs Package > Mac-Style Key Bindings" (voir aussi la FAQ de Carbon Emacs).

Voilà, en gros (et sans parler de fink et darwinports), le tour des différentes versions couramment utilisées, en date ; les "anciens" se souviendront, peut-être, aussi de YACED.

Configurer Emacs

Une discussion intéressante au titre évocateur : GNU/Emacs est-il ésotérique ?.

Plus sérieusement :

Exemples de .emacs.el

mon .emacs.el

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GENERIC EMACS CONFIGUATION FILE
;; based on Dot Emacs File by Terence Tong
;; updated Aug. 15, 2007
 
;; turn on syntax highlighting
(global-font-lock-mode 1)
(setq font-lock-maximum-decoration t)
 
;; keyboard layout
(setq mac-pass-option-to-system t)
(setq mac-command-key-is-meta t)
 
;; make text mode the default mode for new buffer
;; turn on auto fill mode automatically in text mode
(setq default-major-mode 'c-mode)
(add-hook 'text-mode-hook 'turn-on-auto-fill)
 
;; parentheses highlighting
(show-paren-mode 1)
(setq blink-matching-paren t)
;; highlight during query
(setq query-replace-highlight t)
;; highlight incremental search
(setq search-highlight t)
 
;; visual bell
(setq visible-bell t)
;; scroll with less jump
;; (setq scroll-step 1)
;; set this to make scrolling faster
;; (setq lazy-lock-defer-on-scrolling t)
 
;; line length is 95 chars
(setq fill-column 95)
(setq-default comment-coulumn 95)
 
;; disable startup message
(setq inhibit-startup-message t)
 
;; set debugging mode to on
;; (setq debug-on-error t)
 
;; delete should be delete!
(global-set-key [delete] 'delete-char)
 
;; Charge mon style d'indentation C
(load "~/.emacs.d/haypo_style.el")
 
;; Mode apache
(autoload 'apache-mode "~/.emacs.d/apache-mode.el" "autoloaded" t)
(add-to-list 'auto-mode-alist '("\\.htaccess$"   . apache-mode))
(add-to-list 'auto-mode-alist '("httpd\\.conf$"  . apache-mode))
(add-to-list 'auto-mode-alist '("srm\\.conf$"    . apache-mode))
(add-to-list 'auto-mode-alist '("access\\.conf$" . apache-mode))
 
;; Configuration spécifique à une utilisation sous X-Window
(if window-system
    (progn
      ;; Taille par défaut de la fenêtre 100 x 60 caractères.
      ;; Pour ajouter un positionnement (en pixels), il faut saisir la
      ;; ligne suivante :
      ;; (setq initial-frame-alist
      ;;       '((top . 1) (left . 1) (width . 100) (height . 60)))
      (setq initial-frame-alist '((width . 80) (height . 40)))
      
      ;; Personnalisation du curseur
      (setq default-cursor-type '(bar . 2))
      (set-cursor-color "black")
      (set-background-color "white")
      (set-face-foreground 'highlight "yellow")
      (set-face-background 'highlight "blue")
      ;; Suppression de la barre d'icônes
      (tool-bar-mode 0)
    )
)
 
;; Autorise la sélection à l'aide de la touche SHIFT
(custom-set-variables
 '(c++-mode-hook (quote ((lambda nil (c-set-style "haypo")))))
 '(c-mode-hook (quote ((lambda nil (c-set-style "haypo")))))
)
 
;; C'est fastidieux de taper « yes » pour confirmer, raccourcissons
;; cela à « y » (idem pour « no », désormais « n »).
(fset 'yes-or-no-p 'y-or-n-p)

Voilà le fichier de configuration que j'utilise, sous réserve de modifications et d'ajouts ultérieurs. Je trouve que c'est suffisant sous Carbon Emacs et pour l'usage que je compte en faire.

commenter (0)