টার্মিনাল কমান্ড দিয়ে আমি কীভাবে ডেস্কটপ পটভূমি পরিবর্তন করব?


19

আমি আমার ওএস এক্স কনফিগারেশন স্ক্রিপ্টে একটি কমান্ড যুক্ত করার চেষ্টা করছি যা প্লেইন গা gray় ধূসর রঙের পটভূমি সেট করে, তবে এটি প্রয়োগ করা হলে এটি কেবলমাত্র মূল মনিটরে সেট করে এবং বর্তমানে যুক্ত হওয়া কোনও অতিরিক্ত মনিটর তাদের বর্তমান পটভূমি এবং তারপরে যে কোনও যোগ করা এখনও রাখে ডিফল্ট স্থান পটভূমি প্রাপ্ত। আমার এখন পর্যন্ত যা আছে তা নিম্নরূপ:

# Change Desktop default BackgroundColor to grey
defaults write com.apple.desktop '{ Background = { default = {BackgroundColor = ( "0.2549019753932953", "0.4117647111415863", "0.6666666865348816" ); Change = Never; ChangePath = "/Library/Desktop Pictures/Solid Colors"; ChangeTime = 1800; DrawBackgroundColor = 1; ImageFileAlias = <00000000 00ce0003 00000000 c73804cd 0000482b 00000000 000c2624 000c2633 0000ca1c 0a310000 00000920 fffe0000 00000000 0000ffff ffff0001 000c000c 2624000c 25fc000a 0789000e 00280013 0053006f 006c0069 00640020 00470072 00610079 00200044 00610072 006b002e 0070006e 0067000f 000c0005 006f0073 00780038 00360012 00394c69 62726172 792f4465 736b746f 70205069 63747572 65732f53 6f6c6964 20436f6c 6f72732f 536f6c69 64204772 61792044 61726b2e 706e6700 00130001 2f00ffff 0000>; ImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NewChangePath = "/Library/Desktop Pictures/Solid Colors"; NewImageFilePath = "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"; NoImage = 0; Placement = Crop; Random = 0; }; }; }'

আমি কীভাবে টার্মিনাল কমান্ডের মাধ্যমে ডিফল্টটিকে অন্ধকার ধূসর ব্যাকগ্রাউন্ড সেট করব? টার্মিনাল কমান্ডের মাধ্যমে ইতিমধ্যে কনফিগার করা সমস্ত মনিটরকে ধূসর করে কীভাবে পরিবর্তন করব?


এটি কমান্ডগুলির বেশ কার্যকর সেট! আমি আপনার .aliases একটি খুব পছন্দ করি। ধন্যবাদ!
বাইনারিবব

আমি সমস্ত কৃতিত্ব নিতে পারি না, আমি এটি ম্যাথিয়াসবিনেন্স থেকে কাঁটাচামচ করেছি , আমি কীবোর্ড, মাউস এবং কর্মহীন ব্যাকগ্রাউন্ড সেটিংস যুক্ত করেছি।
rudolph9

ওহ এবং আমার মাউস ট্র্যাকিংয়ের গতিটি সিস্টেমের পছন্দগুলির তুলনায় উচ্চতা নির্ধারণ করা হবে :() আমাকে চিৎকার করতে বাধ্য করেছে কারণ এটি দ্রুত ট্র্যাক করে।
rudolph9

উত্তর:


22

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

 #!/usr/bin/env bash
 sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '/path/to/any/picture.png'";
 killall Dock;

অথবা, এটি আপনার ~ / .Bash_profile এ একটি ফাংশন হিসাবে যুক্ত করুন এবং এটি কোনও অপ-আপেক্ষিক পথ সহ একটি টার্মিনাল কমান্ড হিসাবে কল করুন।

#   Update all Wallpapers
function wallpaper() {
    sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$1'" && killall Dock 
}

wallpaper ~/path/to/any/picture.png


এটি বর্তমানে একমাত্র জিনিস যা কাজ করে।
সরুফুটউ

2
@ জেরেমিজজব্রাউন: উত্তর দেওয়ার জন্য আপনাকে ধন্যবাদ! দুর্ভাগ্যক্রমে এটি এখন আর ম্যাকস সিয়েরায় কাজ করছে না .. অ্যাপল এখন কোন ছবি ওয়ালপেপার হিসাবে ব্যবহার করতে পারে যেখানে কোনও চিত্র সংরক্ষণ করতে পারে এমন কোনও ধারণা আছে?
বেনিয়ামিন হার্জোগ

