-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Add switch-windows-yabai extension #20133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- added guidelines to gitignore - added missing app icons - changes shortcuts for move and disperse commands. - close raycast on already focused window selection - move window to display - move window to display - refined search - added applications list - lint - using fuse for query - improvements - fix readme - fix linter - fix linter - disperse windows to specific displays working - disperse windows working across all screens - changed toaster message - fix lint - fix lint - first alpha version - aggregate app windows in one space - aggregate app windows in one space - close window working with list refresh - close window working - ordered by usage - working extesnion. still drafting.
Congratulations on your new Raycast extension! 🚀 You can expect an initial review within five business days. Once the PR is approved and merged, the extension will be available on our Store. |
- fix lint - fix tsc errors
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR Summary
New extension that enhances Yabai window management with advanced window switching, display management, and space control capabilities through Raycast interface.
- Needs yabai path preference similar to existing yabai extension in
package.json
for consistent configuration - Core functionality in
src/switch-windows-yabai.tsx
provides fuzzy search and window management with Fuse.js integration - Implementation includes display management features in
src/display-actions-yabai.tsx
for dispersing and moving windows across screens - Code uses showToast for error handling but should be updated to use
showFailureToast
from@raycast/utils
for consistency - Some dependency versions in
package.json
need updating to align with Raycast's requirements
11 files reviewed, 4 comments
Edit PR Review Bot Settings | Greptile
if (!displays || displays.length <= 1) { | ||
return <Action title="Move to Another Display (Only 1 Available)" onAction={() => {}} />; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: Empty onAction handler for single display case. Should show a toast or feedback to user instead of silently doing nothing
} catch { | ||
/*ignore, error will be thrown*/ | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: Empty catch block should at least log the error. Current comment suggests error will be thrown but it's actually being silently swallowed.
} catch { | |
/*ignore, error will be thrown*/ | |
} | |
} catch (error) { | |
console.error("Failed to focus first space:", error); | |
} |
} | ||
|
||
// Step 4: Disperse each window to its corresponding space | ||
for (let i = 0; i < windows.length - 1; i++) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
logic: Loop condition windows.length - 1
leaves out the last window. Should be just windows.length
.
for (let i = 0; i < windows.length - 1; i++) { | |
for (let i = 0; i < windows.length; i++) { |
@@ -0,0 +1,44 @@ | |||
# Yabai Window Switcher for Raycast |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
style: The title should match exactly with package.json's 'title' field ('Switch Windows (yabai)')
# Yabai Window Switcher for Raycast | |
# Switch Windows (yabai) |
Description
Screencast
Checklist
npm run build
and tested this distribution build in Raycastassets
folder are used by the extension itselfREADME
are placed outside of themetadata
folder