কীভাবে সক্ষম / অক্ষম করবেন মাভারিক্সের শেল থেকে বিরক্ত করবেন না?


16

আমি একটি কীবোর্ড শর্টকাট দিয়ে বিজ্ঞপ্তি কেন্দ্রে ডোন্ট ডিস্টার্ব না করা টগল করতে চাই।

আমি কিছু অতিরিক্ত কীবোর্ড শর্টকাটের জন্য BetterTouchTool ব্যবহার করছি তবে এটি ডিফল্ট বিকল্পগুলিতে বিজ্ঞপ্তিগুলি সক্ষম / অক্ষম করা সমর্থন করে না।

এটিতে টার্মিনাল কমান্ড কার্যকর করার জন্য একটি বিকল্প রয়েছে তাই আমি এখানে জিজ্ঞাসা করছি কীভাবে টার্মিনাল থেকে বিঘ্নিত করবেন না সক্ষম / অক্ষম করবেন?

আমি অটোমেটরের সাথে ওএস এক্স মাউন্টেন লায়নটিতে 'ডু নট ডিস্টার্বড' শিডিয়ুলটি পেয়েছি এবং কমান্ডগুলি চালানোর চেষ্টা করেছি তবে এটি কার্যকর হয়নি বলে মনে হচ্ছে।


যেহেতু আপনি শেল থেকে বিপরীতে কী-বোর্ড থেকে এটি কীভাবে করবেন তা সত্যই জিজ্ঞাসা করছেন, আপনার সম্ভবত প্রশ্নের শিরোনাম পরিবর্তন করা উচিত। বা যদি আমি ভুল হয়, দয়া করে আমাকে সংশোধন করুন!
ওয়েবমার্ক

আসলে, কিছু মনে করবেন না ... আমি বুঝতে পারিনি যে "বেটারটচটুল" আপনার পছন্দসইটির জন্য টার্মিনালটির প্রয়োজন।
ওয়েবমার্ক

আমি শেল থেকে এটি কীভাবে করব তা প্রাথমিকভাবে জিজ্ঞাসা করেছি। সিস্টেমের পছন্দগুলি থেকে এটি করা আমার কেস সমাধান করে তবে শেল থেকে কীভাবে এটি করা যায় তা আরও মজাদার।
রাজওয়ান

গোছা, আমি শেল তথ্য দিয়ে আমার উত্তর আপডেট করেছি।
ওয়েবমার্ক

উত্তর:


13

আপনি কেবল এটির জন্য সিস্টেম পছন্দ -> কীবোর্ড -> শর্টকাটস -> মিশন নিয়ন্ত্রণে একটি গ্লোবাল কীবোর্ড শর্টকাট সেটআপ করতে পারেন Mission

অথবা আপনি যদি অবশ্যই এটি কমান্ড লাইন থেকে চান, একটি অ্যাপলসক্রিপ্ট এটি করতে পারে (ধরে নিলে আপনি কী-বোর্ড শর্টকাটটি ব্যবহার করতে পারবেন) cmdshiftoptctrlD

মনে রাখবেন যে এটির জন্য এখনও আপনি সিস্টেম পছন্দগুলিতে একটি কীবোর্ড কমান্ড সেটআপ করতে হবে।

নীচের স্ক্রিপ্টটি একটি ফাইলে রাখুন, বলুন, ~ / dnd.applescript

ignoring application responses
    tell application "System Events" to keystroke "D" using {command down, shift down, option down, control down}
end ignoring

এখন আপনি osascript ~/dnd.applescriptআপনার ডিএনডি সেটিংস টগল করতে কমান্ড লাইন থেকে চালাতে পারেন ।

পর্দা টুপি: সিস্টেম পছন্দগুলিতে কীবোর্ড শর্টকাট পরিবর্তন


1
পারফেক্ট! ধন্যবাদ। আশা করি আরও ভাল উপায় থাকলেও।
বি

কীভাবে ভাল?
ওয়েবমার্ক

