Mirror / include / config.h

#ifndef CONFIG_H
#define CONFIG_H

//If you got here looking for how to configure Mirror, look in src/config.cpp

#include <tuple>
#include <cstdint>
#include <string>
#include <vector>

#include <xcb/xcb.h>
#include <X11/keysym.h>
#include <X11/XF86keysym.h>


typedef std::tuple<uint32_t, xcb_keysym_t, std::string> AppKeyBind;
typedef std::tuple<std::string, std::string, std::string, bool> WindowRule;

class Config
{
    public:
        Config();
        ~Config();
        
        //tag settings
        std::vector<std::string> tags;

        //keybind stuff
        uint32_t commandMods;
        xcb_keysym_t commandKey;

        uint32_t interactMods;
        xcb_keysym_t interactKey;

        uint32_t tagSwitchMods;
        xcb_keysym_t prevTagKey;
        xcb_keysym_t nextTagKey;

        uint32_t closeFocusedMods;
        xcb_keysym_t closeFocusedKey;
        
        uint32_t exemptFocusedMods;
        xcb_keysym_t exemptFocusedKey;            

        uint32_t fullscreenFocusedMods;
        xcb_keysym_t fullscreenFocusedKey;
        
        uint32_t quitMods;
        xcb_keysym_t quitKey;
        
        std::vector<AppKeyBind> appKeyBinds;
        
        std::vector<AppKeyBind> globalKeyBinds;

        std::vector<WindowRule> rules;
    };

#endif //CONFIG_H
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.