Fedora」タグアーカイブ

Ctrl+Space

先日の Update から Fedora 15 のキーボードで「全角/半角」キーが使えない。
検索すると全員か、私は素直に Ctrl+Space を利用しながら気長に修正を待つよ。

ところで Ctrl+Space って Gedit のスニペット挿入ショートカットだったんだが。
ついでに Visual Studio や monodevelop のコード保管もこのキー。

なので GNOME 2 の頃は iBus の設定からこのキーを削除するのが儀式だったんだけど…
iBus の設定に無いし Gedit もまったく反応しない、どうなっているの…
Ubuntu 11.04 の Gedit 2 は変わっていないな、GNOME 3 ではどこで指定するのだ?

追記
2011.07.10 のアップデートで以前の方式に戻したっぽい、反応は鈍くなったけど。
というか Ctrl+Space がデフォルトで利用できなくなって Gedit で使えるように。
自分で iBus の設定を加える必要があるみたい。

更に追記 2011.07.14 のアップデート
Zenkaku_Hankaku から Releace を外さないと認識しなくなっている…
製作者も迷走しているのだろうか、ごくろうさま。

追記おわり

Common F15 bugs – FedoraProject

なんとかならないかと色々探したり試したりしていて発見。
試しに昔懐かしい Alt+「全角/半角」 を何気に押してみたら

複数タブは無理だけど複数ウインドウならこのキーで選択できる。
英語キーボードは持っていないから解らないけど、もしかしてこの機能が影響している?

キーコードを調べるのに xev というコマンドがある。

端末から起動して何かシグナルが発生すると標準出力に吐き出される。
Zenkaku_Hankaku はしっかり認識しているのか、キーコードが原因では無いな。
というか xev って便利だな、なるほどこんなシグナルが発生しているのね。
今後のアプリ開発に利用させてもらおう。

ついでに
/etc/X11/xorg.conf.d/00-system-setup-keyboard.conf
/etc/sysconfig/keyboard
どちらも jp106 なのに

$ setxkbmap -print
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+japan"	};
	xkb_symbols   { include "pc+jp+inet(evdev)+terminate(ctrl_alt_bksp)"	};
	xkb_geometry  { include "pc(pc104)"	};
};

となるのだがコレらは無視され evdev というものが自動認識するらしい。
Ubuntu の頃は自動認識に問題が何もなかったので調べようとも思った事が無かった。

/usr/share/X11/xkb/keycodes/evdev
が割り当て表みたい、よくある CapsLock と Ctrl を入れ替えるには

$ beesu gedit /usr/share/X11/xkb/keycodes/evdev

で開いて 37 と 66 を入れ替えて再ログインすればイケた、なるほど。
xmodmap とかはもうどうでもいいんだね。

cat /proc/bus/input/devices
でマウスやキーボード等のデバイスを確認できる。

無線マウスのレシーバであるとかも解るのか、なるほど。
解決はしなかったけどおかげで色々と知ることがあってよかった。

でもやっぱり Ctrl+Space では慣れていなくて間違える…

Fedora 15 Auto Start Application

Fedora 15 を GNOME 3 環境で使っている。

Windows でいうスタートアップ登録を行いたい。
しかし GNOME 2 時代にはメニューにあったはずの
「自動起動するアプリケーション」が見当たらない。

とはいえメニューは単なるランチャなのでをコマンドで起動できる。
Ubuntu と同じものであるが GTK3 化されているのはスクロールバーで解る。

$ gnome-session-properties

このアプリが読み込むのは以下にある *.desktop ファイル。

# 共通設定 /etc/xdg/autostart
# 個人設定 ~/.config/autostart

つまり自身で上記に放り込んでも有効だけど標準アプリがあるのだから利用すべ。
「追加」をクリックして自動起動したいアプリを登録していく。
ココでは筆者が公開している clipolix を ~/bin に放り込んだものを

~/.config/autostart ディレクトリが作成されているので確認。

そして再ログイン。
これだけで見事にログインで自動起動環境の完成、簡単ですね。

Fedora 15 Keepassx

