为GTK2应用程序添加Adwaita(默认)的滚动条箭头。

我正在使用Ubuntu 22.10桌面版。我的系统上只安装了默认主题。目前,我正在使用Adwaita(默认),它的垂直或水平窗口滚动条两端没有箭头。

我已经尝试了其他主题;只有HighContrastHighContrastInverse似乎提供我需要的箭头。然而,这些高对比度主题对我来说不合适。除了滚动条中缺少箭头之外,Adwaita(默认)很好用。

我在网上尝试了一些解决方案(如this),尝试创建一个类似~/.config/gtk-3.0/gtk.css的文件,并放入必要的CSS声明,但这些方法都不起作用。

请问有什么推荐的方法来本地修改GTK2应用程序的主题并添加这些滚动条箭头呢?

更新

实际上,事实证明上述操作对于GTK3应用程序确实有效。但是,我需要这些箭头的应用程序使用的是GTK2。
我尝试了像~/.config/gtk-2.0/gtkrc、~/.gtkrc和~/.gtkrc-2.0这样的位置,但没有帮助。
直接编辑文件/usr/share/themes/Adwaita/gtk-2.0/main.rc,并注释掉以下行:
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0

似乎有所帮助,但我想根据用户的基础来进行操作(将他们的值设置为1)。

这只是凭记忆而言,但也许你可以在~/.gtkrc-2.0中添加一些代码? - DK Bose
这些gtk2应用程序是哪些,最好是小型的? - DK Bose
Lazarus(FreePascal)应用程序。请参阅:https://wiki.freepascal.org/GTK3_Interface - FedKad
我使用了 apt rdepends libgtk2.0-0 | less 命令来找到一些相关的软件。其中一个方便检查的软件(对我来说)是 pcmanfm。 - DK Bose
你链接到了一个GTK3应用程序? - DK Bose
不,我只使用默认的Lazarus配置,目前是gtk2... - FedKad
1个回答

如果你已经在.gtkrc-2.0.mine中设置了自定义设置, 但是你的.gtkrc-2.0没有包含.gtkrc-2.0.mine(或被你的桌面环境覆盖), 那么请将.gtkrc-2.0.mine放在/usr/share/themes/Adwaita/gtk-2.0/gtkrc文件的底部。

e.g

.
.
# local settings
include "/home/username/.gtkrc-2.0.mine"

# And hand over the control to the theme files
include "main.rc"
include "apps.rc"
include "hacks.rc"

或者,为了一个全局解决方案, 您可以在/usr/share/themes/Adwaita/gtk-2.0/main.rc中更改任何与滚动相关的设置。

e.g

GtkScrollbar::slider-width = 20
GtkRange::stepper-size = 20
GtkScrollbar::stepper-size         = 20
GtkScrollbar::has-backward-stepper = 1
GtkScrollbar::has-forward-stepper  = 1

此外,将下方的代码块注释掉;
# Disable arrows for qt in scrollbars

否则箭头图形将被阻挡。

实际上,文件~/.gtkrc-2.0是有效的,但我只能成功设置GtkScrollbar::stepper-size = 16的值。然而,到目前为止还没有显示出三角形(箭头),只有滚动条两端的空白可点击矩形。 - FedKad
我的错,我以为你指的是一个位置问题。如果你想看到箭头,你可以在main.rc中注释掉以'# Disable arrows for qt in scrollbars'开头的代码块,但这不是一个局部修复。 - Humpity
那个方法行得通,@Humpity。你可以在评论中进一步解释你的答案,这样我就可以接受了。谢谢! - FedKad