web-dev-qa-db-ja.com

Unityウィンドウのアクティブ/非アクティブなタイトルバーの色が異なりますか?

うわー-これは解決するのがとても難しいようです!私は検索して、アクティブなウィンドウをすばやく識別できることについて同様の問題/苦情を持つ他の人々を見つけました、たとえば フォーカスのあるウィンドウをさらに強調する しかし、実際の解決策はまだ見つけていません!

私は3台のモニターを使用していて、「色が損なわれている」または「シェードブラインド」(「カラーブラインド」の上のステップ)です。アクティブウィンドウと非アクティブウィンドウの違いを見つけたので、何が何なのかわかりません。

全画面ウィンドウには影が付かないため、ウィンドウの影を追加してもあまり役に立ちません。加えて、影は非常に微妙なので、簡単な識別子ではありません。

私はMSウィンドウに慣れています。ウィンドウのタイトルバーの色を簡単に変更でき、コントラストが非常に高いからです。どのウィンドウがアクティブウィンドウであるかがすぐにわかります。私は常に-そしてこれはUbuntuで数週間後です-Ubuntuでこれを理解するのに問題があります。

私の簡単な解決策は、ウィンドウのタイトルバーに2つの異なるコントラストの強い色を使用することです。これはできませんか?私は他のテーマを探してみましたが、それらはすべて「アクティブかどうかにかかわらず、すべてのウィンドウに同じ(または私に表示される)色付きのタイトルバーがあります」に固執しているようです。私はこの問題を非常に苛立たせています。また、薄暗い非アクティブウィンドウプラグインも試してみましたが、ほとんど何もせず、役に立ちませんでした。 (Ubuntu 16.04。3モニター、nvidiaコントローラーおよびそれらのビデオドライバー)

13
RRelax

この質問 の回答を確認しましたか?作成または編集~/.config/gtk-3.0/gtk.css なので:

.titlebar {
    background: #3089FF;
    color:white; 
}

.titlebar:backdrop  {
    background: #777777;
    color:white;
} 

好みに合わせて異なる色を選択できることに注意してください。次にgnomeを更新します。

setsid gnome-Shell --replace

私はちょうどそれを試してみました、そしてそれは私のために働きました enter image description here

5

すぐに使えるソリューション

ちょっとしたちょっとしたトリックプレスがあります Alt+F7、マウスを揺らしてから押す Left-Click ウィンドウが希望する場所に戻ったときにマウスで。

欠点は、ウィンドウを元の座標に手動で再調整する時間です。ショートカットキーに割り当てられたスクリプトを含むより良い方法については、次のセクションで説明します。


ショートカットキーでアクティブウィンドウを表示

これは、次のセクションで説明するrevealwindow2を改良したスクリプトです。このスクリプトは、ウィンドウを縮小および拡大して、Webページのレイアウトを再フォーマットする必要があるブラウザーウィンドウに負担をかけます。

この新しいスクリプトrevealwindow3はショートカットキーに割り当てることができるので、どこにいてもアクティブウィンドウがわかります。

reveal window3.gif

revealwindow3 bashスクリプト

#!/bin/bash

# NAME: revealwindow3
# CALL: Best method is to call via hotkey.

# DESC: Reveal active window by moving it in circle on screen.
# PARM: Pare 1 override default # pixels for moving
#       For Ask Ubuntu Question:
#       https://askubuntu.com/questions/943147/different-colors-for-active-inactive-unity-window-title-bars

# DATE: November 19, 2019.

# NOTE: Enhancement to revealwindow2 which shrinks and expand sizes of window
#       which taxes browsers, etc. that have to reformat the window. Also cause
#       of epileptic like shock.

# Dependancy
command -v xdotool >/dev/null 2>&1 || { echo >&2 \
        "xdotool package required but it is not installed.  Aborting."; \
        exit 3; }

# Defaults

STEP_PIXELS=25
SLEEP=.025

if [[ "$#" -eq 1 ]] ; then
    [[ "$1" -lt 5 ]] || [[ "$1" -gt 1000 ]] && { \
        echo "STEP_PIXELS must be between 5 and 1000" ; exit 2; }
    STEP_PIXELS="$1"
fi

# Get Window Information
    WinID=$(xdotool getactivewindow)
  WinLeft=$(xwininfo -id "$WinID" | grep 'ute upper-left X:' | cut -d: -f2)
   WinTop=$(xwininfo -id "$WinID" | grep 'ute upper-left Y:' | cut -d: -f2)
#echo "Win Flds: $WinLeft x $WinTop x $WinWidth x $WinHeight"

# Array of steps
StepArr=( R R R R R D D D D L L L L L U U U U U )

CurrLeft=$(( WinLeft - (STEP_PIXELS *2) ))
[[ $CurrLeft -lt 0 ]] && CurrLeft=0
CurrTop=$(( WinTop - (STEP_PIXELS *3) ))
[[ $CurrTop -lt 0 ]] && CurrTop=0

