Gedit, nautilus'tan dosya açarken neden rasgele yeni örnekler açıyor?


32

Ah, Ubuntu'yu ve tüm özelliklerini nasıl seviyorum, ama bu "böcek" beni uzun zamandır sinir ediyor ve sonunda burada yardım istemeye karar verdim.

.phpNautilus ile açılacak olan bütün dosyaları nautilus'ta çift tıkladığımda belirledim. Şimdi, davranış garip.

  1. Çalışan hiçbir gedit yok
  2. Açılacak dosyayı çift tıklıyorum
  3. Bir gedit penceresi açılır ve dosya yüklenir
  4. Açılacak başka bir dosyayı çift tıklıyorum

Şimdi, 2 olası sonuç var:

5A) Dosya aynı gedit penceresinde yeni bir sekmede açılır

5B) Dosya, yeni bir gedit penceresinde açılır ve 2 gedi çalışmasına neden olur.

A veya B'nin gerçekleşmesi tamamen rastgele görünüyor ve sınırsız devam ediyor. Bu, 100 dosyaya çift tıklayacağım ve bazılarının 1 sekmesi, bazılarının 2 sekmesi, bazılarının 3 sekmesi olacağı 60 gedits ile bitebilirim ...

Bu son derece sinir bozucu ve bunun için bir düzeltme çok takdir edilecektir. Hiç kimse bu sorunu gidermeye çalıştı mı?

Bu, 10.04, 10.10 ve 11.10 Ubuntu'da oldu. Şimdiye kadar test ettiğim tüm Ubuntu sürümleri.

Yanıtlar:


39

Niye ya...

gedit yeni bir örnek açıp açmadığını veya mevcut bir örnek sekmesinde açılıp açılmadığını belirlemek için oldukça ilginç bir algoritmaya sahiptir.

İşlevdeki kaynak dosyada gedit-app.cbulunan static boolean is_in_viewportalgoritma, mevcut gedit örneğinin olup olmadığını test eder.

  1. aynı ekran numarasında ve görünen adda
  2. aynı çalışma alanında
  3. Görüntüleme portunun kenarlarının% 25'inden büyük

Hepsi doğruysa gedit aynı örnekte yeni bir sekmede açılır, aksi takdirde yeni bir pencerede açılır.

Özetle - davranışı değiştirmenin tek gerçekçi yolu algoritmayı değiştirmektir ...

Nasıl...

Aşağıdakiler, her zaman yeni bir örnek açacak ... gedit açmanın tutarlı bir yolunu bulmanın hızlı bir yoludur.

temel geliştirme araçlarını kurun

sudo apt-get install devscripts build-essential fakeroot 

kaynak almak

cd ~/Downloads
mkdir build
cd build
apt-get source gedit
cd gedit-3.2*

değişikliği yap

Gedit-app.c'yi açın

gedit gedit/gedit-app.c

görüntü tanımını buraya girin

return FALSE;gösterildiği gibi ekleyin ve kaydedin.

Bunun yaptığı şey, her zaman rutinden çıkıp "Vitrinlerde çalışmıyorum ve bu nedenle her zaman yeni bir örnek açıyorum" diyerek çıkmak.

Bunu kullanırsanız return TRUE;, her zaman mevcut bir gedit örneğinde yeni bir sekmede açılır ...

benzersiz bir paket adı verin

Tamam, depo güncellemelerinin değiştirilmiş paketinizin üzerine yazmasını önlemek için pakete benzersiz bir ad vermemiz gerekiyor

gedit debian/changelog

şimdi +yournameen üst satır versiyonuna ekleyin ve dosyayı kaydedin.

Not - kesinlikle emin olmak için - aşağıdaki değiştirilmiş paketi kurduktan sonra, aşağıdaki bağlantılı soruya göre sürümü kilitleyin.

görüntü tanımını buraya girin

paketi kurmak

sudo apt-get build-dep gedit
debuild -i -us -uc -b

Bir kahve içelim ...

cd ..
sudo dpkg -i gedit*.deb

Bağlantılı Soru:

  1. Belirli bir paketin güncellenmesi nasıl önlenir?

1
Bu, efendim, SICK! Çok teşekkürler, işe yarayacağını umuyorum ...
Richard Rodriguez

... kesinlikle testlerim sırasında yaptım ... NB - Diğer cevapları kullandım, kenarları üst üste getirmek için gedit sürüklerseniz, yeni bir örnek açılır, ancak masaüstünde gedit varsa, yeni örnek açılır. sekme. Yukarıdaki derleme ile - "return FALSE" veya "return TRUE" ile derlemeye bağlı olarak her zaman yeni bir örnekte veya sekmede açılır.
fossfreedom

