मैं टर्मिनल से डिस्प्ले कैसे सो सकता हूं?


49

मैं अपनी स्क्रीन को कमांड लाइन से बंद करने में सक्षम होना चाहता हूं।

मुझे पता है कि कीबोर्ड शॉर्टकट ctrl+ + है, लेकिन मैं इसे शेल स्क्रिप्ट या दूरस्थ रूप से करना चाहता हूं।

क्या उधर रास्ता है?


यह मदद कर सकता है: apple.stackexchange.com/questions/34884/…
जॉर्ज

आप इसे भी पढ़ सकते हैं: stackoverflow.com/questions/1239439/…
jm666

जवाबों:


71

OS X 10.9 में, आप बस कर सकते हैं pmset displaysleepnow। यह आपकी किसी भी सेटिंग को बदले बिना या पूरे होस्ट को सोने के लिए आपके डिस्प्ले को तुरंत बंद कर देगा।

बढ़े हुए विशेषाधिकारों की आवश्यकता नहीं लगती है (कम से कम ओएस एक्स के हाल के संस्करणों के साथ), लेकिन यदि आपको अपर्याप्त विशेषाधिकार के बारे में संदेश मिलता है, तो आप कर सकते हैं sudo pmset displaysleepnow

टिप्पणीकारों की प्रतिक्रिया के आधार पर, यह OS X 10.8 या इससे पहले के संस्करण में उपलब्ध नहीं है।


22

जब मैं एक कमांड नहीं खोज पा रहा हूं जो कि मूल रूप से डिस्प्ले को सोएगा, तो एक ऐप है जिसे आप डाउनलोड करते हैं जो यह करेगा। यहां से दो विकल्प हैं।

  1. एप्लिकेशन को एप्लिकेशन फ़ोल्डर में स्थापित करें और टर्मिनल या एसएसएच रन से open /Applications/Sleep\ Display.app

  2. डाउनलोड फ़ोल्डर से एप्लिकेशन पर राइट क्लिक करें और "पैकेज सामग्री दिखाएं" पर क्लिक करें। Contents/MacOSस्लीपडिसप्ले फ़ाइल को नेविगेट और कॉपी करें।

    पर नेविगेट करें /usr/bin(आप + + Gशॉर्टकट का उपयोग कर सकते हैं और डायरेक्टरी टाइप कर सकते हैं ) और बाइनरी फाइल पेस्ट कर सकते हैं। अब आप कमांड sleepdisplayको एसएसएच या एसएसएच के माध्यम से टाइप कर पाएंगे और डिस्प्ले तुरंत सो जाएगा।

उम्मीद है की यह मदद करेगा!


7

यहाँ एक सरल शेल स्क्रिप्ट है जो इसे करेगा।

#!/usr/bin/env bash
open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app

यह उस कंप्यूटर पर स्क्रीन सेवर के लिए आपके द्वारा सक्षम की गई सेटिंग्स को चलाएगा / शुरू करेगा।


मैं यह पसंद है। मैंने इस कोड को एक फ़ाइल / usr / स्थानीय / बिन / ss, chmod + x में चिपका दिया है और अब स्क्रीन सेवर को सक्रिय करने के लिए कमांडलाइन में 'ss' टाइप कर सकता है। बदले में स्क्रीन सेवर स्क्रीन सेवर को सक्रिय करने के एक मिनट बाद पासवर्ड मांगने के लिए कॉन्फ़िगर किया गया है (जिसे आगे बढ़ाया जा सकता है, मुझे विश्वास है, यदि आवश्यक हो)
fwielstra

7

निम्न स्क्रिप्ट काम करेगी (तेंदुए और बाद में), लेकिन इसे इसके साथ चलाया जाना चाहिए sudo:

आधार यह है कि pmsetप्रदर्शन नींद तक एक समय निर्धारित किया जा सकता है, लेकिन समस्या यह है कि 0 का मान सुविधा को बंद कर देता है, बजाय विलंब को शून्य पर सेट करने के, और 1 का मान पूर्ण एक मिनट की देरी है। यहां जादू यह है कि 2 ^ 31 का मान नकारात्मक शून्य के रूप में संग्रहीत किया जाता है, जो जादुई रूप से "तुरंत प्रदर्शन बंद करें" के रूप में कार्य करता है।

टाइगर और पहले में, एक अलग मैजिक नंबर की आवश्यकता थी, क्योंकि डिस्प्ले को बंद करने तक, मिनटों में, देरी से स्टोर करने के लिए एक अलग बिट-साइज़ वेरिएबल का आंतरिक रूप से उपयोग किया जाता था।

यह control- shift- के व्यवहार की नकल करता है eject, और मैकबुक एयर पर बिना ejectचाबी के इस्तेमाल किया जा सकता है ।

#!/bin/bash
original_setting=`/usr/bin/pmset -g | /usr/bin/awk '/displaysleep/ {print $2}'`
magic_number=2147483648
/usr/bin/pmset -a displaysleep $magic_number; sleep 1; /usr/bin/pmset -a displaysleep $original_setting

5

macOS सिएरा पर

  • नींद प्रदर्शन: pmset displaysleepnow
  • जगा प्रदर्शन: caffeinate -u -t 1
  • परीक्षण स्थिति: pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29परिणाम <4 एक नींद प्रदर्शन है

अपने मैक की स्क्रीन स्थिति को दूरस्थ रूप से सेट करने के लिए एक छोटा नोड HTTP सर्वर: https://github.com/ycardon/switch-api


