Rename bind -> map

This commit is contained in:
Isaac Freund 2020-06-01 15:16:18 +02:00
parent 70cc318518
commit 62abfc5ee5
No known key found for this signature in database
GPG key ID: 86DED400DDFD7A11
7 changed files with 60 additions and 59 deletions

View file

@ -23,7 +23,7 @@ const c = @import("c.zig");
const Log = @import("log.zig").Log;
const Server = @import("Server.zig");
const Keybind = @import("Keybind.zig");
const Mapping = @import("Mapping.zig");
/// Width of borders in pixels
border_width: u32,
@ -34,11 +34,11 @@ view_padding: u32,
/// Amount of padding arount the outer edge of the layout in pixels
outer_padding: u32,
/// Map of mode name to mode id
/// Map of keymap mode name to mode id
mode_to_id: std.StringHashMap(usize),
/// All user-defined keybinding modes, indexed by mode id
modes: std.ArrayList(std.ArrayList(Keybind)),
/// All user-defined keymap modes, indexed by mode id
modes: std.ArrayList(std.ArrayList(Mapping)),
/// List of app_ids which will be started floating
float_filter: std.ArrayList([*:0]const u8),
@ -52,9 +52,9 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
try self.mode_to_id.putNoClobber("normal", 0);
try self.mode_to_id.putNoClobber("passthrough", 1);
self.modes = std.ArrayList(std.ArrayList(Keybind)).init(allocator);
try self.modes.append(std.ArrayList(Keybind).init(allocator));
try self.modes.append(std.ArrayList(Keybind).init(allocator));
self.modes = std.ArrayList(std.ArrayList(Mapping)).init(allocator);
try self.modes.append(std.ArrayList(Mapping).init(allocator));
try self.modes.append(std.ArrayList(Mapping).init(allocator));
self.float_filter = std.ArrayList([*:0]const u8).init(allocator);
@ -62,7 +62,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
const mod = c.WLR_MODIFIER_LOGO;
// Mod+Shift+Return to start an instance of alacritty
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Return,
mod | c.WLR_MODIFIER_SHIFT,
@ -70,7 +70,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+Q to close the focused view
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_q,
mod,
@ -78,7 +78,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+E to exit river
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_e,
mod,
@ -86,13 +86,13 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+J and Mod+K to focus the next/previous view in the layout stack
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_j,
mod,
&[_][]const u8{ "focus", "next" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_k,
mod,
@ -101,7 +101,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
// Mod+Return to bump the focused view to the top of the layout stack,
// making it the new master
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Return,
mod,
@ -109,13 +109,13 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+H and Mod+L to increase/decrease the width of the master column
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_h,
mod,
&[_][]const u8{ "mod_master_factor", "+0.05" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_l,
mod,
@ -124,13 +124,13 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
// Mod+Shift+H and Mod+Shift+L to increment/decrement the number of
// master views in the layout
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_h,
mod | c.WLR_MODIFIER_SHIFT,
&[_][]const u8{ "mod_master_count", "+1" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_l,
mod | c.WLR_MODIFIER_SHIFT,
@ -141,28 +141,28 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
inline while (i < 9) : (i += 1) {
const str = &[_]u8{i + '0' + 1};
// Mod+[1-9] to focus tag [1-9]
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_1 + i,
mod,
&[_][]const u8{ "focus_tag", str },
));
// Mod+Shift+[1-9] to tag focused view with tag [1-9]
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_1 + i,
mod | c.WLR_MODIFIER_SHIFT,
&[_][]const u8{ "tag_view", str },
));
// Mod+Ctrl+[1-9] to toggle focus of tag [1-9]
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_1 + i,
mod | c.WLR_MODIFIER_CTRL,
&[_][]const u8{ "toggle_tag_focus", str },
));
// Mod+Shift+Ctrl+[1-9] to toggle tag [1-9] of focused view
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_1 + i,
mod | c.WLR_MODIFIER_CTRL | c.WLR_MODIFIER_SHIFT,
@ -171,7 +171,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
}
// Mod+0 to focus all tags
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_0,
mod,
@ -179,7 +179,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+Shift+0 to tag focused view with all tags
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_0,
mod | c.WLR_MODIFIER_SHIFT,
@ -187,13 +187,13 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+Period and Mod+Comma to focus the next/previous output
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_period,
mod,
&[_][]const u8{ "focus_output", "next" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_comma,
mod,
@ -202,13 +202,13 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
// Mod+Shift+Period/Comma to send the focused view to the the
// next/previous output
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_period,
mod | c.WLR_MODIFIER_SHIFT,
&[_][]const u8{ "send_to_output", "next" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_comma,
mod | c.WLR_MODIFIER_SHIFT,
@ -216,7 +216,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+Space to toggle float
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_space,
mod,
@ -224,7 +224,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+F11 to enter passthrough mode
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_F11,
mod,
@ -232,25 +232,25 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Change master orientation with Mod+{Up,Right,Down,Left}
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Up,
mod,
&[_][]const u8{ "layout", "TopMaster" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Right,
mod,
&[_][]const u8{ "layout", "RightMaster" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Down,
mod,
&[_][]const u8{ "layout", "BottomMaster" },
));
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_Left,
mod,
@ -258,7 +258,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+f to change to Full layout
try normal_keybinds.append(try Keybind.init(
try normal_keybinds.append(try Mapping.init(
allocator,
c.XKB_KEY_f,
mod,
@ -266,7 +266,7 @@ pub fn init(self: *Self, allocator: *std.mem.Allocator) !void {
));
// Mod+F11 to return to normal mode
try self.modes.items[1].append(try Keybind.init(
try self.modes.items[1].append(try Mapping.init(
allocator,
c.XKB_KEY_F11,
mod,

View file

@ -91,7 +91,7 @@ fn handleKey(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void {
);
// Get a list of keysyms ignoring modifiers (e.g. 1 instead of !)
// Important for bindings like Mod+Shift+1
// Important for mappings like Mod+Shift+1
var raw_keysyms: ?[*]c.xkb_keysym_t = undefined;
const layout_index = c.xkb_state_key_get_layout(wlr_keyboard.xkb_state, keycode);
const raw_keysyms_len = c.xkb_keymap_key_get_syms_by_level(
@ -108,10 +108,10 @@ fn handleKey(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void {
if (event.state == .WLR_KEY_PRESSED) {
var i: usize = 0;
while (i < translated_keysyms_len) : (i += 1) {
if (self.handleBuiltinKeybind(translated_keysyms.?[i])) {
if (self.handleBuiltinMapping(translated_keysyms.?[i])) {
handled = true;
break;
} else if (self.seat.handleKeybinding(translated_keysyms.?[i], modifiers)) {
} else if (self.seat.handleMapping(translated_keysyms.?[i], modifiers)) {
handled = true;
break;
}
@ -119,10 +119,10 @@ fn handleKey(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void {
if (!handled) {
i = 0;
while (i < raw_keysyms_len) : (i += 1) {
if (self.handleBuiltinKeybind(raw_keysyms.?[i])) {
if (self.handleBuiltinMapping(raw_keysyms.?[i])) {
handled = true;
break;
} else if (self.seat.handleKeybinding(raw_keysyms.?[i], modifiers)) {
} else if (self.seat.handleMapping(raw_keysyms.?[i], modifiers)) {
handled = true;
break;
}
@ -161,9 +161,9 @@ fn handleModifiers(listener: ?*c.wl_listener, data: ?*c_void) callconv(.C) void
);
}
/// Handle any builtin, harcoded compsitor bindings such as VT switching.
/// Handle any builtin, harcoded compsitor mappings such as VT switching.
/// Returns true if the keysym was handled.
fn handleBuiltinKeybind(self: Self, keysym: c.xkb_keysym_t) bool {
fn handleBuiltinMapping(self: Self, keysym: c.xkb_keysym_t) bool {
if (keysym >= c.XKB_KEY_XF86Switch_VT_1 and keysym <= c.XKB_KEY_XF86Switch_VT_12) {
Log.Debug.log("Switch VT keysym received", .{});
const wlr_backend = self.seat.input_manager.server.wlr_backend;

View file

@ -45,7 +45,7 @@ cursor: Cursor,
/// Mulitple keyboards are handled separately
keyboards: std.TailQueue(Keyboard),
/// Id of the current keybind mode
/// ID of the current keymap mode
mode_id: usize,
/// Currently focused output, may be the noop output if no
@ -246,16 +246,16 @@ pub fn handleViewUnmap(self: *Self, view: *View) void {
}
}
/// Handle any user-defined keybinding for the passed keysym and modifiers
/// Handle any user-defined mapping for the passed keysym and modifiers
/// Returns true if the key was handled
pub fn handleKeybinding(self: *Self, keysym: c.xkb_keysym_t, modifiers: u32) bool {
pub fn handleMapping(self: *Self, keysym: c.xkb_keysym_t, modifiers: u32) bool {
const modes = &self.input_manager.server.config.modes;
for (modes.items[self.mode_id].items) |keybind| {
if (modifiers == keybind.modifiers and keysym == keybind.keysym) {
for (modes.items[self.mode_id].items) |mapping| {
if (modifiers == mapping.modifiers and keysym == mapping.keysym) {
// Execute the bound command
const allocator = self.input_manager.server.allocator;
var failure_message: []const u8 = undefined;
command.run(allocator, self, keybind.command_args, &failure_message) catch |err| {
command.run(allocator, self, mapping.command_args, &failure_message) catch |err| {
// TODO: log the error
if (err == command.Error.CommandFailed)
allocator.free(failure_message);

View file

@ -27,7 +27,7 @@ const impl = struct {
const focus = @import("command/focus.zig").focus;
const focusAllTags = @import("command/focus_all_tags.zig").focusAllTags;
const focusOutput = @import("command/focus_output.zig").focusOutput;
const bind = @import("command/bind.zig").bind;
const map = @import("command/map.zig").map;
const focusTag = @import("command/focus_tag.zig").focusTag;
const layout = @import("command/layout.zig").layout;
const modMasterCount = @import("command/mod_master_count.zig").modMasterCount;
@ -77,7 +77,7 @@ const str_to_impl_fn = [_]Definition{
.{ .name = "mod_master_factor", .impl = impl.modMasterFactor },
.{ .name = "send_to_output", .impl = impl.sendToOutput },
.{ .name = "spawn", .impl = impl.spawn },
.{ .name = "bind", .impl = impl.bind },
.{ .name = "map", .impl = impl.map },
.{ .name = "tag_view", .impl = impl.tagView },
.{ .name = "tag_view_all_tags", .impl = impl.tagViewAllTags },
.{ .name = "toggle_float", .impl = impl.toggleFloat },

View file

@ -20,10 +20,10 @@ const std = @import("std");
const c = @import("../c.zig");
const Error = @import("../command.zig").Error;
const Keybind = @import("../Keybind.zig");
const Mapping = @import("../Mapping.zig");
const Seat = @import("../Seat.zig");
/// Declare a new keybind mode
/// Declare a new keymap mode
pub fn declareMode(
allocator: *std.mem.Allocator,
seat: *Seat,
@ -47,5 +47,5 @@ pub fn declareMode(
try config.mode_to_id.putNoClobber(new_mode_name, config.modes.items.len);
errdefer _ = config.mode_to_id.remove(new_mode_name);
try config.modes.append(std.ArrayList(Keybind).init(allocator));
try config.modes.append(std.ArrayList(Mapping).init(allocator));
}

View file

@ -20,7 +20,7 @@ const std = @import("std");
const c = @import("../c.zig");
const Error = @import("../command.zig").Error;
const Keybind = @import("../Keybind.zig");
const Mapping = @import("../Mapping.zig");
const Seat = @import("../Seat.zig");
const modifier_names = [_]struct {
@ -37,10 +37,11 @@ const modifier_names = [_]struct {
.{ .name = "Mod5", .modifier = c.WLR_MODIFIER_MOD5 },
};
/// Create a new keybind for a given mode
/// Create a new mapping for a given mode
///
/// bind normal Control|Shift|Mod4 Comma spawn alacritty
pub fn bind(
/// Example:
/// map normal Mod4|Shift Return spawn alacritty
pub fn map(
allocator: *std.mem.Allocator,
seat: *Seat,
args: []const []const u8,
@ -54,7 +55,7 @@ pub fn bind(
const mode_id = config.mode_to_id.getValue(target_mode) orelse {
failure_message.* = try std.fmt.allocPrint(
allocator,
"cannot add keybind to non-existant mode '{}'",
"cannot add mapping to non-existant mode '{}p'",
.{target_mode},
);
return Error.CommandFailed;
@ -105,5 +106,5 @@ pub fn bind(
}
}
try mode_mappings.append(try Keybind.init(allocator, keysym, modifiers, args[4..]));
try mode_mappings.append(try Mapping.init(allocator, keysym, modifiers, args[4..]));
}