How to append commands to startx from console
MWE
startx && xrandr-invert-colors
Problem
It seems that anything after startx
does not get issued in the
resulting X session. I'd like to make a bash function that sets up my
monitors based on which office I'm working out of. Assuming the
*-display
commands are xrandr
commands, that can be substituted with
xrandr-invert-colors
:
office-one()
{
startx
office-one-display
}
office-two()
{
startx
office-two-display
}
Both of these are accessible from the console on startup, and both
successfully startx
, but everything after that has no effect.
Tried
Spinning until in an X session:
in_xsession()
{
xhost &> /dev/null
return !$?
}
office-one()
{
startx
until [ in_xsession ]; do done
office-one-display
}
office-two()
{
startx
until [ in_xsession ]; do done
office-two-display
}
but it has the same behavior.
Question
How do I "append" commands to startx
such that they issue in the
resulting X session? For convenience, I'd like to be able to do this
from a bash function as shown.
Notes
I used xrandr-invert-colors
for a visual effect, but you can replace
that with any application launch like emacs
, firefox
, etc..
I am using zsh
.
2 answers
You are accessing this answer with a direct link, so it's being shown above all other answers regardless of its score. You can return to the normal view.
That's what .xinitrc and .xprofile is for, Note that if you are using a window manager like bspwm they might have there own separate which runs automatically by running them.
In that case your XINITRC should looks like something like this:
From what I understand, you can pass a command to the xinit
program that will be executed instead of .xinitrc. So you might be able to use
startx sh -c 'xrandr-invert-colors; exec "$HOME/.xinitrc"'
0 comment threads