Стилизация gv с помощью .Xdefaults

Вопрос или проблема

Я пытаюсь стилизовать gv, используя мой файл ~/.Xdefaults. Это работает нормально для других приложений, но не для gv. Я могу установить фон в серый цвет:

gv*background: gray

Но это задает всем элементам серый фон, и это не то, что мне нужно. Например, “холст” или бумага также становятся серыми. Я хотел бы применять свое “стилирование” более точно, но не могу найти информацию о ресурсах, связанных с внешним видом gv. Я прочитал руководство по gv, информацию и man-страницу, искал в ~/.gv, но пока ничего полезного не нашел.

Если я использую editres (X11) для попытки посмотреть ресурсы и виджеты, используемые gv, то получаю только виджеты, связанные с меню, а не остальную часть приложения. Я также пробовал xprop и т.д.

Вывод editres:

GV  gv
    VendorShellExt  shellext
    Aaa  control
        MButton  fileButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  open
                SmeBSB  reopen
                SmeBSB  savepos
                SmeBSB  update
                SmeLine  line
                SmeBSB  printAllPages
                SmeBSB  printMarkedPages
                SmeBSB  saveAllPages
                SmeBSB  saveMarkedPages
                SmeLine  line
                SmeBSB  copyright
                SmeLine  line
                SmeBSB  quit
        MButton  stateButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  stop
                SmeBSB  dsc
                SmeBSB  eof
                SmeBSB  antialias
                SmeBSB  watchFile
                SmeBSB  size
                SmeLine  line
                SmeBSB  optionsgv
                SmeBSB  optionsgs
                SmeBSB  optionsfs
                SmeBSB  optionssetup
                SmeLine  line
                SmeBSB  presentation
        MButton  pageButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  next
                SmeBSB  redisplay
                SmeBSB  prev
                SmeLine  line
                SmeBSB  center
                SmeLine  line
                SmeBSB  current
                SmeBSB  odd
                SmeBSB  even
                SmeBSB  unmark
        MButton  orientationButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  automatic
                SmeLine  line
                SmeBSB  portrait
                SmeBSB  landscape
                SmeBSB  upsidedown
                SmeBSB  seascape
                SmeLine  line
                SmeBSB  swap
        MButton  pagemediaButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  automatic
                SmeLine  line
                SmeBSB  BBox
                SmeBSB  Letter
                SmeBSB  Legal
                SmeBSB  Statement
                SmeBSB  Tabloid
                SmeBSB  Ledger
                SmeBSB  Folio
                SmeBSB  Quarto
                SmeBSB  10x14
                SmeBSB  14x24
                SmeBSB  Executive
                SmeBSB  A3
                SmeBSB  A4
                SmeBSB  A5
                SmeBSB  B4
                SmeBSB  B5
        MButton  processButton
        MButton  scaleButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  Natural size
                SmeBSB  Pixel based
                SmeLine  line
                SmeBSB  Fit height to window
                SmeBSB  Arbitrary magnification
                SmeBSB  Fit width to window
                SmeBSB  Fit to window
                SmeBSB  0.100
                SmeBSB  0.125
                SmeBSB  0.250
                SmeBSB  0.500
                SmeBSB  0.707
                SmeBSB  1.000
                SmeBSB  1.414
                SmeBSB  2.000
                SmeBSB  4.000
                SmeBSB  8.000
                SmeBSB  10.00
        Button  nextPage
        Button  prevPage
        Button  toggleCurrent
        Button  toggleEven
        Button  toggleOdd
        Button  unmarkAll
        Button  printMarked
        Button  printAll
        Button  saveMarked
        Button  saveAll
        Button  openFile
        Button  autoResize
        Button  redisplay
        MButton  titleButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  title
        MButton  dateButton
            SimpleMenu  menu
                ThreeD  threeD
                SmeBSB  date
        Label  locator
        Frame  pannerFrame
            Composite  panner
                Label  slider
        Frame  newtocFrame
            Clip  newtocClip
                Aaa  newtocControl
                    Vlist  newtoc
        Scrollbar  newtocScroll
        Frame  viewFrame
            Clip  viewClip
                Aaa  viewControl
                    Ghostview  page
    TransientShell  fileSelPopup
        VendorShellExt  shellext
        FileSelection  fileSel
            Button  rescan
            MButton  filters
                SimpleMenu  menu
                    ThreeD  threeD
                    SmeBSB  None
                    SmeBSB  *.*ps* *.pdf* no .*
                    SmeBSB  *.*ps* no .*
                    SmeBSB  *.pdf* no .*
                    SmeBSB  no .*
            MButton  dirs
                SimpleMenu  menu
                    ThreeD  threeD
                    SmeBSB  Home
                    SmeBSB  Tmp
                    SmeBSB  /usr/doc
                    SmeBSB  /usr/local/doc
            Button  button1
            Button  button2
            Frame  pathframe
                Text  pathtext
                    AsciiSrc  textSource
                    AsciiSink  textSink
            Frame  filterframe
                Text  filtertext
                    AsciiSrc  textSource
                    AsciiSink  textSink
            Frame  topframe
                Clip  topclip
                    Aaa  topaaa
                        Vlist  list
            Scrollbar  subscroll
            Frame  subframe
                Clip  subclip
                    Aaa  subaaa
                        Vlist  list
            Scrollbar  curscroll
            Frame  curframe
                Clip  curclip
                    Aaa  curaaa
                        Vlist  list

