3 poin oleh GN⁺ 2025-02-10 | 1 komentar | Bagikan ke WhatsApp
  • FlashSpace adalah manajer ruang kerja virtual yang melengkapi atau menggantikan Spaces bawaan macOS, dengan tujuan perpindahan ruang kerja yang cepat tanpa menunggu animasi macOS
  • Setiap ruang kerja dapat ditetapkan ke aplikasi dan layar tertentu, lalu saat berpindah, aplikasi yang ditetapkan pada layar tersebut akan ditampilkan sementara aplikasi lain disembunyikan, sehingga mendukung perpindahan multi-layar yang independen
  • Menyediakan Space Control, Workspace Switcher berbasis Option + Tab, Focus Manager, profil, gesture swipe, Floating Apps, konfigurasi JSON/YAML/TOML, CLI, serta integrasi SketchyBar dan Raycast
  • Memerlukan macOS 14.0 atau lebih baru dan pengaturan “Displays have separate Spaces”, serta mendukung instalasi Homebrew, unduhan biner, dan build dari source
  • Tidak mendukung ruang kerja per jendela maupun manajemen layout, dan tetap memakai desain yang berpusat pada tampil/sembunyi aplikasi karena ketiadaan API publik macOS untuk menyembunyikan jendela tertentu serta demi kesederhanaan dan performa

Apa yang dilakukan FlashSpace

  • FlashSpace adalah manajer ruang kerja virtual untuk macOS yang dirancang untuk melengkapi dan menggantikan macOS Spaces bawaan
  • Tujuannya adalah perpindahan ruang kerja yang cepat tanpa harus menunggu animasi macOS
  • Setiap ruang kerja dapat diberi aplikasi, dan ruang kerja itu sendiri dapat ditetapkan ke layar tertentu
  • Saat berpindah ke suatu ruang kerja, aplikasi yang ditetapkan akan otomatis ditampilkan, sementara aplikasi lain pada layar yang sama akan disembunyikan
  • Ruang kerja dapat dipindahkan secara independen di beberapa layar

Instalasi dan alur penggunaan dasar

  • Persyaratannya adalah macOS 14.0 atau lebih baru dan mengaktifkan “Displays have separate Spaces” di pengaturan sistem Desktop & Dock
  • Metode instalasi yang didukung adalah Homebrew, unduhan biner rilis, dan build dari source
    • Perintah instalasi Homebrew adalah brew install flashspace
    • Biner dapat diunduh dari Releases Page
  • Alur penggunaan dasarnya adalah sebagai berikut
    • Pindahkan semua aplikasi ke satu macOS Space per layar
    • Buat ruang kerja
    • Tetapkan aplikasi
    • Tetapkan layar ke ruang kerja atau gunakan mode dinamis
    • Atur shortcut untuk aktivasi cepat
    • Terapkan prosedur yang sama ke ruang kerja lain
    • Berpindah ke ruang kerja yang telah diatur lewat shortcut
  • Untuk mempertahankan aplikasi yang sama di beberapa ruang kerja, gunakan fitur Floating Apps di pengaturan aplikasi, atau tambahkan aplikasi ke beberapa ruang kerja dari jendela utama aplikasi

Fitur utama

  • Menyediakan perpindahan ruang kerja yang cepat dan dukungan multi-layar
  • Space Control adalah fitur untuk melihat pratinjau semua ruang kerja dalam bentuk grid dan berpindah di antaranya
    • Anda dapat berpindah ruang kerja dengan 0-9 dan tombol arah
  • Workspace Switcher secara default menampilkan daftar ruang kerja dan berpindah dengan Option + Tab
    • Bekerja dengan cara yang mirip dengan pengalih aplikasi macOS CMD + Tab
  • Focus Manager memungkinkan fokus dipindahkan ke arah yang diinginkan antarjendela dengan shortcut, dan juga mendukung lompatan antar layar
  • Fitur lainnya mencakup
    • Mengaktifkan ruang kerja setelah mendeteksi fokus aplikasi
    • Cursor manager yang otomatis memusatkan kursor ke jendela aktif
    • Profiles untuk mengubah banyak pengaturan dengan cepat
    • Menu bar yang dapat menampilkan ikon dan teks per ruang kerja
    • Kustomisasi perilaku gesture swipe trackpad
    • Konfigurasi berbasis GUI dan file konfigurasi
    • Dukungan format file konfigurasi JSON, YAML, TOML
    • Kontrol aplikasi melalui CLI
    • Dukungan Picture-in-Picture
    • Integrasi SketchyBar
    • Dukungan ekstensi Raycast

