GNOME कीबोर्ड शॉर्टकट कहाँ संग्रहीत हैं?


53

मैं आमतौर पर बैकअप के रूप में एक और विभाजन पर अंतिम संस्करण को संरक्षित करते हुए अपने ओएस को ताज़ा रखने के लिए हर रिलीज़ के लिए एक नया संस्करण लोड करता हूं। मैं बहुत सारे कस्टम कुंजी मैपिंग भी नियोजित करता हूं।

मुझे पता चला है कि अपने विन्यास के अधिकांश भाग को अभी तक सिस्टमों में कैसे हस्तांतरित किया जा सकता है, लेकिन मैं यह पता नहीं लगा सकता कि कस्टम कीबोर्ड शॉर्टकट मैपिंग कहाँ संग्रहीत हैं।

क्या किसी को पता है कि सूक्ति ये कहां डालती है? क्या अलग-अलग उपयोगकर्ता विन्यास (जैसे, ~ /) और सिस्टम कॉन्फिग (यानी / आदि) फाइलें हैं?


2
आपने सेटिंग कैसे बदली? GConf Editor का उपयोग करना? मैं अनुमान लगा रहा हूँ कि आप चाहते हैं gconftool-2 --dump /apps/metacityया ऐसा कुछ।
मिकेल

1
@ मिकेल उस टिप्पणी के लिए एक गुच्छा धन्यवाद। मैं gconf- संपादक में जो बता सकता हूं, उसमें से अधिकांश कीबाइंडिंग / एप्स / मेटासिटी के अंतर्गत संग्रहित हैं, जबकि शेष चारों ओर फैली हुई हैं। मैं वर्तमान में आयात / निर्यात अजगर लिपियों को बैकअप बनाने / कीबाइंडिंग को एक-क्लिक ऑपरेशन बहाल करने के लिए लिख रहा हूं।
इवान प्लाइस

जवाबों:


45

इस प्रश्न के अन्य उत्तर लिखे जाने के बाद से उबंटू बदल गया है।

कीबाइंडिंग gconf से dconf में स्थानांतरित हो गए हैं। Gconf एक्सएमएल फ़ाइलें में अपने डेटा संग्रहीत करता है और ने पहुँच gconf-editorऔर gconf-tool2। डॉन्क अपना डेटा बाइनरी फॉर्मेट में स्टोर करता है और इसके द्वारा एक्सेस किया जाता है dconf-editorऔर gsettings

कीबिन्डिंग संग्रहित स्थानों की संख्या कम हो जाती है। विंडो मैनेजर कीबाइंडिंग ( org.gnome.desktop.wm.keybindings) स्टोर करने के लिए अब एक सेंट्रलाइज्ड dconf पाथ है । निर्देशिका में मैपिंग फ़ाइलें हैं /usr/share/gnome-control-center/keybindings/जो दिखाती हैं कि ये उन विंडो प्रबंधक के आधार पर कैसे लागू की जाती हैं जिन्हें आप वास्तव में उपयोग कर रहे हैं (कॉम्पिज़ या मेटासिटी)।

गैर-विंडो-प्रबंधक से संबंधित कुंजी बाइंडिंग का दूसरा सेट dconf पथ में संग्रहीत किया जाता है org.gnome.settings-daemon.plugins.media-keys

पावर बटन से संबंधित कीबाइंडिंग का एक तीसरा सेट है जो डॉन्कफ पथ में संग्रहीत है org.gnome.settings-daemon.plugins.power। जीयूआई में वर्तमान में एक बग है जो आपको कीबाइंडिंग को कॉन्फ़िगर करने देता है। यह इन सेटिंग्स के बारे में नहीं जानता। मेरे कीबोर्ड पर "स्लीप" बटन है। यदि मैं इसे अन्य कार्यक्षमता पर पुन: असाइन करना चाहता हूं, तो मुझे org.gnome.settings-daemon.plugins.powerमैन्युअल रूप से सेटिंग को अक्षम करना होगा। GUI मेरे लिए ऐसा नहीं करता है (हालाँकि यह नई कार्यक्षमता को ठीक करता है)।