1
একটি অস্পষ্ট কীবোর্ড শর্টকাট বাঁধতে হবে না এবং এটি দিয়ে টগল করুন osascript
বি বি হবে

আমার ধারণা আমি জিজ্ঞাসা করছি যে আপনি "আরও কার্যকর" বা "প্রচ্ছদগুলির নীচে প্রাক্টটিয়ার" এর চেয়ে ভাল হিসাবে বোঝাচ্ছেন কিনা। এটি কি ব্যবহারিক বা নান্দনিক ইচ্ছা?
ওয়েবমার্ক

শুধু কৌতূহলী, আমার কাছে কোনও উপায়ই নেই।
ওয়েবমার্ক

17

ওএস এক্স 10.10.3 হিসাবে, এই অ্যাপলস্ক্রিপ্টটি "বিরক্ত করবেন না" টগল করবে। কোনও কীবোর্ড শর্টকাট প্রয়োজন:

tell application "System Events" to tell process "SystemUIServer"
  key down option
  click menu bar item 1 of menu bar 2
  key up option
end tell

আপনি এটি একটি অ্যাপলস্ক্রিপ্ট হিসাবে সংরক্ষণ করতে পারেন এবং এটি দিয়ে টার্মিনাল থেকে চালাতে পারেন osascript DoNotDisturb.applescript, বা আপনি এটি কোনও হেরেডোকের মধ্যে এটি মোড়ক দ্বারা বাশ স্ক্রিপ্টে অন্তর্ভুক্ত করতে পারেন:

#!/bin/bash
osascript <<EOD
  tell application "System Events" to tell process "SystemUIServer"
    key down option
    click menu bar item 1 of menu bar 2
    key up option
  end tell
EOD

6
এর অর্থ আপনি কী DoNotDisturbধরে রেখে মেনু বারের ডানদিকের টাইলস ক্লিক করেও টগল করতে পারেন Option
রাজ্জান

2
এটি আর মোজেভে কাজ করে না। আপেলসক্রিপ্টটি মেনু বার আইটেমটিকে এমনভাবে ক্লিক করবে যেন বিকল্পটি নীচে না থাকলেও তা রয়েছে
ডায়ালানথেপিগুয়ে

13

আপনি সরল করতে পারেন -currentHost ডিফল্ট কমান্ডের যুক্তিটি ব্যবহার করে যে উত্তরটি সরবরাহ করেছেন তা

বিরক্ত করবেন না সক্ষম করুন:

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true
defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturbDate -date "`date -u +\"%Y-%m-%d %H:%M:%S +0000\"`"
killall NotificationCenter

