cht電腦資訊gcin
adm Find login register

gcin filter 打字字數累計

guest
1 gcin filter 打字字數累計
Promote 1 Bookmark 12008-12-27quote  

趁著出差百忙的空閒時間(?)

配合 python 的字數累計 filter  也生出來了。

特點:

  • 每個 user 分開記數。
  • 基本上每次開機會清掉計數(檔案放在 /tmp,不會開機清 /tmp 的 distro 我就沒辦法了,請自己解決)。
  • 搭配詞音或是其他拆字輸入法都可以算到字數。
  • 搭配 python。
  • 沒有多餘的判斷。

 

Solomon
2
Promote 1 Bookmark 12008-12-27quote  

上篇沒登入 XD

 難怪我才想說怎麼沒有上傳檔案的欄位,換成圖片驗證碼。

附上script。

winlin
4
Promote 0 Bookmark 02008-12-27quote  
感謝Solomon,小弟正試用中,一定要推一個  :)
winlin
5
Promote 0 Bookmark 02008-12-27quote  

啊∼有意思!我發現累計字數會即時在gcin icon上顯示!(真是貼心的設計)
好吧我承認其實我是第一次使用gcin filter。 XD
看著數字一直在增加,真有成就感呀!大笑

Solomon
6
Promote 0 Bookmark 02008-12-27quote  
winlin

我發現累計字數會即時在gcin icon上顯示!(真是貼心的設計)

其實那只是我懶得去做其他的判斷與處理 XD

完全說不上貼心啦,真要貼心的話,也只是貼近我懶惰的心。 吐舌頭

winlin
7
Promote 0 Bookmark 02008-12-27quote  

不好意思∼
看到好東西就會忍不住想要提些點子!  XD


icon上的數字其實有點小,看起來有點吃力,


有辦法弄成類似pop out的形式並讓字型稍大嗎?不過這樣可能比較會拖慢速度 :)

Solomon有興趣&有空再試,沒事聽聽就好啦∼
我這個人有時候無聊就喜歡亂回報(有不少人身受其害...),不必當一回事 XD
就目前而言我對這個filter已經很滿意了!

winlin
8
Promote 0 Bookmark 02008-12-27quote  

突然想到,也可以這樣↓

多一個icon位置來顯示

caleb
9
Promote 0 Bookmark 02008-12-27quote  

印象中 gcin-message 的文字讯息不能改字體大小,有興趣的可以去改改 source。

如果不改 source,目前可以搭配 imagemagick 即時製造「圖片 + 文字」,再用 gcin-message 秀出來。

不過 gcin-message 沒提供 shape extension 和透明背景,所以只能有四方形的圖文。

如果要求美觀,可能用專業的 notification daemon 較好。

gcin-message 是可以改得很漂亮多功能,不過「我個人猜測」劉老大不會收太吃資源的 patch 。

(如果能既省資源又好看,推進 gcin 的機率比較大)

winlin
10
Promote 0 Bookmark 02008-12-27quote  
caleb

印象中 gcin-message 的文字讯息不能改字體大小,有興趣的可以去改改 source。

我發現它的字型大小會隨gtkrc而變動,我調一下gtkrc後就覺得OK了 :)

Solomon
11
Promote 0 Bookmark 02008-12-27quote  
caleb提的方式我有想過,不過因為我沒有實際玩過,加上沒有什麼太多餘的時間。所以就只有用gcin-message做簡單的訊息通知。
winlin
12
Promote 0 Bookmark 02008-12-27quote  

剛剛調整過字型大小+延長停留時間之後,我已經對它相當滿意,
上面的提議可以當我沒說 (來亂的∼XD)

嘿嘿∼
我還讓它存在~/.gcin/statistic裡,不清除,依不同日期命名,以後可以比較各日統計量 :)
可惜我不知道如何將它們export到Openoffice.org calc試算表檔案(ods)裡,
不然就能跑報表了 XD

edited: 1
Solomon
13
Promote 0 Bookmark 02008-12-27quote  

我今天下午比較閒 XD

翻了一下imagemagick的手冊,然後就生出這個會出圖的,可以自己換來源圖。可以調字的大小與位置,顏色也可以自己查手冊改一下。字型我沒有認真測試,所以我還不會換字型。

