平衡点


2014/10/02

_ 生存報告

...生きてます. 以下、メモ

tDiary の Debian パッケージ

toy/image_size から sdsykes/fastimage に依存するようになっていたのだけれど, ruby-fastimage 自体は RFS 状態. 現時点で NEW にすら入っていないのはもうておくれでは?

mhc

リポジトリ: yoshinari-nomura/mhc

予定関連はメールで受けとる事が多いので、Wanderlust から即import → Google Calendar に反映とできて素晴しい.

今のところ, mhc 用に一個カレンダー用意して, そっちに同期中.

何故かと言えば?

M-x mhc-goto-this-month でのエラー
# source: scheme
    Debugger entered--Lisp error: (invalid-function mhc-date-mm-first)
    mhc-date-mm-first(16345)
    mhc-calendar-insert-rectangle-at(16345 75 3 ((16314 . [2014 9 1 1 nil nil]) (16315 . [2014 9 2 2$
    mhc-scan-month(16345 mhc-mua #[(schedule) "\300\207" [t] 1] nil)
    mhc-goto-month(16345 nil)
    mhc-goto-this-month(nil)
    call-interactively(mhc-goto-this-month record nil)
    command-execute(mhc-goto-this-month record)
    execute-extended-command(nil "mhc-goto-this-month")
    call-interactively(execute-extended-command nil nil)

...はて?

import from google calendar

Google Calendar 側の予定を mhc に新規に import することはまだできない, とのことで. よーし, やってみるぞー...と思ったら ICS 面倒臭すぎて, quickhack じゃ無理そう(特に繰り返し部分).

Fortran での abort とか STOP とか.

良く知られている通り, abort は GNU 拡張.

  • C の ABORT(3) を call するの?
  • STOP で良い気がしてきた.

某査読

えっと, 締切いつ?

drupal8

そろそろ出るのかな?

Drupal 8 Will Have Something for Everyone to Love | Drupal.org


2014/10/07

_ マルチバイト文字列の幅を 2 としてカウントする

ログインシェルは zsh ですが, あまりカスタマイズしていない佐々木ですこんばんは. 業務で Windows で作成されたらしき日本語の暗号化 zip ファイルを受け取ってじたばたすることが, 最近になって(ようやく?)無視できないくらい増えてきて嫌気がさしています. 外部にファイルを添付して送信する場合に暗号化した zip ファイルにして送信するって文化は誰が勧めたんでしょうね. 心底無駄なんでやめて欲しいです.

本題

zshRPROMT で今いるディレクトリを表示させています. 右端に表示させたいので

# source: sh
  # 変数の文字列計算用関数
  function count_prompt_chars (){
      print -n -P -- "$1" | sed -e $'s/\e\[[0-9;]*m//g' | wc -m | sed -e 's/ //g'
  }
  # precmd のプロンプト更新用関数
  function update_prompt (){
      ## プロンプト: 1段目左
      local ps_user="%(!,%B%F{magenta}%n%b,%n)"
      local ps_host="%m"
      [[ -n ${SSH_CONNECTION} ]] && ps_host="%F{yellow}%m%f"
      local prompt_1st_left="[$ps_user@$ps_host$chroot_info]"
      ## プロンプト: 1段目右
      local prompt_1st_right="[%F{white}%(5~,%-2~/.../%1~,%~)%f]"
      ## 1段目行の残り文字列の計算
      local left_length=$(count_prompt_chars $prompt_1st_left)
      local right_length=$(count_prompt_chars $prompt_1st_right)
      local bar_rest_length=$[ COLUMNS - left_length - right_length -1 ]
      ## 1段目に水平線を引く
      local prompt_1st_hr=${(l:${bar_rest_length}::-:)}
      ## PROMPT の設定
      # @see Zshをかわいくする.zshrcの設定
      # URL: http://qiita.com/kubosho_/items/c200680c26e509a4f41c
      # 横幅等を調整.
      local ps_status="[%j]%(?.%B%F{green}.%B%F{blue})%(?!(*'-')%b!(*;-;%)%b)%f "
      local ps_mark="%(!,%B%F{magenta}#%f%b,%%)"
      PROMPT="$prompt_1st_left$prompt_1st_hr$prompt_1st_right-"$'\n'"$ps_status$ps_mark "
      PROMPT2='|%j]> '
      SPROMPT="[%j]%B%F{red}%{$suggest%}(*'~'%)?<%b %U%r%u is correct? [n,y,a,e]:%f "
      # 右プロンプト
      RPROMPT="$ps_vcs_info"
  }
  precmd_functions+=update_prompt

なんて.

Terminal 01

ですが, zip を展開して日本語のディレクトリなんかができてしまうと...

Terminal 02

原因は wc -c なのですが, これを例えば wc -m なんてすると, 文字数のカウントは正しくなりますが, 表示自体はズレます. なので, ASCII では 1, それ以外では 2 を返すようにしたくなりました.

sed なんかでじたばたしていた訳ですが...

なるほど. 勉強になります.

というわけで

# source: sh
  function count_prompt_chars (){
      # @see https://twitter.com/satoh_fumiyasu/status/519386124020482049
      print -n -P -- "$1" | sed -e $'s/\e\[[0-9;]*m//g' | sed -e 's/[^\x01-\x7e]/aa/g' | wc -m | sed -e 's/ //g'
  }

としてみました. これで幸せ.

Terminal 03

という現実逃避ネタでした.

(追記) 早速ツッコミ頂きました.

おっしゃる通りです..._| ̄|○


2014/10/24

_ ibus-skk を使い始めた.

先日,

というメールが来ていたので ibus-skk を試し始めた.

以前は「モードを切り替えても gnome3 の表示が変わらない」という, 個人的には割と面倒な機能不足があったのだけれど, ibus-skk(>= 1.4.2) からはきちんと表示が変わるようになっていて, とっても満足している.

現状 bugreport もそんなに出てないし, 特に問題無い気がしているのだけれど, これがこのまま jessie に入るのであればとっても幸せだと思ったりする.

以下, ibus について他に気がついたこと.

ibus-skk の gnome3 topbar での表示

Gnome-Shell のデフォルトのテーマでは

# source: css
   /* default text style */
   stage {
       font-family: cantarell, sans-serif;
       font-size: 11pt;
       color: white;
   }

となっている. そのため SKK の表示「あ」「_A」で表示幅が異なるため, 変換エンジンを切り替える度にtopbar に表示させている icon がピョコピョコ動いてしまい, 煩わしい.

とりあえず ~/.themes/Adwaita-Custom/gnome-shell/gnome-shell.css" に

# source: css
   @import url("/usr/share/gnome-shell/theme/gnome-shell.css");

   stage {
       font-family: "VL Gothic" !important ;
   }

なんて書いておいて, gnome-tweak-tool で Gnome-Shell のテーマを Adwaita-Custom (上記 ~/.themes 以下に作ったディレクトリ名に揃える) としておいた. 実際には日英の幅がしっかりした等幅フォントならなんでも良いと思う.

ibus engine <hogehoge> と gnome3 topbar の不一致

ibus-skk 固有の話じゃないけれど.

ibus は 1.5 以降で

ibus list-engine         # 使用可能なキー配列(変換エンジン)のリスト
ibus engine xkb:jp:jpn   # 日本語キーボードへ変更
ibus engine skk          # ibus-skk へ変更

なんて, CUI でキー配列(変換エンジン)を切り替えられるようになっているらしい. しかしながら, 上記コマンドラインでのキー配列(変換エンジン)の切り替えは Gnome3 の topbar に表示されるキーボードレイアウトの切り替えとは別個のモンらしく, コマンドラインでキー配列を切り替えても, topbar での表示が変わらない.

何が困るか, というと

みたいな事をしたくても(できるけれど), Gnome3 の topbar との表示が解離してしまって, 麗しくない.

うーん.

とりあえず

# source: sh
   #!/bin/sh
   STAMP=/tmp/$USERNAME-ibus-toggle
   [ -x /usr/bin/xte ] || exit 0
   if [ -e $STAMP ] ; then
       xte "keydown Super_L" "keydown space" "keyup space" "keyup Super_L"
       rm -f $STAMP
   else
       xte "keydown Super_L" "keydown space" "keyup space" "keyup Super_L"
       touch $STAMP
   fi

なんて sh script 作って上記スクリプトの実行を Henkan に割り当てておく(uim の時と同じ) 「Super +Space」での ibus の切り替えは使わないようにしてみた.

ad hoc で嫌になる. なんか良い方法無いの?


2014/10/25

_ libskk で sticky-shift 的な…

昨日(ibus-skk を使い始めた.)の続き.

uim-skk に存在して, ibus-skk に無い機能として, 個人的に無いと途方に暮れる機能は sticky-shift なのですが.

なんとかならんかなぁ, とじたばたすることしばし.

libskk の keymap は /usr/share/libskk/rules/ 以下にあって, ibus-skk においても, このルールファイルを参照して入力方式を切り替えている.

というわけで

~/.config/libskk/rules/StickyShift/metadata.json

# source: json
  {
      "name": "StickyShift",
      "description": "Typing rule, support sticky key"
  }

~/.config/libskk/rules/StickyShift/keymap/hiragana.json

# source: json
  {
      "include": [
          "default/hiragana"
      ],
      "define": {
          "keymap": {
              ";": "start-preedit-kana"
          }
      }
  }

としてみた. この後 ibus-skk の設定画面で「タイピング方式」から StickyShift を選択することで, なんちゃって sticky-shift が可能になった.

「なんちゃって」の意味は, 本来の sticky-shift の機能では ";;"(セミコロンを二回入力)で ";" が入力できる筈なのだが, どうもうまくいかない.

とはいえ, 長文は Emacs で書くので ddskk を使うだろうから当面は困らないし, とりあえず良しとすることに.

参考:


連絡先など
最近の日記
  • 2024/10/09
    • 1. Mastodon でのメール通知, というか Exim4 と Apparmor
  • 2024/06/19
    • 1. WSL2 での gpg-agent, ssh-agent
  • 2024/06/18
    • 1. WSL で Windows 側のフォントを利用する
  • 2024/06/17
    • 1. WSLとWindowsの時刻同期
  • 2024/06/12
    • 1. wsl2 で systemd
    • 2. wslg の設定
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|
Back to Top ▲