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
Community Proposals
Community Proposals
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 See all your notifications »
Q&A

Comments on How to append commands to startx from console

Parent

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.

History
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

Post
+1
−2

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

History
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)
I understand that, but I don't want to have separate `.xinitrc` files or change them based on use ca...
mcp‭ wrote over 1 year ago

I understand that, but I don't want to have separate .xinitrc files or change them based on use case. I want to keep one basic .xinitrc and then pass additional commands to my X session based on the situation.

Quasímodo‭ wrote over 1 year ago · edited over 1 year ago

I'm afraid you can't do that. See man startx xinit. You can create a wrapper that writes a xinitrc before launching startx, though.

mcp‭ wrote over 1 year ago · edited over 1 year ago

That's actually an interesting idea, and probably the best solution. I will give it more thought.

I guess I could write a base file, and then a script to append to the base, based on the situation.