(মাধ্যমে https://heyfocus.com/blog/enabling-do-not-disturb-mode/ এর )

বিরক্ত করবেন না অক্ষম:

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean false
killall NotificationCenter

সিস্টেমের পছন্দ নির্বিশেষে যে কারওর মেশিনে কাজ করতে পারে এমন স্ক্রিপ্ট হিসাবে "ডাব না ডিস্টার্ব করবেন না" সক্ষম বা অক্ষম করতে আপনি এখন সহজেই এটিকে একটি স্ক্রিপ্ট হিসাবে মুড়িয়ে দিতে পারতেন। এটি কীভাবে করা যায় তার একটি উদাহরণ এখানে দেওয়া হয়েছে:

#!/bin/bash

set -eou pipefail

# From https://heyfocus.com/enabling-do-not-disturb-mode and
# /apple/145487

if [[ $(defaults -currentHost read ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb) -eq 0 ]]; then
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean true
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturbDate -date "`date -u +\"%Y-%m-%d %H:%M:%S +000\"`"
  killall NotificationCenter
  echo "Do Not Disturb is enabled. Run $0 to turn it off (OS X will turn it off automatically tomorrow)."
else
  defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui doNotDisturb -boolean false
  killall NotificationCenter
  echo "Do Not Disturb is disabled. Run $0 to turn it on again."
fi

সূত্র: https://gist.github.com/ryangreenberg/5267f68a8e7b07ea66370b4eb5580ab9


2
মাইনর ভিজ্যুয়াল বাগ! [@ রঙ দেখতে লোকেদের জন্য প্রসিদ্ধ]: আমি এটি চেষ্টা করেছি এবং এটি কাজ করে। আমি 5 মিনিটের জন্য কিছু বিজ্ঞপ্তি স্নুজ করে দিয়েছিলাম এবং তারপরে বিজ্ঞপ্তিগুলির জন্য ডু নট ডিস্টার্ব না করে চালু করেছি এবং তারপরে "অক্ষম করো না বিরক্ত করুন" এর অধীনে কমান্ডগুলি চালিয়েছি। একদিকে, আইকনটি ধূসর হয়ে দাঁড়িয়েছে, তবে অন্যদিকে এটি অন্যথায় কাজ করেছে বলে মনে হয়েছে - বিজ্ঞপ্তিগুলি কয়েক মিনিটের মধ্যেই পপ আপ হয়ে গেছে। দ্বিতীয় পরীক্ষা: আমি বিজ্ঞপ্তিগুলির জন্য ডোন্ট ডিস্টার্বড (ডাব্লু / ও ও কিছু স্নুজ করা) চালু করেছিলাম এবং "ডিসিয়েবল ডট নট ডিস্টার্ব" এর অধীনে কমান্ডগুলি চালিয়েছি। আইকনটি ধূসর হয়ে গেল, তবে বিজ্ঞপ্তিগুলি পপ আপ হয়ে গেল।
ম্যাথু এলভি

1
@ ম্যাথেজএলওয়ে এটি সিয়েরা থেকে হাই সিয়েরাতে পরিবর্তন হতে পারে। আমাদের সম্ভবত মেনুবার আইকনটি পুনরায় লোড করার একটি নতুন উপায় খুঁজে বের করতে হবে।
রায়ান

1
অ্যাপ্লিকেশনবিহীন কমান্ডের জন্য +1!
ম্যাট

1
এই সমাধান সহ উচ্চতর সিয়েরা / মোজভেভে ডিএনডি পরিবর্তিত হবে না
ডিলান্থেপিগুয়ে

8

জেমস এবং জসোল্টের উত্তরের উপর ভিত্তি করে, আমি ডিএনডি স্টেট চালু বা বন্ধ করার জন্য কয়েকটি স্ক্রিপ্ট তৈরি করেছি। তাদের কাজ করার জন্য কোনও কী বাইন্ডিং বা মেশিন জিইউডি প্রয়োজন হয় না।

গুরুত্বপূর্ণ : দয়া করে নোট করুন যে এই স্ক্রিপ্টগুলি প্রথমবার চালানোর জন্য স্ক্রিপ্টগুলি চালিত অ্যাপটির অ্যাক্সেসযোগ্যতার অনুমতি প্রয়োজন হতে পারে। আপনি যদি অনুরোধে অনুমতিটি না দিয়ে থাকেন তবে সিস্টেমের জন্য alt/ optionবোতাম টিপে থাকবে এবং আপনাকে এটি "মুছে ফেলতে" লগ আউট করে ফিরে যেতে হবে। এটি অ্যাপলস্ক্রিপ্ট সহ পূর্ববর্তী উত্তরের ক্ষেত্রেও সত্য। লিপিটি সম্পাদিত থাকলে অনুমতিগুলি প্রত্যাহার করে পুনরায় মঞ্জুরি দেওয়া দরকার। অনুমতিগুলি ব্যবহার করে মঞ্জুরি দেওয়া হয়:

System Preferences > Security & Privacy > Accessibility > Add your app

ম্যাকোস সিয়েরা এবং হাই সিয়েরার জন্য এটি menu bar 1 :

বিরক্ত করবেন না ঝামেলা চালু করুন (বিজ্ঞপ্তি অক্ষম করুন):

if [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
    osascript <<EOD
      tell application "System Events" to tell process "SystemUIServer"
        key down option
        click menu bar item 1 of menu bar 1
        key up option
      end tell
EOD
fi

বিরক্ত করবেন না ঝামেলা বন্ধ করুন (বিজ্ঞপ্তিগুলি সক্ষম করুন):

if ! [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
    osascript <<EOD
      tell application "System Events" to tell process "SystemUIServer"
        key down option
        click menu bar item 1 of menu bar 1
        key up option
      end tell
EOD
fi

ম্যাকোসের আগের সংস্করণগুলির জন্য এটি menu bar 2 :

বিরক্ত করবেন না ঝামেলা চালু করুন (বিজ্ঞপ্তি অক্ষম করুন):

if [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
    osascript <<EOD
      tell application "System Events" to tell process "SystemUIServer"
        key down option
        click menu bar item 1 of menu bar 2
        key up option
      end tell
EOD
fi

বিরক্ত করবেন না ঝামেলা বন্ধ করুন (বিজ্ঞপ্তিগুলি সক্ষম করুন):

if ! [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.*.plist | grep false) ]]; then
    osascript <<EOD
      tell application "System Events" to tell process "SystemUIServer"
        key down option
        click menu bar item 1 of menu bar 2
        key up option
      end tell
EOD
fi

1
এটি আর মোজেভে কাজ করে না। আপেলসক্রিপ্টটি মেনু বার আইটেমটিকে এমনভাবে ক্লিক করবে যেন বিকল্পটি নীচে না থাকলেও তা রয়েছে
ডায়ালান্থেপিগুয়ে

2

সময়সূচী বিরক্ত করবেন না

কেবলমাত্র যোগ করার জন্য আপনি প্রতিটি সময় নির্দিষ্ট সময় সক্রিয় / নিষ্ক্রিয় করতে কমান্ড লাইন থেকে না ডিস্টার্ব করবেন না শিডিয়ুল করতে পারেন।

ডিএনডি সক্ষম হওয়ার সময় নির্ধারণ করতে :

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndStart -integer <start_time_in_minutes>

সময় নির্ধারণ করতে যখন ডিএনডি অক্ষম করা হবে :

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndEnd -integer <end_time_in_minutes>

দ্রষ্টব্য: প্রতিস্থাপন<start_time_in_minutes>এবং<end_time_in_minutes>পছন্দসই মান সহ (নীচে বর্ণিত)।


উদাহরণ:

প্রতিটি দিন 15:00 টায় আর ডিএনডি সময়সূচী করতে 18:30 এ শেষ করতে নিম্নলিখিতটি করুন:

রূপান্তর 15:00 এবং 18:30 মিনিট মান পেতে <start_time_in_minutes>এবং <end_time_in_minutes>। এটি হল, ঘন্টা সংখ্যাকে 60 দিয়ে গুণ করুন এবং মিনিটের সংখ্যা যুক্ত করুন।

15:00 যে হবে: 15 * 60 + 0 = 900এবং 18:30 জন্য যে হতে হবে: 18 * 60 + 30 = 1110। আমাদের নীচের আদেশগুলি প্রদান:

defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndStart -integer 900
defaults -currentHost write ~/Library/Preferences/ByHost/com.apple.notificationcenterui dndEnd -integer 1110
killall NotificationCenter # 'resets' Notificatio Center so that it reads the DND change

1

জেমসের উত্তরের ভিত্তিতে, আমি এটিও বলতে চাইছি যে এটি চালু বা বন্ধ আছে কিনা তা আপনি নির্ধারণ করতে পারেন। সুতরাং নীচে এটি বন্ধ করে দেয় এবং ইতিমধ্যে বন্ধ থাকলে কিছুই করে না:

if [[ $(plutil -convert xml1 -o - ~/Library/Preferences/ByHost/com.apple.notificationcenterui.000-000-000-000.plist | grep false) ]]; then
    osascript <<EOD
      tell application "System Events" to tell process "SystemUIServer"
        key down option
        click menu bar item 1 of menu bar 2
        key up option
      end tell
EOD
fi

আপনার নিজের মেশিন জিআইডি ফাইল ফাইলের পরিবর্তে নিতে হবে (সেখানে কেবল একটি ফাইল রয়েছে, তাই এটি নির্ধারণ করা সহজ)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.