Fedora 15 で Keepassx を使って困ったことがあった。
Ctrl+V での貼り付けでは @ が [ になって貼り付けされる。

ユーザー名にメールアドレスを利用するトコって多いから困る。
日本語キーボードの @ 位置は英語キーボードだと確か [ だよなぁ。
とりあえず setxkbmap -print コマンドで見てみる。

pc104 って何だ?よくわからん。
とりあえず ~/.bash_profile に以下を追記して再ログイン。

setxkbmap -model jp106

これで Keepassx の貼り付けは問題無くなった。
しかし setxkbmap -print コマンドは何も変わらない。
もっと正しい方法があるんだろうな。

iter_previous @ GTK+ 3 only

seemex を Ubuntu 11.04 で動かすテスト。
あらら色々問題が。
まず前回書いた StyleContext は GTK+ 2 では使えない。

# Toolbar Style
toolbar = self.uimanager.get_widget('/ToolBar')
toolbar.set_style(gtk.ToolbarStyle.ICONS)
try:
    style = toolbar.get_style_context()
    gtk.StyleContext.add_class(style, gtk.STYLE_CLASS_PRIMARY_TOOLBAR)
except Exception, s:
    pass # GTK+ 2

コレでいいや、GNOME 3 に合わせたいだけの処理なのだし。

AboutDialog の get_major_version() メソッドも使えなかった。
MAJOR_VERSION とかの定数はどちらでも使えるからコッチに変更しよう。

更に GtkTreeView 順番を上に移動する iter_previous もダメか。
GtkTreePath には確か prev メソッドがあったよな。

def on_item_up(self, widget, event=None):
    selection = self.custome_treeview.get_selection()
    model, it = selection.get_selected()
    p = model.get_path(it)
    if it:
        path = model.get_path(it)
        if path.prev():
            itprev = model.get_iter(path)
            model.swap(it, itprev)
            self.change()
        """ GTK+ 3
        itprev = it.copy()
        if model.iter_previous(itprev):
            model.swap(it, itprev)
            self.change()"""
    else:
        self.messagebox(MESSAGE_NON_SELECT)

せっかく簡単になったけど GTK+ 2 のままの Ubuntu を考慮しなきゃとは…

しかし Fedora の VirtualBox ose アップデートはまだか。
右 Ctrl+F でもそのまんま XGA サイズだし \ は打てないし辛い。

Fedora 15 Trash icon on your desktop

Fedora 15 x86_64 を二週間も使って何を今頃気がついた。
dconf-editor で

/org/gnome/desktop/background/show-desktop-icon
にチェックすればデスクトップに物が置けるようになるこうしておけば

/org/gnome/nautilus/desktop
以下で GNOME2 同様にデスクトップアイコンの表示切り替えができる、ついでに

/org/gnome/desktop/interface
以下でツールバー文字を消したりメニューやボタンにアイコンを付けたり。

やっぱりデスクトップには物が置けたほうが便利だ、ゴミ箱も表示できるし。
特にスクリーンショットの整理が今まで面倒だったのよね。

**********

ところでこの Gedit ツールバーのように seemex はできないのだろうか?
GNOME アプリは全部この色付きスタイルになっているので違うと気になる。

そんな時はソースコードを見れば解るはず、Eye of GNOME のサイトから FTP だ。
Eye of GNOME の「情報(A)」から普通にアクセスしてとっとと落とす。

gtk_style_context_add_class
という関数を使うようだ。
そうか Style がどうとかドキュメントにあるのはこういうことか。
今まで知らなかった、とにかく Python から利用するにはこう書けばいいようだ。

# Toolbar Style
toolbar = self.uimanager.get_widget('/ToolBar')
toolbar.set_style(gtk.ToolbarStyle.ICONS)
style = toolbar.get_style_context()
gtk.StyleContext.add_class(style, gtk.STYLE_CLASS_PRIMARY_TOOLBAR)

おぉ同じになった、こうすればいいようだ。
しかしこんなページを見つけたけどこうしなきゃダメなのかな?

“Hello World” in Python with GTK+ 3

というか PyGtk ではないので Python with GTK+ 3 と書くべきなんだろうなと。

**********

ところでアップデートしたら何故か gcc が入っていた。
/usr/include にヘッダとかも、自分で入れた覚えは無いがいつのまに。

何かにくっついてきたのだと思うけど、まあいいや。
Python のほうが便利なので気が向いたらでしか使わないと思うけどさ。