Как я могу выключить “функциональность” вставки средней кнопки мыши во всех программах?

Если Вы говорите о ".d" в конце имен каталогов, этот ответ является правильным, это - просто маркер для "каталога".

Просто не путайте его с "d" в и имени файла, как "syslogd", который поддерживает демона. Компьютерный процесс, работающий в фоновом режиме.

родительский процесс демона часто является (но не всегда) процессом init (PID=1). Процессы обычно становятся демонами путем разветвления дочернего процесса, и затем наличие их родительского процесса сразу выходит, таким образом заставляя init принимать дочерний процесс. Это - несколько упрощенное представление процесса, поскольку другие операции обычно выполняются, такие как отделение процесса демона от любого управления tty. Стандартные программы удобства, такие как демон (3) существуют в некоторых системах UNIX с этой целью.

44
11.11.2011, 02:58
9 ответов

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

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

Можно повторно присвоить кнопку мыши 2 другому числу. Приложения идентифицируют левых, средние кнопки мыши и правые кнопки мыши как кнопки 1, 2 и 3 соответственно. Поместите этот код в сценарий, это выполняется, когда Ваши X сессий запускаются (как сделать, который зависит от Вашей настольной среды).

echo 'pointer = 1 6 3 4 5' | xmodmap -
11
27.01.2020, 19:34
  • 1
    Не работает. А-ч pastebin.com/0DYYMDLS –  balki 18.08.2015, 05:21
  • 2
    @balki спасибо. Это, конечно, работает на меня. Таким образом для обнаружения, почему это не работает на Вас задайте новый вопрос. Обязательно упомяните, какую версию X.org (или другой X-сервер) Вы имеете, какое распределение Вы работаете на этом, и какие устройства ввода данных подключены. –  Gilles 'SO- stop being evil' 18.08.2015, 09:47

Это - общая конвенция, которую соблюдают много программ. Нет никакого глобального способа выключить его, необходимо сделать это на программе основанием программы.

Править: (за исключением, как Gilles говорит, отключая кнопку мыши 2. Но некоторые программы действительно имеют другое использование для кнопки мыши 2, таким образом, я не рекомендовал бы это.)

1
27.01.2020, 19:34

Это решение будет работать глобально и сохранит функциональность средней мыши.

Установите xbindkeys xsel xdotool

Поместите это в ~ / .xbindkeysrc

"echo -n | xsel -n -i; pkill xbindkeys; xdotool click 2; xbindkeys"
b:2 + Release

Перезагрузите xbindkeys -p

Запустите xbindkeys при запуске, pkill xbindkeys , чтобы остановить.

29
27.01.2020, 19:34

В Fedora 24 вы можете установить gnome-tweak-tool , используя следующую команду:

$ sudo dnf install gnome-tweak-tool

Open gnome-tweak-tool , перейдите на вкладку «Клавиатура и мышь» и отключите «Вставить средней кнопкой мыши».

17
27.01.2020, 19:34

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

Сначала установите sxhkd и xsel .

Затем настройте~/.config/sxhkd/sxhkdrc вот так

~button2
    echo -n | xsel -n -i
~control + c
    echo -n | xsel -n -i
~control + shift + c
    echo -n | xsel -n -i
~control + x
    echo -n | xsel -n -i

Вот и все.

Теперь запустите sxhkd (или настройте его для запуска при запуске ). Теперь средняя мышь больше не будет ничего вставлять, но в остальном будет работать как обычно.

7
27.01.2020, 19:34

РЕДАКТИРОВАТЬ:Я только что обнаружил проблему с решением, которое я опубликовал :в некоторых программах (gitk, по крайней мере, не уверен, насколько это распространено )это предотвратит работу выделения текста. Так что попробуйте, но если у вас есть проблемы с выделением текста в программе, которую вы используете регулярно, то решение - прекратить использовать это.

Установите xsel, а затем запустите следующий сценарий оболочки:

#!/bin/sh
while true; do
    xsel -fin </dev/null
done

Пока этот скрипт работает (вы можете настроить его запуск при входе в систему )средняя кнопка мыши не будет вставляться ни в какое приложение. Так что технически он все равно будет вставляться, но вставлять всегда будет нечего.

Это работает следующим образом: запускается xselи копирует(-i)содержимое /dev/null, не переходя в фоновый режим (-n), и фактически удерживает пустую строку в буфере, а не просто очищает ее. это и выход(-f). Каждый раз, когда он выходит, он снова вызывает xselс теми же параметрами. Поскольку xselбудет продолжать работать до тех пор, пока другая программа не «освободит его от обязанностей», скопировав что-то еще, он не будет постоянно создавать новые процессы, а будет поддерживать работу одного процесса ровно до тех пор, пока он снова не понадобится. (Если у вас не запущено несколько экземпляров скрипта, но в этом нет необходимости.)

Также нет, это не помешает обычному копированию/вставке, потому что вставка по среднему -клику использует отдельный буфер обмена.

