ইউনিক্সে (এক্স এর অধীনে) কীবোর্ড এবং মাউস ইনপুট অক্ষম করুন


28

কীভাবে কীভাবে একটি প্রোগ্রামিকভাবে কী-বোর্ড এবং মাউসকে অস্থায়ীভাবে "হিমশীতল" করতে পারে, যাতে কেউ সিস্টেমের সাথে গোলযোগ না করে?

বেশ কয়েকটি সম্ভাবনা রয়েছে যেখানে এটি কার্যকর। উদাহরণস্বরূপ, আমার কাছে একটি ল্যাপটপ রয়েছে এবং আমি নিশ্চিত করতে চাই যে আমি চলে যাওয়ার সময় কেউ এটি ব্যবহার করবে না, এমনকি যদি কেউ পাসওয়ার্ড জানে বা এটি অনুমান করতে পারে (স্ত্রী বা বাচ্চাদের মতো), তেমনি চোরের ক্ষুধাও হতাশ করে (যেমন এটি মনে হচ্ছে না) -functioning)। বা আমি দূরবর্তীভাবে কিছু করছি তাই আমি নিশ্চিত করতে চাই যে কম্পিউটারে ব্যবহারকারীর ব্যাঘাত ঘটবে না।


4
সম্পর্কিত: ওএসএক্স
20:55-

উত্তর:


24

ধরে নিই আপনার জিইউআই এক্স-বেসড (প্রায় সব ইউনিক্স জিইউআই), ব্যবহার করুন xinput

প্রথমে আপনার ডিভাইসগুলি তালিকাভুক্ত করুন:

$ xinput --list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Windows mouse                             id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
↳ Windows keyboard                          id=7    [slave  keyboard (3)]

আপনার মাউসের জন্য বিশদ তালিকাবদ্ধ করুন (আমাদের উদাহরণে আইডি = 6):

$ xinput --list-props 6
Device 'Windows mouse':
    Device Enabled (112):   1
    Coordinate Transformation Matrix (114): 1.000000, 0.000000, 0.000000, 0.000000,   1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (222):     0
    Device Accel Constant Deceleration (223):       1.000000
    Device Accel Adaptive Deceleration (224):       1.000000
    Device Accel Velocity Scaling (225):    10.000000

এখন এটি অক্ষম করুন:

$ export DISPLAY=:0
$ xinput set-int-prop 6 "Device Enabled" 8 0

এটি সক্ষম করতে:

$ xinput set-int-prop 6 "Device Enabled" 8 1

কীবোর্ডের জন্য একই যায়, কেবল সঠিক আইডি দিয়ে অন্তর্নির্ভর নম্বরটি প্রতিস্থাপন করুন।
পরীক্ষিত এবং সাইগউইন উপর কাজ।

অবশ্যই, আপনাকে আগে থেকেই পরিকল্পনা করতে হবে আপনি কীভাবে আপনার ডিভাইসগুলি সক্ষম করবেন। যেমন এটি ক্রোন-এ শিডিউল করুন, এটিকে দূর থেকে পুনরায় সক্ষম করুন বা তাদের মধ্যে কেবল একটিকে প্রথম স্থানে অক্ষম করুন।


এখানে অন্য কোনও উত্তর প্রশ্নের উত্তর দেয় না।
ফিলোমাথ

আমার ক্ষেত্রে, মাউস অক্ষম করার কমান্ডটি দেখতে এইরকম দেখাচ্ছে: xinput set-int-prop 9 "Device Enabled" 8 0- শুধুমাত্র, 1) আমি মাউস পয়েন্টারটিও আড়াল করতে চাই এবং 2) যদি আমি এক্স থেকে টিটি (লিনাক্স কনসোল / ভিটি) তে যাই, এবং তারপরে এক্স-এ ফিরে আসুন, এটি পুনরায় সেট হয়ে গেছে (এটি xinput list-props 9নিশ্চিত করে)।
ইমানুয়েল বার্গ

আমি কি "মাস্টার পয়েন্টার" ডিভাইসটি অক্ষম করতে পারি?
এডি

14

xinput --set-int-propঅবচয় করা হয়। --set-propপরিবর্তে আপনার ব্যবহার করা উচিত । এছাড়াও, xinput --enable [device]এবং xinput --disable [device]যথাক্রমে ডিভাইস সক্ষম ও অক্ষম করতে ব্যবহার করা যেতে পারে।

