Merge pull request #12 from nwg-piotr/chrome
bug fixes and new arguments
This commit is contained in:
BIN
bin/nwg-drawer
BIN
bin/nwg-drawer
Binary file not shown.
54
main.go
54
main.go
@@ -90,6 +90,7 @@ var (
|
|||||||
fileSearchResultWrapper *gtk.Box
|
fileSearchResultWrapper *gtk.Box
|
||||||
pinnedFlowBox *gtk.FlowBox
|
pinnedFlowBox *gtk.FlowBox
|
||||||
pinnedFlowBoxWrapper *gtk.Box
|
pinnedFlowBoxWrapper *gtk.Box
|
||||||
|
categoriesWrapper *gtk.Box
|
||||||
catButtons []*gtk.Button
|
catButtons []*gtk.Button
|
||||||
statusLabel *gtk.Label
|
statusLabel *gtk.Label
|
||||||
status string
|
status string
|
||||||
@@ -109,6 +110,8 @@ var lang = flag.String("lang", "", "force lang, e.g. \"en\", \"pl\"")
|
|||||||
var fileManager = flag.String("fm", "thunar", "File Manager")
|
var fileManager = flag.String("fm", "thunar", "File Manager")
|
||||||
var term = flag.String("term", "alacritty", "Terminal emulator")
|
var term = flag.String("term", "alacritty", "Terminal emulator")
|
||||||
var nameLimit = flag.Int("fslen", 80, "File Search name length Limit")
|
var nameLimit = flag.Int("fslen", 80, "File Search name length Limit")
|
||||||
|
var noCats = flag.Bool("nocats", false, "Disable filtering by category")
|
||||||
|
var noFS = flag.Bool("nofs", false, "Disable file search")
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
timeStart := time.Now()
|
timeStart := time.Now()
|
||||||
@@ -240,6 +243,15 @@ func main() {
|
|||||||
gtk.MainQuit()
|
gtk.MainQuit()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
win.Connect("button-release-event", func(sw *gtk.Window, e *gdk.Event) bool {
|
||||||
|
btnEvent := gdk.EventButtonNewFromEvent(e)
|
||||||
|
if btnEvent.Button() == 1 || btnEvent.Button() == 3 {
|
||||||
|
gtk.MainQuit()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
|
||||||
win.Connect("key-press-event", func(window *gtk.Window, event *gdk.Event) bool {
|
win.Connect("key-press-event", func(window *gtk.Window, event *gdk.Event) bool {
|
||||||
key := &gdk.EventKey{Event: event}
|
key := &gdk.EventKey{Event: event}
|
||||||
switch key.KeyVal() {
|
switch key.KeyVal() {
|
||||||
@@ -254,7 +266,6 @@ func main() {
|
|||||||
return false
|
return false
|
||||||
case gdk.KEY_downarrow, gdk.KEY_Up, gdk.KEY_Down, gdk.KEY_Left, gdk.KEY_Right, gdk.KEY_Tab,
|
case gdk.KEY_downarrow, gdk.KEY_Up, gdk.KEY_Down, gdk.KEY_Left, gdk.KEY_Right, gdk.KEY_Tab,
|
||||||
gdk.KEY_Return, gdk.KEY_Page_Up, gdk.KEY_Page_Down, gdk.KEY_Home, gdk.KEY_End:
|
gdk.KEY_Return, gdk.KEY_Page_Up, gdk.KEY_Page_Down, gdk.KEY_Home, gdk.KEY_End:
|
||||||
//searchEntry.SetText("")
|
|
||||||
return false
|
return false
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -299,10 +310,12 @@ func main() {
|
|||||||
searchEntry.SetMaxWidthChars(30)
|
searchEntry.SetMaxWidthChars(30)
|
||||||
searchBoxWrapper.PackStart(searchEntry, true, false, 0)
|
searchBoxWrapper.PackStart(searchEntry, true, false, 0)
|
||||||
|
|
||||||
categoriesWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
if !*noCats {
|
||||||
categoriesButtonBox := setUpCategoriesButtonBox()
|
categoriesWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
||||||
categoriesWrapper.PackStart(categoriesButtonBox, true, false, 0)
|
categoriesButtonBox := setUpCategoriesButtonBox()
|
||||||
outerVBox.PackStart(categoriesWrapper, false, false, 0)
|
categoriesWrapper.PackStart(categoriesButtonBox, true, false, 0)
|
||||||
|
outerVBox.PackStart(categoriesWrapper, false, false, 0)
|
||||||
|
}
|
||||||
|
|
||||||
pinnedWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
pinnedWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
||||||
outerVBox.PackStart(pinnedWrapper, false, false, 0)
|
outerVBox.PackStart(pinnedWrapper, false, false, 0)
|
||||||
@@ -312,10 +325,19 @@ func main() {
|
|||||||
pinnedFlowBox = setUpPinnedFlowBox()
|
pinnedFlowBox = setUpPinnedFlowBox()
|
||||||
|
|
||||||
resultWindow, _ = gtk.ScrolledWindowNew(nil, nil)
|
resultWindow, _ = gtk.ScrolledWindowNew(nil, nil)
|
||||||
|
resultWindow.SetEvents(int(gdk.ALL_EVENTS_MASK))
|
||||||
resultWindow.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
resultWindow.SetPolicy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||||
resultWindow.Connect("enter-notify-event", func() {
|
resultWindow.Connect("enter-notify-event", func() {
|
||||||
cancelClose()
|
cancelClose()
|
||||||
})
|
})
|
||||||
|
resultWindow.Connect("button-release-event", func(sw *gtk.ScrolledWindow, e *gdk.Event) bool {
|
||||||
|
btnEvent := gdk.EventButtonNewFromEvent(e)
|
||||||
|
if btnEvent.Button() == 1 || btnEvent.Button() == 3 {
|
||||||
|
gtk.MainQuit()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
})
|
||||||
outerVBox.PackStart(resultWindow, true, true, 10)
|
outerVBox.PackStart(resultWindow, true, true, 10)
|
||||||
|
|
||||||
resultsWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
|
resultsWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_VERTICAL, 0)
|
||||||
@@ -342,11 +364,13 @@ func main() {
|
|||||||
resultsWrapper.PackStart(placeholder, true, true, 0)
|
resultsWrapper.PackStart(placeholder, true, true, 0)
|
||||||
placeholder.SetSizeRequest(20, 20)
|
placeholder.SetSizeRequest(20, 20)
|
||||||
|
|
||||||
wrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
if !*noFS {
|
||||||
fileSearchResultWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
wrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
||||||
fileSearchResultWrapper.SetProperty("name", "files-box")
|
fileSearchResultWrapper, _ = gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
||||||
wrapper.PackStart(fileSearchResultWrapper, true, false, 0)
|
fileSearchResultWrapper.SetProperty("name", "files-box")
|
||||||
resultsWrapper.PackEnd(wrapper, false, false, 10)
|
wrapper.PackStart(fileSearchResultWrapper, true, false, 0)
|
||||||
|
resultsWrapper.PackEnd(wrapper, false, false, 10)
|
||||||
|
}
|
||||||
|
|
||||||
statusLineWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
statusLineWrapper, _ := gtk.BoxNew(gtk.ORIENTATION_HORIZONTAL, 0)
|
||||||
outerVBox.PackStart(statusLineWrapper, false, false, 10)
|
outerVBox.PackStart(statusLineWrapper, false, false, 10)
|
||||||
@@ -354,9 +378,13 @@ func main() {
|
|||||||
statusLineWrapper.PackStart(statusLabel, true, false, 0)
|
statusLineWrapper.PackStart(statusLabel, true, false, 0)
|
||||||
|
|
||||||
win.ShowAll()
|
win.ShowAll()
|
||||||
fileSearchResultWrapper.SetSizeRequest(appFlowBox.GetAllocatedWidth(), 1)
|
if !*noFS {
|
||||||
categoriesWrapper.SetSizeRequest(1, categoriesWrapper.GetAllocatedHeight()*2)
|
fileSearchResultWrapper.SetSizeRequest(appFlowBox.GetAllocatedWidth(), 1)
|
||||||
fileSearchResultWrapper.Hide()
|
fileSearchResultWrapper.Hide()
|
||||||
|
}
|
||||||
|
if !*noCats {
|
||||||
|
categoriesWrapper.SetSizeRequest(1, categoriesWrapper.GetAllocatedHeight()*2)
|
||||||
|
}
|
||||||
|
|
||||||
t := time.Now()
|
t := time.Now()
|
||||||
println(fmt.Sprintf("UI created in %v ms. Thank you for your patience.", t.Sub(timeStart).Milliseconds()))
|
println(fmt.Sprintf("UI created in %v ms. Thank you for your patience.", t.Sub(timeStart).Milliseconds()))
|
||||||
|
|||||||
10
tools.go
10
tools.go
@@ -583,17 +583,19 @@ func launch(command string, terminal bool) {
|
|||||||
envVarsNum := strings.Count(command, "=")
|
envVarsNum := strings.Count(command, "=")
|
||||||
var envVars []string
|
var envVars []string
|
||||||
|
|
||||||
cmdIdx := 0
|
cmdIdx := -1
|
||||||
lastEnvVarIdx := 0
|
|
||||||
|
|
||||||
if envVarsNum > 0 {
|
if envVarsNum > 0 {
|
||||||
for idx, item := range elements {
|
for idx, item := range elements {
|
||||||
if strings.Contains(item, "=") {
|
if strings.Contains(item, "=") {
|
||||||
lastEnvVarIdx = idx
|
|
||||||
envVars = append(envVars, item)
|
envVars = append(envVars, item)
|
||||||
|
} else if !strings.HasPrefix(item, "-") && cmdIdx == -1 {
|
||||||
|
cmdIdx = idx
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cmdIdx = lastEnvVarIdx + 1
|
}
|
||||||
|
if cmdIdx == -1 {
|
||||||
|
cmdIdx = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := exec.Command(elements[cmdIdx], elements[1+cmdIdx:]...)
|
cmd := exec.Command(elements[cmdIdx], elements[1+cmdIdx:]...)
|
||||||
|
|||||||
@@ -319,13 +319,17 @@ func setUpSearchEntry() *gtk.SearchEntry {
|
|||||||
phrase, _ = searchEntry.GetText()
|
phrase, _ = searchEntry.GetText()
|
||||||
if len(phrase) > 0 {
|
if len(phrase) > 0 {
|
||||||
|
|
||||||
|
// search apps
|
||||||
appFlowBox = setUpAppsFlowBox(nil, phrase)
|
appFlowBox = setUpAppsFlowBox(nil, phrase)
|
||||||
|
|
||||||
if len(phrase) > 2 {
|
// search files
|
||||||
|
if !*noFS && len(phrase) > 2 {
|
||||||
if fileSearchResultFlowBox != nil {
|
if fileSearchResultFlowBox != nil {
|
||||||
fileSearchResultFlowBox.Destroy()
|
fileSearchResultFlowBox.Destroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
fileSearchResultFlowBox = setUpFileSearchResultContainer()
|
fileSearchResultFlowBox = setUpFileSearchResultContainer()
|
||||||
|
|
||||||
for key := range userDirsMap {
|
for key := range userDirsMap {
|
||||||
if key != "home" {
|
if key != "home" {
|
||||||
fileSearchResults = nil
|
fileSearchResults = nil
|
||||||
@@ -337,17 +341,25 @@ func setUpSearchEntry() *gtk.SearchEntry {
|
|||||||
statusLabel.SetText("0 results")
|
statusLabel.SetText("0 results")
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// search phrase too short
|
||||||
if fileSearchResultFlowBox != nil {
|
if fileSearchResultFlowBox != nil {
|
||||||
fileSearchResultFlowBox.Destroy()
|
fileSearchResultFlowBox.Destroy()
|
||||||
}
|
}
|
||||||
fileSearchResultWrapper.Hide()
|
if fileSearchResultWrapper != nil {
|
||||||
|
fileSearchResultWrapper.Hide()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// clear search results
|
||||||
|
appFlowBox = setUpAppsFlowBox(nil, "")
|
||||||
|
|
||||||
if fileSearchResultFlowBox != nil {
|
if fileSearchResultFlowBox != nil {
|
||||||
fileSearchResultFlowBox.Destroy()
|
fileSearchResultFlowBox.Destroy()
|
||||||
}
|
}
|
||||||
appFlowBox = setUpAppsFlowBox(nil, "")
|
|
||||||
fileSearchResultWrapper.Hide()
|
if fileSearchResultWrapper != nil {
|
||||||
|
fileSearchResultWrapper.Hide()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
searchEntry.Connect("focus-in-event", func() {
|
searchEntry.Connect("focus-in-event", func() {
|
||||||
|
|||||||
Reference in New Issue
Block a user