How do you start a program after X has started?

18

5

There's a little app called F.Lux that sets your screen temperature based on the time of day. The Linux version is a little spartan with just a console interface but it works perfectly well.

Where can I invoke it so that it starts up after X has started?

cyborg

Posted 2010-06-08T19:58:59.073

Reputation: 334

1I love f.lux! It's probably saved my eyes these last few years, I can't stand computing without it anymore. – Phoshi – 2010-06-08T20:24:21.903

Interesting software, I'm downloading now to try out.. – Dentrasi – 2010-06-08T20:59:25.593

This is awesome, this will save me from complaining about screen brightness at night. – Corey – 2010-06-09T06:13:20.797

Indeed, awesome app. – Apache – 2010-06-09T09:19:07.597

this is a good resource on the topic https://lb.raspberrypi.org/forums/viewtopic.php?t=132637

– Hernán Eche – 2018-07-25T18:45:37.980

Answers

7

.xinitrc is the one to use if you start your window manager from there. If you use KDE or GNOME you will need to add the program to the services that autostart on login.

stevenrjanssens

Posted 2010-06-08T19:58:59.073

Reputation: 749

6

first of all, read 'man X':

 STARTING UP

   There are two main ways of getting the X server and an initial  set  of
   client  applications  started.   The  particular method used depends on
   what operating system you are running and whether or not you use  other
   window systems in addition to X.

you will learn, that, depending on how you bring up the xserver, 2 scripts are used for starting things after the xserver came up:

  • .xinitrc (for when you launched the session via startx (which fires up xinit))
  • .xsession (for when you logged into your system via a display manager (xdm))

(i personally ln -s .xinitrc .xsession, so it does not matter, how i bring up the xserver).

depending on what you use to log into your system (and i think it is either gdm or kdm these days), things get a bit different. normally gdm and kdm (and other display managers as well) offer the user to select the "user session" or something similar labeled. if you pick this "user-session" then mostly these display managers will launch ~/.xsession. you would be responsible for bringing up your applications AND the desktop environment / windowmanager.

the other possible solution is to find out how the different desktop environments / windowmanagers support the concept of "autostart". i personally avoid these mechanisms and stick to the good old .xinitrc / .xsession way.

an example .xinitrc would look like:

xmodmap ~/.Xmodmap
xsetxkbmap de
autocutsel &
xflux -l 52
exec /usr/bin/fluxbox

akira

Posted 2010-06-08T19:58:59.073

Reputation: 52 754

3

Try placing a script named .xinitrc in your home directory. KDE and Gnome also have the ability to run scripts/applications on login if you're using one of those. I believe .Xstartup or .xstartup might also do what you want if .xinitrc doesn't. My linux is getting a bit rusty it seems. >.>

Darth Android

Posted 2010-06-08T19:58:59.073

Reputation: 35 133

Hmm, not sure that it worked, is there a log for it anywhere? – cyborg – 2010-06-08T20:32:03.560

Not unless F.Lux logs somewhere. You can always add echo "hello!" >> ~/.launchlog to your .xinitrc until you know for sure, and delete the test log afterwards. – Darth Android – 2010-06-08T20:34:37.453

1

The XDG Autostart Specification works for any XDG-compliant desktop environment, including Gnome, KDE, XFCE, and others.

Ignacio Vazquez-Abrams

Posted 2010-06-08T19:58:59.073

Reputation: 100 516