function XdoMove () {
    local i
    i="$1"
    case "$1" in
    R)
        CurrLeft=$(( CurrLeft + STEP_PIXELS )) ;;
    D)
        CurrTop=$(( CurrTop + STEP_PIXELS )) ;;
    L)
        CurrLeft=$(( CurrLeft - STEP_PIXELS ))
        [[ $CurrLeft -lt 0 ]] && CurrLeft=0 ;;
    U)
        CurrTop=$(( CurrTop - STEP_PIXELS ))
        [[ $CurrTop -lt 0 ]] && CurrTop=0 ;;
    esac

    xdotool windowmove "$WinID" "$CurrLeft" "$CurrTop"
    sleep $SLEEP
}

xdotool windowmove "$WinID" "$CurrLeft" "$CurrTop"
for i in "${StepArr[@]}" ; do XdoMove "$i" ; done


# Restore original Window size and position just in case
xdotool windowmove "$WinID" "$WinLeft" "$WinTop"

sleep .1 # Need time for xorg to update itself.

# Compensate for Window refusing to move to top (Y) coordinate specified
   InfoTop=$(xwininfo -id "$WinID" | grep 'ute upper-left Y:' | cut -d: -f2)

if [[ $InfoTop -ne $WinTop ]] ; then
    Adjust=$((InfoTop - WinTop))
    AdjTop=$((WinTop - Adjust))
    xdotool windowmove "$WinID" "$WinLeft" "$AdjTop"
    echo "Top adjusted by: -$Adjust from: $WinTop to: $AdjTop"
fi


アクティブなウィンドウを強調表示するスクリプト

この方法では、ショートカットキーを使用します。使った Ctrl+Alt+W 左小指+左中指+左親指は簡単な組み合わせです。ショートカットキーをスクリプトreavelwindow2に割り当てます。

revealwindow2.gif

スクリプトは、アクティブウィンドウを10ステップで縮小してから、5ステップで拡大します。元々私はwmctrlを使用してスクリプトを書きましたが、私にはうまくいきませんでした。したがって、代わりにxdotoolを使用しました。

#!/bin/bash

# NAME: revealwindow2
# CALL: Best method is to call via hotkey.

# DESC: Shrink and expand size of active window.
#       For Ask Ubuntu Question:
#       https://askubuntu.com/questions/943147/different-colors-for-active-inactive-unity-window-title-bars

# DATE: November 17, 2019. Modified November 18, 2019.

# Dependancy
command -v xdotool >/dev/null 2>&1 || { echo >&2 \
        "xdotool package required but it is not installed.  Aborting."; \
        exit 3; }

# Get Window Information
    WinID=$(xdotool getactivewindow)
  WinLeft=$(xwininfo -id "$WinID" | grep 'ute upper-left X:' | cut -d: -f2)
   WinTop=$(xwininfo -id "$WinID" | grep 'ute upper-left Y:' | cut -d: -f2)
 WinWidth=$(xwininfo -id "$WinID" | grep 'Width:' | cut -d: -f2)
WinHeight=$(xwininfo -id "$WinID" | grep 'Height:' | cut -d: -f2)
#echo "Win Flds: $WinLeft x $WinTop x $WinWidth x $WinHeight"

WidthStep=$(( WinWidth / 10 ))
HeightStep=$(( WinHeight / 10 ))

function XdoResize () {
    local i
    i="$1"
    NewLeft=$(( i * WidthStep/2 + WinLeft ))
    NewTop=$(( i * HeightStep/2 + WinTop ))
    NewWidth=$(( WinWidth - ( i * WidthStep) ))
    NewHeight=$(( WinHeight - ( i * HeightStep) ))

    xdotool windowsize "$WinID" "$NewWidth" "$NewHeight"
    xdotool windowmove "$WinID" "$NewLeft" "$NewTop"
    sleep .012
}

# Shrink window with xdotool
for (( i=1; i<10; i++ )) ; do XdoResize $i ; done

# Expand window with xdotool
for (( i=5; i>0; i-- )) ; do XdoResize $i ; done

# Restore original Window size and position just in case
xdotool windowsize "$WinID" "$WinWidth" "$WinHeight"
xdotool windowmove "$WinID" "$WinLeft" "$WinTop"

sleep .1 # Need time for xorg to update itself.

# Compensate for Window refusing to move to top (Y) coordinate specified
   InfoTop=$(xwininfo -id "$WinID" | grep 'ute upper-left Y:' | cut -d: -f2)

if [[ $InfoTop -ne $WinTop ]] ; then
    Adjust=$((InfoTop - WinTop))
    AdjTop=$((WinTop - Adjust))
    xdotool windowmove "$WinID" "$WinLeft" "$AdjTop"
    echo "Top adjusted by: -$Adjust from: $WinTop to: $AdjTop"
fi

一部のウィンドウではサイズ変更ができません。この場合、ウィンドウは右に下がってから左に戻ります。あなたはまだアクティブなウィンドウである同じ視覚的な手がかりを手に入れますが、動きは異なります。

4

Ubuntu 16.04 Documentation に従って、設定を開き、ユニバーサルアクセスセクションに移動できます。ハイコントラストをオンにするだけで完了です。

このオプションは、[設定]> [ユニバーサルアクセス]> [表示]> [ハイコントラスト]にあります。以前のバージョンのUbuntuを使用している場合でも、これは機能します。

1
CStafford-14