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
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"'
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:
0 comment threads