আপনি কীভাবে এটি সেন্টার / টাইল / স্ক্রিনে ফিট ইত্যাদি পেতে পারেন?
BSUK

@ বেঞ্জামিনহেরজগ সংঘুন লির উত্তর এখনও কাজ করে (মোজাভে), কেবল গিটহাব উত্স থেকে তৈরি করুন, না পাতানো
পুদিনা

15

এটি আপনার পক্ষে কাজ করা উচিত:

osascript
tell application "Finder"
set desktop picture to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
end tell

এই ম্যাক গুজব থ্রেডে আরও বেশ কয়েকটি উপায় রয়েছে তবে তার উপায়টি সবচেয়ে সহজ।


আপনি কি নিজের কাজ করার জন্য এটি পেয়েছেন? এটি আমার পক্ষে কাজ করে নি।
rudolph9

1
আমাকে দিয়েছিল./a.scpt:31:46: execution error: Finder got an error: Can’t set file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png" to file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png". (-10006)
rudolph9

ইতিমধ্যে ./a.scpt:31:46: execution error: Finder got an error: Can’t set file "/Library/Desktop Pictures/Solid Colors/Solid Gray Medium.png" to file "/Library/Desktop Pictures/Solid Colors/Solid Gray Medium.png". (-10006)
গা dark় ধূসরতে

@ কুর্টরুডলফ এটি অ্যাপলস্ক্রিপ্ট সম্পাদক হিসাবে চালানোর চেষ্টা করুন। এটি কি সেখানে কাজ করে? আমি এটি চেষ্টা করি নি, তবে আমি বিশ্বাস করি যে আমার অতীতে ছিল।
ডেভিজেক

@ ফ্যারাজের উত্তরের ভিত্তিতে, এটি প্রদর্শিত হবে যে আপনাকে অ্যাপল স্ক্রিপ্টটি বলতে হবে যে আপনি ফাইল কীওয়ার্ডের আগে পসিক্স কীওয়ার্ড যুক্ত করে একটি পসিক্স পাথ সরবরাহ করছেন, যেমনtell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
জেসন মুসগ্রোভ

12

এক লাইনে এটি করার সহজ উপায়:

osascript -e 'tell application "Finder" to set desktop picture to POSIX file "/Library/Desktop Pictures/Earth Horizon.jpg"'

ব্যবহারের পদ্ধতিটি osascriptআমার জন্য কেবল তখনই চালিত killall Dockহয় যদি আমি কাজ করি । অন্য কেউ তা খেয়াল করে?
কুইন কমেন্ডেন্ট

2

আপনি যদি কোনও নতুন ফাংশন তৈরির ক্ষেত্রে কোনও নতুন অ্যাপ্লিকেশন ইনস্টল করতে পছন্দ করেন তবে ব্যবহার m-cliকরার উপায়। এটি ব্যবহার করা সহজ এবং আপনার প্রয়োজন হলে এর প্রচুর অন্যান্য দরকারী বৈশিষ্ট্য রয়েছে।

brew install m-cli 
m wallpaper ./wallpapers/tree.jpg

m-cliওএস এর সংস্করণ স্বয়ংক্রিয়ভাবে সনাক্ত করে, অভ্যন্তরীণভাবেbash স্ক্রিপ্ট ব্যবহার করে অন্যান্য সঠিক উত্তরগুলির মতো একই কাজ করুন


ধন্যবাদ !! এই একজন আমার জন্য ম্যাকোস মোজভেতে কাজ করেছেন (যদিও আপনাকে গিথুব উত্স থেকে এম-ক্লাইট পাওয়া দরকার, কারণ ব্রু সংস্করণটি 2017 থেকে পুরানো হয়েছে)
পুদিনা

1

পাথগুলির POSIX fileজন্য /posix/pathsবা as aliasসাথে ব্যবহার করে সঠিকভাবে উল্লেখ করা দরকার Old:Mac:Style:Paths

আপনার বিষ চয়ন করুন ...

প্যাসিক্স পথ:

set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Dark.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell

ম্যাক পাথ:

set localLibrary to path to library folder from local domain as string
set desktopImage to localLibrary & "Desktop Pictures:Solid Colors:Solid Gray Dark.png" as alias

tell application "Finder"
    set desktop picture to desktopImage
end tell

