วิธีหยุดการเรียงลำดับใหม่ของหน้าต่างแสดงตัวอย่างหลายชนิดเดียวกันในการสลับงาน


21

เมื่อใช้การสลับงานในโหมดกราฟิกเริ่มต้นของ Ubuntu 12.04 หากเป็นหน้าต่างเดียวกันหลายประเภทเช่น หน้าต่างเทอร์มินัลหลายบานคุณสามารถเห็นหน้าต่างทั้งหมดพร้อมกันและเลือกหน้าต่างที่คุณต้องการ

ป้อนคำอธิบายรูปภาพที่นี่

ปัญหาของฉันคือลำดับของหน้าต่างเหล่านี้มีการเปลี่ยนแปลงตลอดเวลา มันเป็นไปตามคำสั่ง "ใช้ครั้งสุดท้าย" ฉันต้องการพวกเขาในลำดับการแก้ไขเสมอ ฉันจะทำมันได้อย่างไร


3
คุณสมบัติที่น่ารำคาญมาก ฉันถามคำถามเดียวกันที่นี่askubuntu.com/questions/271506/แต่น่าเสียดายที่ยังไม่มีคำตอบ
gumkins

5
"ปัญหา" นี้มีอยู่ใน 14.04 เช่นกัน! หน้าต่างเหล่านี้ควรได้รับคำสั่งจริง ๆ ตามตำแหน่งสัมพัทธ์บนหน้าจอและเดสก์ท็อปเมื่อมีการแสดงตัวอย่างหน้าต่างจากเดสก์ท็อปมากกว่าหนึ่ง เฉพาะเมื่อมีแม่ม่ายตัวหนึ่งวางอยู่ด้านบนของอีกอันหนึ่ง (วัดในช่วงของพิกเซลที่แน่นอน) หากตำแหน่งของภาพตัวอย่างนั้นขึ้นอยู่กับกฎ "ใช้แล้ว" ฉันยังต้องการ "ปรับแต่ง" อีกหนึ่งกฎนี้: ใช้การตั้งค่าภาษาของภูมิภาคของข้อความ "จากซ้ายไปขวา" หรือ "ขวาไปซ้าย" เพื่อตัดสินใจว่าด้านใดของหน้าจอถือว่าเป็น "ครั้งแรก" - - ทางซ้ายหรือทางขวา
PJ Singh เมื่อ

1
วิธีแก้ปัญหาที่เป็นไปได้คือการจัดเรียงหน้าต่างตามลำดับที่สร้างขึ้น แต่อย่างน้อยก็คงการแก้ไขตามลำดับ ฉันต้องการคำสั่งแบบสุ่ม แต่มีความเสถียรมากกว่าความยุ่งเหยิงนี้ฉันรู้สึกว่าฉันกำลังเล่นปาหี่อยู่ตลอดเวลา
Minos

1
ฉันเชื่อว่าสิ่งนี้จะต้องเปลี่ยนรหัสความสามัคคี คุณอาจเริ่มต้นที่นี่: unity3d.com/learn/documentation
Elder Geek

ฉันยังคงมีปัญหานี้ในปี 2018 เวอร์ชัน 18.04 น่ารำคาญสุด ๆ
Jesse Busman

คำตอบ:


2

แทนที่จะเปลี่ยนรหัสฐานความสามัคคีคุณอาจพิจารณาใช้เดสก์ท็อปเพื่อให้ได้ผลลัพธ์ที่ต้องการ

ตัวอย่างการใช้ Compiz Desktop Cube ใน CompizConfigSettingsManager

เปิด CompizConfigSettingsManager ( ccsm) และเปลี่ยนการตั้งค่าให้ตรงกับสิ่งต่อไปนี้:

ccsm-1

ccsm-2

เปิดเทอร์มินัล 1

ใช้แป้นพิมพ์ลัด CTRL-ALT -> (ลูกศรขวา) เพื่อไปที่เดสก์ท็อปถัดไปทางขวา

เปิดเทอร์มินัล 2

ใช้แป้นพิมพ์ลัด CTRL-ALT -> (ลูกศรขวา) เพื่อไปที่เดสก์ท็อปถัดไปทางขวาอีกครั้ง