Cara penetapan layar

  • FlashSpace mendukung dua metode penetapan layar: mode statis dan mode dinamis
  • Mode statis adalah nilai default, yang menetapkan setiap ruang kerja ke layar tertentu
    • Cocok untuk pengguna yang menginginkan ruang kerja khusus per layar seperti di macOS Spaces
    • Bisa menyulitkan jika Anda memakai banyak layar dan sering mengubah susunannya
  • Mode dinamis secara otomatis menetapkan setiap ruang kerja ke layar tempat aplikasi ruang kerja tersebut berada
    • Satu ruang kerja dapat ditampilkan di beberapa layar sekaligus
    • Berguna saat Anda ingin menata ulang ruang kerja dengan memindahkan aplikasi antar layar
    • Dalam mode ini, ruang kerja kosong tidak dapat ditampilkan
  • Mode penetapan layar dapat diubah di Workspaces pada pengaturan aplikasi

Dukungan Picture-in-Picture dan batasannya

  • FlashSpace mendukung mode Picture-in-Picture, tetapi ini adalah fitur eksperimental
  • Fitur ini dapat dinonaktifkan di App Settings -> Workspaces
  • macOS tidak menyediakan API publik untuk menyembunyikan hanya jendela tertentu, dan jika aplikasi disembunyikan maka jendela PiP juga ikut tersembunyi
  • Untuk mengatasi masalah ini, FlashSpace mengidentifikasi apakah aplikasi mendukung PiP lalu menyembunyikan semua jendela ke sudut layar kecuali jendela PiP
  • Jika jendela PiP tidak terlihat, perilaku standar akan diterapkan
  • Browser yang didukung adalah Safari, Zen Browser, Chrome, Firefox, Brave, Vivaldi, Arc, Dia, Opera, Microsoft Edge, dan Comet
  • Jika bahasa browser tidak diatur ke English, fitur ini mungkin tidak berfungsi

Prinsip desain dan hal yang sengaja tidak didukung

  • Nilai proyek ini adalah performa, kesederhanaan, stabilitas, perilaku yang tidak mengganggu, dan filosofi UNIX
  • FlashSpace memandang manajemen ruang kerja sebagai satu pekerjaan, lalu fokus melakukannya dengan baik
  • Perilaku yang tidak mengganggu

    • FlashSpace tidak secara agresif mengelola jendela
    • Jika setelah berpindah ke suatu ruang kerja Anda memanggil aplikasi yang tidak ditetapkan ke ruang kerja itu, aplikasi tersebut akan tampil di atas aplikasi ruang kerja
    • Perilaku ini memungkinkan akses cepat ke aplikasi lain sambil menghindari glitch atau perpindahan ruang kerja
    • Pada tiling window manager, glitch sering muncul karena popup atau dialog yang tidak dikonfigurasi
    • FlashSpace berinteraksi dengan sistem tanpa mengganggu dengan cara tidak mengelola jendela dan aplikasi yang tidak ditetapkan
  • Tidak mendukung ruang kerja per jendela aplikasi individual

    • FlashSpace tidak mendukung konsep membagi jendela individual suatu aplikasi per ruang kerja
    • Ini adalah keputusan yang disengaja agar tetap sederhana dan cepat
    • Ia mengandalkan fungsi tampil/sembunyi bawaan untuk mengelola dan memindahkan ruang kerja secara efisien
    • Pendekatan ini lebih baik untuk baterai dan tidak merusak fitur sistem seperti Mission Control
    • Dukungan per jendela akan menambah kompleksitas besar dan dapat berdampak negatif pada performa
    • macOS tidak memiliki API publik untuk menyembunyikan jendela tertentu, dan pilihan saat ini hanyalah memindahkan jendela ke sudut layar atau meminimalkannya, yang keduanya bukan pengalaman pengguna ideal
  • Tidak mendukung layout

    • FlashSpace tidak mendukung pemindahan jendela, pengubahan ukuran, atau perubahan layout
    • Fitur ini dapat sangat menambah kompleksitas dan berdampak negatif pada performa
    • Dibutuhkan banyak pekerjaan untuk mendukung semua edge case dan glitch
    • Karena dapat digunakan bersama aplikasi manajemen jendela seperti Magnet, Rectangle, dan Raycast, fitur tersebut tidak diduplikasi

