/usr/share/gnome-shell/extensions/TilixDropdown@ivkuzev@gmail.com/prefs.js is in gnome-shell-extension-tilix-dropdown 5.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 | // Library imports
const GObject = imports.gi.GObject;
const Gdk = imports.gi.Gdk;
const Gtk = imports.gi.Gtk;
// Extension imports
const Utils = imports.misc.extensionUtils.getCurrentExtension().imports.utils;
const mySettings = Utils.getSettings();
// Globals
const pretty_names = {
'key': 'start tilix in quake mode'
}
function init() {
}
function buildPrefsWidget() {
let model = new Gtk.ListStore();
model.set_column_types([
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_INT,
GObject.TYPE_INT
]);
global.log("Modal created.");
let settings = Utils.getSettings();
for (key in pretty_names) {
append_hotkey(model, settings, key, pretty_names[key]);
}
global.log("Added hotkeys to model");
let treeview = new Gtk.TreeView({
'expand': true,
'model': model
});
global.log("TreeView created.");
let col;
let cellrend;
cellrend = new Gtk.CellRendererText();
col = new Gtk.TreeViewColumn({
'title': 'Keybinding',
'expand': true
});
col.pack_start(cellrend, true);
col.add_attribute(cellrend, 'text', 1);
treeview.append_column(col);
global.log("Column one created.");
cellrend = new Gtk.CellRendererAccel({
'editable': true,
'accel-mode': Gtk.CellRendererAccelMode.GTK
});
cellrend.connect('accel-edited', function(rend, iter, key, mods) {
let value = Gtk.accelerator_name(key, mods);
let success = false;
[success, iter] = model.get_iter_from_string(iter);
if (!success) {
throw new Error("Something be broken, yo.");
}
let name = model.get_value(iter, 0);
model.set(iter, [ 2, 3 ], [ mods, key ]);
global.log("Changing value for " + name + ": " + value);
settings.set_strv(name, [value]);
});
col = new Gtk.TreeViewColumn({
'title': 'Accel'
});
col.pack_end(cellrend, false);
col.add_attribute(cellrend, 'accel-mods', 2);
col.add_attribute(cellrend, 'accel-key', 3);
treeview.append_column(col);
global.log("Column two created.");
let win = new Gtk.ScrolledWindow({
'vexpand': true
});
win.add(treeview);
global.log("ScrolledWindow created.");
win.show_all();
global.log("Returning.");
return win;
}
function append_hotkey(model, settings, name, pretty_name) {
let [key, mods] = Gtk.accelerator_parse(settings.get_strv(name)[0]);
let row = model.insert(10);
model.set(row, [0, 1, 2, 3], [name, pretty_name, mods, key ]);
}
|