How to run xrandr commands at startup in Ubuntu












10















How can I run the following xrandrcommand on startup?



xrandr



cvt 1368 768 
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00









share|improve this question




















  • 1





    Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

    – Jacob Vlijm
    Jun 18 '15 at 16:48


















10















How can I run the following xrandrcommand on startup?



xrandr



cvt 1368 768 
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00









share|improve this question




















  • 1





    Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

    – Jacob Vlijm
    Jun 18 '15 at 16:48
















10












10








10


4






How can I run the following xrandrcommand on startup?



xrandr



cvt 1368 768 
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00









share|improve this question
















How can I run the following xrandrcommand on startup?



xrandr



cvt 1368 768 
xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode VGA1 1368x768_60.00
xrandr --output VGA1 --mode 1368x768_60.00






command-line display xrandr startup-applications display-resolution






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jun 18 '15 at 7:09









Jacob Vlijm

63.8k9125219




63.8k9125219










asked Jun 18 '15 at 6:20









Udhaya KumarUdhaya Kumar

54113




54113








  • 1





    Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

    – Jacob Vlijm
    Jun 18 '15 at 16:48
















  • 1





    Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

    – Jacob Vlijm
    Jun 18 '15 at 16:48










1




1





Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

– Jacob Vlijm
Jun 18 '15 at 16:48







Hi Udhaya Kumar did you notice you have an answer? Please let me know if you manage.

– Jacob Vlijm
Jun 18 '15 at 16:48












3 Answers
3






active

oldest

votes


















14














Adding complicated commands to Startup Applications



In General, you can add commands to run on start up (log in) by choosing: Dash > Startup Applications > Add. In this case, you have a complicated command to run.



There are two options to do that:





  1. write a separate script:



    #!/bin/bash

    cvt 1368 768
    # xrandr only works in X11 sessions, not Wayland
    [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
    xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
    xrandr --addmode VGA1 1368x768_60.00
    xrandr --output VGA1 --mode 1368x768_60.00


    Copy the script into an empty file, save it as set_monitor.sh
    and add the following command to startup applications as described above.



    /bin/bash /path/to/set_monitor.sh



  2. Chain the commands to one (very long) command:



     /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


    In this case, using && between the commands will make each command run as soon (and if) the previous one is run succesfully, just like they are on separate lines.



    Then add the command to Startup Applications, as described above.




Important note: adding xrandr commands to Startup Applications



Adding xrandr commands to startup can be tricky; sometimes they break if they are run too early, before the desktop is fully loaded. Therefore you might (probably) need to add a little break into the command to (either) run the script or the command, like (in the last case):



/bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


You might need to play a little with the sleep 15to find the optimal time.



Note



I left out the first line:



xrandr


since it does nothin but display some information on your screen setup :)






share|improve this answer





















  • 3





    You don't need to include the cvt command if you already know your modeline.

    – thethakuri
    Dec 16 '16 at 7:49






  • 1





    The /bin/bash -c "..." wrapping did the trick for me :)

    – Superole
    Oct 3 '17 at 13:22











  • On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

    – pat-s
    Jan 1 '18 at 21:38











  • +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

    – WinEunuuchs2Unix
    Sep 21 '18 at 2:53



















4














According to this at the Now automate it on login section, I have made my own script 45custom_xrandr-settings and placed it into /etc/X11/Xsession.d/. It works fine for me under Ubuntu 14.04 LTS. You could place the code below after the case command described in that section.



PRI_OUTPUT="DVI-0";
# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;
xrandr --addmode $PRI_OUTPUT $myNewModeName;


I believe that the above is what you are looking for. You can see the available outputs simply by running the xrandr command. The outputs may be VGA, VGA-0, DVI-0, TMDS-1 or DisplayPort-0.



Here is the complete script that I made.



# To configure xrandr automatically during the first login, 
# save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:

# If an external monitor is connected, place it with xrandr
# External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

# More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


PRI_OUTPUT="DVI-0";
SEC_OUTPUT="DisplayPort-0";
SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below

