diff --git a/core/chat/macos/desktop.css b/core/chat/macos/desktop.css index 94768dd8..28b1006f 100644 --- a/core/chat/macos/desktop.css +++ b/core/chat/macos/desktop.css @@ -37,6 +37,7 @@ fieldset.macos.desktop>div.output>div.desktop>fieldset>legend { padding:0 var(-- body.mobile fieldset.macos.desktop>div.output>div.desktop>fieldset>legend { float:none; } body:not(.mobile) fieldset.macos.desktop>div.output>div.desktop>fieldset>legend:not(:hover) { background-color:transparent; } fieldset.macos.desktop>div.output>div.desktop>fieldset div.item.button.window span { position:absolute; left:8px; top:2px; } +body.windows fieldset.macos.desktop>div.output>div.desktop>fieldset div.item.button.window span { top:-2px; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>*:not(.textarea) { margin:var(--button-margin) var(--input-margin); } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.icon { margin:var(--button-margin) 0; box-shadow:none; } fieldset.macos.desktop>div.output>div.desktop>fieldset>form.option>div.icon.delete { display:none; } diff --git a/core/code/package.go b/core/code/package.go index 40f6964e..671d3210 100644 --- a/core/code/package.go +++ b/core/code/package.go @@ -56,6 +56,11 @@ func init() { button := []ice.Any{} switch value[mdb.TYPE] { case nfs.BINARY: + if value[cli.PID] == "" { + button = append(button, cli.START) + } else { + button = append(button, cli.STOP) + } kit.If(!nfs.Exists(m, _install_path(m, value[mdb.LINK])), func() { button = append(button, web.INSTALL) }, func() { diff --git a/core/code/xterm.go b/core/code/xterm.go index 8ca2d84e..de170866 100644 --- a/core/code/xterm.go +++ b/core/code/xterm.go @@ -98,6 +98,7 @@ func init() { case mdb.HASH: fallthrough case mdb.TYPE: + m.Push(arg[0], cli.Shell(m)) m.Cmd(mdb.SEARCH, SHELL, "", "", func(value ice.Maps) { kit.If(value[mdb.TYPE] == SHELL, func() { m.Push(arg[0], value[mdb.TEXT]) }) }) diff --git a/option.go b/option.go index 22816b39..dc733b9c 100644 --- a/option.go +++ b/option.go @@ -19,9 +19,16 @@ func (m *Message) OptionFields(arg ...string) string { kit.If(len(arg) > 0, func() { m.Option(MSG_FIELDS, kit.Join(arg)) }) return kit.Join(kit.Simple(m.Optionv(MSG_FIELDS))) } -func (m *Message) OptionDefault(arg ...string) string { - kit.For(arg, func(k, v string) { kit.If(m.Option(k) == "" && v != "", func() { m.Option(k, v) }) }) - return m.Option(arg[0]) +func (m *Message) OptionDefault(arg ...Any) string { + kit.For(arg, func(k string, v Any) { + switch v := v.(type) { + case string: + kit.If(m.Option(k) == "" && v != "", func() { m.Option(k, v) }) + case func() string: + kit.If(m.Option(k) == "", func() { m.Option(k, v()) }) + } + }) + return m.Option(kit.Format(arg[0])) } func (m *Message) OptionSimple(key ...string) (res []string) { kit.If(len(key) == 0, func() {