উত্তর:
আপনি যদি wmctrlইনস্টল করেন, কমান্ড থেকে আউটপুট প্রথম লাইন
wmctrl -m
উইন্ডো পরিচালকের নাম আপনাকে দেখাবে show আপনি যদি wmctrlইনস্টল না করে থাকেন তবে এটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
sudo apt-get install wmctrl
দ্রষ্টব্য, man wmctrl( এটির manজন্য পৃষ্ঠাটি wmctrl) অংশে বলেছেন:
উইন্ডো ম্যানেজার সম্পর্কে তথ্য প্রদর্শন করুন ...
আমার উবুন্টু ১১.১০ / লিনাক্স .0.০.০-১৪-জেনেরিক # 23-উবুন্টু x86_64 / মেটাসিটি 2.34.1 সিস্টেমটিতে, আউটপুটটির প্রথম লাইনটি wmctrl -mছিল: Name: Metacity
যখন echo $DESKTOP_SESSIONদেখানো হয়েছে ubuntu-2dএবং echo $XDG_CURRENT_DESKTOPদেখানো হয়েছে Unity।
Ubuntu desktopপুরানো ল্যাপটপে একটি নতুন উবুন্টু 15.10 ইনস্টল করার সময় , আউটপুটটির প্রথম লাইনটি wmctrl -mছিল: Name: Compiz
যখন DESKTOP_SESSIONএবং XDG_CURRENT_DESKTOPমানগুলি ছিল ubuntuএবংUnity
ssh -Y {host} 'wmctrl -m'কিছু মান (যেমন, "নাম: কমিজ", এবং বেশ কয়েকটি এন / এ) প্রদান করে তবে এটি sshউইন্ডো ম্যানেজার সম্পর্কে সীমিত তথ্য থাকতে পারে তা বোঝা যায় ।
wmctrl -d(উইন্ডো ম্যানেজার দ্বারা পরিচালিত সমস্ত ডেস্কটপগুলির তালিকা তৈরি করুন) বা wmctrl -l(উইন্ডো ম্যানেজার দ্বারা পরিচালিত উইন্ডোগুলির তালিকা তৈরি করুন) উইন্ডো মেকারের সাথে জুবুন্টু উইলির জন্য ঠিক কাজ করে?
Linux সিস্টেমের আমি এনভায়রনমেন্ট ভেরিয়েবল পরীক্ষিত XDG_CURRENT_DESKTOPএবং GDMSESSIONএবং নিম্নলিখিত ফলাফল পেয়েছি।
আউটপুট পেতে আপনি এই লাইনটি ব্যবহার করতে পারেন:
printf 'Desktop: %s\nSession: %s\n' "$XDG_CURRENT_DESKTOP" "$GDMSESSION"
XDG_CURRENT_DESKTOP=ubuntu:GNOMEGDMSESSION=ubuntuXDG_CURRENT_DESKTOP=ubuntu:GNOMEGDMSESSION=ubuntu-waylandXDG_CURRENT_DESKTOP=UnityGDMSESSION=ubuntuXDG_CURRENT_DESKTOP=UnityGDMSESSION=ubuntuনোট MIR_SERVER_NAME এছাড়াও সেট করা আছে
MIR_SERVER_NAME=session-$NUMBERXDG_CURRENT_DESKTOP=UnityGDMSESSION=ubuntuXDG_CURRENT_DESKTOP=XFCEGDMSESSION=xfceXDG_CURRENT_DESKTOP=GDMSESSION=kde-plasmaXDG_CURRENT_DESKTOP=UnityGDMSESSION=ubuntuXDG_CURRENT_DESKTOP=UnityGDMSESSION=ubuntu-2dXDG_CURRENT_DESKTOP=GNOMEGDMSESSION=gnome-shellXDG_CURRENT_DESKTOP=GNOMEGDMSESSION=gnome-classicXDG_CURRENT_DESKTOP=GNOMEGDMSESSION=gnome-fallbackXDG_CURRENT_DESKTOP=GNOMEGDMSESSION=cinnamonXDG_CURRENT_DESKTOP=KDEGDMSESSION=defaultXDG_CURRENT_DESKTOP=X-CinnamonGDMSESSION=defaultXDG_CURRENT_DESKTOP=LXDE GDMSESSION=LubuntuXDG_CURRENT_DESKTOP=X-Cinnamon GDMSESSION=cinnamonXDG_CURRENT_DESKTOP=GNOME GDMSESSION=gnomeXDG_CURRENT_DESKTOP=MATEGDMSESSION=mateXDG_CURRENT_DESKTOP=XFCEGDMSESSION=xubuntuটার্মিনালে envসমস্ত পরিবেশের ভেরিয়েবল দেখতে টাইপ করুন । এর মধ্যে কয়েকটি হ'ল:
XDG_CURRENT_DESKTOP - আপনি কোন ডেস্কটপ পরিবেশ ব্যবহার করছেন তা আপনাকে জানায়
জিডিএমএসএশন - আপনাকে লগইন করতে লাইটডিএম গ্রিটার থেকে কোন বিকল্পটি বেছে নিয়েছে তা আপনাকে বলে।
এগুলি ব্যবহার করতে, টার্মিনালে যান এবং টাইপ করুন:
echo $XDG_CURRENT_DESKTOP
(উদাহরণস্বরূপ 'unityক্য' আউটপুট দেবে যদি আপনি ityক্য ব্যবহার করছেন)
অথবা
echo $GDMSESSION
(উদাহরণস্বরূপ 'উবুন্টু' যদি আপনি লগইনে উবুন্টু বা 'উবুন্টু -2 ডি' নির্বাচন করে থাকেন তবে আপনি যদি লগইনে একটিটিকে নির্বাচিত করেন) output
আপনি DESKTOP_SESSION এবং COMPIZ_CONFIG_PROFILE এর envমতো আউটপুটটি ঘনিষ্ঠভাবে দেখলে আপনার অন্য কেউ রয়েছে
যেহেতু আপনি যা সন্ধান করছেন তা উইন্ডো ম্যানেজারটি কীভাবে ব্যবহার করছেন তার নাম, প্রক্রিয়া তালিকার সন্ধান করে এটি কীভাবে পাবেন তা আমি কেবল দেখি। এটি করার জন্য একটি আদেশ আছে pgrep( উইকিপিডিয়া ) is প্যারামিটার -l প্রক্রিয়া আইডি যুক্ত করার পরে নামটি পেতে আমি নিম্নলিখিতগুলি করেছি:
pgrep -l compiz |cut -d " " -f2প্রক্রিয়াটি একই ব্যবহারকারীর দ্বারা চালিত হওয়ায় সুডো অংশটি উপসর্গ করার দরকার নেই। তারপরে আপনি এটি স্ক্রিপ্ট তৈরি করতে ব্যবহার করতে পারেন যা উইন্ডো ম্যানেজারের উপর ভিত্তি করে কোনও ক্রিয়া করে।
অন্যান্য ধরনের জন্য চেহারা করার জন্য, শুধু শব্দ পরিবর্তন compizঅন্য মতো mutter, kwinইত্যাদি ..
$XDG_CURRENT_DESKTOPবর্তমান ডেস্কটপ পরিবেশ, উইন্ডো ম্যানেজার নয়।
আমি pstreeএকটি বড় সাহায্য হতে পারে।
sudo apt-get install pstree
এই যে আমি পেয়েছিলাম।
├─lightdm─┬─Xorg───2*[{Xorg}]
│ ├─lightdm─┬─gnome-session─┬─bluetooth-apple───2*[{bluetooth-apple}]
│ │ │ ├─compiz─┬─sh───gtk-window-deco───2*[{gtk-window-deco}]
│ │ │ │ └─5*[{compiz}]
│ │ │ ├─deja-dup-monito───2*[{deja-dup-monito}]
│ │ │ ├─gnome-fallback-───2*[{gnome-fallback-}]
│ │ │ ├─gnome-screensav───2*[{gnome-screensav}]
│ │ │ ├─gnome-settings-───2*[{gnome-settings-}]
│ │ │ ├─nautilus───2*[{nautilus}]
│ │ │ ├─nm-applet───2*[{nm-applet}]
│ │ │ ├─polkit-gnome-au───2*[{polkit-gnome-au}]
│ │ │ ├─ssh-agent
│ │ │ ├─telepathy-indic───2*[{telepathy-indic}]
│ │ │ ├─update-notifier───2*[{update-notifier}]
│ │ │ ├─vino-server───2*[{vino-server}]
│ │ │ ├─zeitgeist-datah───{zeitgeist-datah}
│ │ │ └─3*[{gnome-session}]
│ │ └─{lightdm}
│ └─2*[{lightdm}]
xprop -id $(xprop -root -notype | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}') -notype -f _NET_WM_NAME 8t
)শেষের দিকে একটি মিস করছেন ।
xprop -root -notypeমূল উইন্ডোর সমস্ত বৈশিষ্ট্য প্রদর্শন করে (এবং সহজে পার্সিংয়ের জন্য প্রকারগুলি বাদ দেয়), আউটপুটটি awkপাইপের মাধ্যমে প্রেরণ করা হয় ; ২. awkনির্দেশটি $1=="_NET[blah]CK:"{print $5}'প্রদত্ত স্ট্রিংয়ের সাথে পাইপের মধ্য দিয়ে প্রাপ্ত প্রতিটি ইনপুটটির প্রথম কলামের সাথে তুলনা করে এবং যদি এটি মিল খুঁজে পায় তবে এটি ব্রাকেকেটে কোড চালায় যা এই সারি থেকে পঞ্চম কলামটি মুদ্রণ করে - ঠিক তাই ঘটে (সম্পূর্ণ দুর্ঘটনার দ্বারা, আমি বাজি ধরছি) "_NET_SUPPORTING_WM_CHECK" পরমাণুর আইডি হতে; 3. এই আইডি তারপর উইন্ডোজ ম্যানেজার বৈশিষ্ট্য পেতে আবার ব্যবহার করা হয়xprop -id
আমি কেডিএর সাথেও পরীক্ষা করে দেখছি এবং আমার উপসংহারটি হ'ল:
ক) হার্ডআইনফো সহ গ্রাফিকাল পদ্ধতি: উত্তরটি সাধারণত "অপারেটিং সিস্টেম"> "ডেস্কটপ এনভায়রনমেন্ট" তে থাকে তবে তা না পারলে আপনি "পরিবেশের ভেরিয়েবলগুলি" দেখতে পারেন। হার্ড-ইনফো, কে-ডি-ই থাকা ব্যতীত সমস্ত পরীক্ষিত ডিস্ট্রো সহ প্রস্তুত, তবে এটি সহজে এবং দ্রুত ইনস্টল করা যায় (লিনাক্স মিন্ট ১৩-এ কেবলমাত্র দুটি প্যাকেজ)।
খ) কমান্ড লাইন, এই কমান্ড সঙ্গে ps -A | egrep -i "gnome|kde|mate|cinnamon|lx|xfce|jwm"। যে আইটেমটি আরও বেশি লাইনে প্রদর্শিত হবে তার উত্তর হওয়া উচিত ("সেশন" দিয়ে আইটেমটি আঁকলে সমাধান হওয়া উচিত)।
gnome-...প্রক্রিয়া রয়েছে (এবং একটি কেডি হিট kdevtmpfs)
উপরের কোনওটিই আসলে আমার পক্ষে কাজ করেনি, আমি শুধু জানতে চেয়েছিলাম যে আমার বর্তমান ডেস্কটপ সেশন হিসাবে জিনোমকে চালানো হয়েছে কিনা।
এটিই কাজ করেছিল, একটি টার্মিনাল খুলুন
lsb_release -a
(আমি আমার ইউবুন্টু মেশিনে কোন স্বাদ বা সংস্করণ ইনস্টল করেছি তা পরীক্ষা করতে)
ls /usr/bin/*session
(বর্তমানে কোন ডেস্কটপ সেশন / ডেস্কটপ পরিবেশ ব্যবহৃত হচ্ছে তা চালু করে)
gnome-shell --version
(জিনোমের কোন সংস্করণ ইনস্টল করা আছে তা জানতে)
#! /bin/bash
# (GPL3+) Alberto Salvia Novella (es20490446e.wordpress.com)
windowManagerName () {
window=$(xprop -root -notype)
identifier=$(echo "${window}" | awk '$1=="_NET_SUPPORTING_WM_CHECK:"{print $5}')
attributes=$(xprop -id "${identifier}" -notype -f _NET_WM_NAME 8t)
echo "${attributes}" |
grep "_NET_WM_NAME = " |
cut --delimiter=' ' --fields=3 |
cut --delimiter='"' --fields=2
}
windowManagerName
বা এক লাইনে:
id = $ (xprop -root -notype | awk '$ 1 == "_ NET_SUPPORTING_WM_CHECK:" {মুদ্রণ করুন $ 5}'); xprop -id "$ {id}" -নোটাইপ -f _NET_WM_NAME 8t | গ্রেপ "_NET_WM_NAME =" | কাটা --ডেলিমিটার = '' - ফিল্ডস = 3 | কাটা --ডেলিমিটার = '' '- ফিল্ডস = 2
এটি ডিবিবাস এবং অ্যাকাউন্টস সার্ভিস (উবুন্টুতে উভয়ই ডিফল্টরূপে) এর মাধ্যমে সম্ভব possible
$ qdbus --system org.freedesktop.Accounts \
> /org/freedesktop/Accounts/User1000 \
> org.freedesktop.Accounts.User.XSession
ubuntu
লক্ষণীয় যে আমি লাইটডিএম (এটি গ্রাফিকাল লগইন স্ক্রিন) এর মাধ্যমে লগ ইন করার মাধ্যমে এটি পরীক্ষা করেছি, এটি ব্ল্যাকবক্সের মতো ক্লাসিক ডেস্কটপ সনাক্ত করেছে এবং স্পষ্টতই Unক্যকে সনাক্ত করেছে। আমি সন্দেহ করি এটি ব্যবহারকারীর অধিবেশন হিসাবে লগইন স্ক্রিনে যা নির্বাচন করে তার একটি মূল্য এটি এই কারণেই প্রক্রিয়াগুলির জন্য এটি পরীক্ষা করা ব্যবহার করা কিছুটা সহজ
নিম্নলিখিত স্ক্রিপ্টটির ফলাফল আমি ইউনিক্স.সে পোস্ট করেছি এমন একই প্রশ্নের সেরা উত্তরের ফলস্বরূপ । এটি ইউনিটি এবং এলএক্সডিইয়ের সাথে দুর্দান্ত কাজ করে।
if [ "$XDG_CURRENT_DESKTOP" = '' ]
then
desktop=$(echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/')
else
desktop=$XDG_CURRENT_DESKTOP
fi
desktop=${desktop,,} # convert to lower case
echo "$desktop"
আপনি ডাকা সরঞ্জাম ব্যবহার করতে পারেন inxi। এটি উবুন্টু সংগ্রহস্থল থেকে প্রাপ্ত হতে পারে:
sudo apt install inxi
বা গিথুব থেকে: https://github.com/smxi/inxi
কমান্ডটি নিম্নলিখিত হিসাবে চালান:
inxi -Sx
System: Host: blackhole Kernel: 5.1.15-050115-lowlatency x86_64 bits: 64 compiler: gcc v: 8.3.0
Desktop: i3 4.16.1-178-g31c0f1b8 Distro: Ubuntu 19.04 (Disco Dingo)
Desktop: i3অংশ নোট করুন । আমার ক্ষেত্রে উইন্ডো ম্যানেজারটি আমি ব্যবহার করি i3।
বিকল্পটি -Sসিস্টেমের তথ্য প্রদর্শন করে এবং xউইন্ডো ম্যানেজার সম্পর্কে তথ্য যুক্ত করে।
আমি কেবল চলমান প্রক্রিয়াগুলিতে পরিচিত উইন্ডো পরিচালকদের জন্য যাচাই করার কথা ভাবতে পারি। Gconf- এ একটি চাবি থাকত যা পছন্দসই উইন্ডো ম্যানেজারে সেট করা ছিল, তবে এটি জিনোম ২.১২ থেকে অবহেলিত।
সুতরাং, যদি এটি কোনও প্রোগ্রামিংয়ের উদ্দেশ্যে হয় তবে আমি আপনাকে সমস্ত লিনাক্স উইন্ডো পরিচালকদের জন্য গবেষণা করার পরামর্শ দিচ্ছি; কিছু জনপ্রিয় হলেন:
আপনি কমান্ড সঙ্গে প্রতিটি জন্য একটি চেক চালানো হবে pgrep -l $WINDOW_MANAGER, যেখানে $WINDOW_MANAGERউইণ্ডো ম্যানেজার আপনার জন্য চেক করতে চান নাম। pgrepপ্রসেস চালানোর জন্য কম্যান্ড চেক।
জিনোম শেলকে যদি উইন্ডো ম্যানেজার হিসাবে বিবেচনা করা হয় তবে আমি 100% নিশ্চিত নই; /usr/bin/gnome-wmস্ক্রিপ্টের একটি তালিকা থেকে আমি উইন্ডোটির বাকি পরিচালকদের পেয়েছি । এই স্ক্রিপ্টটি বাস্তবে ব্যবহারযোগ্য হওয়া উচিত (যেহেতু এটি একটি ক্লিন ইনস্টলে উপস্থিত রয়েছে) তবে আমার ক্ষেত্রে এটি চালানোর চেষ্টা করে compizযা আমার ডিফল্ট উইন্ডো ম্যানেজার নয় (আমার জিনোম সেশনে নয়)।
সম্পাদনা করুন:
আচ্ছা @ আনার্কির মন্তব্যটি আরও সঠিক বলে মনে হচ্ছে। আমার ক্ষেত্রে এটি প্রদর্শিত হয়েছিল gnome-shell।
pgrep -l "compiz|metacity|mutter|kwin|sawfish|fluxbox|openbox|xmonad"
$DISPLAYতার পরিবেশটি পরীক্ষা করে এটি করতে পারেন ) check