AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1244802
Accepted
To Do
To Do
Asked: 2020-05-30 00:44:06 +0800 CST2020-05-30 00:44:06 +0800 CST 2020-05-30 00:44:06 +0800 CST

如何调暗非活动窗口

  • 772

在 Unity 时代,有一个 Compiz 设置,您可以在其中强制非活动窗口变暗。我经常使用两个显示器并打开多个窗口,并且经常发生我开始输入错误的窗口。

我已经尝试过更改标题栏的颜色,但这似乎对我没有多大帮助。

有没有办法让非活动窗口变暗,同时让它们保持清晰?

我使用 Gnome 作为我的桌面环境。

gnome appearance window 20.04
  • 1 1 个回答
  • 1303 Views

1 个回答

  • Voted
  1. Best Answer
    To Do
    2020-06-02T06:32:29+08:002020-06-02T06:32:29+08:00

    因此,受评论的启发,我搜索了合适的 gnome 扩展并找到了两个有用的扩展:

    阴影非活动窗口和窗口模糊效果

    我选择了第二个,因为它更具可配置性。

    但是,我很快意识到,虽然这在我快速切换窗口时很有帮助,但在其他时候却很麻烦。不想每次都打开扩展应用程序来启用/禁用扩展,我做了一些研究,发现这个脚本我修改如下:

    #! /usr/bin/env bash
    
    #   Copyright (C) 2016
    #       Alexandru Catalin Petrini <[email protected]>
    #  This script is intended to usefully manage gnome-shell extensions,
    #  in compatible Gnome Shell versions.
    
    # Install this script by running this command:
    # $ sudo wget https://raw.githubusercontent.com/cyberalex4life/gnome-shell-extension-cl/master/gnome-shell-extension-cl -O /usr/local/bin/gnome-shell-extension-cl && sudo chmod +x /usr/local/bin/gnome-shell-extension-cl
    
    
    # -------------------------------------------------------------------------------
    
    function get_enabled_extensions() {
        enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
                                   sed -e 's|^@as ||g' | tr -d "[",",","]","\'") )
    }
    
    
    function print_enabled_extensions(){
        get_enabled_extensions
        for enabled_extension in "${enabled_extensions[@]}"
        do
            echo "$enabled_extension"
        done
    }
    
    
    # -------------------------------------------------------------------------------
    
    function get_installed_extensions() {
        global_installed_extensions=( $(find "/usr/share/gnome-shell/extensions/" \
                                             -maxdepth 1 -type d -name "*@*" -exec \
                                             /usr/bin/basename {} \;) )
        local_installed_extensions=( $(find "$HOME/.local/share/gnome-shell/extensions/" \
                                            -maxdepth 1 -type d -name "*@*" -exec \
                                            /usr/bin/basename {} \;) )
    
        if [ ${#local_installed_extensions[@]} -gt ${#global_installed_extensions[@]} ]
        then
            installed_extensions=( ${local_installed_extensions[@]} )
            test_extensions=( ${global_installed_extensions[@]} )
        else
            installed_extensions=( ${global_installed_extensions[@]} )
            test_extensions=( ${local_installed_extensions[@]} )
        fi
        for test_extension in "${test_extensions[@]}"
        do
            test_extension_not_doubled=true
            for installed_extension in "${installed_extensions[@]}"
            do
                if [ "$test_extension" = "$installed_extension" ]
                then
                    test_extension_not_doubled=false
                    break
                fi
            done
            if  [ $test_extension_not_doubled = true ]
            then
                test_extension=( $test_extension )
                installed_extensions=( "${installed_extensions[@]}" "${test_extension[@]}" )
                #echo ${test_extension[@]}
            fi
        done
        echo "${installed_extensions[@]}"
    }
    
    
    function print_installed_extensions() {
        installed_extensions=( $(get_installed_extensions) )
        for installed_extension in "${installed_extensions[@]}"
        do
            [ "$(check_extension_is_enabled "$installed_extension")" = true ] && \
                status="enabled" || status="disabled";
            printf "%-65s - %-10s \n" "$installed_extension" "$status"
        done
    }
    
    
    # -------------------------------------------------------------------------------
    
    function check_extension_is_enabled() {
        extension_to_check=$1
        enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
                                   sed -e 's|^@as ||g' | tr -d "[",",","]","\'") )
        for enabled_extension in "${enabled_extensions[@]}"
        do
            if [ "$enabled_extension" = "$extension_to_check" ]
            then
                echo true
                return
            fi
        done
        echo false
    }
    
    
    function check_extension_in_all_extensions() {
        extension_to_check=$1
        installed_extensions=( $(get_installed_extensions) )
        for installed_extension in "${installed_extensions[@]}"
        do
            if [ "$installed_extension" = "$extension_to_check" ]
            then
                echo true
                return
            fi
        done
        echo false
    }
    
    
    function version_greater() {
        minimal_version=3.18.0
        our_version=$(gnome-shell --version | awk '{print $3}')
        if [ "$(echo "$our_version $minimal_version" | tr " " "\n" | sort -V | head -n 1)" != "$our_version" ]
        then
            echo true
        else
            echo false
        fi
    }
    
    
    function disable_extension() {
    
        arguments=("$@")
        unset "arguments[0]"
    
        for extension_to_disable in "${arguments[@]}"
        do
    
            if  [ "$(check_extension_in_all_extensions "$extension_to_disable")" = false ]
            then
                echo "'$extension_to_disable' is not installed."
                continue
            fi
            if  [ "$(check_extension_is_enabled "$extension_to_disable")" = false ]
            then
                echo "'$extension_to_disable' is already disabled."
                continue
            fi
            if [ "$(version_greater)" = true ]
            then
                gnome-shell-extension-tool -d "$extension_to_disable"
                continue
            fi
            enabled_extensions=( $(gsettings get org.gnome.shell enabled-extensions | \
                                       tr -d "[",",","]","\'") )
            enabled_extensions_string=""
            for enabled_extension in "${enabled_extensions[@]}"
            do
                if [ "$enabled_extension" != "$extension_to_disable" ]
                then
                    enabled_extensions_string="$enabled_extensions_string '$enabled_extension', "
                fi
            done
            enabled_extensions_string=${enabled_extensions_string:1:-2}
            enabled_extensions_string="[ $enabled_extensions_string ]"
    
            dbus-launch gsettings set org.gnome.shell enabled-extensions "$enabled_extensions_string"
    
        done
        return
    }
    
    
    function enable_extension() {
    
        arguments=("$@")
        unset "arguments[0]"
    
        for extension_to_enable in "${arguments[@]}"
        do
    
            if  [ "$(check_extension_in_all_extensions "$extension_to_enable")" = false ]
            then
                echo "'$extension_to_enable' is not installed."
                continue
            fi
            if  [ "$(check_extension_is_enabled "$extension_to_enable")" = true ]
            then
                echo "'$extension_to_enable' is already enabled."
                continue
            fi
            if [ "$(version_greater)" = true ]
            then
                gnome-shell-extension-tool -e "$extension_to_enable"
                continue
            fi
            enabled_extensions_string=$(gsettings get org.gnome.shell enabled-extensions | tr -d "]")
            [ "$enabled_extensions_string" != "@as [" ] && delimiter=,
            enabled_extensions_string="${enabled_extensions_string}${delimiter} '$extension_to_enable' ]"
    
            gsettings set org.gnome.shell enabled-extensions "$enabled_extensions_string"
    
        done
        return
    }
    
    
    # -------------------------------------------------------------------------------
    
    function disable_all_extensions() {
        get_enabled_extensions
        for enabled_extension in "${enabled_extensions[@]}"
        do
            # Don't disable user-theme extensions to avoid breaking them
            if [ "$enabled_extension" != "user-theme" ] && \
                   [ "$enabled_extension" != "user-themes" ] && \
                   [ "$enabled_extension" != "[email protected]" ]
            then
                disable_extension "this element will be ignored" "$enabled_extension"
            else
                continue
            fi
        done
    }
    # -------------------------------------------------------------------------------
    
    function toggle_extension() {
    
        arguments=("$@")
        unset "arguments[0]"
    
        for extension_to_enable in "${arguments[@]}"
        do
    
            if  [ "$(check_extension_in_all_extensions "$extension_to_enable")" = false ]
            then
                echo "'$extension_to_enable' is not installed."
                continue
            fi
            if  [ "$(check_extension_is_enabled "$extension_to_enable")" = true ]
            then
                disable_extension "$@"
            else
                enable_extension "$@"
            fi
        done
        return
    }
    # -------------------------------------------------------------------------------
    
    function print_help() {
    
        printf "
    GNOME Shell Extension Control Tool:
    
    usage: gnome-shell-extensions <option> [extension name]
    
    Options
        -h,   --help                                Display help message.
        -e,   --enable-extension <extension name>   Enable extension.
        -d,   --disable-extension <extension name>  Disable extension.
        -da,  --disable-all-extensions              Disables all extensions.
        -le,  --list-enabled                        List enabled extensions.
        -l,   --list                                List all extensions + state info.
        -s,   --status <extension name>             Show status of extension.
        -t,   --toggle-extension                    Toggle extension.
    \n"
    
    }
    
    
    # -------------------------------------------------------------------------------
    
    case $1 in
        -h|--help)
            print_help
            ;;
        -e|--enable-extension)
            enable_extension "$@"
            ;;
        -d|--disable-extension)
            disable_extension "$@"
            ;;
        -t|--toggle-extension)
            toggle_extension "$@"
            ;;
        -da|--disable-all-extensions)
            disable_all_extensions
            ;;
        -le|--list-enabled)
            print_enabled_extensions
            ;;
        -l|--list)
            print_installed_extensions
            ;;
        -s|--status)
            if  [ "$(check_extension_is_enabled "$2")" = true ]
            then
                echo "enabled"
            else
                echo "disabled"
            fi
            ;;
        *)
            print_help
            ;;
    esac
    

    然后,我跑去gnome-shell-extension-cl -l获取扩展名列表。

    最后,我添加了一个键盘快捷键来运行gnome-shell-extension-cl -t [email protected]. 我使用Super++ Alt,B但任何键盘组合都可以。

    • 7

相关问题

  • 停止菜单图标闪烁

  • 是否有适用于 IMAP 邮件帐户的 Gnome 小程序?

  • 如何创建桌面墙纸幻灯片?

  • 如何获取和安装更多主题、图标和指针?

  • 如果顶部面板中缺少会话小程序,如何注销?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve