Openbox, xmodmap yapılandırmasının üzerine yazıyor


9

Linux Mint 13 çalıştıran dizüstü bilgisayarımda openbox kuruyorum. Caps Lock anahtarımın ek bir kontrol anahtarı gibi davranmasını istiyorum. Gerekli ayarları dosyama koydum ve ~/.Xmodmapçalıştırarak kontrol ettim

xmodmap ~/.Xmodmap

Doğru çalışıyor.

Ancak, openbox oturumuma yeniden giriş yaptığımda, bu önemli değişiklikler mevcut değil. Yukarıdaki xmodmapkomutu çalıştırmak tekrar çalışmasını sağlar, ancak başlangıçta otomatik olarak olmasını istiyorum.

İlginç olan, zenitydosyama aşağıdaki gibi bir test komutu ~/.config/openbox/autostarteklemem

zenity --info --text=Hello

Bu, küçük bir iletişim penceresi oluşturur ve yalnızca iletişim kapatıldıktan sonra çıkar.

Şimdi, openbox oturumuma yeniden giriş yaptığımda, Caps Lock zenity iletişim kutusu kapanana kadar bir Ctrl tuşu gibi davranıyor . Bu iletişim kutusu kapatıldığında, Caps Lock varsayılan davranışına döner.

Google ile bu konuda hiçbir şey bulamadım, bu yüzden burada yardım istiyorum. Neyin yanlış gidebileceği hakkında bir fikriniz var mı?

Güncelleme:

Bunu anlamaya çalışıyorlar ve benim deneylerinde, benim kopyalanan /usr/bin/xmodmapdosyayı /usr/bin/xmodmap_ve yerine /usr/bin/xmodmapaşağıdaki bash komut dosyasıyla

#!/bin/bash

{
    echo '-------'
    date
    echo xmodmap "$@"
} >> ~/xmodmap-calls

exec /usr/bin/xmodmap_ "$@"

Yani, sistemdeki herhangi bir lanet komut dosyası her çalıştığında xmodmapbunu öğreniyorum.

Bununla, yeniden giriş ve benim ~/xmodmap-callsdosyada sadece bir girdi , ki benim çalışan ~/.Xmodmap, beklenen bekleniyor. Yani, xmodmapdeğişikliklerimin üzerine yazılan bir şey olmadığını anladım .

Sonra, biraz googling beni setxkbmapkomuta tanıttı , ki görünüşe göre aynı şeyi yapabilir. Bu yürütülebilir dosyayı da değiştirdim, yukarıdaki xmodmap'a benzer. Ve suçlu emrini aldım!

setxkbmap -option terminate:ctrl_alt_bksp

Bunun ne yaptığına dair hiçbir fikrim yok, ancak çalıştırdıktan sonra xmodmap ~/.Xmodmap(ayarlarımı doğru uyguladım), yukarıdaki komutu çalıştırırsam, değişikliklerim sıfırlanır! Edit : Bu gerçekten komik çıkıyor. Sadece setxkbmapherhangi bir argüman içermeyen bir komut, değişikliklerimle xmodmap ~/.Xmodmapkomutun üzerine yazıyor.

Şimdi setxkbmapanlayacağım iki şey var, bunun nereden yapıldığı ve neden ve nasıl düzeltileceği. Hala araştırıyorum ama ciddi yardım alabilir :)

Güncelleme 2

Cehenneme xmodmap. Nereden setxkbmapçağrıldığını anlayamıyorum, ama setxkbmapCaps Lock'umun Ctrl gibi davranmasını sağlamak için komut kullanmanın bir yolunu buldum.

setxkbmap -option ctrl:nocaps

Openbox'a başlamadan hemen önce. Parlak çalışır. Büyük harf kilidi tuşu, bir ctrl tuşu gibi çalışır. xmodmapasla kaçmaz.

Bu soruyu burada açık tutacağım, böylece bunları bilen biri biraz fikir verebilir. Ayrıca, benden sonra bununla karşılaşan insanlar için :)

Güncelleme 3

.config/openbox/autostartPedrosaurio tarafından istendiği gibi , benim içeriği .

