Tetapkan ruang kerja pada i3 ke beberapa tampilan

15

Saya sudah beralih menggunakan i3 di laptop Linux saya. Saya biasanya hanya menggunakan monitor internal laptop (display eDP1), tetapi ketika saya sedang bekerja saya cenderung menghubungkan monitor sekunder ke port HDMI komputer saya (display HDMI2). Sejauh ini, saya telah membuat ini berfungsi dengan baik dengan menambahkan perintah-perintah ini ke file konfigurasi i3 saya:

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

Dengan kata lain, ketika saya menghubungkan layar HDMI saya, saya cukup tekan Mod+ Muntuk mendapatkan i3 untuk mendeteksinya, letakkan di kanan layar utama saya, dan delegasikan 5 ruang kerja bernama (6-10) untuk itu.

Inilah masalahnya: Di rumah, saya memiliki monitor lain yang dapat saya hubungkan dengan VGA (layar DP2). Saya dapat menjalankan xrandrperintah di atas untuk menempatkan layar ini di sebelah kanan layar utama saya juga, tetapi saya tidak bisa membuat ruang kerja ditugaskan ke tampilan ini secara default, kecuali saya mengganti aturan yang sudah saya miliki untuk monitor HDMI saya. Saya ingin kedua ruang kerja ini bekerja sama, tidak peduli monitor mana yang saya gunakan, jadi ini bukan pilihan.

TL; DR Apakah ada cara untuk menetapkan ruang kerja ke dua tampilan yang berbeda, tergantung pada layar mana yang terhubung (dengan asumsi mereka tidak akan terhubung pada saat yang sama)?

Frxstrem
sumber

Jawaban:

21

Anda tidak dapat menetapkan beberapa hasil ke ruang kerja tunggal, lihat: https://github.com/i3/i3/issues/555

Jadi satu-satunya cara adalah mengubah konfigurasi i3 secara dinamis. Anda bisa menetapkan skrip hotkey yang akan melakukan 2 hal: mengubah output monitor dengan xrandrdan memindahkan ruang kerja dengan i3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

Dengan skrip di atas, Anda akan memindahkan 6-10 ruang kerja ke DP2 dan akhirnya tinggal di ruang kerja 10.

Pembaruan 2019: Penugasan beberapa hasil diterapkan mulai dari v4.16, lihat https://i3wm.org/docs/userguide.html#workspace_screen . Sekarang Anda bisa menggunakannya seperti itu:

workspace "6: S1" output HDMI2 VGA

Output pertama yang tersedia kemudian akan digunakan.

anlar
sumber
2

Menurut panduan pengguna , sintaksis:

workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA

harus bekerja.

Atau Anda dapat menentukan output utama pada mesin Anda, jika tidak disetel ( xrandr --output <output> --primary), dan gunakan sintaks ini:

workspace 1 output primary
...
workspace 6 output secondary
caseneuve
sumber