dwm

Repositório dwm
git clone git://git.sivaldodavi.com/dwm.git
Log | Files | Refs | README

config.def.h (9179B)


      1 /* See LICENSE file for copyright and license details. */
      2 
      3 #include <X11/XF86keysym.h> // Habilita teclas multimídia
      4 #define TERMCLASS "St"
      5 
      6 /****************************
      7  * APARÊNCIA
      8  ****************************/
      9 static const unsigned int borderpx       = 1;   /* largura da borda das janelas */
     10 static const unsigned int snap           = 32;  /* pixel de snap */
     11 static const int swallowfloating = 0;  /* 1 significa engolir janelas flutuantes por padrão */
     12 static const int showbar                 = 1;   /* 0 = não mostrar barra */
     13 static const int topbar                  = 1;   /* 0 = barra inferior */
     14 static const char *fonts[]               = { "FiraCode Nerd Font Mono:size=10", "Noto Emoji:size=10" };
     15 static const char dmenufont[]            = "FiraCode Nerd Font Mono:size=10";
     16 
     17 //static const char *colors[][3] = {
     18 //    /* fg        bg        border */
     19 //    [SchemeNorm] = { "#bbbbbb", "#222222", "#444444" },
     20 //    [SchemeSel]  = { "#eeeeee", "#005577", "#005577" },
     21 //};
     22 
     23 static const char *colors[][3] = {
     24     /* fg        bg        border */
     25     [SchemeNorm] = { "#c0c0c0", "#1a1a1a", "#3a3a3a" },
     26     [SchemeSel]  = { "#f0f0f0", "#2b2b2b", "#ffffff" }, // borda branca
     27 };
     28 
     29 
     30 /****************************
     31  * TAGS
     32  ****************************/
     33 static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
     34 
     35 /****************************
     36  * REGRAS DE JANELAS
     37  ****************************/
     38 static const Rule rules[] = {
     39     /* class      instance    title            tags mask     isfloating   isterminal  noswallow  monitor */
     40     { "Gimp",     NULL,       NULL,            0,            1,           0,           0,         -1 },
     41     { "Firefox",  NULL,       NULL,            1 << 8,       0,           0,          -1,         -1 },
     42     { "St",       NULL,       NULL,            0,            0,           1,           0,         -1 },
     43     { "st-256color", NULL,    NULL,            0,            0,           1,           0,         -1 },
     44     { NULL,       NULL,       "scratchpad",    0,            1,           1,           0,         -1 },
     45     { NULL,       NULL,       "Event Tester",  0,            0,           0,           1,         -1 },
     46 };
     47 
     48 /****************************
     49  * LAYOUTS
     50  ****************************/
     51 static const float mfact     = 0.55; /* proporção da área master [0.05..0.95] */
     52 static const int nmaster     = 1;    /* número de janelas na área master */
     53 static const int resizehints = 1;    /* respeitar hints de tamanho em tiles */
     54 static const int lockfullscreen = 1; /* força foco na janela fullscreen */
     55 static const int refreshrate = 120;  /* taxa de atualização de mover/redimensionar janelas */
     56 
     57 static const Layout layouts[] = {
     58     /* símbolo     função de arranjo */
     59     { "[]=",      tile },    /* padrão */
     60     { "><>",      NULL },    /* flutuante */
     61     { "[M]",      monocle },
     62 };
     63 
     64 /****************************
     65  * DEFINIÇÕES DE TECLAS
     66  ****************************/
     67 #define MODKEY Mod4Mask
     68 #define TAGKEYS(KEY,TAG) \
     69     { MODKEY,                       KEY,      view,           {.ui = 1 << TAG} }, \
     70     { MODKEY|ControlMask,           KEY,      toggleview,     {.ui = 1 << TAG} }, \
     71     { MODKEY|ShiftMask,             KEY,      tag,            {.ui = 1 << TAG} }, \
     72     { MODKEY|ControlMask|ShiftMask, KEY,      toggletag,      {.ui = 1 << TAG} }
     73 
     74 /* helper para executar comandos shell */
     75 #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
     76 
     77 /****************************
     78  * COMANDOS
     79  ****************************/
     80 static char dmenumon[2] = "0"; /* monitor do dmenu */
     81 static const char *screenshot_full[] = { "sh", "-c", "maim ~/pictures/print/full_$(date +%s).png", NULL };
     82 static const char *screenshot_clip[] = { "sh", "-c", "maim -s | xclip -selection clipboard -t image/png", NULL };
     83 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, NULL };
     84 static const char *termcmd[]            = { "st", NULL };
     85 static const char *vimcmd[]             = { "st", "-e", "vim", NULL };
     86 static const char scratchpadname[]      = "scratchpad";
     87 static const char *scratchpadcmd[]      = { "st", "-t", scratchpadname, "-g", "120x34", NULL };
     88 static const char *browsercmd[]         = { "firefox", NULL };
     89 static const char *emailcmd[]           = { "st", "-e", "aerc", NULL };
     90 static const char *abookcmd[]         = { "st", "-e", "abook", "--datafile", ".local/share/abook/addressbook", NULL };
     91 static const char *filecmd[]            = { "st", "-e", "lf", NULL };
     92 static const char *dmenu_sys_cmd[]      = { "sys", NULL };
     93 static const char *dmenu_pass_cmd[]     = { "pass-menu", NULL };
     94 static const char *clip_cmd[]    = { "clip", NULL };
     95 
     96 /****************************
     97  * DEFINIÇÃO DE TECLAS
     98  ****************************/
     99 static const Key keys[] = {
    100     /* Vim */
    101     { MODKEY,              XK_n, spawn, {.v = vimcmd } },
    102 
    103     /* dmenu e scripts personalizados */
    104     { MODKEY|ShiftMask,    XK_q,      spawn,  {.v = dmenu_sys_cmd } },
    105     { MODKEY|ShiftMask,    XK_p,      spawn,  {.v = dmenu_pass_cmd } },
    106     { MODKEY,              XK_space,  spawn,  {.v = dmenucmd } },
    107     { MODKEY,              XK_c,  spawn,  {.v = clip_cmd } },
    108 
    109     /* Terminal, navegador e apps */
    110     { MODKEY,              XK_Return, spawn, {.v = termcmd } },
    111     { MODKEY|ShiftMask,    XK_Return, togglescratch, {.v = scratchpadcmd } },
    112     { MODKEY,              XK_b, spawn, {.v = browsercmd } },
    113     { MODKEY,              XK_e, spawn, {.v = emailcmd } },
    114     { MODKEY,              XK_r, spawn, {.v = filecmd } },
    115     { MODKEY,              XK_a,      spawn,          {.v = abookcmd } },
    116 
    117     /* Tecla PrintScreen*/
    118     { 0,                    XK_Print,  spawn,          {.v = screenshot_full } },
    119     { MODKEY,               XK_Print,  spawn,          {.v = screenshot_clip } },
    120 
    121     /* Gerenciamento de janelas */
    122     { MODKEY|ShiftMask,    XK_b, togglebar, {0} },
    123     { MODKEY,              XK_j, focusstack, {.i = +1 } },
    124     { MODKEY,              XK_k, focusstack, {.i = -1 } },
    125     { MODKEY,              XK_i, incnmaster, {.i = +1 } },
    126     { MODKEY,              XK_d, incnmaster, {.i = -1 } },
    127     { MODKEY,              XK_h, setmfact,   {.f = -0.05} },
    128     { MODKEY,              XK_l, setmfact,   {.f = +0.05} },
    129     { MODKEY|ShiftMask,    XK_Return, zoom,   {0} },
    130     { MODKEY,              XK_Tab, view,      {0} },
    131     { MODKEY,              XK_q, killclient, {0} },
    132     { MODKEY,              XK_t, setlayout,  {.v = &layouts[0]} },
    133     { MODKEY,              XK_f, setlayout,  {.v = &layouts[1]} },
    134     { MODKEY,              XK_o, setlayout,  {.v = &layouts[2]} },
    135     { MODKEY,              XK_grave, setlayout, {0} },
    136     { MODKEY|ShiftMask,    XK_grave, togglefloating, {0} },
    137     { MODKEY,              XK_0, view,       {.ui = ~0 } },
    138     { MODKEY|ShiftMask,    XK_0, tag,        {.ui = ~0 } },
    139     { MODKEY,              XK_comma, focusmon, {.i = -1 } },
    140     { MODKEY,              XK_period, focusmon, {.i = +1 } },
    141     { MODKEY|ShiftMask,    XK_comma, tagmon,   {.i = -1 } },
    142     { MODKEY|ShiftMask,    XK_period, tagmon,  {.i = +1 } },
    143 
    144     /* Áudio */
    145     { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-") },
    146     { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+") },
    147     { 0, XF86XK_AudioMute,        spawn, SHCMD("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle") },
    148 
    149     /* Brilho */
    150     { 0, XF86XK_MonBrightnessUp,   spawn, SHCMD("brightnessctl set +5%") },
    151     { 0, XF86XK_MonBrightnessDown, spawn, SHCMD("brightnessctl set 5%-") },
    152 
    153     /* Alternar entre monitores */
    154     { MODKEY,           XK_Left,  focusmon, {.i = -1 } },
    155     { MODKEY|ShiftMask, XK_Left,  tagmon,   {.i = -1 } },
    156     { MODKEY,           XK_Right, focusmon, {.i = +1 } },
    157     { MODKEY|ShiftMask, XK_Right, tagmon,   {.i = +1 } },
    158 
    159     /* Teclas de TAGS */
    160     TAGKEYS( XK_1, 0),
    161     TAGKEYS( XK_2, 1),
    162     TAGKEYS( XK_3, 2),
    163     TAGKEYS( XK_4, 3),
    164     TAGKEYS( XK_5, 4),
    165     TAGKEYS( XK_6, 5),
    166     TAGKEYS( XK_7, 6),
    167     TAGKEYS( XK_8, 7),
    168     TAGKEYS( XK_9, 8),
    169 
    170 //  { MODKEY|ShiftMask, XK_q, quit, {0} },
    171 };
    172 
    173 /****************************
    174  * BOTÕES DO MOUSE
    175  ****************************/
    176 static const Button buttons[] = {
    177     { ClkLtSymbol,          0,              Button1,        setlayout,      {0} },
    178     { ClkLtSymbol,          0,              Button3,        setlayout,      {.v = &layouts[2]} },
    179     { ClkWinTitle,          0,              Button2,        zoom,           {0} },
    180     { ClkStatusText,        0,              Button2,        spawn,          {.v = termcmd } },
    181     { ClkClientWin,         MODKEY,         Button1,        movemouse,      {0} },
    182     { ClkClientWin,         MODKEY,         Button2,        togglefloating, {0} },
    183     { ClkClientWin,         MODKEY,         Button3,        resizemouse,    {0} },
    184     { ClkTagBar,            0,              Button1,        view,           {0} },
    185     { ClkTagBar,            0,              Button3,        toggleview,     {0} },
    186     { ClkTagBar,            MODKEY,         Button1,        tag,            {0} },
    187     { ClkTagBar,            MODKEY,         Button3,        toggletag,      {0} },
    188 };