2011年7月14日木曜日

修正メモ

#!/bin/bash
def_str=`grep 'Background.File' /root/.ideskrc`
def_length=${#def_str}
temp_str=`echo $def_str | cut -c 41-$def_length`

export MAIN_DIALOG='
<window title="idesk_bg_changer">
  <vbox>
    <text><label>idesk用壁紙変更ツール(AO_o10yan)</label></text>
    <frame ファイル名入力 OKで壁紙変更>
      <hbox>
        <text>
          <label>ファイル名:</label>
        </text>
        <entry><variable>FILENAME</variable>
          <default>'$temp_str'</default>
        </entry>
      </hbox>
      <hbox>
        <button ok>
          <action>"./desktop_bg_function2.sh 'onclick' $FILENAME '$temp_str' &"</action>
        </button>
      </hbox>
    </frame>

    <frame ファイル選択で壁紙変更>
      <hbox>
        <entry accept="filename">
          <label>Select an Existing File</label>
          <variable>FILE_FILENAME</variable>
          <default>/usr/share/backgrounds/'$temp_str'</default> 
          <action>"./desktop_bg_function2.sh 'onchange' $FILE_FILENAME '$temp_str' &"</action>
        </entry>
        <button>
          <input file stock="gtk-open"></input>
          <variable>FILE_BROWSE_FILENAME</variable>
          <action type="fileselect">FILE_FILENAME</action>
        </button>
      </hbox>
    </frame>

    <hbox>
      <button cancel></button>
    </hbox>
  </vbox>
</window>
'
gtkdialog3 --center --program=MAIN_DIALOG
#!/bin/bash
new_str=$2

if [ $1 = 'onchange' ];then
  new_str=`basename ${new_str}`
fi  

sed --in-place=.bak --expression=s/$3/$new_str/ /root/.ideskrc

idesk
選択されたファイル名を basename で取り出す。
使用中のファイル名を第3引数で渡し、$3で参照。

0 件のコメント :

コメントを投稿