Ответ или решение

Для настройки внешнего вида gv с помощью файла .Xdefaults и решения проблемы избыточного применения стиля в эталоном виде, необходимо понимать общую структуру и имя ресурсов и виджетов, которые приложение поддерживает. Вы столкнулись с ситуацией, когда стиль применяется ко всем элементам интерфейса, а не только к определенной его части, такой как фон канвы.

Вот несколько шагов и рекомендаций, которые помогут вам более точно настроить внешний вид gv:

  1. Изучите Имена Ресурсов (Resource Names):
    В вашем случае, проблема заключается в недостаточной информации о ресурсах, которые можно настраивать для gv. Вы можете использовать утилиту editres, чтобы посмотреть имена виджетов и ресурсов. Однако в выводе из editres были показаны в основном элементы меню. Используйте команду xprop для анализа более глубокой структуры окон, что может дать дополнительные подсказки о именах элементов внутри gv.

  2. Определение Структуры Виджетов:
    Обратите внимание на иерархию виджетов, полученную через editres. В ней заключены названия виджетов, такие как VendorShellExt, MButton, SimpleMenu, ThreeD и другие. Эти названия формируют путь к виджету, который можно использовать в .Xdefaults для более точной стилизации. Например, чтобы применить стиль только к меню, можно использовать что-то вроде gv*menu*background: gray.

  3. Тестирование и Итерации:
    Процесс настройки может потребовать множества экспериментов. Начните с более узконаправленных правил в вашем .Xdefaults и постепенно корректируйте их. Используйте команду xrdb -merge ~/.Xdefaults, чтобы применить изменения без перезапуска X-сессии.

  4. Работа с приложение Ghostview (GV):
    GV может иметь специфические ограничения на стилизацию отдельных компонентов. Попробуйте обратиться к сторонней документации или сообществам пользователей GV, где могут быть описаны допущения или специфические случаи настроек, которых нет в официальной документации.

  5. Дополнительные Инструменты:
    В некоторых случаях, может помочь использование программного обеспечения для более полного исследования X-серверных ресурсов, например, Xephyr для тестирования или анализ различных виджетов в окружении.

  6. Контекстный Подход:
    Не забывайте учитывать конкретику использования gv. Если ваша цель заключается в улучшении читабельности или удобства, вы можете настроить только ключевые элементы, которые этому способствуют, такие как viewFrame.

Применив описанные выше методы и тщательно изучив ресурсы gv, вы сможете достичь желаемого результата в стилизации. Этот процесс может потребовать времени, однако в результате вы получите интерфейс, соответствующий вашим потребностям и предпочтениям.

Оцените материал
Добавить комментарий

Капча загружается...