আমার ল্যাপটপের টাচপ্যাড সক্ষম, অক্ষম করতে এবং টগল করতে আমি এখানে ব্যবহার করেছি একটি শেল স্ক্রিপ্ট:

#!/bin/bash
# Enables, disables, or toggles device

device='AlpsPS/2 ALPS GlidePoint'
if [[ $1 == -e ]] ; then
    # Enable
    #xinput --set-prop "$device" "Device Enabled" 1
    xinput --enable "$device"
elif [[ $1 == -d ]] ; then
    # Disable
    #xinput --set-prop "$device" "Device Enabled" 0
    xinput --disable "$device"
elif [[ $1 == -t ]] ; then
    # Toggle
    if [[ $(xinput list-props "$device" |
       grep "Device Enabled") == *:*1 ]] ; then
           #xinput --set-prop "$device" "Device Enabled" 0
           xinput --disable "$device"
    else
        #xinput --set-prop "$device" "Device Enabled" 1
        xinput --enable "$device"
    fi
else
    echo "usage: $0 [-edt]"
fi

ফিলোমাথের পোস্টে আমার মন্তব্য দেখুন। আমি একই সমস্যা পেয়েছি xinput --disable 9
ইমানুয়েল বার্গ

6

জিনপুট ব্যবহার করে উত্তর দেওয়া উত্তরটি সঠিক, তবে আপনি যদি যা খুঁজছেন তা যদি একটি সাধারণ স্ক্রিনসেভার টাইপ লক হয় তবে এখানে একটি দ্রুত প্রশ্ন রয়েছে। আমি এটি 90 এর দশকে লিখেছিলাম এবং আপনি যা পাসওয়ার্ড টাইপ করেন না ততক্ষণ পর্যন্ত এটি এক্স সার্ভারের কীবোর্ড এবং মাউস ইভেন্টগুলি খাওয়া হয়। আপনি যখন এটি সঠিকভাবে টাইপ করেন তখন প্রস্থান করা ছাড়া অন্য কোনও প্রতিক্রিয়া নেই।

http://ishiboo.com/~danny/Projects/xl/

আপনি এটি কীভাবে ব্যবহার করতে চান ঠিক তা আমি স্ক্রিন-লক হিসাবে ব্যবহার করি।


আমি এটির মতোই সমাধান চেয়েছি কারণ এটি আমি ভোট দিয়েছি, তবে ছায়া পাসওয়ার্ড সহ এটি লিনাক্সে আমার পক্ষে কাজ করে না। কোনও প্রক্রিয়া / ইত্যাদি / ছায়া এবং সম্পর্কিত ফাংশনগুলি অ্যাক্সেসের জন্য রুট হওয়া দরকার তবে আমি এক্সএলএলকে একটি মূলবিহীন ব্যবহারকারী হিসাবে চালাতে চাই। আমার ব্যবহারের ক্ষেত্রে: আমরা যখন কম্পিউটারে শোগুলি দেখি, তখন আমার শিশুকন্যা কীবোর্ডে ঘায়েল করতে পছন্দ করে! xscreensaver এটির জন্য সহায়ক নয়
স্যাম ওয়াটকিন্স

আপনার উত্তর "suckless" বা ইউনিক্স প্রোগ্রামিং এর একটি দুর্দান্ত উদাহরণ "একটি কাজ করুন এবং এটি ভাল করুন" ... তা ছাড়া এটি আমার পক্ষে কাজ করে না (ছায়া পাসওয়ার্ড সহ!) আমার ব্যবহারের ক্ষেত্রে আমি খুব খুশি একটি পাসওয়ার্ড কোড করুন, তাই ঠিক আছে। এখন আমাকে বিদ্যুত বোতামটি কীভাবে অক্ষম করতে হয় তা শিখিয়ে দিন, এটি আমার শিশুর প্রিয় বোতাম!
স্যাম ওয়াটকিন্স

আপনি মূল কেন চান না? এক্সএল বাইনারি মামলা না কেন?
ড্যানি দুলাই

বিটিডাব্লু, আপনি এখন কমান্ডলাইনে বা পরিবেশের ভেরিয়েবলের মাধ্যমে পাসওয়ার্ড নির্দিষ্ট করতে পারবেন।
ড্যানি দুলাই

এক্স স্ট্যান্ডার্ড এক্স টুলসেট এবং শেল স্ক্রিপ্ট সহ এক্স ইনপুট ইভেন্টগুলি খাওয়া সম্ভব?
আলেকজান্ডার শ্যাচব্লিকিন

2

