header

2015年1月28日水曜日

ubuntu14.10 awesome wm環境でプリンタ設定にはまった

Ubuntu14.10を導入してからプリンタの設定をしてなかったので設定した。

自分の環境を書くとUbuntu14.10でwindow managerはawesomeを利用している。だからなんだといわれそうだけど、awesomeだとprinterの設定する項目がGUIでみつからなかったので自分のために記事にしておく。

ドライバーのインストール

自分が使いたいプリンタ用のドライバをインストールする。CanonのMG6120が使いたかったので、 このページこのページ を参考にppaを追加した。

sudo add-apt-repository ppa:michael-gruz/canon-trunk
sudo apt-get update



64ビット環境なので以下をインストールした(自分が必要なドライバを選ぶ)MG6120は6100系のドライバで動いたのは前の環境で知っていたので以下のようにインストールした。

sudo apt-get install cnijfilter-common-64 cnijfilter-mg6100series-64





プリンタの設定

ブラウザでlocalhost:631にアクセスする方法もあるけど、僕はsystem-config-printerコマンドで設定した。locahost:631で設定する場合はadd printerとかで先に管理者用のパスワードを入力しないとfind network printerでプリンタがみつけられなくてはまった。

sudo system-config-printer




なに用のプリンタか

プリンタにいくつか種類があるがnmapコマンドで調べると、ippとかlpdとか推測できる。自分の場合は、515があったのでlpdでprinterを登録したら、印刷できるようになった。

nmap PRINTER_IP_ADDRESS
# result example
# Not shown: 997 closed ports
# PORT STATE SERVICE
# 80/tcp open http
# 139/tcp open netbios-ssn
# 515/tcp open printer
# Nmap done: 1 IP address (1 host up) scanned in 3.93 seconds

エラーメッセージ

上に書いたやりかたに行き着くまでエラーをみながらググっていたが、エラーは以下のようなコマンドでチェックできる。

sudo tail -n 100 /var/log/cups/error_log



2015年1月8日木曜日

Emacs org-modeのちょっと便利な関数

Emacs advent calender用に書いたのですが、エントリーするの遅れて更新してなかった記事です。さてorg−modeですがこのブログを書くのに利用したり何かメモするのに使ったりしてます。で、たくさんありすぎて困るorg-modeの機能ですが僕はよく使う機能はカーソルの位置によっていくつかの機能を切り分けて実行する関数を書いてひとつのキーで利用しています。今回はその便利関数の紹介です。

機能

今回紹介する関数の機能の要約は

  • カーソルがソースブロックテーブル上では、別バッファを開く
  • org-src-edit-bufferでは(上の別バッファのこと)そのバッファを閉じる
  • org-table上では折りたたまれてる内容を展開する
  • *(アスタリスク)のヘッダー行の場合,TODO,DONEなどのラベル選択を出す
  • チェックボックス(-[])ではXと無入力のトグル動作
  • link部分ではlinkの参照
  • 何もマッチしないときは、org-drawerでタンス作成

ちょっと機能がてんこもりで形容するのが難しいので、名前はorg-dwimとしました。(ちなみに DWIM はDo What I Meanの略らしい)

以下がコードです。適当にあなたの.emacsとかに貼りつけてください。(gist版もあるよ)

(defun org-dwim ()
"My convinience function for `org-mode'."
(interactive)
(cond
((org-in-block-p '("src"))
(org-edit-special))
((org-src-edit-buffer-p)
(org-edit-src-exit))
((org-table-p)
(org-table-edit-field 4))
((org-on-heading-p)
(org-todo))
((org-at-item-checkbox-p)
(org-toggle-checkbox))
((and org-return-follows-link
(let ((tprop (get-text-property (point) 'face)))
(or (eq tprop 'org-link)
(and (listp tprop) (memq 'org-link tprop)))))
(org-open-at-point))
(t (org-insert-drawer))))

各機能の説明とこの関数の説明とかをします。

link

下のような形式でURLとそのエイリアスを書くと、そのエイリアスで表示してくれる機能がorg-modeにはありますが、カーソルがそのリンク上にあるとorg-dwimで開くことができます。

ただ、デフォルトでRETキーでリンクに飛べる。のでこの機能はカレーに入っている福神漬のようにあまり意味はありません。(じゃあいれんなよ)

[[URL][ALIAS]]




table

パイプで区切ることでorg-mode上でExcelのセルとカラムのようなことができるますが、使ってると文字がながくなってきて省略したいときがあります。

で、省略したいときは下の<N>のような書き方でNに数字を入れるとその数以上は折りたたんでくれる。

| <3> |  <4> |   <5> |
| 1=> | 12=> | 12345 |



それでorg-dwim関数はカーソルがその場所にあればこの折りたたまれた状態から展開してくれます。(僕のような、キーバインド覚えられない人はここから折りただんだテーブルを展開できなくて詰む)

src block

org-mode上で特定のプログラミング言語を埋めこむことができます。埋めこみ方は下のようにbegin_srcとend_srcで囲みます。(小文字でも大丈夫です)

#+BEGIN_SRC emacs-lisp
(message "hoge")
#+END_SRC



正式名称謎ですが、このbegin_srcとend_srcの間をソースブロックって便宜上よびますね。でこのソースブロックの中で、org-dwimを呼び出すと別バッファが開いてそこでそのプログラミング言語のメジャーモードで編集できます。編集が終わったら、またorg-dwim関数を呼べばもとのorg-modeのファイルへ戻れます。

注意点として、flycheckなどのシンタックスチェッカーがあると問題がある場合もあります。その場合は`(org-src-edit-buffer-p)`関数で場合わけする必要があります。

checkbox

org-modeには以下のような感じで書くチェックボックス機能があります。

- [ ] Todo
- [X] Done


しかしながら、C-c C-x C-bというcheck boxをon, offするキーバインドが覚えられなかったので、今回のorg-dwimに追加しました。

Drawers

org-mode manualみてたらこんな機能があった。

Names of drawers.  Drawers are not opened by cycling on the headline above.
Drawers only open with a TAB on the drawer line itself.



Drawerってタンスって意味らしい、説明のとおりシフト+tabで折り畳み展開を繰り返してもタンスの中身までは展開されない。どれくらい有用かよくわかっていないけどデフォルトの関数がなかったので追加してみた。

書き方

:RESULTS:
たんす
:END:





おわり

あまりorg-mode使いこなせてるわけではありませんが、デフォルトのキーバインド覚えるよりはいくぶんましかと思います。よかったら使ってみてください。

Popular Posts

Blogger templates

Blogger news