winlin 要不要提供漂亮的底圖呀。有漂亮底圖的話我就要放棄我的字頻統計了(其實可以merge在一起)。 XD

 其實我本來想做成每 N 個字才出一次圖,可是這樣子用詞音的話就不一定會碰到條件符合的時候,所以還是每個字出一次的圖。

不過圖不能太大,我自己測試用的 grid.png 是300x300,有時候會檔到正在輸入的地方。

winlin
14
Promote 0 Bookmark 02008-12-27quote  
Solomon

我今天下午比較閒 XD

翻了一下imagemagick的手冊,然後就生出這個會出圖的,可以自己換來源圖。可以調字的大小與位置,顏色也可以自己查手冊改一下。字型我沒有認真測試,所以我還不會換字型。

winlin 要不要提供漂亮的底圖呀。有漂亮底圖的話我就要放棄我的字頻統計了(其實可以merge在一起)。 XD

 其實我本來想做成每 N 個字才出一次圖,可是這樣子用詞音的話就不一定會碰到條件符合的時候,所以還是每個字出一次的圖。

不過圖不能太大,我自己測試用的 grid.png 是300x300,有時候會檔到正在輸入的地方。

今天我騎機車去買晚餐的時候也在想圖的問題,不過我目前拿不出好圖來~XD
希望有插畫的嗎?(譬如有個小人頭或大姆指的?)
還是單純「材質」式的背景?
Solomon可以先自己做一份看看,說不定創意驚人呀∼

依我個人的私心來看,我個人比較傾向把這兩個功能merge在一起。如果是兩者要合併的話,達到一定數量再出圖的確是比較恰當的,詞音不能剛剛好符合特定數字,我個人認為是可以弄成「超過XXX字!」的圖,而不是「滿XXX字」的圖,譬如:

超過500字時:「哦∼破500字!」
超過1000字時:「賀!破1000字!」
超過1500字時:「啥?破1500字!」
超過2000字時:「呀!破2000字!」
超過3000字時:「狂!破3000字!」
超過5000字時:「幹!破5000字!」

如果兩者不合併,的確是用圖就可以了,只不過不知道對舊電腦會不會比較吃力?


要不要合併,我覺得您可以照原先的想法去試看看,維持你原來的創意也很棒∼
我都想到什麼亂講一通的,聽聽就好,不必認真管我 XD

winlin
15
Promote 0 Bookmark 02008-12-27quote  

補一張圖,希望可以比較清楚表達我的意思。
當剛超過10000字時,出現類似下面的圖:

  http://www.hyperrate.com/topic-files-dir/11/8211-OPrnw37JEE/sq-ex.png

↑這個只是舉例,可以找比較討喜一點的Orz

edited: 2
Solomon
16
Promote 1 Bookmark 02008-12-27quote  

回來之後想了一下,弄出來了。

現在這個 filter 可以設定每打幾個字才出一次圖。

INTERVAL=100

表示每100個字出一張圖,解決詞音這一類輸入法的問題是利用字數的舊值與新值配合輸出字串的長度。

mod_a 為舊值除以 INTERVAL 的餘數,mod_b 為新值除以 INTERVAL 的餘數。一般情況是 mod_a 小於 mod_b,當 mod_a 大於 mod_b 的時候就表示累計超過 INTERVAL,可以出圖了。另外一個狀況是 mod_a 等於 mod_b,只要確定輸出字串長度 len 大於 0,這樣也可以出圖,通常是 INTERVAL = 1 的情況,也就是每個字都出圖。

 

所以現在可以每 1000 個字出一張大圖了 XD
不過若要不等距,如500,1000,2000,3000,5000,10000,我覺得太麻煩了,我還沒想過。 :p

 

 

winlin
17
Promote 0 Bookmark 02008-12-28quote  

Solomon:
我試過了,真的可以用!
我把它改成打1個字就出一張圖,以取代你昨天的那個作法。
這樣不但字比較大,也不會蓋住icon∼
感謝!

http://www.hyperrate.com/topic-files-dir/15/8215-tewuu0jMEg/wc_p.png

 

我嘗試用不同形狀的圖片,
不過,同caleb兄所說,gcin-message不支援有透明背景的圖片,
一些邊邊腳腳的地方還是會出現灰色,所以目前還是只能先用一些材質背景。
真是太可惜了∼不然下面這張圖就不是夢了!

