Answers:
ඔබ wmctrlස්ථාපනය කර ඇත්නම්, විධානයෙන් ලැබෙන පළමු පේළිය
wmctrl -m
කවුළු කළමනාකරුගේ නම ඔබට පෙන්වනු ඇත. ඔබ wmctrlස්ථාපනය කර නොමැති නම් , එය ස්ථාපනය කිරීමට පහත විධානය භාවිතා කරන්න:
sudo apt-get install wmctrl
සටහන, man wmctrl(එනම්, manපිටුව සඳහා wmctrl) කොටසක මෙසේ කියයි:
-m කවුළු කළමනාකරු පිළිබඳ තොරතුරු පෙන්වන්න ...
මගේ උබුන්ටු 11.10 / ලිනක්ස් 3.0.0-14-ජනක # 23-උබුන්ටු x86_64 / මෙටාසිටි 2.34.1 පද්ධතියේ, පළමු නිමැවුම් රේඛාව wmctrl -mවූයේ: පෙන්වන සහ පෙන්වන Name: Metacity
අතරතුර .echo $DESKTOP_SESSIONubuntu-2decho $XDG_CURRENT_DESKTOPUnity
නැවුම් උබුන්ටු 15.10 මත ස්ථාපනය Ubuntu desktopනිමැවුම් පළමු මාර්ගය, පරණ ලැප්ටොප් මත මෘදුකාංග wmctrl -mවිය: Name: Compiz
අතරතුර DESKTOP_SESSIONසහ XDG_CURRENT_DESKTOPවටිනාකම් විය ubuntuහාUnity
ssh -Y {host} 'wmctrl -m'මඟින් සමහර අගයන් ලබා දෙයි (උදා: "නම: කොම්පිස්" සහ එන් / ඒ කිහිපයක්), නමුත් sshකවුළු කළමනාකරු පිළිබඳ සීමිත තොරතුරු තිබීම අර්ථවත් කරයි .
wmctrl -d(කවුළු කළමණාකරු විසින් කළමනාකරණය කරනු ලබන සියලුම ඩෙස්ක්ටොප් ලැයිස්තුගත කරන්න) හෝ wmctrl -l( කවුළු කළමණාකරු විසින් කළමනාකරණය කරනු ලබන කවුළු ලැයිස්තුගත කරන්න) Xubuntu Wily සමඟ වින්ඩෝ මේකර් සමඟ වැඩ කරන්නේද?
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=xubuntuenvසියලුම පරිසර විචල්යයන් බැලීමට පර්යන්තයේ . ඒවායින් සමහරක්:
XDG_CURRENT_DESKTOP - ඔබ භාවිතා කරන්නේ කුමන ඩෙස්ක්ටොප් පරිසරයදැයි ඔබට කියයි
GDMSESSION - ඔබ පිවිසීමට lightdm ග්රීටර් වෙතින් තෝරාගත් විකල්පය කුමක්දැයි ඔබට කියයි.
ඒවා භාවිතා කිරීම සඳහා, පර්යන්තය වෙත ගොස් ටයිප් කරන්න:
echo $XDG_CURRENT_DESKTOP
(ඔබ යුනිටි භාවිතා කරන්නේ නම් උදාහරණයක් ලෙස 'එක්සත්කම' ප්රතිදානය කරයි)
හෝ
echo $GDMSESSION
(නිදසුනක් ලෙස ඔබ පිවිසුමේ උබුන්ටු තෝරා ගත්තේ නම් 'උබුන්ටු' හෝ ඔබ පිවිසුමේදී එය තෝරා ගත්තේ නම් 'උබුන්ටු -2 ඩී'.
DESKTOP_SESSION සහ COMPIZ_CONFIG_PROFILEenv වැනි ප්රතිදානය දෙස සමීපව බැලුවහොත් ඔබට වෙනත් අය සිටී.
ඔබ සොයන දේ කවුළු කළමණාකරු භාවිතයේ ඇති දේ වන බැවින්, මෙය ලබා ගන්නේ කෙසේදැයි මා දකින එකම ක්රමය ක්රියාවලි ලැයිස්තුවෙන් බැලීම පමණි. මෙය සිදු කිරීම සඳහා pgrep( විකිපීඩියා ) විධානයක් ඇත. -L පරාමිතිය ක්රියාවලි හැඳුනුම්පත එක් කරන බැවින් නම ලබා ගැනීම සඳහා මම පහත සඳහන් දේ කළෙමි:
pgrep -l compiz |cut -d " " -f2එකම පරිශීලකයා විසින් ක්රියාවලිය ක්රියාත්මක වන බැවින් sudo කොටස උපසර්ග කිරීමට අවශ්ය නොවේ. කවුළු කළමණාකරු මත පදනම්ව ක්රියාවක් කරන ස්ක්රිප්ටයක් නිර්මාණය කිරීමට ඔබට මෙය භාවිතා කළ හැකිය.
වෙනත් වර්ග සඳහා පෙනුම කිරීමට, යන වචනය වෙනස් 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පයිප්ප හරහා යවනු ලැබේ ; 2. awkඋපදෙස් $1=="_NET[blah]CK:"{print $5}'මඟින් නළය හරහා ලබාගත් එක් එක් පේළියේ පළමු තීරුව යම් නූලක් සමඟ සංසන්දනය කරන අතර එය ගැලපීම සොයාගත හොත් එය මෙම පේළියේ සිට පස්වන තීරුව මුද්රණය කරන වරහන් තුළ කේතය ධාවනය කරයි - එසේ සිදු වේ (සම්පූර්ණයෙන්ම අහම්බෙන්, මම ඔට්ටු අල්ලමි) "_NET_SUPPORTING_WM_CHECK" පරමාණුවේ හැඳුනුම්පත වීමට; 3. වින්ඩෝස් කළමණාකරුගේ දේපල ලබා ගැනීම සඳහා මෙම හැඳුනුම්පත නැවත භාවිතා කරයිxprop -id
#! /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:" {print $ 5}'); xprop -id "$ {id}" -notype -f _NET_WM_NAME 8t | grep "_NET_WM_NAME =" | cut --delimiter = '' --fields = 3 | cut --delimiter = '"' --fields = 2
මම කේඩීඊ සමඟ ද පරීක්ෂා කර ඇති අතර මගේ නිගමනය මෙයයි:
අ) හාඩ්ඉන්ෆෝ සමඟ චිත්රක ක්රමය: පිළිතුර සාමාන්යයෙන් “මෙහෙයුම් පද්ධතිය”> “ඩෙස්ක්ටොප් පරිසරය” තුළ ඇත, නමුත් එසේ නොවේ නම් ඔබට “පරිසර විචල්යයන්” දෙස බැලිය හැකිය. කේඩීඊ සමඟ ඇති ඒවා හැර අනෙක් සියලුම පරීක්ෂා කරන ලද ඩිස්ට්රෝස් සමඟ හාඩ්ඉන්ෆෝ සූදානම්, නමුත් එය පහසුවෙන් සහ ඉක්මනින් ස්ථාපනය කළ හැකිය (ලිනක්ස් මින්ට් 13 හි ඇති පැකේජ 2 ක් පමණි).
b) මෙම විධානය සමඟ විධාන රේඛාව : ps -A | egrep -i "gnome|kde|mate|cinnamon|lx|xfce|jwm". තවත් පේළි වලින් දිස්වන අයිතමය පිළිතුර විය යුතුය (දිනුම් ඇදීමක් තිබේ නම් "සැසිය" සමඟ අයිතමය විසඳුම විය යුතුය).
gnome-...ක්රියාවලි කිහිපයක් ද ඇත (සහ kde පහරක් සමඟ kdevtmpfs)
ඉහත කිසිවක් ඇත්ත වශයෙන්ම මා වෙනුවෙන් වැඩ කළේ නැත, මට දැන ගැනීමට අවශ්ය වූයේ මගේ වර්තමාන ඩෙස්ක්ටොප් සැසිය ලෙස ග්නෝම් ධාවනය වී ඇත්ද යන්නයි.
මෙය වැඩ කළේ, පර්යන්තයක් විවෘත කරන්න
lsb_release -a
(මගේ UBUNTU යන්ත්රයේ ස්ථාපනය කර ඇති රසය හෝ අනුවාදය පරීක්ෂා කිරීමට)
ls /usr/bin/*session
(දැනට භාවිතයේ පවතින ඩෙස්ක්ටොප් සැසිය / ඩෙස්ක්ටොප් පරිසරය දියත් කරයි)
gnome-shell --version
(gnome ස්ථාපනය කර ඇති අනුවාදය සොයා ගැනීමට)
මෙය dbus සහ ගිණුම් සේවාව සමඟ කළ හැකි ය (පෙරනිමියෙන් උබුන්ටු වල).
$ qdbus --system org.freedesktop.Accounts \
> /org/freedesktop/Accounts/User1000 \
> org.freedesktop.Accounts.User.XSession
ubuntu
මම මෙය ලයිට් ඩීඑම් හරහා පිවිසීමෙන් පරීක්ෂා කර ඇති බව සඳහන් කිරීම වටී (එය චිත්රක පිවිසුම් තිරයයි), එය බ්ලැක්බොක්ස් වැනි සම්භාව්ය ඩෙස්ක්ටොප් එකක් හඳුනාගෙන ඇති අතර පැහැදිලිවම යුනිටි හඳුනා ගනී. මෙය පරිශීලකයා පිවිසුම් තිරය මත සැසියක් ලෙස තෝරා ගන්නා දේවල වටිනාකමක් යැයි මම සැක කරමි, එම නිසා ක්රියාවලි සඳහා එම පරීක්ෂාව භාවිතා කිරීම ටිකක් පහසු වේ
පහත දැක්වෙන පිටපතෙහි ප්රති ulted ලය වූයේ මම unix.se හි පළ කළ සමාන ප්රශ්නයකට හොඳම පිළිතුරයි . එය යුනිටි සහ එල්එක්ස්ඩී සමඟද විශිෂ්ට ලෙස ක්රියා කරයි.
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
හෝ github වෙතින්: 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 හි යතුරක් තිබී ඇති අතර එය කැමති කවුළු කළමණාකරු වෙත සකසා ඇත, නමුත් එය Gnome 2.12 සිට ඉවත් කරන ලදි.
එබැවින්, මෙය ක්රමලේඛන කටයුත්තක් සඳහා නම්, සියලුම ලිනක්ස් කවුළු කළමනාකරුවන් සඳහා පර්යේෂණ කිරීමට මම ඔබට යෝජනා කරමි; සමහර ජනප්රිය ඒවා නම්:
ඔබට විධානය සමඟ එක් එක් සඳහා චෙක්පතක් ධාවනය කිරීමට සිදුවේ, ඔබට පරීක්ෂා කිරීමට අවශ්ය කවුළු කළමනාකරුගේ නම pgrep -l $WINDOW_MANAGERකොහිද $WINDOW_MANAGER? මෙම pgrepක්රියාවලීන් සඳහා විධාන චෙක්පත්.
Gnome Shell කවුළු කළමනාකරුවෙකු ලෙස සලකන්නේ දැයි මට 100% විශ්වාස නැත; /usr/bin/gnome-wmස්ක්රිප්ටයේ ලැයිස්තුවකින් මට ලැබුණු ඉතිරි කවුළු කළමනාකරුවන් . මෙම ස්ක්රිප්ට් ඇත්ත වශයෙන්ම භාවිතයට ගත හැකි විය යුතුය (එය දැනට ස්ථාපනය කර ඇති බැවින්) නමුත් මගේ නඩුවේදී එය ක්රියාත්මක කිරීමට උත්සාහ කරන්නේ එය compizමගේ පෙරනිමි කවුළු කළමණාකරු නොවන (මගේ Gnome සැසිය තුළ නොවේ).
සංස්කරණය කරන්න:
හොඳයි annarci ගේ ප්රකාශය වඩාත් නිවැරදි බව පෙනේ. මගේ නඩුවේ එය පෙන්නුම් gnome-shellකළා.
pgrep -l "compiz|metacity|mutter|kwin|sawfish|fluxbox|openbox|xmonad"
$DISPLAYඑහි පරිසරය පරීක්ෂා කිරීමෙන් ඔබට එය කළ හැකිය ).