私はUnityの通知バブルが好きですが、私が本当に嫌いなことの1つは、それらを離れてクリックできないことです。
それらの上にカーソルを合わせると、それらがほぼ透明になり、下のウィンドウでクリックスルーできることを知っていますが、小さな(x)アイコンを閉じてください。
代わりに、それをクリックしても閉じられるかもしれませんが、それは問題ではありません。
Unity 15.04でUnity Desktopを使用してこれを設定することは可能ですか?どうすればいいですか?
ほとんどあなたが求めたもの、そしておそらくあなたが好きかもしれないもの、小さな非常に明るいバックグラウンドスクリプト(通知がなければ、システムへの顕著な負荷はまったくありません実行すると、表示されるのを待つ/チェックするだけです)フェードからの通知のマウスオーバー効果をchange:
消える(閉じる):
これは、マウスが領域外から通知領域に移動した場合にのみ有効になります。マウスの場合に通知を見逃さないようにするためです。メッセージが起動されると、すでに通知領域にあります。
スクリプトにはxdotool
が必要です
Sudo apt-get install xdotool
以下のスクリプトを空のファイルにコピーし、manage_notifications.py
として保存します
次のコマンドでスクリプトをテスト実行します。
python3 /path/to/manage_notifications.py
スクリプトを実行した状態で、ターミナルウィンドウを開き、コマンドを実行します。
notify send 'This is a test'
マウスを通知に移動します。フェードする代わりに、消えます。
すべてが正常に機能する場合は、スタートアップアプリケーションに追加します。[ダッシュ]> [スタートアップアプリケーション]> [コマンドを追加]:
/bin/bash -c "sleep 15 && python3 /path/to/manage_notifications.py"
#!/usr/bin/env python3
import subprocess
import time
w = int([s.split("x")[0] for s in subprocess.check_output(
["xrandr"]).decode("utf-8").split() if "+0+0" in s][0]
)
def get_mouse():
loc = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()[:2]
return [int(n.split(":")[1]) for n in loc]
while True:
time.sleep(1)
try:
subprocess.check_output(["pgrep", "notify-osd"]).decode("utf-8")
curloc1 = get_mouse(); t = 1
while t < 10:
time.sleep(1)
curloc2 = get_mouse()
test1 = curloc1[0] > w - 400 and curloc1[1] < 400
test2 = curloc2[0] > w - 400 and curloc2[1] < 400
if all([test1 == False, test2 == True]):
subprocess.Popen(["pkill", "notify-osd"])
break
curloc1 = curloc2
t = t+1
except:
pass
xkill
をキーボードショートカットにバインドします(たとえば、私の設定を AltShiftK )