Melihat paket contrib XMonad , Anda akan menemukan XMonad.Actions.WindowGo
, yang mengekspor fungsi berikut :
runOrRaiseMaster :: String -> Query Bool -> X ()
yang membutuhkan argumen string dari program untuk dijalankan , misalnya "firefox"; dan permintaan boolean yang digunakan untuk mencari tahu apakah sudah berjalan , melalui properti X11, misalnya (className =? "Firefox")
(lihat bagian atas XMonad.Actions.WindowGo
halaman untuk varian).
Jadi, yang Anda butuhkan hanyalah mengikat runOrRaiseMaster "firefox" (className =? "Firefox")
ke kunci yang Anda inginkan, seperti yang dijelaskan dalamXMonad.Doc.Extending
, via
((modMask, xK_f ), runOrRaiseMaster "firefox" (className =? "Firefox"))
sebagai bagian dari ikatan utama Data.Map
dari konfigurasi Anda (detail berbeda dengan cara Anda mengaturnya, yaitu keseluruhan Anda xmonad.hs
, lihat Menambah Gantungan Kunci ).
Perhatikan bahwa tidak ada arti nyata dalam memaksimalkan jendela di XMonad. Ketika Anda mengatur semuanya seperti yang dijelaskan, Anda akan Mod4+ fbertindak sebagai berikut:
- jika ada jendela dengan pencocokan nama kelas "Firefox", itu akan difokuskan dan ditetapkan untuk dikuasai , yaitu, tergantung pada tata letak Anda saat ini , akan menjadi jendela besar
- jika tidak ada pertandingan jendela, Firefox akan melahirkan dan diatur untuk menguasai .
Memaksimalkan dapat ditiru dengan memilih Full
tata letak setelah menelepon runOrRaiseMaster
, seperti yang dijelaskan di sini :
("M-<F1>", sendMessage $ JumpToLayout "Full")
(perhatikan bahwa contoh ini juga menunjukkan XMonad.Util.EZConfig
memungkinkan definisi pengikat kunci yang lebih mudah)
Menggabungkan dua hal ini juga dimungkinkan. Keduanya bertipe X ()
, yaitu, mereka berada di X Monad . Menggunakan >>
, yang merupakan tipe (cek dengan :t (>>)
di ghci
)
(>>) :: Monad m => m a -> m b -> m b
kami memiliki (runOrRaiseMaster "firefox" (className =? "Firefox")) >> (sendMessage $ JumpToLayout "Full")
kombinasi dua X ()
jenis tipe X ()
juga, dan dengan demikian dapat diikat ke kunci.
EDIT Hilang )
pada baris kode dengan>>
Edit2 modm
-> modMask
.
Sunting3 Semoga ini xmonad.hs
berhasil.
( Kenapa tidak belajar kamu Haskell untuk selamanya? )