Ophestra Umiker
8bdae74ebe
State query command has been moved to main where it belongs, "system" information are now fetched in app.New and stored in *App with accessors for relevant values. Exit (cleanup-related) functions are separated into its dedicated "final" package. Signed-off-by: Ophestra Umiker <cat@ophivana.moe>
33 lines
883 B
Go
33 lines
883 B
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
"git.ophivana.moe/cat/fortify/internal/final"
|
|
"os"
|
|
|
|
"git.ophivana.moe/cat/fortify/internal/state"
|
|
"git.ophivana.moe/cat/fortify/internal/verbose"
|
|
"git.ophivana.moe/cat/fortify/internal/xcb"
|
|
)
|
|
|
|
const display = "DISPLAY"
|
|
|
|
func (a *App) ShareX() {
|
|
a.setEnablement(state.EnableX)
|
|
|
|
// discovery X11 and grant user permission via the `ChangeHosts` command
|
|
if d, ok := os.LookupEnv(display); !ok {
|
|
final.Fatal("X11: DISPLAY not set")
|
|
} else {
|
|
// add environment variable for new process
|
|
a.AppendEnv(display, d)
|
|
|
|
verbose.Printf("X11: Adding XHost entry SI:localuser:%s to display '%s'\n", a.Username, d)
|
|
if err := xcb.ChangeHosts(xcb.HostModeInsert, xcb.FamilyServerInterpreted, "localuser\x00"+a.Username); err != nil {
|
|
final.Fatal(fmt.Sprintf("Error adding XHost entry to '%s':", d), err)
|
|
} else {
|
|
final.XcbActionComplete()
|
|
}
|
|
}
|
|
}
|