आप सशर्त लॉजिक के लिए 0 या नॉन-जीरो एग्जिट कोड प्राप्त कर सकते हैं "echo $[$(pmset -g powerstate IODisplayWrangler | tail -1 | cut -c29) - 4]"(इसे सही / गलत का उपयोग करके "स्क्रीन ऑन है?")।
atwixtor

4

एक छोटे AppleScript को निष्पादित करने के लिए निम्नलिखित कमांड को चलाएं जो प्रदर्शन को सोने के लिए रखता है:

osascript -e 'tell application "System Events" to sleep'

कमांड नाम से पता चलता है कि यह पूरी प्रणाली को कुछ परिस्थितियों में सोने के लिए रख सकता है, लेकिन मैं सीमित परीक्षण में ऐसा नहीं कर सका: मैंने इसे शेल स्क्रिप्ट के साथ परीक्षण किया था जो मैंने इस कमांड को निष्पादित करने से कुछ समय पहले शुरू किया था, और यह कुछ के लिए चल रहा था मिनट जब तक मैं सिस्टम "जाग"। इसने पूरे समय के दौरान आउटपुट प्रिंट करना जारी रखा था।


2

वास्तव में उम्मीद है कि यह जवाब पीटा ट्रैक से बहुत दूर नहीं है। सोने, फिर से शुरू करने, बंद करने का मेरा सबसे पसंदीदा तरीका है - और सबसे महत्वपूर्ण बात यह है कि एक मैक अल्फ्रेड (ऐप लॉन्चर) का उपयोग कर रहा है।

इसके लिए किसी भी स्क्रिप्ट, लिपियों के ज्ञान या टर्मिनल के उपयोग की आवश्यकता नहीं है, जो शानदार है।

हालाँकि, यदि आप विशेष रूप से टर्मिनल का उपयोग करना चाहते हैं, तो यह संभवतः आपके लिए समाधान नहीं है।



1

आप pmsetकुछ इस तरह से डिस्प्लेस्लीप के मान को बदलने के लिए कमांड का उपयोग कर सकते हैं

pmset -a displaysleep 1

(रूट की आवश्यकता है)


1

ओपन सोर्स जीथब प्रोजेक्ट मैकलॉक पर एक नज़र डालें

डिफ़ॉल्ट रूप से, यह सिर्फ स्क्रीनसेवर को लॉन्च करता है, लेकिन आप डिस्प्ले को सोने के लिए रख सकते हैं:

maclock --display

कवर के तहत, यह एक बैश स्क्रिप्ट है जो अनिवार्य रूप से सिर्फ कॉलिंग है:

pmset displaysleepnow

1

ठीक है, यह एक पुराना है, लेकिन ऐसा लगता है कि इस सवाल के लिए कहीं भी बहुत अच्छे जवाब नहीं हैं।

मुझे काम करने के लिए एक AppleScript मिल गया है, हालांकि इसके लिए एक थर्ड पार्टी, अनमनी और अन-रेगिस्ट्रेबल ऐप - अतिरिक्त सूट की आवश्यकता होती है। इसे डेवलपर की पुरानी वेबसाइट पर डाउनलोड किया जा सकता है ।

# Gets the current state of the upper left hot corner, then sets it to sleep display.
tell application "System Events"
  tell expose preferences
    set givenActivty to get the activity of the top left screen
    set the properties of the top left screen corner to {activity:sleep display}
  end tell
end tell

# Uses Mouse to Activate upper left hot corner. [Moving directly to {0, 0} does not work
tell application "Extra Suites" 
  ES move mouse {1, 1}
  ES move mouse {0, 0}
end tell

# Restores state of upper left hot corner.
tell application "System Events"
  tell expose preferences
    delay 1
    set the activity of the top left screen corner to givenActivty
  end tell
end tell

# Gets rid of Extra Suites nag window.
tell application "Extra Suites"
  quit
end tell

मैंने इसे एक अल्फ्रेड वर्कफ़्लो में भी शामिल किया है ।


1

मैंने इसके साथ किया sudo shutdown -s now

ध्यान दें कि आपको ऐसा करने के लिए व्यवस्थापक विशेषाधिकार की आवश्यकता होगी।



-1

अल्फ्रेड (AppStore पर नि: शुल्क) का उपयोग करना प्रदर्शन को सिर्फ लिखने के द्वारा सोने के लिए एक शानदार तरीका है: "नींद"। इससे सरल नहीं है।

बेशक अल्फ्रेड इससे कहीं अधिक करते हैं, आप पुनः आरंभ, लॉगआउट, खाली कचरा, ताला, शटडाउन और कई अन्य चीजों को भी कर सकते हैं।


1
यह दूर से या ssh के माध्यम से करने की उसकी आवश्यकता को संबोधित नहीं करता है।
टीजे लुओमा

-2

अतिरिक्त ऐप की आवश्यकता नहीं है, बस उपयोग करें tell application "Finder" to sleep


1
क्या यह पूरा कंप्यूटर नहीं सोता है?
nohillside

-2

ऐप लॉन्चबार अल्फ्रेड के समान ही काम करता है। मेरे मामले में, सीएमडी स्पेसबार तब एस [स्लीप] - सरल और तेज


इस सवाल का जवाब नहीं है। gregseth कंप्यूटर को थर्ड-पार्टी यूटिलिटी के साथ सोने के लिए एक रास्ता नहीं ढूंढ रहा है, बल्कि कमांड लाइन से सोने के लिए डिस्प्ले लगाने का तरीका है ।
टिमोथी मुलर-हार्डर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.