4
27.01.2020, 19:34

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

Во-первых, вам нужно узнать идентификатор мыши, вот так:

$ xinput list | grep 'id='

, который печатает что-то вроде

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜ PixArt Dell MS116 USB Optical Mouse       id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
  Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
  Power Button                              id=6    [slave  keyboard (3)]
  Video Bus                                 id=7    [slave  keyboard (3)]
  Power Button                              id=8    [slave  keyboard (3)]
  Sleep Button                              id=9    [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=10   [slave  keyboard (3)]
  Dell KB216 Wired Keyboard                 id=11   [slave  keyboard (3)]
  Eee PC WMI hotkeys                        id=13   [slave  keyboard (3)]

Моя USB-мышь Dell печатает здесь, для которой id=12

поэтому я могу просмотреть сопоставление кнопок мыши, например:

$ xinput get-button-map 12

который печатает

1 2 3 4 5 6 7 8 9 10 11 12

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

Я могу отключить среднюю кнопку мыши, установив для нее значение 0:

$ xinput set-button-map 12 1 0 3

Или я могу превратить среднюю -кнопку мыши в левую -кнопку мыши, установив для нее значение 1:

$ xinput set-button-map 12 1 1 3

ref. link https://wiki.ubuntu.com/X/Config/Input

у меня работает (kubuntu 18.04 LTS)

19
27.01.2020, 19:34

Это мой сценарий. Ваш может нуждаться в настройке

#!/bin/bash 
clear
echo
echo
echo
echo -----Now fixing your scroll button --- -hold onto pants
echo
xinput --list|grep "Virtual core XTEST pointer"
echo ---------------------------------------------------------------------------------
echo


id=$(
xinput --list|grep "Virtual core XTEST pointer" |awk '{
        for(i=1; i<=NF; i++) {
                tmp=match($i, /id=[0-9]+/)
                if(tmp) {
                        print $i
                }
        }
}' $1 |  tr -d '[:alpha:]='
)

echo fixing $id:

xinput set-button-map $id  1 10 2 4 5 6 7 8 9 3

echo
echo
xinput get-button-map $id
echo ---------------------------------------------------------------------------------
0
27.01.2020, 19:34

Дополняя ответ @flarn2006, я создал демон-переключатель и простой ластик:

Требования

xsel, notify-send, а менеджер ярлыков (в моем случаеxfce4-keyboard-setting)

Сначала создайте папку .middle-paste/в $HOMEи добавьте два файла:

#!/bin/sh
# toggler.sh

# Set the lock file and program paths
PROGRAM_PATH="$HOME/.middle-paste/"
LOCKER_FILE="$PROGRAM_PATH/lock"

# Check if there is a lock file
if [ -f "$LOCKER_FILE" ]; then
    # If exists, read the PID of the daemon, which is contained inside the file
    daemon_pid=$(cat $LOCKER_FILE)

    # Then kill the daemon
    kill "$daemon_pid"

    # And delete delete the lock
    rm $LOCKER_FILE

    notify-send --urgency=critical --expire-time=500 \
    'Middle Mouse Paste Disabled' \
    'There could be some troubles handling the middle mouse button in some apps.'
else
    # If the file does not exist, create it
    edit > $LOCKER_FILE

    # Then run the daemon to disable middle click pasting
    sh $PROGRAM_PATH/daemon.sh &

    # A little pause
    sleep 0.1s

    # Get the daemon PID to show it in the notification
    daemon_pid=$(cat $LOCKER_FILE)

    notify-send --urgency=critical --expire-time=500 \
    "Middle Mouse Paste Enabled ("$daemon_pid")" \
    'There could be some troubles selecting text in some apps.'
fi
#!/bin/sh
# daemon.sh

# Set the lock file and program paths
PROGRAM_PATH="$HOME/.middle-paste/"
LOCKER_FILE="$PROGRAM_PATH/lock"

# Append the PID of this process the lock file
echo $$ > $LOCKER_FILE

# Run the daemon
while true; do
    xsel -fin < /dev/null
done

Вторая настройка коммутатора

Это может быть лаунчер, кнопка на панели или даже ярлык, нужно только

  1. Добавьте sh $HOME/.middle-paste/toggler.shк ярлыку SUPR + Xдля быстрого переключения демона. Пожалуйста, замените переменную $HOMEвашим реальным домашним путем, иначе диспетчер ярлыков может не найти скрипт (, например./home/user/.middle-paste/toggle.sh)
  2. Добавьте xsel -cк ярлыку SUPR + V, чтобы быстро очистить средний буфер обмена мыши без использования демона. Это полезно, когда вы знаете, что не выйдете из приложения, куда не скопируете, а будете пользоваться средней кнопкой мыши (Как Figmaили Inkscape, где этот вопрос проблематичен только при наличии что-то в буфере обмена уже ).
1
04.11.2020, 07:07

Теги

Похожие вопросы