Gagasan berikut menunjukkan cara yang nyaman di mana pengguna dapat memindahkan jendela yang ditandai dari ruang kerja apa pun ke yang aktif di lingkungan XFCE.
MOVABLE_WINDOW_IDX , di mana MOVABLE_WINDOW_IDX dapat berupa bilangan bulat mulai dari 0 hingga 9 .Super+Shift+Key_MOVABLE_WINDOW_IDX untuk menandai jendela aktif itu, dan untuk menetapkan ID jendela bergerak yang sesuai sebagai MOVABLE_WINDOW_IDX .Super+Key_MOVABLE_WINDOW_IDX . Key_MOVABLE_WINDOW_IDX murni tergantung pada preferensi kunci keyboard pengguna. Salah satu cara untuk mengimplementasikan konsep ini adalah melalui instruksi berikut. Perlu dicatat bahwa metode ini tergantung pada paket apt xdotool dan wmctrl .
.window_summoner .get_window_id.py dan akan berisi konten berikut import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ] = rm_newline ( subprocess . check_output ([ 'xdotool' , 'getactivewindow' ]). decode ( sys . stdout . encoding ))
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'w' ) as file :
MOVABLE_WINDOWS_ID = file . write ( ' ' . join ( MOVABLE_WINDOWS_ID )) File lainnya adalah summon_window.py dengan kontennya
import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
os . system ( """wmctrl -ir %s -t $(wmctrl -d | grep "*" | cut -d' ' -f1)""" % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))
os . system ( 'xdotool windowactivate %s' % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))Untuk mogok
wmctrl -ir $MOVABLE_WINDOW_ID -t $(wmctrl -d | grep "*" | cut -d' ' -f1) :
wmctrl : Utilitas baris perintah yang dapat berinteraksi dengan dan memanipulasi jendela sistem X Window.
-ir $MOVABLE_WINDOW_ID : Bendera -ir memberitahu wmctrl untuk "berinteraksi dengan jendela dengan ID numerik yang diberikan". $MOVABLE_WINDOW_ID adalah variabel bash yang berisi ID numerik dari jendela yang ingin kami pindahkan.
-t $(wmctrl -d | grep "*" | cut -d' ' -f1) : Bendera -t memberitahu wmctrl untuk "memindahkan jendela ke desktop dengan indeks yang diberikan". $(wmctrl -d | grep "*" | cut -d' ' -f1) adalah substitusi perintah yang mendapatkan indeks desktop/workspace yang saat ini aktif. Inilah yang terjadi dalam substitusi perintah itu:
wmctrl -d : Daftar semua desktop/ruang kerja yang tersedia.grep "*" : Filter untuk desktop/workspace yang saat ini aktif, yang ditunjukkan oleh tanda bintang ( * ) dalam output wmctrl -d .cut -d' ' -f1 : Mengekstrak bidang pertama (yang merupakan indeks desktop/ruang kerja) dari output grep "*" . Dua file yang tersisa adalah movable_window_id_list.txt dan initial_movable_window_id_list.txt . Keduanya harus berisi
0 0 0 0 0 0 0 0 0 0
Di mana file terakhir harus hanya baca, berfungsi semata-mata sebagai prototipe nilai awal dari file txt lainnya.
Lakukan hal berikut untuk setiap integer keyboard MOVABLE_WINDOW_IDX Anda ingin aktif. Shortcut: Super+Shift+Key_MOVABLE_WINDOW_IDX → Perintah: python3 /home/$USER/.window_summoner/get_window_id.py MOVABLE_WINDOW_IDX
Pintasan: Super+Key_MOVABLE_WINDOW_IDX → perintah: python3 ~/.window_summoner/summon_window.sh MOVABLE_WINDOW_IDX
Di mana jelas Anda mengganti Key_MOVABLE_WINDOW_IDX dengan kunci pilihan Anda.
Contohnya adalah sebagai berikut
Pintasan: Super+Shift+1 → Perintah: source ~/.window_summoner/get_window_id.sh 1
Dan ini mengatur metode yang disebutkan yang memungkinkan pengguna untuk memindahkan jendela yang ditandai ke ruang kerja aktif mereka.