コード例 #1
0
ファイル: interpreter.cpp プロジェクト: rmcintosh/kwm
void KwmInterpretCommand(std::string Message, int ClientSockFD)
{
    std::vector<std::string> Tokens = SplitString(Message, ' ');

    if(Tokens[0] == "quit")
        KwmQuit();
    else if(Tokens[0] == "config")
        KwmConfigCommand(Tokens);
    else if(Tokens[0] == "query")
        KwmQueryCommand(Tokens, ClientSockFD);
    else if(Tokens[0] == "window")
        KwmWindowCommand(Tokens);
    else if(Tokens[0] == "space")
        KwmSpaceCommand(Tokens);
    else if(Tokens[0] == "display")
        KwmDisplayCommand(Tokens);
    else if(Tokens[0] == "tree")
        KwmTreeCommand(Tokens);
    else if(Tokens[0] == "write")
        KwmEmitKeystrokes(CreateStringFromTokens(Tokens, 1));
    else if(Tokens[0] == "press")
        KwmEmitKeystroke(Tokens[1]);
    else if(Tokens[0] == "mode")
        KwmModeCommand(Tokens);
    else if(Tokens[0] == "bindsym" || Tokens[0] == "bindcode")
        KwmBindCommand(Tokens, false);
    else if(Tokens[0] == "bindsym_passthrough" || Tokens[0] == "bindcode_passthrough")
        KwmBindCommand(Tokens, true);
    else if(Tokens[0] == "unbindsym" || Tokens[0] == "unbindcode")
        KwmRemoveHotkey(Tokens[1], Tokens[0] == "unbindcode");
    else if(Tokens[0] == "rule")
        KwmAddRule(CreateStringFromTokens(Tokens, 1));
    else if(Tokens[0] == "scratchpad")
        KwmScratchpadCommand(Tokens, ClientSockFD);
}
コード例 #2
0
ファイル: keys.cpp プロジェクト: JakimLi/kwm
void KwmEmitKeystroke(std::string KeySym)
{
    std::vector<std::string> KeyTokens = SplitString(KeySym, '-');
    if(KeyTokens.size() != 2)
        return;

    modifiers Mod = {};
    std::vector<std::string> Modifiers = SplitString(KeyTokens[0], '+');
    for(std::size_t ModIndex = 0; ModIndex < Modifiers.size(); ++ModIndex)
    {
        if(Modifiers[ModIndex] == "cmd")
            Mod.CmdKey = true;
        else if(Modifiers[ModIndex] == "alt")
            Mod.AltKey = true;
        else if(Modifiers[ModIndex] == "ctrl")
            Mod.CtrlKey = true;
        else if(Modifiers[ModIndex] == "shift")
            Mod.ShiftKey = true;
    }

    KwmEmitKeystroke(Mod, KeyTokens[1]);
}