เปิดเทอร์มินัล 3

ใช้แป้นพิมพ์ลัด CTRL-ALT - <- (ลูกศรซ้าย) เพื่อไปที่เดสก์ท็อปก่อนหน้าซึ่งมีเทอร์มินัล 2 (หรือสองครั้งเพื่อกลับไปที่เทอร์มินัล 1)

ตัวเลือกอื่น

ใช้ตัวจัดการวิวพอร์ตใน CompizConfig SettingManager และกำหนดคีย์ผสมเพื่อไปยังเดสก์ท็อปที่คุณเลือกโดยตรง

หมายเหตุ:จนถึงตอนนี้ฉันสามารถทำงานได้เพียง 10 ชิ้นเท่านั้นแม้ว่าวิธีนี้จะเป็นไปได้ 12 ข้อก็ตาม ccsm-3

ปรับปรุง:ขึ้นอยู่กับข้อกังวลที่แสดงออกในความคิดเห็น:

เพียงคลิกขวาบนแถบชื่อ gedit และเลือกบนพื้นที่ทำงานที่มองเห็นได้เสมอ ...

ตัวเลือกอื่น:

แทนที่จะเปิดเทอร์มินัลแยกต่างหาก (หรือพื้นที่ทำงาน) สำหรับกิจกรรมมากมายของคุณคุณยังสามารถใช้แท็บในเทอร์มินัล gnome ปุ่มทางลัดสำหรับการสลับแท็บพร้อมใช้งานจากการตั้งค่าเครื่อง ดูด้านล่าง:

ขั้วตั้งค่า


หากฉันเข้าใจถูกต้องสิ่งนี้จะทำให้ฉันต้องใช้ทางลัดอื่นหรือ clicky-way เพื่อสลับงาน สามารถทำได้ฉันเดา อย่างไรก็ตามฉันจะโคลนหน้าต่างที่ไม่ใช่เทอร์มินัลทั้งหมดที่ฉันต้องการซึ่งปกติจะมีเพียง 1 อินสแตนซ์สำหรับเดสก์ท็อปทั้งหมดเมื่อฉันต้องการหรือต้องการการโต้ตอบนั้นอย่างรวดเร็วและเป็นไปได้ระหว่างเทอร์มินัลกับหน้าต่างอื่น ๆ
n611x007

คุณต้องการกี่อินสแตนซ์ การใช้ตัวจัดการวิวพอร์ตจะทำให้คุณเปิดใช้งานคีย์บอร์ดนานถึง 12 ปี นั่นคือ "clicky" หรือไม่?
เอ็ลเดอ

ดูเพิ่มเติมได้ที่askubuntu.com/questions/34572/…
ผู้สูงอายุ Geek

ฉันคิดว่าฉันเข้าใจผิด ... พื้นที่ทำงานเพียงพอ ขอผมลองใส่แบบนี้นะ ตัวอย่างสมมุติ ก่อนหน้านี้: เทอร์มินัล 3 แห่ง, 't1', 't2', 't3', + 1 ช่องหน้าต่าง ฉันคัดลอกวางไปมาระหว่าง gedit และ 't1' และ 't2' ลำดับสวิตช์งานไม่ดี Aftter (ใช้วิธีแก้ปัญหาของคุณ): ฉันมีเทอร์มินัล 3 แห่งในพื้นที่ทำงาน 3 แห่งคือ 'w1', 'w2', 'w3' ตามลำดับหน้าต่าง gedit ที่ 'w1' ฉันต้องคัดลอก - วางระหว่าง gedit และ 't1' และ 't2' ฉันจะคัดลอกวางระหว่าง 't2' และ gedit บน 'w2' ได้อย่างสะดวกสบายที่สุดได้อย่างไร
n611x007

ฉันไม่มีปัญหาการคัดลอกและวางระหว่างพื้นที่ทำงานดังนั้นฉันไม่แน่ใจว่าสิ่งที่คุณถาม เนื่องจาก "วิธีที่สะดวกสบายที่สุด" เป็นเรื่องของความคิดเห็นมากกว่าความจริงที่สามารถวัดได้คุณมีคำขอโทษ แต่ฉันไม่คิดว่าฉันจะตอบได้อย่างมีเหตุผล
เอ็ลเดอ