case "$SEC_LOCATION" in
left|LEFT)
SEC_LOCATION="--left-of $PRI_OUTPUT"
;;
right|RIGHT)
SEC_LOCATION="--right-of $PRI_OUTPUT"
;;
top|TOP|above|ABOVE)
SEC_LOCATION="--above $PRI_OUTPUT"
;;
bottom|BOTTOM|below|BELOW)
SEC_LOCATION="--below $PRI_OUTPUT"
;;
*)
SEC_LOCATION="--left-of $PRI_OUTPUT"
;;
esac

# Make and force resolution
myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
xrandr --newmode $myNewMode;
sleep 15;
xrandr --addmode $PRI_OUTPUT $myNewModeName;


# Activate secondary out (display port)
xrandr | grep $SEC_OUTPUT | grep " connected "
if [ $? -eq 0 ]; then
# xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
else
xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
fi





share|improve this answer

































    2














    Create the file ~/.xprofile and put your lines in it. It is ran at the beginning of the X user session.






    share|improve this answer



















    • 1





      this didnt work. commands fire up too early.

      – neckTwi
      May 27 '17 at 6:33











    • @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

      – golopot
      May 28 '17 at 5:45











    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "89"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f637911%2fhow-to-run-xrandr-commands-at-startup-in-ubuntu%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    3 Answers
    3






    active

    oldest

    votes








    3 Answers
    3






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    14














    Adding complicated commands to Startup Applications



    In General, you can add commands to run on start up (log in) by choosing: Dash > Startup Applications > Add. In this case, you have a complicated command to run.



    There are two options to do that:





    1. write a separate script:



      #!/bin/bash

      cvt 1368 768
      # xrandr only works in X11 sessions, not Wayland
      [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
      xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
      xrandr --addmode VGA1 1368x768_60.00
      xrandr --output VGA1 --mode 1368x768_60.00


      Copy the script into an empty file, save it as set_monitor.sh
      and add the following command to startup applications as described above.



      /bin/bash /path/to/set_monitor.sh



    2. Chain the commands to one (very long) command:



       /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


      In this case, using && between the commands will make each command run as soon (and if) the previous one is run succesfully, just like they are on separate lines.



      Then add the command to Startup Applications, as described above.




    Important note: adding xrandr commands to Startup Applications



    Adding xrandr commands to startup can be tricky; sometimes they break if they are run too early, before the desktop is fully loaded. Therefore you might (probably) need to add a little break into the command to (either) run the script or the command, like (in the last case):



    /bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


    You might need to play a little with the sleep 15to find the optimal time.



    Note



    I left out the first line:



    xrandr


    since it does nothin but display some information on your screen setup :)






    share|improve this answer





















    • 3





      You don't need to include the cvt command if you already know your modeline.

      – thethakuri
      Dec 16 '16 at 7:49






    • 1





      The /bin/bash -c "..." wrapping did the trick for me :)

      – Superole
      Oct 3 '17 at 13:22











    • On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

      – pat-s
      Jan 1 '18 at 21:38











    • +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

      – WinEunuuchs2Unix
      Sep 21 '18 at 2:53
















    14














    Adding complicated commands to Startup Applications



    In General, you can add commands to run on start up (log in) by choosing: Dash > Startup Applications > Add. In this case, you have a complicated command to run.



    There are two options to do that:





    1. write a separate script:



      #!/bin/bash

      cvt 1368 768
      # xrandr only works in X11 sessions, not Wayland
      [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
      xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
      xrandr --addmode VGA1 1368x768_60.00
      xrandr --output VGA1 --mode 1368x768_60.00


      Copy the script into an empty file, save it as set_monitor.sh
      and add the following command to startup applications as described above.



      /bin/bash /path/to/set_monitor.sh



    2. Chain the commands to one (very long) command:



       /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


      In this case, using && between the commands will make each command run as soon (and if) the previous one is run succesfully, just like they are on separate lines.



      Then add the command to Startup Applications, as described above.




    Important note: adding xrandr commands to Startup Applications



    Adding xrandr commands to startup can be tricky; sometimes they break if they are run too early, before the desktop is fully loaded. Therefore you might (probably) need to add a little break into the command to (either) run the script or the command, like (in the last case):



    /bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


    You might need to play a little with the sleep 15to find the optimal time.



    Note



    I left out the first line:



    xrandr


    since it does nothin but display some information on your screen setup :)






    share|improve this answer





















    • 3





      You don't need to include the cvt command if you already know your modeline.

      – thethakuri
      Dec 16 '16 at 7:49






    • 1





      The /bin/bash -c "..." wrapping did the trick for me :)

      – Superole
      Oct 3 '17 at 13:22











    • On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

      – pat-s
      Jan 1 '18 at 21:38











    • +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

      – WinEunuuchs2Unix
      Sep 21 '18 at 2:53














    14












    14








    14







    Adding complicated commands to Startup Applications



    In General, you can add commands to run on start up (log in) by choosing: Dash > Startup Applications > Add. In this case, you have a complicated command to run.



    There are two options to do that:





    1. write a separate script:



      #!/bin/bash

      cvt 1368 768
      # xrandr only works in X11 sessions, not Wayland
      [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
      xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
      xrandr --addmode VGA1 1368x768_60.00
      xrandr --output VGA1 --mode 1368x768_60.00


      Copy the script into an empty file, save it as set_monitor.sh
      and add the following command to startup applications as described above.



      /bin/bash /path/to/set_monitor.sh



    2. Chain the commands to one (very long) command:



       /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


      In this case, using && between the commands will make each command run as soon (and if) the previous one is run succesfully, just like they are on separate lines.



      Then add the command to Startup Applications, as described above.




    Important note: adding xrandr commands to Startup Applications



    Adding xrandr commands to startup can be tricky; sometimes they break if they are run too early, before the desktop is fully loaded. Therefore you might (probably) need to add a little break into the command to (either) run the script or the command, like (in the last case):



    /bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


    You might need to play a little with the sleep 15to find the optimal time.



    Note



    I left out the first line:



    xrandr


    since it does nothin but display some information on your screen setup :)






    share|improve this answer















    Adding complicated commands to Startup Applications



    In General, you can add commands to run on start up (log in) by choosing: Dash > Startup Applications > Add. In this case, you have a complicated command to run.



    There are two options to do that:





    1. write a separate script:



      #!/bin/bash

      cvt 1368 768
      # xrandr only works in X11 sessions, not Wayland
      [ "$XDG_SESSION_TYPE" = x11 ] || exit 0
      xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
      xrandr --addmode VGA1 1368x768_60.00
      xrandr --output VGA1 --mode 1368x768_60.00


      Copy the script into an empty file, save it as set_monitor.sh
      and add the following command to startup applications as described above.



      /bin/bash /path/to/set_monitor.sh



    2. Chain the commands to one (very long) command:



       /bin/bash -c "cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


      In this case, using && between the commands will make each command run as soon (and if) the previous one is run succesfully, just like they are on separate lines.



      Then add the command to Startup Applications, as described above.




    Important note: adding xrandr commands to Startup Applications



    Adding xrandr commands to startup can be tricky; sometimes they break if they are run too early, before the desktop is fully loaded. Therefore you might (probably) need to add a little break into the command to (either) run the script or the command, like (in the last case):



    /bin/bash -c "sleep 15&&cvt 1368 768&&xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync&&xrandr --addmode VGA1 1368x768_60.00&&xrandr --output VGA1 --mode 1368x768_60.00"


    You might need to play a little with the sleep 15to find the optimal time.



    Note



    I left out the first line:



    xrandr


    since it does nothin but display some information on your screen setup :)







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Jan 17 '18 at 16:37









    muru

    1




    1










    answered Jun 18 '15 at 6:46









    Jacob VlijmJacob Vlijm

    63.8k9125219




    63.8k9125219








    • 3





      You don't need to include the cvt command if you already know your modeline.

      – thethakuri
      Dec 16 '16 at 7:49






    • 1





      The /bin/bash -c "..." wrapping did the trick for me :)

      – Superole
      Oct 3 '17 at 13:22











    • On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

      – pat-s
      Jan 1 '18 at 21:38











    • +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

      – WinEunuuchs2Unix
      Sep 21 '18 at 2:53














    • 3





      You don't need to include the cvt command if you already know your modeline.

      – thethakuri
      Dec 16 '16 at 7:49






    • 1





      The /bin/bash -c "..." wrapping did the trick for me :)

      – Superole
      Oct 3 '17 at 13:22











    • On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

      – pat-s
      Jan 1 '18 at 21:38











    • +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

      – WinEunuuchs2Unix
      Sep 21 '18 at 2:53








    3




    3





    You don't need to include the cvt command if you already know your modeline.

    – thethakuri
    Dec 16 '16 at 7:49





    You don't need to include the cvt command if you already know your modeline.

    – thethakuri
    Dec 16 '16 at 7:49




    1




    1





    The /bin/bash -c "..." wrapping did the trick for me :)

    – Superole
    Oct 3 '17 at 13:22





    The /bin/bash -c "..." wrapping did the trick for me :)

    – Superole
    Oct 3 '17 at 13:22













    On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

    – pat-s
    Jan 1 '18 at 21:38





    On Kubuntu 17.10, I added the command without the sleep part in 'Startup applications' by selecting the "Before Session startup" option.

    – pat-s
    Jan 1 '18 at 21:38













    +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

    – WinEunuuchs2Unix
    Sep 21 '18 at 2:53





    +1 for writing 3 years ago # xrandr only works in X11 sessions, not Wayland. Good future proofing back then.

    – WinEunuuchs2Unix
    Sep 21 '18 at 2:53













    4














    According to this at the Now automate it on login section, I have made my own script 45custom_xrandr-settings and placed it into /etc/X11/Xsession.d/. It works fine for me under Ubuntu 14.04 LTS. You could place the code below after the case command described in that section.



    PRI_OUTPUT="DVI-0";
    # Make and force resolution
    myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
    myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
    xrandr --newmode $myNewMode;
    sleep 15;
    xrandr --addmode $PRI_OUTPUT $myNewModeName;


    I believe that the above is what you are looking for. You can see the available outputs simply by running the xrandr command. The outputs may be VGA, VGA-0, DVI-0, TMDS-1 or DisplayPort-0.



    Here is the complete script that I made.



    # To configure xrandr automatically during the first login, 
    # save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:

    # If an external monitor is connected, place it with xrandr
    # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

    # More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


    PRI_OUTPUT="DVI-0";
    SEC_OUTPUT="DisplayPort-0";
    SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below

    case "$SEC_LOCATION" in
    left|LEFT)
    SEC_LOCATION="--left-of $PRI_OUTPUT"
    ;;
    right|RIGHT)
    SEC_LOCATION="--right-of $PRI_OUTPUT"
    ;;
    top|TOP|above|ABOVE)
    SEC_LOCATION="--above $PRI_OUTPUT"
    ;;
    bottom|BOTTOM|below|BELOW)
    SEC_LOCATION="--below $PRI_OUTPUT"
    ;;
    *)
    SEC_LOCATION="--left-of $PRI_OUTPUT"
    ;;
    esac

    # Make and force resolution
    myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
    myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
    xrandr --newmode $myNewMode;
    sleep 15;
    xrandr --addmode $PRI_OUTPUT $myNewModeName;


    # Activate secondary out (display port)
    xrandr | grep $SEC_OUTPUT | grep " connected "
    if [ $? -eq 0 ]; then
    # xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
    else
    xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
    fi





    share|improve this answer






























      4














      According to this at the Now automate it on login section, I have made my own script 45custom_xrandr-settings and placed it into /etc/X11/Xsession.d/. It works fine for me under Ubuntu 14.04 LTS. You could place the code below after the case command described in that section.



      PRI_OUTPUT="DVI-0";
      # Make and force resolution
      myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
      myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
      xrandr --newmode $myNewMode;
      sleep 15;
      xrandr --addmode $PRI_OUTPUT $myNewModeName;


      I believe that the above is what you are looking for. You can see the available outputs simply by running the xrandr command. The outputs may be VGA, VGA-0, DVI-0, TMDS-1 or DisplayPort-0.



      Here is the complete script that I made.



      # To configure xrandr automatically during the first login, 
      # save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:

      # If an external monitor is connected, place it with xrandr
      # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

      # More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


      PRI_OUTPUT="DVI-0";
      SEC_OUTPUT="DisplayPort-0";
      SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below

      case "$SEC_LOCATION" in
      left|LEFT)
      SEC_LOCATION="--left-of $PRI_OUTPUT"
      ;;
      right|RIGHT)
      SEC_LOCATION="--right-of $PRI_OUTPUT"
      ;;
      top|TOP|above|ABOVE)
      SEC_LOCATION="--above $PRI_OUTPUT"
      ;;
      bottom|BOTTOM|below|BELOW)
      SEC_LOCATION="--below $PRI_OUTPUT"
      ;;
      *)
      SEC_LOCATION="--left-of $PRI_OUTPUT"
      ;;
      esac

      # Make and force resolution
      myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
      myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
      xrandr --newmode $myNewMode;
      sleep 15;
      xrandr --addmode $PRI_OUTPUT $myNewModeName;


      # Activate secondary out (display port)
      xrandr | grep $SEC_OUTPUT | grep " connected "
      if [ $? -eq 0 ]; then
      # xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
      xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
      else
      xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
      fi





      share|improve this answer




























        4












        4








        4







        According to this at the Now automate it on login section, I have made my own script 45custom_xrandr-settings and placed it into /etc/X11/Xsession.d/. It works fine for me under Ubuntu 14.04 LTS. You could place the code below after the case command described in that section.



        PRI_OUTPUT="DVI-0";
        # Make and force resolution
        myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
        myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
        xrandr --newmode $myNewMode;
        sleep 15;
        xrandr --addmode $PRI_OUTPUT $myNewModeName;


        I believe that the above is what you are looking for. You can see the available outputs simply by running the xrandr command. The outputs may be VGA, VGA-0, DVI-0, TMDS-1 or DisplayPort-0.



        Here is the complete script that I made.



        # To configure xrandr automatically during the first login, 
        # save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:

        # If an external monitor is connected, place it with xrandr
        # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

        # More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


        PRI_OUTPUT="DVI-0";
        SEC_OUTPUT="DisplayPort-0";
        SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below

        case "$SEC_LOCATION" in
        left|LEFT)
        SEC_LOCATION="--left-of $PRI_OUTPUT"
        ;;
        right|RIGHT)
        SEC_LOCATION="--right-of $PRI_OUTPUT"
        ;;
        top|TOP|above|ABOVE)
        SEC_LOCATION="--above $PRI_OUTPUT"
        ;;
        bottom|BOTTOM|below|BELOW)
        SEC_LOCATION="--below $PRI_OUTPUT"
        ;;
        *)
        SEC_LOCATION="--left-of $PRI_OUTPUT"
        ;;
        esac

        # Make and force resolution
        myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
        myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
        xrandr --newmode $myNewMode;
        sleep 15;
        xrandr --addmode $PRI_OUTPUT $myNewModeName;


        # Activate secondary out (display port)
        xrandr | grep $SEC_OUTPUT | grep " connected "
        if [ $? -eq 0 ]; then
        # xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
        xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
        else
        xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
        fi





        share|improve this answer















        According to this at the Now automate it on login section, I have made my own script 45custom_xrandr-settings and placed it into /etc/X11/Xsession.d/. It works fine for me under Ubuntu 14.04 LTS. You could place the code below after the case command described in that section.



        PRI_OUTPUT="DVI-0";
        # Make and force resolution
        myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
        myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
        xrandr --newmode $myNewMode;
        sleep 15;
        xrandr --addmode $PRI_OUTPUT $myNewModeName;


        I believe that the above is what you are looking for. You can see the available outputs simply by running the xrandr command. The outputs may be VGA, VGA-0, DVI-0, TMDS-1 or DisplayPort-0.



        Here is the complete script that I made.



        # To configure xrandr automatically during the first login, 
        # save this script to your computer as /etc/X11/Xsession.d/45custom_xrandr-settings:

        # If an external monitor is connected, place it with xrandr
        # External output may be "VGA" or "VGA-0" or "DVI-0" or "TMDS-1"

        # More info at http://www.thinkwiki.org/wiki/Xorg_RandR_1.2


        PRI_OUTPUT="DVI-0";
        SEC_OUTPUT="DisplayPort-0";
        SEC_LOCATION="left"; # SEC_LOCATION may be one of: left, right, above, or below

        case "$SEC_LOCATION" in
        left|LEFT)
        SEC_LOCATION="--left-of $PRI_OUTPUT"
        ;;
        right|RIGHT)
        SEC_LOCATION="--right-of $PRI_OUTPUT"
        ;;
        top|TOP|above|ABOVE)
        SEC_LOCATION="--above $PRI_OUTPUT"
        ;;
        bottom|BOTTOM|below|BELOW)
        SEC_LOCATION="--below $PRI_OUTPUT"
        ;;
        *)
        SEC_LOCATION="--left-of $PRI_OUTPUT"
        ;;
        esac

        # Make and force resolution
        myNewMode=$(cvt 1366 768 60 | grep -oP 'ModelineK.*') && #grep evrything after 'Modline'
        myNewModeName="$(echo $myNewMode | grep -oP '"K[^"47]+(?=["47])' )" && #grep everything inside quotes
        xrandr --newmode $myNewMode;
        sleep 15;
        xrandr --addmode $PRI_OUTPUT $myNewModeName;


        # Activate secondary out (display port)
        xrandr | grep $SEC_OUTPUT | grep " connected "
        if [ $? -eq 0 ]; then
        # xrandr --output $SEC_OUTPUT --auto $SEC_LOCATION
        xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --auto $SEC_LOCATION
        else
        xrandr --output $PRI_OUTPUT --mode $myNewModeName --output $SEC_OUTPUT --off
        fi






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Oct 6 '15 at 2:44









        kos

        25.4k870120




        25.4k870120










        answered Sep 25 '15 at 12:15









        ioaniatrioaniatr

        9614




        9614























            2














            Create the file ~/.xprofile and put your lines in it. It is ran at the beginning of the X user session.






            share|improve this answer



















            • 1





              this didnt work. commands fire up too early.

              – neckTwi
              May 27 '17 at 6:33











            • @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

              – golopot
              May 28 '17 at 5:45
















            2














            Create the file ~/.xprofile and put your lines in it. It is ran at the beginning of the X user session.






            share|improve this answer



















            • 1





              this didnt work. commands fire up too early.

              – neckTwi
              May 27 '17 at 6:33











            • @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

              – golopot
              May 28 '17 at 5:45














            2












            2








            2







            Create the file ~/.xprofile and put your lines in it. It is ran at the beginning of the X user session.






            share|improve this answer













            Create the file ~/.xprofile and put your lines in it. It is ran at the beginning of the X user session.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Feb 22 '17 at 23:00









            golopotgolopot

            1709




            1709








            • 1





              this didnt work. commands fire up too early.

              – neckTwi
              May 27 '17 at 6:33











            • @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

              – golopot
              May 28 '17 at 5:45














            • 1





              this didnt work. commands fire up too early.

              – neckTwi
              May 27 '17 at 6:33











            • @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

              – golopot
              May 28 '17 at 5:45








            1




            1





            this didnt work. commands fire up too early.

            – neckTwi
            May 27 '17 at 6:33





            this didnt work. commands fire up too early.

            – neckTwi
            May 27 '17 at 6:33













            @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

            – golopot
            May 28 '17 at 5:45





            @neckTwi Thanks, I found that xrandr --output ... doesn't work but the previous two lines works. All in all this works for me.

            – golopot
            May 28 '17 at 5:45


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Ask Ubuntu!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f637911%2fhow-to-run-xrandr-commands-at-startup-in-ubuntu%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Quarter-circle Tiles

            build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

            Mont Emei