Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read
Q&A

How to append commands to startx from console

+2
−0

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.

Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

2 answers

+1
−1

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:screenshot

Why does this post require moderator attention?
You might want to add some details to your flag.

2 comment threads

I understand that, but I don't want to have separate `.xinitrc` files or change them based on use ca... (3 comments)
Pictures of text are bad (2 comments)
+1
−1

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"'
Why does this post require moderator attention?
You might want to add some details to your flag.

1 comment thread

Didn't work for me (1 comment)

Sign up to answer this question »

This community is part of the Codidact network. We have other communities too — take a look!

You can also join us in chat!

Want to advertise this community? Use our templates!

Like what we're doing? Support us! Donate