#!/bin/bash

# Set the wallpaper.
feh --bg-scale /wall.png

# Set default brightness.
xbacklight -time 1 '=40'

# Compositing.
xcompmgr &

# The panel.
tint2 &

# Start a terminal too.
roxterm &

Bunun klavye ile bir ilgisi yok, anlayabildiğim kadarıyla. Ayrıca, oturumumu başlatan komut dosyası: (lightdm tarafından çalıştır)

#!/bin/bash

setxkbmap -option ctrl:nocaps

exec openbox-session

muhtemelen uygulamalı değişiklikleri döner klavye düzenini veya benzer bir şey seçmek klavye yapılandırması, örneğin bir çeşit kullanıyorsunuz
Ulrich Dangel

Klavye yapılandırmasıyla uğraştığım diğer tek yer, GUI klavye düzeni tercihleri ​​penceresidir, burada kapak kilidi tuşunu ek bir ctrl olarak davranacak şekilde değiştirdim. Bu iyi çalışıyor, tarçın DE'de, kapak kilidim bir yeniden girişten sonra bile bir ctrl gibi davranıyor. Bu yapılandırmanın sadece tarçın olduğunu düşünüyorum, ama emin değilim.
Shrikant Sharat

autostart betiğine komutu nasıl ekliyorsunuz?
pedrosaurio

autostartDosyanızı gönderebilir misiniz ?
pedrosaurio

Yanıtlar:


1

Benzer bir sorun yaşıyordum. İbus'un neden olduğu ortaya çıktı. Hizmetlerine ihtiyaç duymadığım için basitçe kaldırdım.

Suçluyu setxkbmap'i bir komut dosyasıyla değiştirme hilenizi kullanarak buldum, ancak ps -AF --forestsetxkbmap'in arayanını tanımlamak için de ekledim .


0

Autostart betiğinizi bilmeden bahse girerim, komutlarınızın ampersand ( &) kullanarak arka planda çalışmasına izin vererek doğru sözdizimini kullanmamanızdır .

.config/openbox/autostartDosyanızı aşağıdaki gibi görünecek şekilde düzenlemeyi deneyin :

# Run the system-wide support stuff
#. $GLOBALAUTOSTART
# Programs to launch at startup
# Programs that will run after Openbox has started
(sleep 1 && xmodmap ~/.Xmodmap ) &

Şüpheniz varsa, openbox wiki'sine bakın ve &her girişten sonra tüm örneklerin nasıl olduğunu görün .

http://openbox.org/wiki/Help:Autostart


Otomatik başlatma dosyam boş. Bir noktada xmodmap ~/.Xmodmapo dosyada var mıydı (olmadan &, gerekli görünmüyordu). Aramaya edilmiş xmodmap(ve şimdi setxkbmapbenim openbox oturumu başlatmak komut). exec openbox-sessionÇalıştırmadan hemen önce setxkbmapkomutu çalıştırıyorum .
Shrikant Sharat

Ayrıca, her şey yüklendikten sonra değişikliklerini uygulamak için bir sleep 1gecikme eklemek xmodmap, çoğu zaman çalışırken, çözüm hakkında kendime çok güvenmemi sağlamaz. Alternatiflerim varsa bunu yapmamayı tercih ederim.
Shrikant Sharat

Açıkçası tüm yorumlardan ve sleepkomuttan kaçınabilirsiniz , yine de &her girişten sonra gereklidir, aksi takdirde ilk girişten sonraki tüm programlar hiç çalışmaz.
pedrosaurio

Evet, uzun süren bir uygulama / işlem ise, bir ekleme &yapmayı engeller. Bu davranışı zenitykomutla, xmodmapdeğişikliklerimin bittikten sonra üzerine yazıldığını bulmak için kullandım autostart. Autostart'ım şimdi büyüyor ve bir anda soruya yapıştıracak. Yine de klavyeyle ilgisi yok.
Shrikant Sharat

Ve uyku komutu olmadan xmodmap, otomatik başlatma dosyası biter bitmez yapılan değişikliklerin üzerine yazılır.
Shrikant Sharat
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.