// Copyright 2017-2025 WIT.COM Inc. All rights reserved. // Use of this source code is governed by the GPL 3.0 package main import ( "os" "go.wit.com/lib/gui/prep" ) /* this parses the command line arguements using alex flint's go-arg */ var argv args type args struct { Restore string `arg:"--restore" help:"restore terminal windows from a config file"` Save *EmptyCmd `arg:"subcommand:save" help:"save current window geometries to the your config file"` DumpX *EmptyCmd `arg:"subcommand:dumpx" help:"show your current window geometries"` Dump *EmptyCmd `arg:"subcommand:dump" help:"show your current window geometries"` List *EmptyCmd `arg:"subcommand:list" help:"list entries in your config file"` Force bool `arg:"--force" help:"try to strong arm things"` Verbose bool `arg:"--verbose" help:"show more output"` Bash bool `arg:"--bash" help:"generate bash completion"` BashAuto []string `arg:"--auto-complete" help:"todo: move this to go-arg"` } type EmptyCmd struct { } func (args) Version() string { return ARGNAME + " " + VERSION + " Built on " + BUILDTIME } func (a args) Description() string { return ` startxplacment -- run this after 'startx' to restore all your apps will attempt to launch your terminal windows on the right Workspaces and with the right geometries. TODO: restore the bash working paths ` } /* handles shell autocomplete */ func (args) Appname() string { return ARGNAME } func (a args) DoAutoComplete(pb *prep.Auto) { if pb.Cmd == "" { pb.Autocomplete3([]string{"--restore", "save", "dump", "dumpx", "list"}) } else { pb.SubCommand(pb.Argv...) } os.Exit(0) }