edited: 1
winlin
18
Promote 0 Bookmark 02008-12-28quote  

怪了~
我發現,如果工作列在螢幕上方的話,那個顯示字數的圖會蓋住工作列

 

我是用icewm,其他桌面環境的人也和我一樣嗎?

註:
今天早上第一次試的時候並沒有這樣的問題,是剛剛才出現的...還是我記錯了?

eliu
19
Promote 0 Bookmark 02008-12-28quote  

有 bug,

 

win-message.c: 

   int ox, oy;
  gdk_window_get_origin  (tray_da_win, &ox, &oy);

  int width, height;
  get_win_size(gwin_message, &width, &height);

  if (oy<height) {
    oy = height;
  } else {
    oy -= height;
    if (oy + height > dpy_yl)
      oy = dpy_yl - height;
    if (oy < 0)
      oy = 0;
  }

  if (ox + width > dpy_xl)
    ox = dpy_xl - width;
  if (ox < 0)
    ox = 0;

Solomon
20
Promote 0 Bookmark 02008-12-28quote  

我剛剛改了win-message.c,結果圖的位置變到很底下。我測的圖是300x300的。

請問這樣是正確的位置嗎? 我以為應該是要在 tray icon 下方。

 

eliu
21
Promote 0 Bookmark 02008-12-28quote  

改了卻沒測。好糗呀

這次確定可以了  

 

   gtk_widget_show_all(gwin_message);

  int ox, oy, szx, szy;
  gdk_window_get_origin  (tray_da_win, &ox, &oy);
  gdk_window_get_size(tray_da_win, &szx, &szy);

  int width, height;
  get_win_size(gwin_message, &width, &height);

  if (oy<height) {
    oy = szy;
  } else {
    oy -= height;
    if (oy + height > dpy_yl)
      oy = dpy_yl - height;
    if (oy < 0)
      oy = 0;
  }

  if (ox + width > dpy_xl)
    ox = dpy_xl - width;
  if (ox < 0)
    ox = 0;

Solomon
22
Promote 0 Bookmark 02008-12-28quote  
更新這個狀況,有需要請下載 1.4.3~pre12-0~2
winlin
23
Promote 0 Bookmark 02008-12-28quote  

的確有效,有圖為證:

 

winlin
24
Promote 0 Bookmark 02008-12-28quote  

我換回昨天的Script試了一下,發現eliu兄新改過的win-message.c也有效果:

 

現在「統計字數」不會再擋住icon了,感謝呀~
這樣一來,不在乎字太小的人,只要選用自己喜歡的佈景主題就能滿意了

winlin
25
Promote 0 Bookmark 02008-12-28quote  

我發現詞音的空白鍵選項設成「輸入空白」時,
使用這兩個字數統計的filter,都會讓詞音在緩衝區沒字的狀況下無法輸出空白字元,
請問大家那邊有這樣的情形嗎?

測試步驟:

  1. 詞音的空白鍵選項設成「輸入空白」,
  2. 使用Solomon的字數統計filter,
  3. 開個文字編輯器,切換到詞音輸入法,按鍵盤上的space
謝謝大家~
caleb
26
Promote 0 Bookmark 02008-12-28quote  

echo -n $aa

改成

echo -n "$aa"

試試看。(我沒試)

winlin
28
Promote 0 Bookmark 02008-12-28quote  
caleb

echo -n $aa

改成

echo -n "$aa"

試試看。(我沒試)

感謝,不過還是一樣 XD

Solomon
29
Promote 1 Bookmark 02008-12-29quote  

剛找了一下資料,主要是因為 default IFS為空白鍵的原因。

加一行 IFS='@' 就可以了,不過換來的就是 @ 不能打出來 XD

大家提供一下,哪個字元當 IFS 好。

EDIT:
我後來再試一下,IFS='\000',這樣子應該可以用,不知道中文字會不會被吃掉。

EDIT 2:
直接在 read 前面清掉 IFS,這樣應該就不會有問題了。 「IFS=」,這引號內這樣子。

edited: 2
winlin
30
Promote 0 Bookmark 02008-12-29quote  
Solomon

直接在 read 前面清掉 IFS,這樣應該就不會有問題了。 「IFS=」,這引號內這樣子。

感謝Solomon!這招有效~ 大笑

1,2,next

cht電腦資訊gcin
adm Find login register
views:144321