The i3 FAQ has migrated to https://github.com/i3/i3/discussions. All content here is read-only.
Ask Your Question
2

how to toggle on/off external and internal monitors

asked 2015-01-09 10:29:17 +0000

Sam73 gravatar image

I have a laptop and a external TV plugged in HDMI.

I have troubles when plugin in the TV on hdmi port after i3 had started. I have to log off so lightdm recognizes the tv and then log in again.

after that, once logged in, and both screens are working, I would like to disable the internal screen leaving only the TV as active screen.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
2

answered 2015-01-09 10:36:16 +0000

Sam73 gravatar image

updated 2015-02-23 08:49:59 +0000

Here is a method that will swap between mode :

  • both monitors in best resolution
  • external only
  • internal only
  • both in clone mode

First execute the command

xrandr

in a shell to check the names of your plugged in monitors. In my case they are LVDS1 for the internal and HDMI1 for the TV.

Create a script like this updating accordingly external and internal outputs variables :

#!/bin/bash
EXTERNAL_OUTPUT="HDMI1"
INTERNAL_OUTPUT="LVDS1"

# if we don't have a file, start at zero
if [ ! -f "/tmp/monitor_mode.dat" ] ; then
  monitor_mode="all"

# otherwise read the value from the file
else
  monitor_mode=`cat /tmp/monitor_mode.dat`
fi

if [ $monitor_mode = "all" ]; then
        monitor_mode="EXTERNAL"
        xrandr --output $INTERNAL_OUTPUT --off --output $EXTERNAL_OUTPUT --auto
elif [ $monitor_mode = "EXTERNAL" ]; then
        monitor_mode="INTERNAL"
        xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --off
elif [ $monitor_mode = "INTERNAL" ]; then
        monitor_mode="CLONES"
        xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto --same-as $INTERNAL_OUTPUT
else
        monitor_mode="all"
        xrandr --output $INTERNAL_OUTPUT --auto --output $EXTERNAL_OUTPUT --auto --left-of $INTERNAL_OUTPUT
fi
echo "${monitor_mode}" > /tmp/monitor_mode.dat

then add this command to i3 to bind the toggle

bindsym $mod+Shift+s exec --no-startup-id /home/mylogin/bin/monitor
edit flag offensive delete link more

Question Tools

Stats

Asked: 2015-01-09 10:29:17 +0000

Seen: 492 times

Last updated: Feb 23