Compare commits
2 Commits
0adaf9e90c
...
8f1eacab87
Author | SHA1 | Date | |
---|---|---|---|
|
8f1eacab87 | ||
|
92b6d030a6 |
@ -2,6 +2,7 @@ package app
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/user"
|
||||
|
||||
@ -52,11 +53,11 @@ like before, when you're done, type `},
|
||||
}
|
||||
|
||||
func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
win := state.Window()
|
||||
win := state.Window().New(0, 16, 80, 80)
|
||||
view.Draw(state)
|
||||
|
||||
vt := term.New()
|
||||
vt.Draw(win.New(0, 16, 80, 80))
|
||||
vt.TERM = os.Getenv("TERM")
|
||||
vt.Attach(state.PostEvent())
|
||||
vt.Focus()
|
||||
err := vt.Start(exec.Command("bash", "-l"))
|
||||
@ -76,16 +77,13 @@ func (view *Editor) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
return
|
||||
case vaxis.Redraw:
|
||||
view.Draw(state)
|
||||
vt.Draw(win.New(0, 16, 80, 80))
|
||||
vt.Draw(win)
|
||||
state.Render()
|
||||
continue
|
||||
}
|
||||
|
||||
// for some reason vaxis doubles all events for Press/Release so this just ignores releases
|
||||
if key, ok := ev.(vaxis.Key); ok && key.EventType == vaxis.EventPress {
|
||||
vt.Update(ev)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"os"
|
||||
"os/exec"
|
||||
|
||||
"git.sr.ht/~rockorager/vaxis"
|
||||
@ -47,7 +48,7 @@ func (view *Shell) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
view.Draw(state)
|
||||
|
||||
vt := term.New()
|
||||
vt.Draw(win)
|
||||
vt.TERM = os.Getenv("TERM")
|
||||
vt.Attach(state.PostEvent())
|
||||
vt.Focus()
|
||||
err := vt.Start(exec.Command("bash", "-l"))
|
||||
@ -72,11 +73,8 @@ func (view *Shell) Event(state *ui.State, event vaxis.Event) (processed bool) {
|
||||
continue
|
||||
}
|
||||
|
||||
// for some reason vaxis doubles all events for Press/Release so this just ignores releases
|
||||
if key, ok := ev.(vaxis.Key); ok && key.EventType == vaxis.EventPress {
|
||||
vt.Update(ev)
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
3
ui/ui.go
3
ui/ui.go
@ -15,7 +15,7 @@ type View interface {
|
||||
|
||||
var Events = make(chan vaxis.Event)
|
||||
var Quit = make(chan struct{})
|
||||
var ViewChange = make(chan View, 1)
|
||||
var ViewChange = make(chan View, 10)
|
||||
|
||||
type State struct {
|
||||
content View
|
||||
@ -25,7 +25,6 @@ type State struct {
|
||||
func New(view View) (state State, err error) {
|
||||
vx, err := vaxis.New(vaxis.Options{
|
||||
DisableMouse: true,
|
||||
CSIuBitMask: vaxis.CSIuDisambiguate | vaxis.CSIuReportEvents | vaxis.CSIuAlternateKeys | vaxis.CSIuAllKeys | vaxis.CSIuAssociatedText,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user