GNU/Linux >> Belajar Linux >  >> Ubuntu

Jadikan Wmctrl Abaikan Windows Workspace Selain Saat Ini?

Saya sangat bergantung pada wmctrl untuk beralih antar windows, pada dasarnya untuk menghindari mengetik alt-tab berkali-kali. Saya selalu menggunakan satu ruang kerja tetapi sekarang saya ingin mulai menggunakan lebih dari satu.

Saya bertanya-tanya apakah mungkin untuk mengubah konteks wmctrl sehingga ketika saya mengetik wmctrl -l , hanya jendela dari ruang kerja saat ini yang ditampilkan, bukan semua jendela dari semua ruang kerja.

Misalnya, dengan asumsi saya membuka jendela Firefox di ruang kerja 1. Saya memiliki pintasan keyboard di ctrl+alt+f yang mengeksekusi wmctrl -a firefox , yang beralih ke Firefox. Jika saya membuka jendela Firefox baru di ruang kerja 2 dan ketik ctrl+alt+f , itu akan beralih ke jendela di ruang kerja 1, yang bukan yang saya inginkan.

Adakah saran/ide tentang cara mengatasi ini?

EDIT :Saya menggunakan compiz (Unity)

Jawaban yang Diterima:

Jika Anda menggunakan Compiz (jalankan wmctrl -m jika tidak yakin), wmctrl hanya melihat 1 desktop (bidang ke-2 dari wmctrl -l, yaitu 0) tetapi Anda dapat menggunakan opsi geometri (-G) untuk mengetahui jendela apa pada desktop virtual apa. Semua jendela di desktop Anda saat ini akan memiliki posisi x antara 0 dan lebar layar Anda. Sama untuk posisi y antara 0 dan tinggi layar Anda.
Jadi Anda bisa menggunakan sesuatu seperti itu

#!/bin/bash

SCREEN_W=$(xwininfo -root | sed -n 's/^  Width: (.*)$/1/p')
SCREEN_H=$(xwininfo -root | sed -n 's/^  Height: (.*)$/1/p')

NAME='Navigator.Firefox'

wmctrl -xlG | awk -v W="$SCREEN_W" -v H="$SCREEN_H" -v NAME="$NAME" '$7==NAME && $3>=0 && $3<W && $4>=0 && $4<H {print $1}' | while read WINS; do wmctrl -ia "$WINS"; done

exit 0

Anda dapat membuat hardcode lebar dan tinggi layar Anda jika Anda mau, dan NAME jika Anda menginginkan satu baris.
Saya tidak yakin bagaimana Anda ingin menangani beberapa jendela yang cocok dengan NAME. Itu akan memfokuskan mereka semua.

Untuk metacity, nomor desktop windows dapat ditemukan menggunakan wmctrl -l dan menangkap bidang ke-2.


Ubuntu
  1. Bagaimana Cara Membuat Lenovo Ideapad Z510 Sebagai Dual Boot?

  2. Buat perintah untuk Windows - opsi yang memungkinkan?

  3. Bagaimana cara membuat paket pengujian Travis CI untuk Linux, OS X, Windows?

  1. Cara Membuat Server Minecraft dengan Hostinger, Ubuntu, Windows, dan macOS

  2. Bagaimana Cara Membuat Cifs/smb Mount Abaikan Umask?

  3. Bagaimana Cara Menggunakan Unetbootin Untuk Membuat Penginstal Usb Windows yang Dapat Di-boot?

  1. Cara Membuat curl Abaikan Kesalahan Sertifikat

  2. Sekarang Sangat Mudah untuk Membuat Ubuntu Terlihat seperti Windows

  3. Bagaimana Agar Ibus Tidak Abaikan ~/.xcompose?