- Is there a command to list all open displays on a machine?
- 5 Answers 5
- How do I list connected displays using the command line?
- You must log in to answer this question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- Obtaining List of all Xorg Displays
- 2 Answers 2
- Как вывести список активных дисплеев (в командной строке)?
- 3 ответа
- Thread: How do I list all active displays.
- How do I list all active displays.
- Re: How do I list all active displays.
- Re: How do I list all active displays.
- Bookmarks
- Posting Permissions
Is there a command to list all open displays on a machine?
When SSH’d locally into my computer (don’t ask, it’s a workaround), I can’t start graphical applications without running:
If I run this first and then run a graphical application, things work out. If not, it doesn’t work, there’s no display to attach to. Is there a command for listing all available displays (ie: all possible values) on a machine?
To get that display number from a command line script, try w . More info: list existing X display names?
5 Answers 5
If you want the X connection forwarded over SSH, you need to enable it on both the server side and the client side. (Depending on the distribution, it may be enabled or disabled by default.) On the server side, make sure that you have X11Forwarding yes in /etc/sshd_config (or /etc/ssh/sshd_config or wherever the configuration file is). On the client side, pass the -X option to the ssh command, or put ForwardX11 in your ~/.ssh/config .
If you run ssh -X localhost , you should see that $DISPLAY is (probably) localhost:10.0 . Contrast with :0.0 , which is the value when you’re not connected over SSH. (The .0 part may be omitted; it’s a screen number, but multiple screens are rarely used.) There are two forms of X displays that you’re likely to ever encounter:
With ssh -X localhost , you can access the X server through both displays, but the applications will use a different method: :NUMBER accesses the server via local sockets and shared memory, whereas HOSTNAME:NUMBER accesses the server over TCP, which is slower and disables some extensions.
Note that you need a form of authorization to access an X server, called a cookie and normally stored behind the scenes in the file ~/.Xauthority . If you’re using ssh to access a different user account, or if your distribution puts the cookies in a different file, you may find that DISPLAY=:0 doesn’t work within the SSH session (but ssh -X will, if it’s enabled in the server; you never need to mess with XAUTHORITY when doing ssh -X ). If that’s a problem, you need to set the XAUTHORITY environment variable or obtain the other user’s cookies.
To answer your actual question:
- Local displays correspond to a socket in /tmp/.X11-unix .
(cd /tmp/.X11-unix && for x in X*; do echo ":$"; done)
netstat -lnt | awk ' sub(/.*:/,"",$4) && $4 >= 6000 && $4 < 6100 < print ($1 == "tcp6" ? "ip6-localhost:" : "localhost:") ($4 - 6000) >'
(The rest of this bullet point is of academic interest only.) From another machine, you can use nmap -p 6000-6099 host_name to probe open TCP ports in the usual range. It’s rare nowadays to have X servers listening on a TCP socket, especially outside the loopback interface. Strictly speaking, another application could be using a port in the range usually used by X servers. You can tell whether an X server is listening by checking which program has the port open.
How do I list connected displays using the command line?
This lists the display names and detected available resolutions. You can also reconfigure your displays using xrandr.
Note that this might not work if you’re using the NVidia or ATI drivers; I’m not sure.
xrandr only works when you run it under X-windows. After all, it is X that handles all but the most basic video drivers. If you are in a terminal inside X and it still doesn’t work, then you’ve most likely lost your $DISPLAY environment variable, somehow.
xrandr —query | grep ‘\bconnected\b’ if you just wanted to see the connected monitors and their resolutions.
For most machines with the proprietary driver loaded, /usr/lib/nvidia-current/bin/nvidia-xconfig —query-gpu-info —nvidia-cfg-path=/usr/lib/nvidia-current works. Note that I said «with the proprietary driver loaded». For instance, it does not work if the driver is unloaded or nouveau is loaded. Therefore, when using Bumblebee, run optirun /usr/lib/nvidia-current/bin/nvidia-xconfig —query-gpu-info . The —nvidia-cfg-path part is not needed here as optirun sets the correct library path.
/var/log/Xorg.0.log (where 0 is the display number) may also contain valuable information about available screens. For Optimus laptops, this log contains only details on the Intel screen, so replace 0 by 8 to find out the log from the X server started by Bumblebee.
You must log in to answer this question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
Ubuntu and the circle of friends logo are trade marks of Canonical Limited and are used under licence.
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Obtaining List of all Xorg Displays
I would like to know how I can obtain a list of all Xorg displays on my system, along with a list of screens associated with each display. I spent some time looking through the Xlib documentation, but was not able to find a function that does what I want. Please assume that I have no other dependencies other than a POSIX-complaint OS and X (e.g., no GTK). If what I ask is not possible assuming these minimal dependencies, then a solution using other libraries is fine. Thank you very much for your help!
2 Answers 2
The only way I know of to get a list of displays is to check the /tmp/.X11-unix directory.
Once you do that, you can use Xlib to query each display for more information.
#include #include #include #include int main(void) < DIR* d = opendir("/tmp/.X11-unix"); if (d != NULL) < struct dirent *dr; while ((dr = readdir(d)) != NULL) < if (dr->d_name[0] != 'X') continue; char display_name[64] = ":"; strcat(display_name, dr->d_name + 1); Display *disp = XOpenDisplay(display_name); if (disp != NULL) < int count = XScreenCount(disp); printf("Display %s has %d screens\n", display_name, count); int i; for (i=0; i> closedir(d); > return 0; >
Running the above gives me this output with my current displays/screens:
Display :0 has 1 screens 0: 3046x1050 Display :1 has 2 screens 0: 1366x768 1: 1680x1050
Never found a better way of listing X displays other than that. I’d very much like to know if any better alternative exists.
Как вывести список активных дисплеев (в командной строке)?
xrandr -q дает мне список подключенных дисплеев, но как я могу узнать (с учетом сценариев), активен ли дисплей в настоящее время?
Контекст: я хотел бы написать скрипт для переключения дисплея. Если он активен, его следует отключить, если нет — включить.
Примечание: xrandr -q в основном предоставляет эту информацию, поскольку активные режимы помечены * , но эту информацию трудно извлечь в скрипте bash.
3 ответа
Активные дисплеи имеют разрешение и номер смещения, показанные в идентификационной строке на выходе xrandr . Вот что я имею в виду:
$ xrandr | grep connected eDP1 connected primary 1366x768+1280+256 (normal left inverted right x axis y axis) 345mm x 194mm DP1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) VGA1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 340mm x 270mm VIRTUAL1 disconnected (normal left inverted right x axis y axis)
В выходных данных вы видите, что встроенный монитор моего ноутбука и VGA1 оба подключены и имеют разрешение (в случае встроенного дисплея eDP1 это 1366×768). Таким образом, задача просто превращается в обработку текста. Для этой цели я написал небольшую функцию, которую вы можете использовать в своих скриптах или ~/.bashrc :
С выключенным монитором VGA
Thread: How do I list all active displays.
First Cup of Ubuntu
How do I list all active displays.
yes. i have no idea how to list all running X sessions
please, dont judge me for asking that, i’ve been searching for an hour and i have no idea how to list that.
help!
btw, the closest thing to what i need is ck-list-sessions, but it doesn’t show my freenx display. i need something that would show all my displays running.
Ubuntu addict and loving it
Join Date Feb 2005 Location Melbourne, Australia Beans 13,510 —> Beans 13,510 Distro Ubuntu 14.04 Trusty Tahr
Re: How do I list all active displays.
Originally Posted by wodzu12
yes. i have no idea how to list all running X sessions
please, dont judge me for asking that, i’ve been searching for an hour and i have no idea how to list that.
help!
btw, the closest thing to what i need is ck-list-sessions, but it doesn’t show my freenx display. i need something that would show all my displays running.
Please use the Forum search and Wiki search for immediate help
Please mark your thread as Solved when appropriate
New to technical forums?: How To Ask Questions The Smart Way
First Cup of Ubuntu
Re: How do I list all active displays.
- Site Areas
- Settings
- Private Messages
- Subscriptions
- Who’s Online
- Search Forums
- Forums Home
- Forums
- The Ubuntu Forum Community
- Ubuntu Official Flavours Support
- New to Ubuntu
- General Help
- Installation & Upgrades
- Hardware
- Desktop Environments
- Networking & Wireless
- Multimedia Software
- Ubuntu Specialised Support
- Ubuntu Development Version
- Security
- Virtualisation
- Ubuntu Servers, Cloud and Juju
- Server Platforms
- Ubuntu Cloud and Juju
- Gaming & Leisure
- Emulators
- Wine
- Development & Programming
- Packaging and Compiling Programs
- Development CD/DVD Image Testing
- Ubuntu Application Development
- Ubuntu Dev Link Forum
- Programming Talk
- Repositories & Backports
- Ubuntu Backports
- Bug Reports / Support
- Ubuntu Backports
- System76 Support
- Apple Hardware Users
- Ubuntu Community Discussions
- Ubuntu, Linux and OS Chat
- Recurring Discussions
- Full Circle Magazine
- The Cafe
- Cafe Games
- Market
- Mobile Technology Discussions (CLOSED)
- Announcements & News
- Weekly Newsletter
- Membership Applications
- The Fridge Discussions
- Forum Council Agenda
- Forum Feedback & Help
- Request a LoCo forum
- Resolution Centre
- Ubuntu, Linux and OS Chat
- Other Discussion and Support
- Other OS Support and Projects
- Other Operating Systems
- Ubuntu/Debian BASED
- Debian
- MINT
- Arch and derivatives
- Fedora/RedHat and derivatives
- Mandriva/Mageia
- Slackware and derivatives
- openSUSE and SUSE Linux Enterprise
- Mac OSX
- PCLinuxOS
- Gentoo and derivatives
- Windows
- BSD
- Any Other OS
- Other Operating Systems
- Assistive Technology & Accessibility
- Art & Design
- Education & Science
- Documentation and Community Wiki Discussions
- Tutorials
- Outdated Tutorials & Tips
- Ubuntu Women
- Ubuntu LoCo Team Forums
- Americas LoCo Teams
- Argentina Team
- Software
- Hardware
- Comunidad
- Arizona Team — US
- Arkansas Team — US
- Brazil Team
- California Team — US
- Canada Team
- Centroamerica Team
- Chile Team
- Comunidad
- Hardware
- Software
- Instalaci�n y Actualizaci�n
- Colombia Team — Colombia
- Georgia Team — US
- Illinois Team
- Indiana — US
- Kentucky Team — US
- Maine Team — US
- Minnesota Team — US
- Mississippi Team — US
- Nebraska Team — US
- New Mexico Team — US
- New York — US
- North Carolina Team — US
- Ohio Team — US
- Oklahoma Team — US
- Oregon Team — US
- Pennsylvania Team — US
- Peru Team
- Texas Team — US
- Uruguay Team
- Utah Team — US
- Virginia Team — US
- West Virginia Team — US
- Argentina Team
- Asia and Oceania LoCo Teams
- Australia Team
- Bangladesh Team
- Hong Kong Team
- Myanmar Team
- Philippine Team
- Singapore Team
- Europe, Middle East, and African (EMEA) LoCo Teams
- Albania Team
- Catalan Team
- Portugal Team
- Egypt Team
- Georgia Team
- Ireland Team — Ireland
- Kenyan Team — Kenya
- Kurdish Team — Kurdistan
- Lebanon Team
- Morocco Team
- Saudi Arabia Team
- Sudan Team
- Tunisia Team
- Other Forums & Teams
- LoCo Archive
- Afghanistan Team
- Alabama Team — US
- Alaska Team — US
- Algerian Team
- Andhra Pradesh Team — India
- Austria Team
- Bangalore Team
- Bolivia Team
- Cameroon Team
- Colorado Team — US
- Connecticut Team
- Costa Rica Team
- Delhi Team
- Ecuador Team
- El Salvador Team
- Florida Team — US
- Galician LoCo Team
- Greek team
- Hawaii Team — US
- Honduras Team
- Idaho Team — US
- Iowa Team — US
- Jordan Team
- Kansas Team — US
- Libya Team
- Louisiana Team — US
- Maryland Team — US
- Massachusetts Team
- Michigan Team — US
- Missouri Team — US
- Montana Team — US
- Namibia Team
- Nevada Team — US
- New Hampshire Team — US
- New Jersey Team — US
- Northeastern Team — US
- Panama Team
- Paraguay Team
- Qatar Team
- Quebec Team
- Rhode Island Team — US
- Senegal Team
- South Carolina Team — US
- South Dakota Team — US
- Switzerland Team
- Tamil Team — India
- Tennessee Team — US
- Trinidad & Tobago Team
- Uganda Team
- United Kingdom Team
- US LoCo Teams
- Venezuela Team
- Wales Team
- Washington DC Team — US
- Washington State Team — US
- Wisconsin Team
- Yemen Team
- Za Team — South Africa
- Zimbabwe Team
- Americas LoCo Teams
- Other OS Support and Projects
- Ubuntu Official Flavours Support
Bookmarks
Bookmarks
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts