You are not logged in.
I am facing issue while using the screen share/ presentation button to work in my `dwm` as I want to use for projector presentation as well. I am using `XF86keysym.h` header files info in the config.h below. So I want know what do I need to add to have this functionality to my laptop. My laptop is Lenovo Ideapad 3 (15ITL6/82H8).
Here's my `config.h` template:
/* appearance */
#include <X11/XF86keysym.h>
static const unsigned int refresh_rate = 60;
static const unsigned int enable_noborder = 1;
static const unsigned int borderpx = 1;
static const unsigned int snap = 26;
static const int swallowfloating = 1;
static const unsigned int systraypinning = 0;
static const unsigned int systrayonleft = 0;
static const unsigned int systrayspacing = 6;
static const int systraypinningfailfirst = 1;
static const int showsystray = 1;
static const int showbar = 1;
static const int topbar = 1;
#define ICONSIZE 16
#define ICONSPACING 6
#define SHOWWINICON 1
/* fonts */
static const char *fonts[] = {
"MesloLGS Nerd Font Mono:size=12",
"NotoColorEmoji:pixelsize=12:antialias=true:autohint=true"
};
/* colors */
static const char normbordercolor[] = "#3B4252";
static const char normbgcolor[] = "#2E3440";
static const char normfgcolor[] = "#D8DEE9";
static const char selbordercolor[] = "#434C5E";
static const char selbgcolor[] = "#434C5E";
static const char selfgcolor[] = "#ECEFF4";
static const char *colors[][3] = {
/* fg bg border */
[SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
[SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
};
/* autostart */
static const char *const autostart[] = {
"xset", "s", "off", NULL,
"xset", "s", "noblank", NULL,
"xset", "-dpms", NULL,
"dbus-update-activation-environment", "--systemd", "--all", NULL,
"/usr/lib/mate-polkit/polkit-mate-authentication-agent-1", NULL,
"flameshot", NULL,
"dunst", NULL,
"picom", "--animations", "-b", NULL,
"~/DWM/scripts/wallpapersSS", NULL,
"~/DWM/scripts/status", NULL,
"slstatus", NULL,
"kitty", NULL,
NULL /* terminate */
};
/* tagging */
static const char *tags[] = { "", "", "", "", "" };
static const char ptagf[] = "[%s %s]";
static const char etagf[] = "[%s]";
static const int lcaselbl = 0;
static const Rule rules[] = {
/* class instance title tags mask isfloating isterminal noswallow monitor */
{ "St", NULL, NULL, 0, 0, 1, 0, -1 },
{ "kitty", NULL, NULL, 0, 0, 1, 0, -1 },
{ NULL, NULL, "Event Tester", 0, 0, 0, 1, -1 }, /* xev */
};
/* layout(s) */
static const float mfact = 0.75;
static const int nmaster = 1;
static const int resizehints = 0;
static const int lockfullscreen = 1;
static const Layout layouts[] = {
/* symbol arrange function */
{ "", tile }, /* first entry is default */
{ "", NULL }, /* no layout function means floating behavior */
{ "", monocle },
};
/* key definitions */
#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }
#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
#define STATUSBAR "dwmblocks"
/* commands */
static const char *launchercmd[] = { "rofi", "-show", "drun", NULL };
static const char *launcheremojicmd[] = { "rofi", "-show", "emoji", NULL };
static const char *launchercalccmd[] = { "rofi", "-show", "calc", "-no-show-match", "-no-sort", NULL };
static const char *termcmd[] = { "kitty", NULL };
static const char *togglemutecmd[] = { "~/DWM/scripts/sounds", NULL };
static const char *volumeupcmd[] = { "amixer", "-D", "pulse", "sset", "Master", "5%+", NULL };
static const char *volumedowncmd[] = { "amixer", "-D", "pulse", "sset", "Master", "5%-", NULL };
static const char *brightnessupcmd[] = { "xbacklight", "-inc", "5", NULL };
static const char *brightnessdowncmd[]= { "xbacklight", "-dec", "5", NULL };
static const char *micmutecmd[] = { "amixer", "-D", "pulse", "sset", "Capture", "toggle", NULL };
static const char *airplanecmd[] = { "nmcli", "radio", "all", "off", NULL };
static const char *playpausecmd[] = { "playerctl", "play-pause", NULL };
static const char *nextcmd[] = { "playerctl", "next", NULL };
static const char *prevcmd[] = { "playerctl", "previous", NULL };
static const char *wifimenu[] = { "~/DWM/scripts/wifimenu", NULL };
static const char *powermenu[] = { "~/DWM/scripts/powermenu", NULL };
static Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_r, spawn, {.v = launchercmd} },
{ MODKEY|ControlMask, XK_r, spawn, SHCMD ("protonrestart")},
{ ControlMask, XK_e, spawn, {.v = launcheremojicmd} },
{ MODKEY, XK_c, spawn, {.v = launchercalccmd} },
{ ControlMask|Mod1Mask, XK_t, spawn, {.v = termcmd } },
{ MODKEY, XK_b, spawn, SHCMD ("brave-browser-nightly")},
{ MODKEY|ShiftMask, XK_b, spawn, SHCMD ("tor-browser")},
{ MODKEY, XK_p, spawn, {.v = powermenu } },
{ MODKEY|ShiftMask, XK_p, spawn, SHCMD ("flameshot gui -p ~/Pictures/Screenshots/")},
{ MODKEY|ControlMask, XK_p, spawn, SHCMD ("flameshot full -p ~/Pictures/Screenshots/")},
{ MODKEY, XK_v, spawn, SHCMD ("vlc")},
{ MODKEY, XK_l, spawn, SHCMD ("slock")},
{ MODKEY, XK_e, spawn, SHCMD ("thunar")},
{ MODKEY, XK_z, spawn, SHCMD ("~/.local/bin/zed")},
{ MODKEY, XK_w, spawn, {.v = wifimenu } },
{ MODKEY|ControlMask, XK_w, spawn, SHCMD("feh --randomize --bg-fill ~/Pictures/Wallpapers/*")},
{ MODKEY|ShiftMask, XK_w, spawn, SHCMD ("looking-glass-client -F")},
{ 0, XF86XK_AudioMute, spawn, {.v = togglemutecmd } },
{ 0, XF86XK_AudioRaiseVolume, spawn, {.v = volumeupcmd } },
{ 0, XF86XK_AudioLowerVolume, spawn, {.v = volumedowncmd } },
{ 0, XF86XK_MonBrightnessUp, spawn, {.v = brightnessupcmd } },
{ 0, XF86XK_MonBrightnessDown, spawn, {.v = brightnessdowncmd } },
{ 0, XF86XK_AudioMicMute, spawn, {.v = micmutecmd } },
{ 0, XF86XK_WLAN, spawn, {.v = airplanecmd } },
{ 0, XF86XK_AudioPlay, spawn, {.v = playpausecmd } },
{ 0, XF86XK_AudioNext, spawn, {.v = nextcmd } },
{ 0, XF86XK_AudioPrev, spawn, {.v = prevcmd } },
{ MODKEY|ControlMask, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
{ MODKEY|ShiftMask, XK_j, movestack, {.i = +1 } },
{ MODKEY|ShiftMask, XK_k, movestack, {.i = -1 } },
{ MODKEY, XK_i, incnmaster, {.i = +1 } },
{ MODKEY, XK_d, incnmaster, {.i = -1 } },
{ MODKEY, XK_h, setmfact, {.f = -0.05} },
{ MODKEY|ControlMask, XK_l, setmfact, {.f = +0.05} },
{ MODKEY|ShiftMask, XK_h, setcfact, {.f = +0.25} },
{ MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} },
{ MODKEY|ShiftMask, XK_o, setcfact, {.f = 0.00} },
{ MODKEY, XK_Return, zoom, {0} },
{ MODKEY, XK_Tab, view, {0} },
{ MODKEY, XK_q, killclient, {0} },
{ MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
{ MODKEY, XK_f, setlayout, {.v = &layouts[1]} },
{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
{ MODKEY, XK_space, setlayout, {0} },
{ MODKEY|ShiftMask, XK_space, togglefloating, {0} },
{ MODKEY, XK_0, view, {.ui = ~0 } },
{ MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } },
{ MODKEY, XK_comma, focusmon, {.i = -1 } },
{ MODKEY, XK_period, focusmon, {.i = +1 } },
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
TAGKEYS( XK_1, 0),
TAGKEYS( XK_2, 1),
TAGKEYS( XK_3, 2),
TAGKEYS( XK_4, 3),
TAGKEYS( XK_5, 4),
{ MODKEY|ShiftMask, XK_e, quit, {0} },
};
static Button buttons[] = {
/* click event mask button function argument */
{ ClkLtSymbol, 0, Button1, setlayout, {0} },
{ ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} },
{ ClkWinTitle, 0, Button2, zoom, {0} },
{ ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
{ ClkTagBar, 0, Button1, view, {0} },
{ ClkTagBar, 0, Button3, toggleview, {0} },
{ ClkTagBar, MODKEY, Button1, tag, {0} },
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
};
Last edited by fam007e (2024-09-25 08:35:19)
Offline
What does `xev` show when you use this mysterious "screen share" button? Can you use that keycode in config.h?
Para todos todo, para nosotros nada
Offline
What does `xev` show when you use this mysterious "screen share" button? Can you use that keycode in config.h?
It actually opens up my `rofi` based `powermenu`... ?
Last edited by fam007e (2024-09-25 12:48:41)
Offline
Looks like `powermenu` is bound to <Mod4>+p so change that line to run your sharing thingy.
Para todos todo, para nosotros nada
Offline
For explanation, it's actually fairly common these days that keyboards have keys that don't generate unique symbols, but just fire the windows shortcut for the action.
In this case win+p for the "project mode"
Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Online
For explanation, it's actually fairly common these days that keyboards have keys that don't generate unique symbols, but just fire the windows shortcut for the action.
In this case win+p for the "project mode"Please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Is it possible to assign that key value by assigning `Xf86keysym.h` to that of the button `F7`? I kind of want to keep my `Super+P` for powermenu as it's like in my muscle memory now. Therefore as you can see how I used that header values and mapping to use volume up/down and play/pause... So I wanted to know can I extract a key variable which represents my `F7` and assign it to project mode...
I hope my lack of english is not affecting me explain my situation here.
Offline
No, the key simply shortwires that shortcut - the OS cannot see a difference between you pressing super+p and you pressing this key.
Not the kernel, not he display server, not any cilent - the mapping happens in the hardware.
Online
You could, however, just use F7 if that's the key the symbol is on. Just don't hold the Fn key with it.
"UNIX is simple and coherent" - Dennis Ritchie; "GNU's Not Unix" - Richard Stallman
Offline