আপনার উত্তরটি সম্ভবত আপনার দ্বিতীয় ব্যবহারের ক্ষেত্রে (দূরবর্তীভাবে কিছু করা) সেরা, তবে সম্ভবত আপনার প্রথমটির জন্য নয় (কীবোর্ড থেকে দূরে থাকা)। আপনি ফিরে আসার পরে অ্যাক্সেস পুনরুদ্ধার করতে আপনি কীভাবে আবার এক্সপুট চালাবেন?

সিস্টেমটি দূরে থাকাকালীন লক করার স্ট্যান্ডার্ড সলিউশনটি হ'ল এক্সস্ক্রিনসেভার , যা বেশিরভাগ ডিস্ট্রোজে ডিফল্টরূপে ইনস্টল করা হয়। কীবোর্ডটিকে লক করার জন্য কনফিগার করা থাকলে তা আনলক করার আগে এটি আপনার পাসওয়ার্ডের জন্য অনুরোধ জানাবে।


আমি আপডেট করেছি।
ফিলোমাথ

2

কমপক্ষে উবুন্টুর মতো ডেবিয়ান-ভিত্তিক সিস্টেমে xtrlock (1)প্যাকেজ সংগ্রহস্থলের মাধ্যমে একটি ইউটিলিটি উপলব্ধ রয়েছে।

উইন্ডোজটি দৃশ্যমান রেখে পাসওয়ার্ড প্রবেশ না করা পর্যন্ত এই ইউটিলিটি কীবোর্ড এবং মাউসটিকে লক করে রাখে। আমি তথ্য প্রদর্শন এবং এই জাতীয় চলমান কম্পিউটারগুলির জন্য দরকারী বলে মনে করি।


এটি সর্বাধিক সহজ এবং হালকা ওজনের বিকল্প হিসাবে মনে হচ্ছে এবং 90-এর দশকের মাঝামাঝি থেকে এটি প্রায় হয়েছে। একটি সমস্যা হ'ল আমি মনে করি না লক করা কার্সার চিত্রটি লুকানো সম্ভব, যা দুর্ভাগ্যক্রমে, এটি স্বাক্ষরের জন্য অকেজো করে তোলে।
এক্সেল

1

আপনার হার্ডওয়্যার উপর নির্ভর করে, আপনি আপনার হার্ডওয়্যার নিয়ন্ত্রণ করে মডিউলগুলি সরাতে পারেন। touchpadtoggleআমার টাচপ্যাড সক্ষম ও অক্ষম করার জন্য আমার কাছে এমন স্ক্রিপ্ট রয়েছে ।

lsmod | grep -q psmouse && rmmod psmouse || modprobe psmouse

তবে কীবোর্ডটিতে কোনও মডিউল যুক্ত আছে বলে মনে হচ্ছে না এবং psmouse- মডিউলটি কেবল মাঝে মধ্যে কাজ করবে।


1

আপনি যদি কোনও ডেস্কটপ এনভায়রনমেন্ট বা লগইন ম্যানেজার ব্যবহার করে থাকেন, (জিনোম, কে, কে, এক্সএফসিই, এলএক্সডিই) প্রায় সকলের একটি লক স্ক্রিন ফাংশন রয়েছে যেখানে আপনাকে আপনার প্রোগ্রামগুলিতে ফিরে যেতে আপনার পাসওয়ার্ড টাইপ করতে হবে।

তবে যেহেতু এটি সত্যিই সহজ আমি বুঝতে পারছি আপনার সমস্যা আরও জটিল / ভিন্ন।


আমি আপডেট করেছি।
ফিলোমাথ

1

উপরের উত্তরগুলির সাহায্যে এটি করার জন্য আমি এটি লিখেছিলাম ( .zshrcতবে, .bashrcপাশাপাশি কাজ করা উচিত )। কীবোর্ডের সাথে সংশ্লিষ্ট করতে, প্যারামিটারটি এতে পরিবর্তন করুন grep Mouse

setmouse () {
 xinput \
  $1 \
  `xinput | grep Mouse | tr -d " " | tr "\t" " " | cut -d" " -f2 | cut -d"=" -f2`
}
offmouse () { setmouse disable }
onmouse  () { setmouse enable  }

আমার পরীক্ষা করে দেখুন উত্তর তাই একটি অনুরূপ প্রশ্নের - এটা একই আছে, কিন্তু একটি TTY থেকে আহ্বান করা যেতে পারে, এবং, এটি (ক কার্যসংক্রান্ত ব্যবহার করে) লুকায় পয়েন্টার।
ইমানুয়েল বার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.