Integrasi, CLI, build

  • Dapat diintegrasikan dengan SketchyBar dan lainnya, serta menjalankan skrip yang dapat dikonfigurasi saat ruang kerja berubah
  • CLI mendukung pengelolaan ruang kerja, aplikasi, dan profil
    • Harus dipasang terlebih dahulu dari CLI di pengaturan aplikasi
    • Anda dapat melihat perintah yang tersedia dengan flashspace --help
  • Build dari source menggunakan XcodeGen untuk membuat proyek Xcode dari project.yml
    • Setelah clone repositori, pasang dependensi dengan brew bundle
    • Jalankan xcodegen generate lalu buka FlashSpace.xcodeproj di Xcode untuk build
    • Setiap kali mengganti branch atau menarik perubahan, Anda harus menjalankan kembali xcodegen generate
    • Untuk membuat proyek termasuk pengaturan penandatanganan, Anda dapat menggunakan XCODE_DEVELOPMENT_TEAM=YOUR_TEAM_ID xcodegen generate

Tips penggunaan

  • macOS memiliki bug di mana aplikasi bisa muncul di layar yang salah setelah mode sleep
    • Ini terjadi jika aplikasi disembunyikan selama sleep
    • Menyalakan semua layar sebelum login setelah bangun dapat membantu aplikasi tampil di layar yang benar
  • macOS 15 menyediakan fitur pemindahan dan pengubahan ukuran jendela tanpa aplikasi pihak ketiga
    • Anda dapat melihat submenu Move & Resize di Window pada menu bar
    • Penyesuaian shortcut terbatas, dan pendekatan yang lebih fleksibel adalah memakai aplikasi manajemen jendela seperti Raycast atau Magnet
  • Perpindahan fokus antarjendela dari aplikasi yang sama dapat dilakukan dengan shortcut macOS Cmd + `
  • SKHD adalah alat CLI untuk mendefinisikan shortcut global kustom, dan dapat digunakan bersama FlashSpace CLI
  • Pengguna Raycast dapat mengelola FlashSpace tanpa meninggalkan keyboard melalui ekstensi Raycast

1 komentar

 
GN⁺ 2025-02-10
  • Penasaran apakah ini kompatibel dengan Amethyst. Saya ingin jendela tiling, tetapi tidak ingin ada jeda saat berpindah ruang kerja

  • Sangat bagus! Semoga bisa menambahkan tampilan grid untuk ruang kerja. Kangen TotalSpaces

  • Timing yang tepat. Saya baru saja mengeksplorasi opsi lagi di area ini dan memutuskan memakai Aerospace. Akan mencoba produk ini

  • Terima kasih! Baru saja saya instal dan sejauh ini berjalan dengan baik

  • Saya sudah memakai AeroSpace untuk tujuan ini selama lebih dari 1 tahun. Saya menonaktifkan semua fitur tiling di pengaturan dan hanya memakai dua shortcut: pindah ke ruang kerja dan pindahkan jendela saat ini ke ruang kerja. Ini wajib saat bekerja di layar kecil

    • AeroSpace memang mengalami masalah performa, tetapi tampaknya ini adalah masalah yang melekat pada API macOS yang tersedia
    • FlashSpace tampaknya juga mengalami masalah ini
    • Soal pengaturan, saya merasa repot harus menetapkan shortcut per ruang kerja. Di AeroSpace, semua huruf dan angka di keyboard otomatis menjadi ruang kerja dan shortcut-nya bersifat global
    • Dengan mempertimbangkan semua ini, saya lebih memilih alat yang tujuan utamanya adalah memperbaiki masalah ruang kerja macOS
    • Dari pengujian tambahan, FlashSpace tidak mendukung jendela lain dari aplikasi yang sama di ruang kerja yang berbeda. Ini masalah besar bagi alur kerja saya