2020年6月18日木曜日

i3wmにideskでアイコンを表示

Win+DでdmenuやRofiを起動してアプリをつけるというのは慣れるとそこまで苦ではないんだけども、デスクトップが壁紙だけとかConkyしかないとかいうのも少し寂しいのでideskでアイコンを並べてもらうことにした。やっぱ壁紙は散らかるアイコンとセットじゃないとね。

Debian 10 i3wm

ideskのインストールと設定

たぶん公式リポジトリにあるので sudo apt install idesk で入れられる。

設定ファイルはホーム直下にある .ideskrc
並べたいデスクトップアイコンを格納するフォルダはホーム直下の .idesktop/アプリ名.lnk として詰め込む。

.ideskrcでフォントを変えたり文字色を変えたり、カーソルを載せた時にツールチップとか透過度とか色々ある。
ideskは対象が全領域なのでConkyみたいにrcファイルで表示範囲を決めたりというのは多分しないっぽい。

下は自分の設定。

.ideskrc


table Config
  FontName: URW Gothic L
  FontSize: 10
  FontColor: #FFFFFF
  Bold: false
  ToolTip.FontSize: 10
  ToolTip.FontName: gothic
  ToolTip.ForeColor: #FFFFFF
  ToolTip.BackColor: #333333
  ToolTip.CaptionOnHover: false
  ToolTip.CaptionPlacement: Right
  Locked: false
  Transparency: 32
  Shadow: true
  ShadowColor: #000000
  ShadowX: 1
  ShadowY: 1
  ClickDelay: 300
  IconSnap: true
  SnapWidth: 10
  SnapHeight: 10
  SnapOrigin: BottomRight
  SnapShadow: false
  SnapShadowTrans: 200
  CaptionOnHover: false
  CaptionPlacement: bottom
  FillStyle: fillinvert
end
table Actions
  Lock: control right doubleClk
  Reload: middle doubleClk
  Drag: left hold
  EndDrag: left singleClk
  Execute[0]: left doubleClk
  Execute[1]: right doubleClk
end

起動しても出ない

背景色を透過していないConkyがデスクトップにある場合、Conkyの後ろに隠れてしまう。(自分がそうだった)
あと、起動する時に DISPLAY=:0 idesk とするとか。

パス関連の指定に$HOME  とか使っていると出ないとか、lnkファイルの書き方や別の拡張子のものあったりすると読み込みが止まるかもしれない。
(ドットで始まるファイルは置いても大丈夫)

簡易登録スクリプト

lnkファイルの登録が地味に面倒なので。
座標がランダム生成だしアイコンは適当に用意したpngなので本当に簡易。
←簡易アイコン debian32.png

ideskregister [アプリ名] で実行すると .base ファイルを引っ張ってきて適当にsedで名前と実行コマンドを変えて座標を勝手につけて登録する。

.idesktop/.base
table Icon
     Caption: #CAPTION#
     Icon: /home/fahrenheit/.icons/debian32.png
     Width: 32
     Height: 32
     X: 911
     Y: 981
     Command[0]: #COMMAND#
     Command[1]: leafpad /home/fahrenheit/.idesktop/#COMMAND#.lnk
end
左ダブクリで起動、右ダブクリでlnkファイルを編集できるようにする。

bin/ideskregister

#!/bin/bash
if [ "x$1" = "x" ];then
echo "ideskregister [applicationname]"
exit
fi
X=$(echo $((($RANDOM % 1200)+500)))
Y=$(echo $(($RANDOM % 900)))
WORKDIR=$HOME/.idesktop
cat $WORKDIR/.base| sed -e "s/#CAPTION#/$1/" -e "s/#COMMAND#/$1/" -e "s/X:.*$/X: $X/" -e "s/Y:.*$/Y: $Y/" > $WORKDIR/$1.lnk
# リロード
killall idesk
idesk &
自環境だと左側数百pxをConkyに充てているのでランダムX座標に500を足してConkyと被らないようにしている。

0 件のコメント:

コメントを投稿