Logs: freenode/#xmonad
| 2020-12-07 20:18:52 | <dminuoso> | No, windowed application, sorry. |
| 2020-12-07 20:18:56 | × | daphnis quits (~daphnis@cm-84.214.179.98.getinternet.no) (Ping timeout: 240 seconds) |
| 2020-12-07 20:19:38 | <dminuoso> | In particular I have this issue with slack, where sometimes I get this "focus fight" that drives my CPU and me crazy. So Im trying to understand the protocol used how Slack can force X11 to gain focus on a particular dialog |
| 2020-12-07 20:20:07 | <dminuoso> | I have an urgency hook, but that one doesn't put the window on active, I have it wired to just trigger a notify-send. |
| 2020-12-07 20:21:10 | <geekosaur> | oh, that's different again. it sends _WM_NET_FOCUS to the root window with its own window ID as payload. browsers do this too (in fact slack is almost certainly a browser window) |
| 2020-12-07 20:22:00 | <geekosaur> | browsers like to do this kind f fight and a change was just pushed to git which causes xmonad to ignore external focus change requests by default because of it |
| 2020-12-07 20:22:34 | <geekosaur> | sorry _NET_WM_FOCUS I think. can look it up precisely if needed but it's a client message |
| 2020-12-07 20:25:44 | → | ybenel joins (~Mandalore@unaffiliated/ybenel) |
| 2020-12-07 20:26:25 | <dminuoso> | _NET_WM_STATE_FOCUSED possibly? |
| 2020-12-07 20:27:49 | <ybenel> | fellas , i'm trying to add a scratchpad item of moc but i'm having issue spawning it back instead of opening another window . |
| 2020-12-07 20:27:52 | <dminuoso> | I'd be interested in what was changed in xmonad then, because if I can suppress this behavior, it would give me some peace. |
| 2020-12-07 20:28:35 | <ybenel> | WM_NAME And WM_ICON_NAME Keeps Changing Making It Difficult to spawn back |
| 2020-12-07 20:28:40 | <ybenel> | spawnMocp = myTerminal ++ " -n mocp -e 'mocp'" |
| 2020-12-07 20:28:40 | <ybenel> | findMocp = (stringProperty "WM_COMMAND" =? "{ 'xterm', '-n', 'mocp', '-e', 'mocp' }") |
| 2020-12-07 20:28:51 | <geekosaur> | actually it's https://specifications.freedesktop.org/wm-spec/latest/ar01s03.html#idm45131921765200 |
| 2020-12-07 20:28:51 | <ybenel> | i tried WM_COMMAND seems didn't work as well |
| 2020-12-07 20:29:13 | → | daphnis joins (~daphnis@cm-84.214.179.98.getinternet.no) |
| 2020-12-07 20:29:25 | <geekosaur> | WM_COMMAND is only guaranteed to be set in response to WM_SAVE_YOURSELF i.e. the ancient session manager protocol |
| 2020-12-07 20:30:11 | <dminuoso> | Ah, so Slack would send _NET_ACTIVE_WINDOW to the root window, and if the window manager then respected that request, the focus would change? |
| 2020-12-07 20:30:47 | <dminuoso> | Oh, I didnt seem to read it until the end |
| 2020-12-07 20:30:50 | <geekosaur> | ybenel, you want appName if you're using -n or -name |
| 2020-12-07 20:30:50 | <dminuoso> | Depending on the information provided with the message, the Window Manager may decide to refuse the request (either completely ignore it, or e.g. use _NET_WM_STATE_DEMANDS_ATTENTION). |
| 2020-12-07 20:31:24 | <ybenel> | geekosaur: yeah i already tried that but moc keeps updating the class names |
| 2020-12-07 20:32:18 | <geekosaur> | what? while running in the terminal it's updating the terminal's WM_CLASS? that sounds unlikely and grounds for ICCCM smackdown |
| 2020-12-07 20:32:30 | <ybenel> | WM_ICON_NAME(STRING) = "MOC [play] - Oliver Schories - Molero (Relatively Definately)" |
| 2020-12-07 20:32:41 | <ybenel> | instead of sticking to MOC |
| 2020-12-07 20:33:08 | <geekosaur> | why do you believe WM_ICON_NAME is appName? |
| 2020-12-07 20:33:17 | <ybenel> | WM_ICON_NAME(STRING) = "MOC [stop]" |
| 2020-12-07 20:33:19 | <ybenel> | no |
| 2020-12-07 20:33:28 | <ybenel> | WM_NAME |
| 2020-12-07 20:33:35 | <ybenel> | is the same as WM_ICON_NAME |
| 2020-12-07 20:33:49 | <ybenel> | both are changing with the same values |
| 2020-12-07 20:34:04 | <geekosaur> | you used xterm -n, it set WMCNAME, it set WM_CLASS string 0, it set WM_ICON_NAME. of those, wm_CLASS string 0 is the fixed reliable one |
| 2020-12-07 20:34:23 | <geekosaur> | or use -name and it just sets WM_CLASS string 0 |
| 2020-12-07 20:35:22 | <ybenel> | yes i know , but moc keeps changing WM_NAME And WM_ICON_NAME |
| 2020-12-07 20:35:28 | × | abhixec quits (~abhixec@c-67-169-141-95.hsd1.ca.comcast.net) (Ping timeout: 272 seconds) |
| 2020-12-07 20:35:37 | <ybenel> | and Xterm sets WM_CLASS To Xterm |
| 2020-12-07 20:36:05 | <ybenel> | i used -class it changed the class to whatever i choose but the window kinda messed up |
| 2020-12-07 20:36:33 | <geekosaur> | you are still ignoring -name |
| 2020-12-07 20:37:18 | <ybenel> | i used both -n and -name, but Moc keeps changing their values |
| 2020-12-07 20:37:31 | <geekosaur> | sigh |
| 2020-12-07 20:38:17 | <geekosaur> | WM_CLASS contains two strings. one xmonad calls appName; it is set by -n and by -name. the other xmonad calls className; it is set by -class |
| 2020-12-07 20:38:34 | <ybenel> | yes |
| 2020-12-07 20:38:36 | <geekosaur> | WM_CLASS is the one you care about. Not WM_NAME. Not WM_ICON_NAME |
| 2020-12-07 20:38:50 | <ybenel> | -class messed up the font |
| 2020-12-07 20:38:56 | <ybenel> | it uses the default font |
| 2020-12-07 20:39:09 | <ybenel> | not the one through Xresources |
| 2020-12-07 20:39:12 | <geekosaur> | and you care specifically about the first string, which is set by -n abd by -name and which xmonad calls appName |
| 2020-12-07 20:40:45 | <geekosaur> | and you want to match it with appName, not with a stringProperty call |
| 2020-12-07 20:41:08 | <ybenel> | here's how -class makes the window |
| 2020-12-07 20:41:12 | <ybenel> | https://0x0.st/ihSh.png |
| 2020-12-07 20:41:20 | <ybenel> | regulary https://0x0.st/ihSF.png |
| 2020-12-07 20:41:40 | <geekosaur> | nobody whatsoever is telliing you to use -class |
| 2020-12-07 20:42:15 | <ybenel> | what do u suggest |
| 2020-12-07 20:42:28 | <geekosaur> | I already suggested it. you've been ignoring it. |
| 2020-12-07 20:42:53 | <geekosaur> | you run: xterm -name mocp -e mocp |
| 2020-12-07 20:43:32 | <ybenel> | but WM_CLASS Is Always Xterm,xterm |
| 2020-12-07 20:43:34 | <geekosaur> | your matcher is: findMocp = appName =? "mocp" |
| 2020-12-07 20:43:47 | <ybenel> | ahhhh |
| 2020-12-07 20:43:55 | <geekosaur> | not if you used -name correctly |
| 2020-12-07 20:44:15 | <ybenel> | alright, i'll test it brb |
| 2020-12-07 20:44:48 | <Liskni_si> | dminuoso: my draft pull request lets you just mark the browser/Slack window as urgent when it tries to steal focus |
| 2020-12-07 20:45:05 | <dminuoso> | Liskni_si: Can you give me a pointer to that pull request? |
| 2020-12-07 20:45:27 | <Liskni_si> | dminuoso: https://github.com/xmonad/xmonad-contrib/pull/399 |
| 2020-12-07 20:45:36 | <ybenel> | it worked |
| 2020-12-07 20:45:43 | <ybenel> | very promising |
| 2020-12-07 20:45:45 | <geekosaur> | that may just means it flickers a lot, if it's that poorly behaved |
| 2020-12-07 20:46:04 | <ybenel> | thanks alot geekosaur |
| 2020-12-07 20:53:39 | <dminuoso> | Liskni_si: Cheers. I have a forest of issues, commits and some pull request to go through. |
| 2020-12-07 21:15:02 | × | ml| quits (~ml|@unaffiliated/ml/x-3958674) (Ping timeout: 256 seconds) |
| 2020-12-07 21:20:02 | → | wonko7 joins (~wonko7@lns-bzn-55-82-255-183-4.adsl.proxad.net) |
| 2020-12-07 21:29:09 | → | ml| joins (~ml|@unaffiliated/ml/x-3958674) |
| 2020-12-07 21:31:02 | × | thc202 quits (~thc202@unaffiliated/thc202) (Quit: thc202) |
| 2020-12-07 21:39:45 | → | Rockj joins (~rockj@2001:67c:550:feed::1) |
| 2020-12-07 21:45:02 | × | Rockj quits (~rockj@2001:67c:550:feed::1) (Ping timeout: 264 seconds) |
| 2020-12-07 21:45:36 | × | mc47 quits (~yecinem@89.246.239.190) (Remote host closed the connection) |
| 2020-12-07 21:46:48 | × | geekosaur quits (82659a09@host154-009.vpn.uakron.edu) (Remote host closed the connection) |
| 2020-12-07 21:50:17 | → | drl joins (~l@2600:1700:8360:3870::725) |
| 2020-12-07 21:59:17 | × | drl quits (~l@2600:1700:8360:3870::725) (Remote host closed the connection) |
| 2020-12-07 22:02:43 | × | By_JumperX4[m] quits (byjumperx4@gateway/shell/matrix.org/x-rfwizjkmmxybnvls) (*.net *.split) |
| 2020-12-07 22:02:44 | × | sm[m] quits (simonmicma@gateway/shell/matrix.org/x-tslfcdwovccelfgc) (*.net *.split) |
| 2020-12-07 22:02:44 | × | Taneb quits (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) (*.net *.split) |
| 2020-12-07 22:25:03 | × | ericsagn1 quits (~ericsagne@2405:6580:0:5100:2d4d:701:5c5e:b872) (Ping timeout: 260 seconds) |
| 2020-12-07 22:30:06 | → | Taneb joins (~Taneb@2001:41c8:51:10d:aaaa:0:aaaa:0) |
| 2020-12-07 22:30:23 | → | By_JumperX4[m] joins (byjumperx4@gateway/shell/matrix.org/x-lnqpenmcodalzcib) |
| 2020-12-07 22:30:58 | → | sfrique joins (~sfrique@189.122.177.88) |
| 2020-12-07 22:31:41 | → | drl joins (~l@2600:1700:8360:3870::725) |
| 2020-12-07 22:33:31 | → | sm[m] joins (simonmicma@gateway/shell/matrix.org/x-knubyzlepnzyxdvt) |
| 2020-12-07 22:37:23 | → | ericsagn1 joins (~ericsagne@2405:6580:0:5100:4353:f1b0:3343:508) |
| 2020-12-07 22:42:28 | <sfrique> | is there anycommand to logout from command line? |
| 2020-12-07 22:43:13 | <sfrique> | I am trying to using gridselection to suspend, logout and etc but can't see a good way of loging out, i may kill monad.. should work, but not pretty |
| 2020-12-07 22:46:05 | → | Rockj joins (~rockj@2001:67c:550:feed::1) |
| 2020-12-07 22:48:45 | <dminuoso> | Liskni_si: Thank you, seems to work great! :) |
| 2020-12-07 22:50:53 | × | Rockj quits (~rockj@2001:67c:550:feed::1) (Ping timeout: 272 seconds) |
| 2020-12-07 22:52:32 | × | seschwar quits (~seschwar@unaffiliated/seschwar) (Quit: :wq) |
| 2020-12-07 22:53:26 | → | Rockj joins (~rockj@2001:67c:550:feed::1) |
| 2020-12-07 22:57:29 | × | notis quits (~notis@185.51.134.222) (Ping timeout: 265 seconds) |
| 2020-12-07 22:57:52 | <ybenel> | sfrique: AppGrid = [("Item1", "commnad"), ('Quit', io exitSuccess)] |
| 2020-12-07 22:59:44 | × | ybenel quits (~Mandalore@unaffiliated/ybenel) (Remote host closed the connection) |
| 2020-12-07 23:08:57 | <sfrique> | hmm, how do i call it? |
All times are in UTC.