Mac之路(九)- 自定义截屏目录、文件名

在本站中搜索“Mac之路”,可以找到之前写的一系列文章,有些很幼稚,有些现在看起来仍然很有用。

这是此系列的最新一篇,主要介绍如何自定义Mac自带的截屏快捷键所截取图片存放的路径,图片的格式,图片的名称。

本文主要参考自:
http://snowleopardtips.net/tips/everything-you-need-to-know-about-screen-captures.html

Mac自带的截屏本身已经很强大,如果还不知道如何截屏(Sreen Capture)的,请自行Google,关键字“Mac截屏”。

默认情况下,截取的文件存放在用户桌面上,文件名类似“Screen shot 2011-03-01 at 18.48.25 .png”这样带时间和空格,格式为png文件。

现在我们准备修改为:截屏文件自动保存在用户目录下的Pictures/snap目录中,并且名字为“screenshot001.jpg”,其中的数字自动递增。

1. 修改存储目录
在Terminal中执行如下命令,location关键字后为目录的绝对路径:

defaults write com.apple.screencapture location /Users/kamus/Pictures/snap

2. 修改文件类型
在Terminal中执行如下命令,type关键字后为想要保存的文件类型:

defaults write com.apple.screencapture type jpg

3. 修改文件名
这部分比较复杂,无法用defaults write com.apple.screencapture name ‘filename’这样的命令来完成。所以这里我们使用到了Mac中强大的Automator folder action。

首先创建一个Automator脚本。一个Automator脚本就类似一个工作流,按照指定的步骤一步一步执行下去。创建完毕的脚本截图如下:
Automator

实际上这个工作流就是先在指定目录中寻找符合条件的文件名,然后在文件名后面附加递增的数字。

Folder Action类型的Automator脚本默认保存在~/Library/Workflows/Applications/Folder Actions/目录下。(不同类型的脚本保存的目录不同,比如Service类型的Automator脚本则保存在~/Library/Services目录中)

bogon:Folder Actions kamuspwd
/Users/kamus/Library/Workflows/Applications/Folder Actions
bogon:Folder Actions kamus ls -l
total 0
drwxr-xr-x@ 3 kamus  staff  102 Mar  1 19:11 RenameScreenCaptures.workflow

接下来需要将该脚本绑定到snap目录上。
在Finder中找到该目录,右键单击,在菜单中选择“Folder Actions Setup…”,在弹出窗口中选择刚刚保存的脚本,在我的例子中保存为RenameScreenCaptures.workflow。

Choose automator folder action

做完以上所有更动,需要Logout用户再登陆,或者直接在命令行中输入:

killall SystemUIServer

再重新截屏试一下,All done。

java.lang.InternalError when using Xming

正在逐渐将机器上的所有盗版转成正版,实在找不到替代品的准备购买。之前一直在使用盗版的Xmanager做远程X桌面转发,现在开始使用free的Xming。

在使用Xming安装Oracle软件的时候,可能会遇到如下错误,图形界面无法正常打开。
Exception java.lang.InternalError: java/langNullPointerException occurred..

这是因为少安装了额外的Xming font package,安装完毕以后,错误将消失。记录以备忘。

关于Xming及Xming font package的安装,可以参看这里

Oracle Database Instance Startup Fails With Error ORA-27302 ORA-27301

今天启动Oracle Enterprise Linux 5虚拟机中的Oracle11gR2数据库,但是报错。

[oracle@dbserver ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Wed Dec 16 13:28:44 2009

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpsemsper

sskgpsemsper函数可以很简单的猜测是跟semaphore有关,而ORA-27301则是No space left on device,那么很容易判断应该是操作系统内核参数中semaphore设置的问题。

[root@dbserver ~]# /sbin/sysctl -a | grep sem
kernel.sem = 250        100     32      128

而实际上,安装Oracle11gR2的semaphore需求是:
semmsl:250
semmns:32000
semopm:100
semmni:128

很明显semmns和semopm都不足。

[root@dbserver ~]# /sbin/sysctl -w kernel.sem="250 32000 100 128"
kernel.sem = 250 32000 100 128
[root@dbserver ~]# /sbin/sysctl -a | grep sem
kernel.sem = 250        32000   100     128
[root@dbserver ~]# echo "kernel.sem = 250 32000 100 128"  >> /etc/sysctl.conf
[root@dbserver ~]# 

重新启动数据库实例正常。