अन्य शिकन कस्टम कुंजी बाइंडिंग है। इन्हें रीकॉन्सेक्टेबल स्कीमा का उपयोग करके dconf में संग्रहित किया जाता है। इस तरह से किया गया क्योंकि उनमें से एक मनमाना संख्या है। एक उचित दृष्टिकोण, लेकिन यह कमांड लाइन के माध्यम से उन्हें सूचीबद्ध करना या संशोधित करना कठिन बनाता है जितना कि यह होना चाहिए।

मुझे यह भी पता चला कि जीयूआई जो आपको कीबाइंडिंग असाइन करने की अनुमति देता है, वह एक तरह से सीमित है जो मुझे परेशान करता है। जीयूआई वास्तव में एक कीबाइंडिंग को प्रत्येक कार्रवाई को सौंपा जा सकता है। Dconf में, आप एकल क्रिया के लिए बाइंडिंग की एक सरणी सेट कर सकते हैं। यह मेरे लिए उपयोगी है। उदाहरण के लिए, मुझे "क्लोज-विंडो" एक्शन को ट्रेडिटोनल ऑल्ट-एफ 4 के साथ-साथ अपने कीबर्ड पर सिंगल बटन हिट करने के लिए आसान करना है।

मैंने सभी कीबाइंडिंग को एक सीएसवी फाइल में डंप करने के लिए एक पर्ल स्क्रिप्ट लिखी है, या उन्हें सीएसवी फाइल से रिस्टोर किया है। उदाहरण के लिए आपके द्वारा उपयोग की जाने वाली कीबाइंडिंग को डंप करने के लिए:

./keybindings.pl -e /tmp/keys.csv

और उन्हें पुनर्स्थापित करने के लिए आप उपयोग कर सकते हैं:

./keybindings.pl -i /tmp/keys.csv

#!/usr/bin/perl

use strict;

my $action = '';
my $filename = '-';

for my $arg (@ARGV){
    if ($arg eq "-e" or $arg eq "--export"){
        $action = 'export';
    } elsif ($arg eq "-i" or $arg eq "--import"){
        $action = 'import';
    } elsif ($arg eq "-h" or $arg eq "--help"){
        print "Import and export keybindings\n";
        print " -e, --export <filename>\n";
        print " -i, --import <filename>\n";
        print " -h, --help\n";
        exit;
    } elsif ($arg =~ /^\-/){
        die "Unknown argument $arg";
    } else {
        $filename = $arg;
        if (!$action){
            if ( -e $filename){
                $action='import';
            } else {
                $action='export';
            }
        }
    }
}

$action='export' if (!$action);
if ($action eq 'export'){
    &export();
} else {
    &import();
}

