LINUX.ORG.RU

Еще одна досаднейшая проблема с unclutter

 


0

1

На любой ОС стараюсь заюзать unclutter, потому что мельтешащий среди букв мышиный курсор при наборе текста очень мешает и просто выводит из себя.

Использую unclutter v.8-19 и сейчас, в Debian 8/64, очень выручает эта утилитка.

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

Может, кто уже разобрался, как предотвратить этот казус?

★★★★★

Ну, раз никто так ничего и не написал... Существует unclutter-xfixes — это unclutter, переписанный с использованием библиотеки x11-xfixes. Проверь, вдруг в нём нет этой проблемы с колёсиком...

OldManClone ★★
()
Ответ на: комментарий от darktic

Gentoo, unclutter 8-r2, Firefox 38.8 — без курсора прокрутка работает, Chromium 50.0 — без курсора прокрутка не работает. Может, дело не в unclutter'е вообще?

OldManClone ★★
()
Ответ на: комментарий от OldManClone

Гм, а вы частично правы!
Потому что проверил на разных браузерах, и получилось:

Iseweasel 38.7.1 - колесико работает!
Chromium 49.0.2623.108 - не работает
PaleMoon 26.0.0 - не работает

Как раз с PaleMoon и работаю.

Но тогда возникает вопрос - а разве действие unclutter не глобальное, а еще зависит от приложения??
Тогда это очень неправильно...

chukcha ★★★★★
() автор топика

Если ты отключаешь мышку, то зачем тебе колесико-то? Где тег «хочется странного»?

Лично я борюсь с курсором простым zsh-скриптом назначенным на хоткей (Mod4+Esc):

#!/bin/zsh
############################################################################
# author: milomouse <vincent[at]fea.st>                                    #
# detail: banish the mouse cursor to bottom-right corner of the screen and #
#         disable touchpad (optional); also undo this by returning mouse   #
#         to last position (or center of screen) and enabling touchpad.    #
############################################################################
# depend: xdotool: for controlling the mouse                               #
#         xdpyinfo: for finding screen dimensions                          #
#         synclient: for controlling the touchpad in laptops (optional)    #
############################################################################
unsetopt nomatch
scriptname=$(print - $0(^:t))

## VARIABLE: set a temporary file for storing mouse position.
FILE="/tmp/user-keep/${USER}/.${scriptname}"

## CODE: do not edit below this line unless you know what you are doing.
function _help() {
  << EOF
usage: ${scriptname} [option]
options:
    -t | --toggle    Enable or disable mouse
    -d | --disable   Force disabling of mouse
    -e | --enable    Force enabling of mouse
    -s | --show      Display \$FILE location
    -h | --help      Display this message

depends:
    xdotool ($(print ${${${:-=xdotool}/=*/not found}/\/*/installed}))
    xdpyinfo ($(print ${${${:-=xdpyinfo}/=*/not found}/\/*/installed}))
    synclient ($(print ${${${:-=synclient}/=*/not found}/\/*/installed})) [optional]
EOF
exit
}

function __dimensions() {
  for exe in xdotool xdpyinfo; do
    which ${exe} &>/dev/null || { print "Missing required program: ${exe}" ; _err=1 }
  done
  [[ ${+_err} == 1 ]] && exit 1
  xy=${${${${${(M)${"$(xdpyinfo 2>/dev/null)"}#*dimensions:*\)}#*dimensions*:}/pixels*}// }/x/ }
  x=${${(s: :)xy}[1]}
  y=${${(s: :)xy}[2]}
}

function _mayberat() {
  if [[ ${+FILE} == "0" ]]; then
    print "You must set a temp file; see source code." && exit 1
  fi
  if [[ ! -d ${FILE:h} ]]; then
    print "Directory for file does not existing, attempting to create..."
    mkdir -p ${FILE:h} || { print "Could not create \"${FILE:h}\", make sure you have proper write permissions." ; exit 1 }
  fi
  if [[ -f ${FILE} ]]; then
    _yesrat
  else
    _norat
  fi
}

function _yesrat() {
  __dimensions
  if [[ ${+DISPLAY} == 1 ]]; then
    if [[ -f ${FILE} && ${#$(<${FILE})} -eq 2 ]]; then
      xdotool mousemove $(<${FILE}) &>/dev/null
      rm -f ${FILE} &>/dev/null
    else
      xdotool mousemove $(($(print ${x})/2)) $(($(print ${y})/2)) &>/dev/null
      rm -f ${FILE} &>/dev/null
    fi
    which synclient &>/dev/null && synclient TouchpadOff=0 &>/dev/null
  else
    print "\$DISPLAY unavailable, aborting."
    exit 1
  fi
}

function _norat() {
  __dimensions
  if [[ ${+DISPLAY} == 1 ]]; then
    print ${${${$(xdotool getmouselocation 2>/dev/null)[1,2]//:/}#x}#y} >>! ${FILE}
    xdotool mousemove $(print ${xy}) &>/dev/null
    which synclient &>/dev/null && synclient TouchpadOff=1 &>/dev/null
  else
    print "\$DISPLAY unavailable, aborting."
    exit 1
  fi
}

[[ -z $1 ]] && _help
case $1 in
  '-t'|'--toggle')  _mayberat ;;
  '-d'|'--disable') _norat ;;
  '-e'|'--enable')  _yesrat ;;
  '-s'|'--show')    print ${FILE} ; exit ;;
  '-h'|'--help')    _help ;;
  *) [[ -z $@ ]] && _help || { print "unrecognized operation: $@ (see --help for usage)" ; exit 1 } ;;
esac
зависимости указаны в начале скрипта.

l-_-l
()
Ответ на: комментарий от l-_-l

Если ты отключаешь мышку, то зачем тебе колесико-то?

Я вовсе не хочу отключать мышку! Иначе я бы ее выдернул из USB и все дела :)
Наоборот, я хочу, чтобы она работала (включая колесико), но только погасал курсор при неактивности.

Лично я борюсь с курсором простым zsh-скриптом назначенным на хоткей (Mod4+Esc):

Ни фига себе простой! :) И какова логика его работы?
И зачем тут хоткей, если оно должно работать автоматически?

chukcha ★★★★★
() автор топика
Ответ на: комментарий от OldManClone

собрать пакет из исходников?

Не царское это дело. Вот если бы кто собрал, а так не умею.

chukcha ★★★★★
() автор топика
Ответ на: комментарий от chukcha

А, ну это разные вещи, этот скрипт не только прячет мышку, но и отключает передвижение курсора. Если это не ноут и в системе нет synclient, то просто прячет курсор, двинув мышку можно использовать дальше.

l-_-l
()
Ответ на: комментарий от l-_-l

А, ну это разные вещи, этот скрипт не только прячет мышку, но и отключает передвижение курсора.

Мне вполне достаточно, если прячется курсор.
Возможностей unclutter вполне хватает, если бы он не отключал колесико, это ошибка автора.

chukcha ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.