Pindahkan tab yang cocok ke grup tab baru di pentadactyl

1

Adakah yang tahu jika saya bisa memindahkan semua tab yang cocok dengan ekspresi ke grup tab yang berbeda? Jika ya, bagaimana caranya?

BitShifter
sumber

Jawaban:

0

Larutan.

  • File Pentadactyl ex berikut ini (dengan Javascript tertanam) harus memberikan perintah yang akan mencocokkan label semua tab dengan ekspresi reguler dan memindahkan tab yang cocok ke grup dengan id yang ditentukan. Perhatikan bahwa pencocokan tidak peka huruf besar-kecil.

    " tgroup-moveselected.penta
    " Provides the command tgroup-moveselected, which moves all tabs matching a
    " given regular expression to the group with specified id.
    " eg.  :tgroup-moveselected "penta" "pentadactyl"
    "      moves any tabs whose label matches /pentadactyl/ to the group with id "penta"
    " Requires the TabGroupie plugin.
    
    command! tgroup-moveselected 
        \ -nargs=+ 
        \ -description "move tabs matching regex to a given group" 
        \ -js tgroupMoveSelected(args[0], RegExp(args[1]))
    
    js <<EOF
    
    function getPlugin(s) {
        for (x in plugins.contexts) {
            if (x.contains(s))
                return plugins.contexts[x][s];
        }
    }
    
    var TabGroupie = getPlugin("TabGroupie");
    
    function matchingTabs(rx) {
        var alltabs = tabs.allTabs;
        var alltabs = gBrowser.getTabsToTheEndFrom(0);
        function matches(t) {
            return rx.test(t.label.toLowerCase());
        }
        var matching = alltabs.filter(matches);
        return matching;
    }
    
    function matchingTabsInGroup(rx) {
        var alltabs = gBrowser.getTabsToTheEndFrom(0);
        function matches(t) {
            return rx.test(t.label.toLowerCase());
        }
        var matching = alltabs.filter(matches);
        return matching;
    }
    
    function tgroupMoveSelected (targetgrp, rx) {
        var matching = matchingTabs(rx);
        var tgrpId = TabGroupie.getIdByTitle(targetgrp);
        var i, t;
        for (i=0; i<matching.length; ++i) {
            t = matching[i];
            TabView.moveTabTo(t, tgrpId);
        }
        TabView.hide();
    }
    
    EOF
    
  • Saya sudah mengunggahnya ke Github sebagai Intisari , sehingga Anda dapat mengunduhnya dari sana jika mau.

  • Script ini membutuhkan plugin TabGroupie .

    peringatan : Di sistem saya, menempatkan plugin ini di ~/.pentadactyl/plugins(untuk dimuat ketika Pentadactyl dimulai) memecah fungsionalitas grup tab sepenuhnya. Untuk memperbaikinya, saya harus menonaktifkan Pentadactyl, restart FF dan mengaktifkan kembali Pentadactyl. Solusinya tampaknya memuat TabGroupie setelah Pentadactyl telah dimulai (dengan menghapusnya dari /plugins/direktori dan hanya sumber setelah FF dimulai).

Pengaturan yang Disarankan

  • Simpan tgroup-moveelected.penta dan TabGroupie.js di ~/.pentadactyldirektori Anda .

  • Tambahkan baris berikut ke Anda .pentadactylrc:

    command! tginit :source ~/.pentadactyl/TabGroupie.js | source ~/.pentadactyl/tgroupmoveselected.penta
    
  • Saat Anda memulai FF, Anda dapat menginisialisasi fungsionalitas grup tab Pentadactyl dengan perintah :tginit.

  • Jika Anda ingin sering menggunakan pola dan / atau grup tab tertentu, Anda dapat membuat pemetaan atau perintah sebagai pintasan. Misalnya, jika Anda ingin menggunakan C-mtombol pintas untuk mengirim semua tab dengan "pentadactyl" pada judul ke grup tab dengan id "penta", Anda bisa menggunakan perintah ini:

    :map <C-m> :tgroup-moveselected "penta" "pentadactyl"<CR>
    
pyrocrasty
sumber