Bu çözümü resmen onaylıyorum ÇALIŞMA!
Richard Rodriguez

3
kutsal sh * t @fossfreedom, size boyun eğiyorum efendim, bu sefer yaptınız, bu cevabın kalitesi ve çözümü imba. Eğer yapabilseydim bütün günü o oylama düğmesine basarak geçirirdim! Gj.
Bruno Pereira,

2
Bir config değişkenine sahip bir çekme isteği yapmak ve basit bir (sözde kod) yapmak "daha iyi olmuş gibi görünüyor" eğer $ config-değişken sonra FALSE döner. Önerilen yol sizi güncellemelerin süresiz olarak kilitlemesini engeller.
pbhj

13

Tüm dosyaların sadece bir gedit penceresinde açılmasını istedim. Bu bilgiyi başka bir yerde bulamadım, ancak aşağıdaki değişikliklerle tüm metin dosyalarının sadece bir pencerede yeni sekmeler olarak açılmasını sağladım, ne kadar fazla açtıklarıma bakmadım (başlatıcı, nautilus yoluyla, Gnome DO aracılığıyla).

  1. Ekran numarasını alın: echo $DISPLAYkomut satırına yazın. örneğin :0, ekran numaranız gibi olsun .

  2. /usr/share/applications/gedit.desktopBir metin düzenleyiciyle süper kullanıcı olarak açın .

  3. Satırı değiştir:

    Exec=gedit %U
    

    için

    Exec=gedit --display=:0 %U
    

    :0ekran numaranız nerede .


2
Gedit yeniden derleme ve garip paket hack yapmaktan çok daha iyi. Teşekkürler!
rcrogers

1
Bu seçenekle komut satırından çalıştırmak, gedityeni örnekler açılmasını engellemez (pencereler). En azından şu anki sürüm 3.18.
alfC

benim için 3.28.1 sürümünde hem komut satırından hem de kullanıcı arayüzünden çalışır. Yine de yeniden başlatılması gerekiyor
efie 12:18

2

Bu rastgele olmaz

Varsayılan olarak Gedit, her biri birer tane olmak üzere pek çok örnek açmak için yapılmamıştır. Eğer isnt henüz ekranda değil ise Gedit Gedit'i açacak dosyaları açıyorsa, şu anda cadıdaki dosya açıldı.

Böylece, tüm çalışma alanlarında açık olan bir gedit örneği oluşturabilirsiniz, böylece aktif göstergeyi takip eder. Ya da her bir çalışma alanında ve her biri kendi açık Gedit'lerine sahip her bir çalışma alanında çalışın. Klavye kısayollarında, tüm çalışma alanlarında pencere arıcılığını değiştirmek için yeni kısayollar oluşturabilirsiniz.

VEYA Birlikte Aç seçeneğinde kısayol komutunu kullanarak her zaman açık duruma getirmek mümkündür. gedit --new-window

Böylece sıfırlama ile açık php özelliklerini deneyebilir ve sadece Gedit ile yeni bir açılış koyabilirsiniz

kullanarak gedit --help-allgedit ile açılması diğer seçenek görürsünüz ÛLL.

Ve ayrıca tüm konfigürasyon dosyaları ile gedit kaldırmak ve kullanarak temiz yüklemeyi deneyebilirsiniz sudo apt-get purge gedit && sudo apt-get clean && sudo apt-get update && sudo apt-get install gedit

GÜNCELLEME: Pencereyi biraz ekrandan hareket ettirirken çoğaltabildim, sonra bazı dosyaları açmak yeni pencerede açılıyor. Bir şekilde onun başka bir Ekranda olduğunu düşünüyor.


Evet rastgele olur. Bütün mesele bu. Uygulama arabası / sağlam değil. Mesela ben kaybettim ama gedit rastgele, bugün daha önce normal olarak çalıştıktan sonra her zaman yeni bir pencere moduna geçmeye karar verdi ...
spinkus

1

Bu bana olmaya başladı. İlgili bir conf dosyası bulamadım ve temizlemeyi + temizlemeyi bile denedim. Sonunda ne olduğunu buldum. Gedit penceresi açılmış ve açılmış gibi görünüyordu. Penceredeki büyüt düğmesine bastım ve bu sorunu çözdü! Pencerenin boyutunun değişmediğine dikkat edin, sadece köşeler yuvarlaktan kareye geçti. Bu yukarıda açıklanan @fossfreedom algoritmasında bir hata olmalı gibi görünüyor .

Not: Pencereyi kapattığınızda, büyütme / küçültme durumunun bir yerde bir kullanıcı yapılandırmasında saklanması gerekir. Bu durum temizleme + temiz hayatta kalır ve kullanıcı başına değildir Gedit confs.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.