আপনি উপরের অ্যাপ্লিকেশনগুলির যে কোনওটিকে সহজেই টার্মিনাল কমান্ডে ব্যবহার করে এটি ব্যবহার করতে পারেন osascript [-e statement]:

osascript -e 'set desktopImage to POSIX file "/Library/Desktop Pictures/Solid Colors/Solid Gray Light.png"
tell application "Finder"
    set desktop picture to desktopImage
end tell'

একাধিক ডেস্কটপ সেট করতে, আপনি এর মতো কিছু চেষ্টা করতে পারেন tell application "System Events" to set picture of every desktop to "<path>"। দুর্ভাগ্যক্রমে, এটি 10.7 এ ভাঙ্গা বলে মনে হচ্ছে, সুতরাং আপনি নিম্নলিখিত ত্রুটিটি শেষ করবেন:Expected class name but found application constant or consideration.


1

মিশ্রন jeremyjjbrown এর উত্তর এবং willurd এই সারকথা , এল ক্যাপটেনের সবচেয়ে সুবিধাজনক উপায় এবং আপ নিম্নরূপ:

  1. অটোমেটর (অ্যাপ্লিকেশনগুলিতে) খুলুন এবং একটি নতুন পরিষেবা তৈরি করুন
  2. সেট Service receives selectedথেকে image filesকর্মপ্রবাহ উপরের। আপনি এটি কেবলমাত্র ফাইন্ডারে কাজ করতে সীমাবদ্ধ করতে পারেন।

নমুনা চিত্র 1

  1. Run Shell Scriptকর্মপ্রবাহে একটি ক্রিয়া যুক্ত করুন
  2. ডিফল্ট স্ক্রিপ্ট খালি করুন এবং জেরেমিজব্রাউনটির উত্তরের সম্পাদনায় সামান্য পরিবর্তিত সংস্করণ sertোকান :

    read -e IMAGE;
    sqlite3 ~/Library/Application\ Support/Dock/desktoppicture.db "update data set value = '$IMAGE'";
    killall Dock;
    
  3. উদাহরণস্বরূপ, আপনার পছন্দের নামের সাথে পরিষেবাটি সংরক্ষণ করুন Set Desktop Picture on all Spaces

আপনি এখন সরাসরি ফাইন্ডারের যেকোন চিত্রকে ডান ক্লিক করতে পারেন এবং প্রাসঙ্গিক মেনু থেকে পরিষেবাটি চয়ন করতে পারেন, সহজেই সমস্ত ডেস্কটপগুলির জন্য পটভূমি সেট করে।


0

এটি সম্পাদন করার জন্য একটি পার্ল স্ক্রিপ্ট:

#!/usr/bin/perl
use Cwd;

if ($#ARGV != 1) {
    die "\nUsage: ./changedesktop <filename> <startup disk> \nwhere <filename> may be    any JPEG, PNG, GIF, TIFF or PSD and <startup disk> is the name of your boot volume.\n\n";
}

my $filename = $ARGV[0];
my $bootdisk = $ARGV[1];
my $directory = getcwd;
my $file = $bootdisk.$directory."/".$filename;
$file =~ tr/\//:/;
system("osascript -e \'tell application \"Finder\"\' -e \'set theFile to \"$file\"\' -   e     \'set desktop picture to \(theFile as alias\)\' -e \'end tell'");

3
না এটি একটি পার্ল স্ক্রিপ্ট যা ব্যাকগ্রাউন্ড হিসাবে সেট করতে হবে এমন চিত্র ফাইলটিকে ইনপুট করে অপ্রয়োজনীয় পার্ল কোডের একগুচ্ছ প্রথম পোস্টের মতো একই অপারেশন সম্পাদন করে একটি ওসাস্ক্রিপ্ট চালানো কার্যকর করে।
rudolph9

0

উল্লিখিত কোনও সমাধানই ম্যাকোস 10.14.2 সিয়েরার জন্য আমার পক্ষে কাজ করেনি এবং আমি এই অ্যাপলস্ক্রিপ্টটি দিয়ে শেষ করেছি:

tell application "System Events"
    tell every desktop
        set picture to "path_to_wallpaper.jpg"
    end tell
end tell

এটি এ জাতীয় টার্মিনাল থেকে চালানো যেতে পারে:

osascript path_to_applescript_file.scpt

অথবা অনলাইনার হিসাবে:

osascript -e 'tell application "System Events" to tell every desktop to set picture to "path_to_wallpaper.jpg"'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.