1

อีกตัวเลือกหนึ่งถ้าเดสก์ท็อปของคุณมีขนาดใหญ่พอให้ตั้งค่าหน้าต่างบางส่วนเป็น "อยู่ด้านบนเสมอ" และจัดเรียงหน้าต่างไว้รอบ ๆ เพื่อให้คุณสามารถสลับการใช้เมาส์ได้ มันเป็นกระบอง ... แต่บางครั้งฉันก็พบว่ามันมีประโยชน์เมื่อทำงานกับหลาย ๆ หน้าต่างในประเภทเดียวกัน

อีกวิธีหนึ่งคือการกำหนดโปรไฟล์เทอร์มินัลหลายรายการที่มีโครงร่างสีแตกต่างกันและใช้โปรไฟล์ที่แตกต่างกันสำหรับแต่ละเทอร์มินัล ... มันจะทำให้ง่ายต่อการระบุ ป้อนคำอธิบายรูปภาพที่นี่ ใช่นี่เป็นวิธีแก้ปัญหาด้วยเช่นกัน


1

ผมคิดว่าคุณสามารถบรรลุนี้โดยการปรับเปลี่ยนรหัสที่มาของความสามัคคี 7 เพียงทำตามขั้นตอนที่อธิบายไว้ในเว็บไซต์นักพัฒนาซอฟต์แวร์ แต่ก่อนที่จะเริ่มกระบวนการสร้างเปิด: ./trunk/plugins/unityshell/src/unityshell.cppและดูSetUpAndShowSwitcherฟังก์ชั่น:

void UnityScreen::SetUpAndShowSwitcher(switcher::ShowMode show_mode)
{
  RaiseInputWindows();

  if (!optionGetAltTabBiasViewport())
  {
    if (show_mode == switcher::ShowMode::CURRENT_VIEWPORT)
      show_mode = switcher::ShowMode::ALL;
    else
      show_mode = switcher::ShowMode::CURRENT_VIEWPORT;
  }

  auto results = launcher_controller_->GetAltTabIcons(show_mode == switcher::ShowMode::CURRENT_VIEWPORT,
                                                      switcher_controller_->show_desktop_disabled());

  if (switcher_controller_->CanShowSwitcher(results))
    switcher_controller_->Show(show_mode, switcher::SortMode::FOCUS_ORDER, results);
}

ที่นี่คุณสามารถเห็นได้อย่างชัดเจนว่านี่เป็นฟังก์ชั่นที่เรากำลังมองหา ส่วนบนรับผิดชอบการสลับโหมดวิวพอร์ต:

แสดงโหมด

การสลับนี้จะปรากฏขึ้นทุกครั้งที่เราย้ายเข้ากลุ่มของแอพหรือหากเราย้ายออกจากกลุ่ม optionGetAltTabBiasViewportบ่งบอกว่าสิ่งนี้เกิดขึ้นเมื่อใด จากนั้นGetAltTabIconsมีส่วนร่วมเพื่อให้ได้ไอคอนที่ถูกต้อง และในที่สุดShowฟังก์ชั่นที่มีปุ่มSortMode::FOCUS_ORDERถูกเรียกเพื่อแสดงไอคอนที่เรียงลำดับของเรา SortMode เป็น Enum:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

และการเปลี่ยนFOCUS_ORDERเป็นLAUNCHER_ORDERควรแก้ปัญหาของคุณ คุณสามารถเพิ่มคำสั่งเพิ่มเติมก่อนการเรียกShowเพื่อป้องกันการเรียงลำดับตัวเรียกใช้ในShowMode::ALLกรณี

โปรดทราบว่าซอร์สโค้ดของ Unity 8 นั้นดูแตกต่างอย่างสิ้นเชิง ดังนั้นวิธีนี้อาจใช้ได้กับ Unity 7 เท่านั้น หลังจากครึ่งชั่วโมงแก้ไขการอ้างอิงที่หายไปและหลังจากนั้นอีกหนึ่งชั่วโมงในการต่อสู้กับ cmake ฉันตัดสินใจที่จะไม่ทำลายระบบของฉันและลองใช้กับ VM ในวันพรุ่งนี้;)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.