fix: ignore arragnment shoud delete saved pos
This commit is contained in:
parent
c4eadbf6d4
commit
db68150f1e
118
win/ahk/Spotlight.ahk
Normal file
118
win/ahk/Spotlight.ahk
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
|
||||||
|
Spotlight() {
|
||||||
|
global
|
||||||
|
|
||||||
|
SPOTLIGHT_ITEMS := 10
|
||||||
|
SPOTLIGHT_FONT_NAME := "Sarasa Mono SC Nerd"
|
||||||
|
SPOTLIGHT_ITEM_FONT_STYLE := "s14 ceeeeee"
|
||||||
|
SPOTLIGHT_SELECTED_ITEM_FONT_STYLE := "s14 c007acc"
|
||||||
|
|
||||||
|
spotlightSelectedIndex := 1
|
||||||
|
keyword := ""
|
||||||
|
windows := GetWindowList()
|
||||||
|
|
||||||
|
; window position
|
||||||
|
GetCursorMonGeometry(x, y, w, h)
|
||||||
|
ww := w * 0.5
|
||||||
|
wh := h * 0.3
|
||||||
|
wx := x + w / 2 - ww / 2
|
||||||
|
wy := y + h / 2 - wh / 2
|
||||||
|
|
||||||
|
Gui, New, +Theme -Border +AlwaysOnTop, Spotlight
|
||||||
|
Gui, Font, %SPOTLIGHT_ITEM_FONT_STYLE%, %SPOTLIGHT_FONT_NAME%
|
||||||
|
Gui, Color, 252526
|
||||||
|
|
||||||
|
; search box
|
||||||
|
keywordX := 10
|
||||||
|
keywordY := 10
|
||||||
|
keywordW := ww - 20
|
||||||
|
keywordH := 30
|
||||||
|
Gui, Add, Edit, x%keywordX% y%keywordY% w%keywordW% h%keywordH% c252525 gOnChange vKeywordEdit
|
||||||
|
|
||||||
|
; ok button
|
||||||
|
Gui, Add, Button, Default Hidden gOnEnter, Ok
|
||||||
|
|
||||||
|
; result items
|
||||||
|
Loop %SPOTLIGHT_ITEMS% {
|
||||||
|
ItemEdit%A_Index% := null
|
||||||
|
Gui, Add, Text, w%keywordW% vItemEdit%A_Index%
|
||||||
|
}
|
||||||
|
|
||||||
|
; load windows
|
||||||
|
FilterWindowList()
|
||||||
|
|
||||||
|
; show window on center
|
||||||
|
Gui, Show, X %wx% Y %wy% W %ww% H %wh%
|
||||||
|
spotlightSelectedIndex := spotlightSelectedIndex + 1
|
||||||
|
FilterWindowList()
|
||||||
|
|
||||||
|
Return
|
||||||
|
|
||||||
|
OnChange:
|
||||||
|
GuiControlGet, keyword, , KeywordEdit
|
||||||
|
FilterWindowList()
|
||||||
|
Return
|
||||||
|
|
||||||
|
OnEnter:
|
||||||
|
WinActivate, ahk_id %spotlightSelectedWindowId%
|
||||||
|
SetCursorToCenterOfActiveWin()
|
||||||
|
Gui, Destroy
|
||||||
|
Return
|
||||||
|
|
||||||
|
GuiEscape:
|
||||||
|
Gui, Destroy
|
||||||
|
Return
|
||||||
|
}
|
||||||
|
|
||||||
|
FilterWindowList() {
|
||||||
|
global
|
||||||
|
local index := 1
|
||||||
|
|
||||||
|
kw := keyword
|
||||||
|
sl := 1
|
||||||
|
idx := RegExMatch(keyword, " \d")
|
||||||
|
if (idx) {
|
||||||
|
kw := SubStr(keyword, 1, idx-1)
|
||||||
|
sl := SubStr(keyword, idx+1)
|
||||||
|
}
|
||||||
|
LogDebug("keyword {1}, selected {2}", kw, sl)
|
||||||
|
for winIndex, win in windows {
|
||||||
|
name := win[1]
|
||||||
|
id := win[2]
|
||||||
|
if (name and InStr(name, kw)) {
|
||||||
|
suffix := ""
|
||||||
|
if (sl = index) {
|
||||||
|
Gui, Font, %SPOTLIGHT_SELECTED_ITEM_FONT_STYLE%, %SPOTLIGHT_FONT_NAME%
|
||||||
|
spotlightSelectedWindowId := id
|
||||||
|
suffix := " <<< "
|
||||||
|
} else {
|
||||||
|
Gui, Font, %SPOTLIGHT_ITEM_FONT_STYLE%, %SPOTLIGHT_FONT_NAME%
|
||||||
|
}
|
||||||
|
name := Format("{1} {2} {3}", index, name, suffix)
|
||||||
|
GuiControl, Font, ItemEdit%index%
|
||||||
|
GuiControl, , ItemEdit%index%, %name%
|
||||||
|
index := index + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
While index < SPOTLIGHT_ITEMS {
|
||||||
|
GuiControl, , ItemEdit%index%
|
||||||
|
index := index + 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GetWindowList() {
|
||||||
|
WinGet windows, List
|
||||||
|
wins := Array()
|
||||||
|
LogDebug("A_Gui: {1}", A_Gui)
|
||||||
|
Loop %windows% {
|
||||||
|
id := windows%A_Index%
|
||||||
|
WinGetTitle wt, ahk_id %id%
|
||||||
|
if (id = A_Gui or !wt) {
|
||||||
|
Continue
|
||||||
|
}
|
||||||
|
WinGet wp, ProcessName, ahk_id %id%
|
||||||
|
name := Format("{1:-20} {2}", wp, wt)
|
||||||
|
wins.Push(Array(name, id))
|
||||||
|
}
|
||||||
|
return wins
|
||||||
|
}
|
|
@ -360,6 +360,8 @@ IgnoreArrangementForActiveWindow() {
|
||||||
windowPath := GetActiveWindowPath()
|
windowPath := GetActiveWindowPath()
|
||||||
ARRANGEMENT["whitelist"].Delete(windowPath)
|
ARRANGEMENT["whitelist"].Delete(windowPath)
|
||||||
ARRANGEMENT["blacklist"].Delete(windowPath)
|
ARRANGEMENT["blacklist"].Delete(windowPath)
|
||||||
|
ARRANGEMENT["windows"].Delete(windowPath)
|
||||||
|
SaveArrangement()
|
||||||
}
|
}
|
||||||
|
|
||||||
IsActiveWindowBorderless() {
|
IsActiveWindowBorderless() {
|
||||||
|
|
|
@ -47,6 +47,7 @@ InitClipboardManager()
|
||||||
#Include, ahk\JSON.ahk
|
#Include, ahk\JSON.ahk
|
||||||
#Include, ahk\WindowManager.ahk
|
#Include, ahk\WindowManager.ahk
|
||||||
#Include, ahk\ClipboardManager.ahk
|
#Include, ahk\ClipboardManager.ahk
|
||||||
|
#Include, ahk\Spotlight.ahk
|
||||||
|
|
||||||
|
|
||||||
; =========================
|
; =========================
|
||||||
|
@ -98,6 +99,9 @@ InitClipboardManager()
|
||||||
#+i::MoveWindowToMonitor("right")
|
#+i::MoveWindowToMonitor("right")
|
||||||
|
|
||||||
|
|
||||||
|
; SPOTLIGHT
|
||||||
|
#p::Spotlight()
|
||||||
|
|
||||||
; CLIPBOARD MANAGER
|
; CLIPBOARD MANAGER
|
||||||
#c::AlternativeCopy()
|
#c::AlternativeCopy()
|
||||||
#+c::CopyClipboardToAlternative()
|
#+c::CopyClipboardToAlternative()
|
||||||
|
|
Loading…
Reference in New Issue
Block a user