Я изменил исходный код GTK и перекомпилировал: без эффекта - PullRequest
1 голос
/ 06 ноября 2011

В Ubuntu (Gnome) абсолютно невозможно изменить скорость прокрутки колесика мыши для приложений GTK.Он жестко запрограммирован в GTK и определяется «умным» алгоритмом, который динамически зависит от размера окна.

Поэтому я скачал исходный код и нашел функцию, которая возвращает значение шага.Я изменил его, чтобы сначала вернуть очень маленькое число, а затем 0 (чтобы посмотреть, имеет ли оно какое-либо влияние).

Я сделал

./configure
make
sudo make install

, как указано на сайте GTK.1008 *

Он компилируется без проблем (у меня есть библиотеки)

Но потом я перезагружаюсь, и это никак не влияет.Я предполагаю, что Ubuntu все еще использует оригинальный GTK, с которым он поставляется.Что вы думаете здесь не так?

Ответы [ 3 ]

5 голосов
/ 06 ноября 2011

Хорошо, библиотеки GTK, используемые Ubuntu, находятся под /usr/lib, но библиотека, которую вы создали и установили, находится под /usr/local/lib (потому что неявные --prefix до configure это /usr/local, а не /usr).

Возможно, установив LD_LIBRARY_PATH для просмотра /usr/local/lib до того, как /usr/lib должен помочь.

2 голосов
/ 06 ноября 2011

Хорошая новость заключается в том, что Ubuntu (через Debian) имеет специальные инструменты для этого, например:

sudo apt-get build-dep libgtk-3-0

установит все, что вам нужно для сборки libgtk-3.0,while:

apt-get source libgtk-3-0

даст вам необходимый исходный код.Вы можете исправить это, как вам нравится, и затем создать .deb файлы, содержащие ваши патчи, которые иначе (от ваших патчей я имею в виду) неотличимы от версии Ubuntu, используя:

debuild

Счастливого взлома!

1 голос
/ 06 ноября 2011

Манипулирование LD_LIBRARY_PATH и / или размещениенеобходимые файлы библиотеки в правильных папках загрузят ваши измененные файлы.

Также обратите внимание, что использование ldd позволит вам убедиться, что ваши измененные библиотеки будут загружены.Вот пример, показывающий, что будет загружено, если я вызову ls на моем текущем компьютере:

matt@stanley:~/src/pydlnadms$ ldd `which ls`
    linux-vdso.so.1 =>  (0x00007fff7cdde000)
    libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f245e288000)
    librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f245e080000)
    libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f245de77000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f245dae3000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f245d8df000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f245e4ca000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f245d6c0000)
    libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f245d4bb000)

Установите ваши измененные общие библиотеки GTK +, правильно управляйте средой и затем подтвердите с помощью ldd, что ваши изменениябудет активным.

...