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
    • 最新
    • 标签
主页 / unix / 问题 / 542029
Accepted
Village
Village
Asked: 2019-09-17 05:23:20 +0800 CST2019-09-17 05:23:20 +0800 CST 2019-09-17 05:23:20 +0800 CST

如何在 Debian 10 的 GTK 2 和 3 应用程序中获取传统滚动条?

  • 772

我在 Debian 10 上使用 XFce4。

打开 GTK 2 应用程序时,滚动条显示正常,顶部和底部有一个大条和箭头。

打开 GTK 3 应用程序时,滚动条很细,很难点击和查看,任何地方都没有箭头,有时会完全消失。

如果我选择像 Adwaita 或 Breeze 这样的主题,那么 GTK 2 应用程序匹配 GTK 3 应用程序,但使用难以使用和看到的滚动条。

有没有办法让 GTK 2 和 GTK 3 应用程序都拥有一个更传统的滚动条和更大的按钮?

gtk
  • 1 1 个回答
  • 502 Views

1 个回答

  • Voted
  1. Best Answer
    mirabilos
    2022-05-22T09:14:27+08:002022-05-22T09:14:27+08:00

    GTK+2

    我在 GTK+2 中的滚动条没有任何问题。也许您使用的主题会花费额外的时间来“破坏”它们。尝试切换到不同的主题;我用GreenMotif例如。

    为了减少愚蠢,安装xcursor-themesDebian 软件包并运行:sudo update-alternatives --set x-cursor-theme /etc/X11/cursors/core.theme

    Qt5

    这似乎也很容易。确保它不使用 GTK 引擎或主题。我个人已经安装了qt5-style-plugin-motifDebian 软件包并使用它。

    您可能必须kcminputrc_mouse_cursortheme=core在~/.config/startupconfig其他地方设置。GUI 设置对话框往往不显示core“主题”作为选项;您可以选择任何其他光标主题,然后在您的点文件中搜索出现并更改它们(这就是我所做的)。

    GTK+3

    给这个东西造型是一个永无止境的 PITA。我已经记录了一种通过修复滚动来使 GTK+3 不那么难以忍受的方法;我将使用一个看起来很像 Xfce4 “基本”主题的主题来内联下面的大部分答案,默认情况下它似乎已在 Debian 伸展中使用。我建议仍然访问该片段,因为它具有类似 Windows® 95 的替代方案和更多背景信息等,最重要的是,屏幕截图!☺

    ~/.config/gtk-3.0/gtk2xfce4basic.css

    使用以下内容创建此文件(或从上面的链接下载原始文件):

    /*
     * to install, copy to ~/.config/gtk-3.0/gtk2xfce4basic.css
     * and append the line…
     *
     *  @import 'gtk2xfce4basic.css';
     *
     * to ~/.config/gtk-3.0/gtk.css
     */
    
    /* somewhat unfuck GTK+3, by mirabilos, Ⓕ CC0 — theme Xfce basic */
    
    /*-
     * append to ~/.xsessionrc or so, ~/.pam_environment or ~/.profile maybe
     *
     * GTK_OVERLAY_SCROLLING=0; export GTK_OVERLAY_SCROLLING
     *
     * merge into ~/.config/gtk-3.0/settings.ini
     *
     * [Settings]
     * gtk-xft-rgba=none
     * gtk-cursor-theme-name=core
     * gtk-enable-animations=0
     * gtk-primary-button-warps-slider=false
     *
     * Firefox about:config set: pref("widget.non-native-theme.enabled", false);
     * and consider a userContent.css to disable website-styled scroll“bar”s (see
     * https://edugit.org/-/snippets/31 for how).
     *
     * Try: GTK_DEBUG=interactive gtk3-demo
     */
    
    /* remove dotted lines from GTK+3 applications */
    .undershoot.top, .undershoot.right, .undershoot.bottom, .undershoot.left {
        background-image:none;
    }
    undershoot.top, undershoot.right, undershoot.bottom, undershoot.left {
        background-image:none;
    }
    
    /* force scrollbar arrows */
    .scrollbar, scrollbar {
        -GtkScrollbar-has-backward-stepper:true !important;
        -GtkScrollbar-has-forward-stepper:true !important;
    }
    
    /* GTK+2-style scrollbar with Xfce basic theme colours {{{ */
    
    scrollbar.horizontal, scrollbar.horizontal content,
    scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
    scrollbar.horizontal trough, scrollbar.horizontal slider,
    scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled,
    scrollbar.vertical, scrollbar.vertical content,
    scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
    scrollbar.vertical trough, scrollbar.vertical slider,
    scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
        margin:0px;
        outline:0px;
        -gtk-outline-radius:0;
        border-radius:0px;
        border:0px;
        box-shadow:none;
        padding:0px;
        background-color:inherit;
    }
    
    scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
    scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled,
    scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
    scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
        -gtk-icon-source:none;
    }
    
    scrollbar.horizontal {
        min-height:14px;
        box-shadow:
            inset 1px 1px 0 0 #8C8982,
            inset -1px -1px 0 0 #FBFBFA;
        padding:1px;
        background-color:#C4C2BD;
    }
    
    scrollbar.horizontal contents {
        min-height:14px;
    }
    
    scrollbar.horizontal button.up {
        min-width:11px;
        background:
            linear-gradient(to top right,    transparent 49.5%, #000000 50%) 5px 6px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #000000 50%) 5px 4px / 3px 3px,
            linear-gradient(to top right,    transparent 49.5%, #434341 50%) 4px 6px / 4px 4px,
            linear-gradient(to bottom right, transparent 49.5%, #434341 50%) 4px 3px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.horizontal button.up:disabled {
        min-width:11px;
        background:
            linear-gradient(to top right,    transparent 49.5%, #757575 50%) 5px 6px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #757575 50%) 5px 4px / 3px 3px,
            linear-gradient(to top right,    transparent 49.5%, #9D9D9D 50%) 4px 6px / 4px 4px,
            linear-gradient(to bottom right, transparent 49.5%, #959493 50%) 4px 3px / 4px 4px,
            linear-gradient(to top right,    transparent 49.5%, #FFFFFF 50%) 6px 7px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #FFFFFF 50%) 6px 5px / 3px 3px,
            linear-gradient(to top right,    transparent 49.5%, #F0EFED 50%) 5px 7px / 4px 4px,
            linear-gradient(to bottom right, transparent 49.5%, #F0EFED 50%) 5px 4px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.horizontal trough {
        min-height:14px;
    }
    
    scrollbar.horizontal slider {
        min-width:18px;
    }
    
    scrollbar.horizontal button.down {
        min-width:11px;
        background:
            linear-gradient(to bottom left, transparent 49.5%, #000000 50%) 5px 4px / 3px 3px,
            linear-gradient(to top left,    transparent 49.5%, #000000 50%) 5px 6px / 3px 3px,
            linear-gradient(to bottom left, transparent 49.5%, #434341 50%) 5px 3px / 4px 4px,
            linear-gradient(to top left,    transparent 49.5%, #434341 50%) 5px 6px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.horizontal button.down:disabled {
        min-width:11px;
        background:
            linear-gradient(to bottom left, transparent 49.5%, #757575 50%) 5px 4px / 3px 3px,
            linear-gradient(to top left,    transparent 49.5%, #757575 50%) 5px 6px / 3px 3px,
            linear-gradient(to bottom left, transparent 49.5%, #959493 50%) 5px 3px / 4px 4px,
            linear-gradient(to top left,    transparent 49.5%, #9D9D9D 50%) 5px 6px / 4px 4px,
            linear-gradient(to bottom left, transparent 49.5%, #FFFFFF 50%) 6px 5px / 3px 3px,
            linear-gradient(to top left,    transparent 49.5%, #FFFFFF 50%) 6px 7px / 3px 3px,
            linear-gradient(to bottom left, transparent 49.5%, #F0EFED 50%) 6px 4px / 4px 4px,
            linear-gradient(to top left,    transparent 49.5%, #F0EFED 50%) 6px 7px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.horizontal button.up, scrollbar.horizontal button.up:disabled,
    scrollbar.horizontal slider,
    scrollbar.horizontal button.down, scrollbar.horizontal button.down:disabled {
        min-height:11px;
        box-shadow:
            inset -2px -2px 0 0 #9E9A91,
            inset 1px 1px 0 0 #FFFFFF,
            inset -1px -1px 0 0 #000000;
        /*      ↑   →   ↓   ←   */
        padding:1px 2px 2px 1px;
        background-color:#DCDAD5;
    }
    
    scrollbar.vertical {
        min-width:14px;
        box-shadow:
            inset 1px 1px 0 0 #8C8982,
            inset -1px -1px 0 0 #FBFBFA;
        padding:1px;
        background-color:#C4C2BD;
    }
    
    scrollbar.vertical contents {
        min-width:14px;
    }
    
    scrollbar.vertical button.up {
        min-height:11px;
        background:
            linear-gradient(to bottom right, transparent 49.5%, #000000 50%) 4px 5px / 3px 3px,
            linear-gradient(to bottom left,  transparent 49.5%, #000000 50%) 6px 5px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #434341 50%) 3px 4px / 4px 4px,
            linear-gradient(to bottom left,  transparent 49.5%, #434341 50%) 6px 4px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.vertical button.up:disabled {
        min-height:11px;
        background:
            linear-gradient(to bottom right, transparent 49.5%, #757575 50%) 4px 5px / 3px 3px,
            linear-gradient(to bottom left,  transparent 49.5%, #757575 50%) 6px 5px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #959493 50%) 3px 4px / 4px 4px,
            linear-gradient(to bottom left,  transparent 49.5%, #9D9D9D 50%) 6px 4px / 4px 4px,
            linear-gradient(to bottom right, transparent 49.5%, #FFFFFF 50%) 5px 6px / 3px 3px,
            linear-gradient(to bottom left,  transparent 49.5%, #FFFFFF 50%) 7px 6px / 3px 3px,
            linear-gradient(to bottom right, transparent 49.5%, #F0EFED 50%) 4px 5px / 4px 4px,
            linear-gradient(to bottom left,  transparent 49.5%, #F0EFED 50%) 7px 5px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.vertical trough {
        min-width:14px;
    }
    
    scrollbar.vertical slider {
        min-height:18px;
    }
    
    scrollbar.vertical button.down {
        min-height:11px;
        background:
            linear-gradient(to top left,  transparent 49.5%, #000000 50%) 6px 5px / 3px 3px,
            linear-gradient(to top right, transparent 49.5%, #000000 50%) 4px 5px / 3px 3px,
            linear-gradient(to top left,  transparent 49.5%, #434341 50%) 6px 5px / 4px 4px,
            linear-gradient(to top right, transparent 49.5%, #434341 50%) 3px 5px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.vertical button.down:disabled {
        min-height:11px;
        background:
            linear-gradient(to top left,  transparent 49.5%, #757575 50%) 6px 5px / 3px 3px,
            linear-gradient(to top right, transparent 49.5%, #757575 50%) 4px 5px / 3px 3px,
            linear-gradient(to top left,  transparent 49.5%, #9D9D9D 50%) 6px 5px / 4px 4px,
            linear-gradient(to top right, transparent 49.5%, #959493 50%) 3px 5px / 4px 4px,
            linear-gradient(to top left,  transparent 49.5%, #FFFFFF 50%) 7px 6px / 3px 3px,
            linear-gradient(to top right, transparent 49.5%, #FFFFFF 50%) 5px 6px / 3px 3px,
            linear-gradient(to top left,  transparent 49.5%, #F0EFED 50%) 7px 6px / 4px 4px,
            linear-gradient(to top right, transparent 49.5%, #F0EFED 50%) 4px 6px / 4px 4px;
        background-repeat:no-repeat;
    }
    
    scrollbar.vertical button.up, scrollbar.vertical button.up:disabled,
    scrollbar.vertical slider,
    scrollbar.vertical button.down, scrollbar.vertical button.down:disabled {
        min-width:11px;
        box-shadow:
            inset -2px -2px 0 0 #9E9A91,
            inset 1px 1px 0 0 #FFFFFF,
            inset -1px -1px 0 0 #000000;
        /*      ↑   →   ↓   ←   */
        padding:1px 2px 2px 1px;
        background-color:#DCDAD5;
    }
    
    /* }}} end of GTK+2-style scrollbar */
    

    ~/.config/gtk-3.0/gtk.css

    添加以下行:

    @import 'gtk2xfce4basic.css';
    

    ~/.config/gtk-3.0/settings.ini

    将以下(或其他合适的)设置添加到该[Settings]部分:

    gtk-xft-rgba=none     
    gtk-cursor-theme-name=core   
    gtk-enable-animations=0   
    gtk-primary-button-warps-slider=false     
    

    环境

    确保GTK_OVERLAY_SCROLLING=0为您的 X11 会话设置。(这通常可以通过将其放入~/.pam_environmentor~/.profile或~/.xinitrcor来完成~/.xsessionrc,具体取决于您的操作系统、init 系统以及您如何启动 X11;~/.xsessionrc通常是Debian 和衍生产品上最简单的一个。)

    GTK_OVERLAY_SCROLLING=0
    export GTK_OVERLAY_SCROLLING
    

    火狐

    最新版本使用 GTK+3 并坚持绘制自己的滚动条。因此,上面的修复是不够的,你需要向 Firefox 添加额外的配置,然后才接近,但每一点都有帮助……

    about:config

    pref("widget.non-native-theme.enabled", false);
    

    userContent.css

    将以下行放入您的userContent.css文件中:

    * {
        scrollbar-color:unset !important;
        scrollbar-width:unset !important;
    }
    

    如果您还没有这样的文件(根本没有,或者正在工作),您需要先启用它。这将为您在 Twitter、StackExchange 等上提供可用的滚动条。☻

    • 3

相关问题

  • GIMP 工具提示几乎是不可读的白底白字

  • 如何判断您的应用程序正在使用哪些 GTK 和 QT 工具包

  • GTK+ 中的加号“+”是什么意思,它的历史是什么?

  • 死键突然停止在 GTK 应用程序中工作

  • 除了使用当前 gtk3 主题的某些应用程序(如 VLC)

Sidebar

Stats

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

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve