- Một trình quản lý cửa sổ xếp ô mã nguồn mở dành cho macOS, đang được phát triển với trọng tâm là hiệu năng và tính dễ sử dụng
- Hoạt động mà không cần tắt System Integrity Protection (SIP), và là một trong số ít trình quản lý cửa sổ tương thích với tùy chọn "Displays have separate Spaces" của macOS
- Hỗ trợ nhiều kiểu bố cục tương tự i3/sway và bspwm
- Cung cấp khả năng tích hợp tự nhiên với môi trường gốc của macOS như điều hướng workspace theo kiểu Mission Control và cử chỉ trackpad
- Tập trung vào hiệu năng hoạt ảnh và trải nghiệm người dùng, với các tính năng nổi bật như hot reload cấu hình và tích hợp với chương trình bên ngoài
- Kế thừa một phần ưu điểm của Aerospace, trình quản lý cửa sổ xếp ô hiện có cho macOS (như hiệu năng, tính linh hoạt), đồng thời hướng tới các tính năng bổ sung như hỗ trợ hoạt ảnh và khả năng chỉ sử dụng một màn hình ở chế độ toàn màn hình trong môi trường nhiều màn hình
Tính năng chính
- Nhiều kiểu bố cục: hỗ trợ sắp xếp cửa sổ theo dạng lưới như i3 hoặc sway, hoặc theo kiểu phân chia không gian nhị phân của bspwm
- Biểu tượng trên thanh menu: hiển thị trực quan tất cả workspace và trạng thái bố cục trong từng workspace
- Điều hướng theo kiểu Mission Control của macOS: giúp quản lý trực quan và dễ dàng việc chuyển đổi giữa các workspace
- Cung cấp tính năng tự động chuyển focus theo chuột và tự động đưa cửa sổ lên trước
- Có thể hoán đổi vị trí khi kéo cửa sổ, đồng thời hoạt ảnh vận hành mượt mà
- Khi dùng cử chỉ trackpad, có thể chuyển đổi workspace giống như trải nghiệm gốc của macOS
- Hỗ trợ thay đổi cấu hình khi đang chạy (hot reload), giúp việc tinh chỉnh theo thời gian thực rất thuận tiện
- Hỗ trợ giao tiếp với chương trình bên thứ ba như Sketchybar và tích hợp thông qua CLI hoặc mach port
- Có thể gửi tín hiệu (Signals) ra bên ngoài khi workspace thay đổi hoặc cửa sổ có biến động; tín hiệu có thể được phát qua CLI hoặc kết nối mach
- Được phát triển 100% bằng Rust
1 bình luận
Ý kiến trên Hacker News
Trước đây tôi dùng i3 rất nhiều. i3 cực kỳ linh hoạt và cho phép cấu hình rất tự do, nên có thể làm được nhiều hơn là chỉ di chuyển cửa sổ. Nhưng sau khi chuyển sang Mac, tôi không tìm được trình quản lý cửa sổ xếp ô nào vừa nhiều tính năng vừa ổn định. Tôi đã thử nhiều lựa chọn và giờ thì chỉ dùng Rectangle. Rectangle không thực sự là trình quản lý cửa sổ, mà chỉ cung cấp phím tắt để dễ dàng đưa cửa sổ sang trái/phải/trên/dưới hoặc chia theo 3/4/6 phần. Nó đáp ứng khoảng 80% thói quen sử dụng của tôi, không cần thiết lập tùy chỉnh và cũng không có hành vi bất ngờ, nên tôi dùng khá hài lòng. Có tuổi rồi nên cũng thấy mệt khi phải dành thời gian cho hàng đống tùy chỉnh. Trang chính thức của Rectangle
Trên màn hình 5k/6k, kiểu xếp ô thông thường có giới hạn — kích thước cửa sổ sẽ trở nên quá lớn. Vì vậy tôi nghĩ các ứng dụng như Moom tốt hơn nhiều. Trên Windows không có ứng dụng nào như Moom nên tôi dùng trình quản lý xếp ô như komorebi. Là người thường xuyên qua lại giữa nhiều hệ điều hành và thiết bị, tôi thấy khá tiếc vì rift không hỗ trợ các phím gán phổ thông như alt+hjkl. Trên màn hình siêu độ phân giải hoặc ultrawide, kiểu bố trí cửa sổ này là bắt buộc (komorebi có hỗ trợ)
Với nhiều người thì có thể là chưa đủ, nhưng với kiểu dùng như tôi — chủ yếu chỉ dùng một cửa sổ trên Mac hoặc chỉ dùng hai màn hình khi cắm màn hình ngoài — thì tính năng mặc định này là đủ rồi Hướng dẫn chia cửa sổ chính thức của macOS (tôi không phải người dùng xếp ô nặng)
Lý do chế độ toàn màn hình và cử chỉ trackpad trên macOS hấp dẫn đến vậy là vì trong phần lớn trường hợp, bạn chỉ làm việc với một cửa sổ. Nhưng khi cần đồng thời mở terminal, editor, DevTools của trình duyệt, log, tài liệu... thì khả năng dự đoán bố cục trở nên cực kỳ quan trọng. Công cụ xếp ô không chỉ đơn giản là đặt hai cửa sổ cạnh nhau, mà còn
Trên Mac tôi giải quyết được khoảng 80% bằng Rectangle hoặc Moom, còn lại thì dùng Aerospace hoặc Rift. Khi số lượng cửa sổ hoặc tần suất chuyển đổi cao, tính hữu dụng của trình quản lý cửa sổ xếp ô trở nên rất rõ ràng
Có thời điểm tôi định tự làm trình quản lý cửa sổ của riêng mình, nhưng nhanh chóng bỏ cuộc vì macOS không có API tử tế cho việc đó. Trên thực tế gần như phải “hack” bằng Accessibility API để dùng. Dự án này cũng dùng Objective C bindings và Accessibility API, nên tôi tò mò về việc debug, triển khai tính năng, hoặc họ chủ yếu dùng công cụ gì
Gần đây tôi cũng đã trải qua một khoảng thời gian vất vả để chỉnh Aerospace thật vừa tay. Tôi tò mò mọi người xử lý thế nào khi có quá nhiều phím tắt bị trùng. Vì đã quá quen với tổ hợp hjkl nên tôi luôn muốn gán phần lớn vào đó, và tính năng chế độ modal của Aerospace giúp giải quyết xung đột phím tắt phần nào. Cuối cùng mọi người thường thiết lập theo hướng nào?
go-to,move-tođể chuyển nhanh cửa sổ theo chữ cái/số). Nó giống như phiên bản mở rộng của trải nghiệm dựa trên leader key trong zellij/tmux ở terminal nên tôi khá hài lòng. Một khó khăn là Aerospace hay giấu cửa sổ sau khi chuyển màn hình, nên tôi thường phải mò tìm ở góc dướiDùng Hammerspoon thì có thể tự làm trình quản lý cửa sổ. Tôi thích kiểu modal mà Divvy cung cấp (một phím lệnh đơn để đổi bố cục), nhưng tiếc là nó không còn được bảo trì nữa. Vì vậy tôi đã tự làm một trình quản lý cửa sổ kiểu modal bằng OpenAI Codex Mã nguồn window manager cho hammerspoon. Chia sẻ cách tiếp cận như vậy chắc sẽ khá thú vị!
Nếu là người dùng trackpad MacBook thì riêng Swish thôi đã áp đảo mọi ứng dụng khác rồi Trang chính thức của Swish
Có ai đã thiết lập cái này bằng nix flake chưa? Sau yabai tôi đang thử nhiều trình quản lý cửa sổ khác nhau, nhưng Aerospace thỉnh thoảng bị lag, có lẽ do xử lý sự kiện, khi tôi dùng sketchybar chỉ để hiển thị workspace cho đẹp. Có lẽ tiếp theo tôi cũng sẽ thử cái này (rift)
Tôi không hiểu vì sao lại cần trình quản lý cửa sổ xếp ô trên macOS. Cần đặt cửa sổ cạnh nhau thường xuyên đến mức nào? Chẳng phải chỉ cần mở hầu hết ứng dụng ở toàn màn hình rồi vuốt 4 ngón để đổi cửa sổ là đủ sao? Mong ai đó thuyết phục giúp