sub export(){
    my $gsettingsFolders = [
        ['org.gnome.desktop.wm.keybindings','.'],
        ['org.gnome.settings-daemon.plugins.power','button'],
        ['org.gnome.settings-daemon.plugins.media-keys','.'],
    ];

    my $customBindings = [
    ];

    $filename = ">$filename";
    open (my $fh, $filename) || die "Can't open file $filename: $!";

    for my $folder (@$gsettingsFolders){
        my @keylist = split(/\n/, `gsettings list-recursively $folder->[0]`);
        foreach my $line (@keylist){
            if ($line =~ /^([^ ]+) ([^ ]+)(?: \@[a-z]+)? (.*)/){
                my ($path, $name, $value) = ($1,$2,$3);
                if ($name eq "custom-keybindings"){
                    $value =~ s/[\[\]\' ]//g;
                    my @c = split(/,/, $value);
                    $customBindings = \@c;
                } elsif ($name =~ /$folder->[1]/){
                    if ($value =~ /^\[|\'/){
                        if ($value =~ /^\[\'(?:disabled)?\'\]$/){
                            $value = '[]';
                        } 
                        print $fh "$path\t$name\t$value\n";
                    }
                }        
            } else {
                die "Could note parse $line";
            }
        }
    }   

    for my $folder (@$customBindings){
        my $gs = `gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$folder`;
        my ($binding) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding binding (\'[^\n]+\')/g;
        my ($command) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding command (\'[^\n]+\')/g;
        my ($name) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding name (\'[^\n]+\')/g;
        $command =~ s/\"/\\\"/g;
        $command =~ s/^'(.*)'$/$1/g;
        $command =~ s/\'/\'\\\'\'/g;
        $command = "\'$command\'";
        print $fh "custom\t$name\t$command\t$binding\n"    
    }

    close($fh);
}

sub import(){

    $filename = "<$filename";
    open (my $fh, $filename) || die "Can't open file $filename: $!";

    my $customcount=0;

    while (my $line = <$fh>){
        chomp $line;
        if ($line){
            my @v = split(/\t/, $line);
            if (@v[0] eq 'custom'){
                my ($custom, $name, $command, $binding) = @v;
                print "Installing custom keybinding: $name\n";
                    print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ name \"$name\"`;
                print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ command \"$command\"`;
                print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ binding \"$binding\"`;
                $customcount++;
            } else {
                my ($path, $name, $value) = @v;
                print "Importing $path $name\n";
                print `gsettings set \"$path\" \"$name\" \"$value\"`;
            }
        }       
    }
    if ($customcount > 0){
        my $customlist = "";
        for (my $i=0; $i<$customcount; $i++){
            $customlist .= "," if ($customlist);
            $customlist .= "'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$i/'";            
        }
        $customlist = "[$customlist]";
        print "Importing list of custom keybindings.\n";
        print `gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \"$customlist\"`;
    }

    close($fh);
}

इसमें user2589537 द्वारा फिक्स को शामिल किया गया है, जिसमें उन्हें उद्धरणों के साथ कस्टम कमांड की अनुमति दी जा सकती है।


2
मैंने ubuntu gnome-control-center कीबोर्ड शॉर्टकट के खिलाफ दो बग दर्ज किए। मैंने इस स्क्रिप्ट को बनाते समय उन्हें पाया। bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/... और bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/...
स्टीफन Ostermiller

1
स्क्रिप्ट @Stephen के लिए धन्यवाद, बस Ubuntu 13.10 पर कोशिश की और यह सिर्फ काम किया! आसान साझा करने के लिए एक जिस्ट
Leo Gallucci

बहुत बढ़िया काम और बारीकियों का दस्तावेजीकरण करने वाला अच्छा काम।
इवान प्लाइस 19

2
अभी भी Ubuntu GN 3.2 पर काम करता है - धन्यवाद!
klequis

1
मेरे लिए तकनीकी रूप से "काम करता है", लेकिन शायद उबंटू-मेट (यानी के लिए अलग dconf वर्गों को देखने के लिए की आवश्यकता होगी [org/mate/marco/global-keybindings], [org/mate/marco/window-keybindings], ...)
फ्रैंक Nocke

17

कीबोर्ड शॉर्टकट की तरह dconf सेटिंग्स का बैकअप कैसे लें

  1. उन सभी को एक फ़ाइल में डंप करें:

    dconf dump / >~/.config/dconf/user.conf
    
  2. उस फ़ाइल को टेक्स्ट एडिटर पर खोलें और उन सेटिंग्स को चुनें, जिनकी आपको परवाह है:

    editor ~/.config/dconf/user.conf
    

    यदि आप Vim का उपयोग करते हैं, तो आप यह सिंटैक्स हाइलाइट करना चाहेंगे ।

    आप जल्द ही खुद से पूछेंगे कि क्या है<Primary>

  3. यदि आप सेटिंग का नाम नहीं जानते हैं, लेकिन इसे GUI से संशोधित करना जानते हैं unity-control-center, जैसे : चलाएँ:

    dconf watch /
    

    और फिर उन्हें संशोधित करें। सटीक सेटिंग तब टर्मिनल पर दिखाई देगी।

  4. जब आप उन सेटिंग्स को पुनर्स्थापित करना चाहते हैं, तो चलाएं:

    dconf load / <~/.config/dconf/user.conf
    
  5. इसे न खोए इसके लिए कॉन्फिग फाइल को ट्रैक करें। https://github.com/andsens/homeshick मेरा वर्तमान पसंदीदा तरीका है।

उबंटू 15.10 पर परीक्षण किया गया। युक्ति से अनुकूलित: http://catern.com/2014/12/21/plain-text-configuration-gnome.html

Gnome टर्मिनल दुर्भाग्यपूर्ण प्रोफ़ाइल आईडी के कारण ऐसे संपादन के लिए दुर्भाग्य से प्रतिरोधी है: 18.04 पर कमांड लाइन से Gnome-टर्मिनल प्रोफ़ाइल संपादित करें


15

कीबोर्ड शॉर्टकट किसी एक ही स्थान पर संग्रहीत नहीं हैं

आपके डिस्ट्रो संस्करण के आधार पर, जीयूआई में कीबोर्ड शॉर्टकट एप्लिकेशन को अलग-अलग चीजें कहा जा सकता है, लेकिन कमांड लाइन पर इसे 'ग्नोम-कीबाइंडिंग-प्रॉपर्टीज' कहा जाना चाहिए। यह पता चला है कि यह छोटा सा अनुप्रयोग उपयोगकर्ताओं को संपादित करने के लिए एक सुविधाजनक स्थान पर सभी शॉर्टकट लाता है।

चूंकि उबंटू में कीबाइंडिंग के लिए कोई एक क्लिक निर्यात / आयात उपकरण मौजूद नहीं है, इसलिए मैंने अजगर में एक लिखा है:

यहां स्क्रिप्ट का लिंक दिया गया है

एक निर्यात प्रणाली से सेटिंग्स को खींचता है। अनिवार्य रूप से इसमें सभी कीबाइंडिंग स्थानों की एक सूची होती है जो स्क्रिप्ट में एक शब्दकोश में कठिन-कोडित है। स्क्रिप्ट सूची को हटाती है और हर कुंजी के लिए कमांड "gconftool-2 --get [स्थान]" चलाती है और कुंजी के साथ शब्दकोश में मूल्य संग्रहीत करती है। फिर जब आप सेटिंग्स को सहेजने के लिए स्थान निर्दिष्ट करते हैं, तो यह शब्दकोश को json प्रारूप में फ़ाइल में सहेजता है।

एक आयात स्क्रिप्ट इस प्रक्रिया को उलट देती है। यह शब्दकोश को json फ़ाइल से लोड करता है। फिर यह इनके माध्यम से गणना करता है और सभी सहेजे गए सेटिंग्स को पुनर्स्थापित करने के लिए कमांड "gconftool-2 --type string --set [लोकेशन] [मूल्य]" चलाता है।

किसी भी छोर पर एक शॉट और यह किसी भी अन्य सिस्टम कॉन्फ़िगरेशन सेटिंग्स को छूने के बिना हर एक कीबोर्ड शॉर्टकट को बचाता / पुनर्स्थापित करता है।

इन लिपियों के लिए केवल निर्भरताएं हैं:

  • अजगर (2.6, 2.7 और 3.1 में परीक्षण और काम कर रहा है)
  • gconftool-2 (उबंटू स्थापित के साथ मानक आता है)
  • ज़ेनिटी (उबंटू इंस्टॉल के साथ मानक आता है)

स्क्रिप्ट को निष्पादित करने के लिए पायथन की आवश्यकता होती है, सेटिंग्स प्राप्त / सेट करने के लिए gconftool-2 का उपयोग किया जाता है, फ़ाइल लोड / बचाने के लिए जिनी की आवश्यकता होती है।

मैंने उबंटू ब्रेनस्टॉर्म पर एक प्रविष्टि बनाई है और इस सुविधा को 'सूक्ति-कीबाइंडिंग-गुण' GUI मेनू में पेश करने पर प्रगति कर रहा हूं।

अपडेट करें:

मैंने आयात और निर्यात स्क्रिप्ट को एक में जोड़ दिया, पूर्ण कमांड लाइन कार्यक्षमता (--help जानकारी सहित) जोड़ दी और इसे python2x और python3k दोनों के लिए संगत बना दिया। इसके अलावा, Ubuntu मंथन विचार के लिए लिंक जोड़ा गया।


ब्रेनस्टॉर्म शायद ही उबंटू के वास्तविक सुधारों के लिए एक अच्छी जगह है - केवल शीर्ष 10 मुद्दों पर वास्तव में डेवलपर का ध्यान जाता है। मेरा सुझाव है कि आप लॉन्चपैड पेज खोजें gnome-keybinding-propertiesऔर अपनी स्क्रिप्ट के साथ एक पैच पोस्ट करें।
ऑक्सीविवि

आपकी स्क्रिप्ट gconftool-2 / gconf-editor द्वारा नियंत्रित / नियंत्रित की गई शॉर्टकट्स के लिए अच्छी है ... और मुझे लगता है कि यह इस बात पर निर्भर करता है कि कोई गनोम कीबोर्ड शॉर्टकट क्या कहता है ... लेकिन यह सिस्टम-वाइड यूज़र शॉर्टकट्स नहीं उठा रहा है द्वारा Keyboard Shortcutsअर्थात gnome-keybinding-properties... और न ही अन्य कीबाइंडिंग द्वारा जोड़ा गया है, उदाहरण के लिए Xbindkeys... इसलिए मुझे संदेह है कि gconf 'वह नहीं है जहां sysetem- वाइड शॉर्टकट वे "संग्रहीत" हैं, लेकिन यह कुछ के लिए एक इंटरफ़ेस है / कहीं गहरा ... (I 'उस जगह की तलाश में है .. :)। शायद मुझे अभी के लिए 3 'निर्यातित' सूची रखने की आवश्यकता है ...
पीटर

@ fred.bear मुझे पूरा यकीन है कि वे सभी gconf में संग्रहीत हैं, लेकिन मुझे पता चल रहा है कि जब आप नियंत्रण कक्ष में चूक से बदलते हैं तो नए कीबाइंडिंग को gnome-keybinding-properties में जोड़ा जाता है। वर्तमान स्क्रिप्ट जीयूआई में पाए जाने वाले डिफ़ॉल्ट शॉर्टकटों को करेगा लेकिन यह जीयूआई में तंग एकीकरण के बिना सभी शॉर्टकटों का समर्थन करने में सक्षम नहीं होगा। वर्तमान में इसके लिए पहले से ही एक खाका खुला हुआ है, इसलिए मैं दूसरे डेवलपर के संपर्क में आने की कोशिश कर रहा हूं, जिन्होंने लॉन्चपैड पर विवरणों को जानने के लिए यह प्रस्ताव दिया है। अभी के लिए ... यह काम करता है।
इवान प्लाइस

3

11.10 रनिंग ग्नोम क्लासिक में मुझे निर्देशिका (Custom0, Custom1 ...) के तहत एक सेट मिला

$HOME/.gconf/desktop/gnome/keybindings

मैंने उन निर्देशिकाओं को एक साफ 12.04 इंस्टॉलेशन में उसी फ़ोल्डर में कॉपी किया (फिर से गनोम फॉलबैक के साथ चल रहा है), लॉग आउट किया और फिर से लॉग इन किया। कीबाइंडिंग संक्रमण में थोड़ा गड़बड़ हो गई (सुपर संशोधक के लिए कुछ अजीब बात हुई), लेकिन अन्यथा वे वहां थे।


2

स्वीकार किए गए उत्तर के साथ थोड़ी सी समस्या है, जिसमें वह उन में उद्धरणों के साथ कस्टम कमांड को संभाल नहीं सकते हैं। मैंने केवल सही आउटपुट उत्पन्न करने के लिए कस्टम कमांड के प्रसंस्करण को बदल दिया है।

#!/usr/bin/perl

use strict;

my $action = '';
my $filename = '-';

for my $arg (@ARGV){
    if ($arg eq "-e" or $arg eq "--export"){
        $action = 'export';
    } elsif ($arg eq "-i" or $arg eq "--import"){
        $action = 'import';
    } elsif ($arg eq "-h" or $arg eq "--help"){
        print "Import and export keybindings\n";
        print " -e, --export <filename>\n";
        print " -i, --import <filename>\n";
        print " -h, --help\n";
        exit;
    } elsif ($arg =~ /^\-/){
        die "Unknown argument $arg";
    } else {
        $filename = $arg;
        if (!$action){
            if ( -e $filename){
                $action='import';
            } else {
                $action='export';
            }
        }
    }
}

$action='export' if (!$action);
if ($action eq 'export'){
    &export();
} else {
    &import();
}

sub export(){
    my $gsettingsFolders = [
        ['org.gnome.desktop.wm.keybindings','.'],
        ['org.gnome.settings-daemon.plugins.power','button'],
        ['org.gnome.settings-daemon.plugins.media-keys','.'],
    ];

    my $customBindings = [
    ];

    $filename = ">$filename";
    open (my $fh, $filename) || die "Can't open file $filename: $!";

    for my $folder (@$gsettingsFolders){
        my @keylist = split(/\n/, `gsettings list-recursively $folder->[0]`);
        foreach my $line (@keylist){
            if ($line =~ /^([^ ]+) ([^ ]+)(?: \@[a-z]+)? (.*)/){
                my ($path, $name, $value) = ($1,$2,$3);
                if ($name eq "custom-keybindings"){
                    $value =~ s/[\[\]\' ]//g;
                    my @c = split(/,/, $value);
                    $customBindings = \@c;
                } elsif ($name =~ /$folder->[1]/){
                    if ($value =~ /^\[|\'/){
                        if ($value =~ /^\[\'(?:disabled)?\'\]$/){
                            $value = '[]';
                        } 
                        print $fh "$path\t$name\t$value\n";
                    }
                }        
            } else {
                die "Could note parse $line";
            }
        }
    }   

    for my $folder (@$customBindings){
        my $gs = `gsettings list-recursively org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$folder`;
        my ($binding) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding binding (\'[^\n]+\')/g;
        my ($command) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding command (\'[^\n]+\')/g;
        my ($name) = $gs =~ /org.gnome.settings-daemon.plugins.media-keys.custom-keybinding name (\'[^\n]+\')/g;
        $command =~ s/\"/\\\"/g;
        $command =~ s/^'(.*)'$/$1/g;
        $command =~ s/\'/\'\\\'\'/g;
        $command = "\'$command\'";
        print $fh "custom\t$name\t$command\t$binding\n"    
    }

    close($fh);
}

sub import(){

    $filename = "<$filename";
    open (my $fh, $filename) || die "Can't open file $filename: $!";

    my $customcount=0;

    while (my $line = <$fh>){
        chomp $line;
        if ($line){
            my @v = split(/\t/, $line);
            if (@v[0] eq 'custom'){
                my ($custom, $name, $command, $binding) = @v;
                print "Installing custom keybinding: $name\n";
                print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ name \"$name\"`;
                print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ command \"$command\"`;
                print `gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$customcount/ binding \"$binding\"`;
                $customcount++;
            } else {
                my ($path, $name, $value) = @v;
                print "Importing $path $name\n";
                print `gsettings set \"$path\" \"$name\" \"$value\"`;
            }
        }       
    }
    if ($customcount > 0){
        my $customlist = "";
        for (my $i=0; $i<$customcount; $i++){
            $customlist .= "," if ($customlist);
            $customlist .= "'/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$i/'";            
        }
        $customlist = "[$customlist]";
        print "Importing list of custom keybindings.\n";
        print `gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \"$customlist\"`;
    }

    close($fh);
}

AskUbuntu पर बहुत बढ़िया पहला जवाब! बधाई!
फाबबी

मैंने आपके परिवर्तनों को स्वीकृत उत्तर में एकीकृत कर दिया है।
स्टीफन ओस्टरमिलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.