Home freenode/#xmonad: Logs Calendar

Logs on 2020-12-27 (freenode/#xmonad)

00:06:50 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
00:07:07 hexo joins (~hexo@gateway/tor-sasl/hexo)
00:44:17 × notis quits (~notis@85.203.44.165) (Ping timeout: 260 seconds)
00:56:37 × xaltsc quits (~xaltsc@unaffiliated/xaltsc) (Quit: WeeChat 3.0)
01:15:03 gzj joins (~gzj@unaffiliated/gzj)
02:18:36 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 240 seconds)
03:01:05 rabliatu joins (~quassel@143.202.160.84)
03:09:01 × theDon quits (~td@94.134.91.197) (Ping timeout: 246 seconds)
03:11:08 theDon joins (~td@muedsl-82-207-238-021.citykom.de)
03:25:27 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
03:32:37 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Ping timeout: 264 seconds)
03:50:23 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
04:05:53 batdog joins (~batdog@lnsq.elkins.co)
04:14:20 × batdog quits (~batdog@lnsq.elkins.co) (Quit: Bye)
04:14:41 batdog joins (~batdog@lnsq.elkins.co)
04:17:40 rekahsoft joins (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com)
04:30:06 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
04:30:26 gzj joins (~gzj@unaffiliated/gzj)
04:35:32 × vrs quits (~vrs@unaffiliated/vrs) (Ping timeout: 272 seconds)
04:56:54 × rekahsoft quits (~rekahsoft@cpe0008a20f982f-cm64777d666260.cpe.net.cable.rogers.com) (Ping timeout: 256 seconds)
04:57:21 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
04:59:17 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
05:12:05 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
05:15:26 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
05:20:34 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
05:22:25 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
05:22:25 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Client Quit)
05:44:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
05:44:27 gzj joins (~gzj@unaffiliated/gzj)
05:56:20 tux1 joins (~tux@ru1.metahumanvpn.network)
06:01:20 berberman_ joins (~berberman@unaffiliated/berberman)
06:02:12 × berberman quits (~berberman@unaffiliated/berberman) (Ping timeout: 260 seconds)
06:06:35 <tux1> how to get avoidStruts working with custom xmobar height?
06:07:07 <tux1> it assumes default xmobar height and windows overdraw over xmobar slightly with avoidStruts
06:11:46 × tux1 quits (~tux@ru1.metahumanvpn.network) (Quit: WeeChat 2.9)
06:12:13 tux1 joins (~tux@ru1.metahumanvpn.network)
06:31:22 palo1 joins (~weechat@c-base/crew/palo)
06:34:25 × palo quits (~weechat@c-base/crew/palo) (Ping timeout: 264 seconds)
06:34:25 palo1 is now known as palo
06:36:22 × tux1 quits (~tux@ru1.metahumanvpn.network) (Quit: WeeChat 2.9)
07:24:06 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
07:24:26 gzj joins (~gzj@unaffiliated/gzj)
07:42:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
07:42:27 gzj joins (~gzj@unaffiliated/gzj)
07:55:30 mrbirkov joins (uid453780@gateway/web/irccloud.com/x-xzsphatjpbhjifjh)
07:59:30 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
08:07:25 al3x27 joins (~plovs@85.254.74.40)
08:12:46 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
08:17:28 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
08:44:55 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
08:47:57 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
08:51:27 <Solid> ?tell tux1 it doesn't assume any kind of height, it gets the height from _NET_WM_STRUT_PARTIAL or _NET_WM_STRUT, which xmobar sets correctly if you change its height
08:51:27 <lambdabot> Consider it noted.
08:55:43 notis joins (~notis@85.203.44.37)
08:57:33 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
09:00:02 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)
09:15:00 <al3x27> when I load mu xmonad.hs in ghci, it cannot find my own modules(?), but when compiling it does, how to "set" the loadpath for ghci?
09:16:39 <al3x27> rtfm is ok, just /what/ fm?
09:20:26 <al3x27> nm, google decided to answer correctly his time
09:59:30 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 256 seconds)
10:07:54 × growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in)
10:24:45 gzj joins (~gzj@unaffiliated/gzj)
10:38:38 × mrbirkov quits (uid453780@gateway/web/irccloud.com/x-xzsphatjpbhjifjh) (Quit: Connection closed for inactivity)
11:04:35 ADG1089__ joins (~aditya@223.235.213.117)
11:05:54 <ADG1089__> I am trying to run alacritty as a named scratchpad in xmonad using `alacritty -n scratchpad`
11:06:00 <ADG1089__> did they remove the -n flag?
11:06:49 <ADG1089__> works with --title
11:13:05 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
11:13:25 gzj joins (~gzj@unaffiliated/gzj)
11:21:09 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Remote host closed the connection)
11:21:26 hexo joins (~hexo@gateway/tor-sasl/hexo)
11:22:25 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
11:43:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
11:43:27 gzj joins (~gzj@unaffiliated/gzj)
12:03:15 <al3x27> it's brilliant that it's possible to load xmonad.hs in ghci!
12:09:01 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
12:09:20 gzj joins (~gzj@unaffiliated/gzj)
12:11:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
12:11:26 gzj joins (~gzj@unaffiliated/gzj)
12:23:08 <Solid> ?tell ADG1089__ alacritty also has a --class flag, in case you want to set that instead
12:23:09 <lambdabot> Consider it noted.
12:40:21 mc47 joins (~yecinem@141.84.69.87)
12:48:07 × gzj quits (~gzj@unaffiliated/gzj) (Remote host closed the connection)
12:48:27 gzj joins (~gzj@unaffiliated/gzj)
13:29:07 × gzj quits (~gzj@unaffiliated/gzj) (Read error: Connection reset by peer)
13:29:27 gzj joins (~gzj@unaffiliated/gzj)
13:31:19 vrs joins (~vrs@unaffiliated/vrs)
13:35:45 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 240 seconds)
13:45:17 ElKowar joins (~Srain@p3e9d26c7.dip0.t-ipconnect.de)
13:46:29 <ElKowar> Is there already some way to improve how the cursor jumps across screen borders? I have multiple monitors with different resolutions, and I'd love to somehow make the cursor movement be less weird when moving across monitors
13:47:23 <ElKowar> mainly I'd love to make it always able to jump, even if there technically isn't a screen (as in, if my bottom monitor is wider than the top one, and i want to move from the bottom to the top one while the mouse is that the outer edges of the bottom screen, it won't be able to move up, as there technically isn't a screen above that part ofthe monitor
13:48:08 <ElKowar> i know about the screen corner thing that can execute code when cursor hits the corners of the screen. if there isn't anything already existing then I'll do it myself, just wanted to check first
13:51:55 × rabliatu quits (~quassel@143.202.160.84) (Quit: 1)
14:11:48 <Liskni_si> dunno but I remember I did something similar back when the max framebuffer size was 2048x2048 so you couldn't have two 1280x1024 monitors horizontally, maybe you'll be able to reuse something: https://github.com/liskin/xmousewarp
14:12:05 <ElKowar> Will look at that, thanks!
14:12:30 <Liskni_si> 14 f*ing years, omg, I feel old :-/
14:13:46 <ElKowar> also currently looking at https://github.com/xmonad/xmonad-contrib/issues/369 (No WM_CLASS for window decorations). Do you think it'd be a good idea to just Add a WM_CLASS of "XMonad-Window" or something to everything that's created by XMonad.Util.XUtils.createNewWindow? Then maybe add a createNewWindowWithClass function or something for window-decors and whatever to set their own if they want to be more specific
14:14:10 <ElKowar> seems like it would only help in rather rare cases, but I'd also not see any reason _not_ do to it
14:14:18 <ElKowar> lol 14 years ago i was 6
14:14:20 <ElKowar> ._.
14:16:32 <Liskni_si> :-)
14:16:51 <Liskni_si> I was freshman at uni
14:17:45 × hexo quits (~hexo@gateway/tor-sasl/hexo) (Quit: ZNC 1.8.2 - https://znc.in)
14:18:10 hexo joins (~hexo@gateway/tor-sasl/hexo)
14:21:12 <Liskni_si> re #369, I think it's reasonable to mark these decorations as such in some way
14:21:35 <Liskni_si> I'd hope there's something more standard than using a custom WM_CLASS tho :-)
14:22:21 <ElKowar> Not really, the main point of a WM_CLASS _is_ to have applications have a unique identifier that describes what a window is, so using that here is - at least as far as my understanding of X Idioms goes - the thing to do
14:23:04 <Liskni_si> well what about https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html#idm45760170798096
14:24:06 <Liskni_si> none of those seem to fit :-/
14:25:09 <Liskni_si> I'd recommend looking through picom sources to find what conditions it uses to detect "special" windows and see if some of that is close enough to our usecase
14:26:10 <ElKowar> in Picom the main thing you do is manually configure the excludes by way of WM_CLASS, window name, etc - pretty sure picom doesn't do any detection by itself
14:26:44 <ElKowar> regardless of the usecase of specifically excluding stuff in picom, setting a WM_CLASS is definitely something we should do
14:27:30 <Liskni_si> man/compton.1.asciidoc
14:27:32 <Liskni_si> 50: Enabled client-side shadows on windows. Note desktop windows (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow, unless explicitly requested using the wintypes option.
14:27:45 <Liskni_si> it definitely does look at the window type ^
14:28:09 <ElKowar> uhh, interesting, didn't know that!
14:29:22 <ElKowar> uhh that's actually being used already:
14:29:33 <ElKowar> -- @@@ ugly hack to prevent compositing
14:29:33 <ElKowar> whenX (return $ isJust m) $ flip catchX (return ()) $ do
14:29:33 <ElKowar> wINDOW_TYPE <- getAtom "_NET_WM_WINDOW_TYPE"
14:29:33 <ElKowar> dESKTOP <- getAtom "_NET_WM_WINDOW_TYPE_DESKTOP"
14:29:33 <ElKowar> io $ changeProperty32 d win wINDOW_TYPE aTOM propModeReplace [fi dESKTOP]
14:31:00 <ElKowar> so i guess, given that issue, picom only looks at that for _some_ things like shadows, but not for rounded corners?
14:32:46 <Liskni_si> https://github.com/yshui/picom/blob/bb54da0039ff3c833fbef83bf465847e3a909310/src/config.c#L458
14:33:09 <Liskni_si> only mentions shadow, so yeah, probably that's the problem
14:34:01 <Liskni_si> I think GNOME (without xmonad, without picom) actually has rounded corners on its desktop background, so presumably that's something people want …
14:40:30 <ElKowar> weird,...
14:42:24 <ElKowar> So my current implementation just adds a new createNewWindowWithClass function to XMonad.Util.XUtils, and makes createNewWindow set a WM_CLASS of "XMonad Window" as the default. Then I'm using that in the Window decoration module to set the WM_CLASS of the decrations to "XMonad decoration". does that sound good? (I'll quickly check if there's any more specific stuff on best-practices for naming of WM_CLASSes etc
14:49:09 <Liskni_si> I'd prefer if you checked with the picom folks whether there's a generic way to mark these windows
14:49:20 <Liskni_si> does it round xmobar's corners as well?
14:53:07 <ElKowar> I'll definitely check! Main point is that X11 definitely "wants" any application to provide the WM_CLASS property, so regardless of that specific rounded-corners issue, we should set the WM_CLASS (see https://tronche.com/gui/x/icccm/sec-4.html#WM_CLASS)
14:55:10 <Liskni_si> if that's the case, do we need a createNewWindow _without_ having to specify a class? :-)
14:55:53 <Liskni_si> anyway I think you might want to discuss this with geekosaur, I don't have these X11 things ready in working memory :-/
14:56:43 <ElKowar> I'll check how much changes would be necessary to change the signature of createNewWindow :P
15:00:33 geekosaur joins (ae68c070@cpe-174-104-192-112.neo.res.rr.com)
15:01:01 <ElKowar> wait why/how does DragPane use an actual Window :o I thought it was just a different TwoPane, or am i mixing that up with somethign
15:03:06 <ElKowar> So the only modules that make use of XMonad.Util.XUtils.createNewWindow seem to be Layout.DragPane, Actions.ShowText, Layout.BinarySpacePartitioning (for borders? kinda confused on the implementation there), and Layout.Decoration. Requiring a WM_CLASS to be provided seems like the sensible choice
15:03:43 <Liskni_si> dragpane needs a window to capture the mouse clicks for resizing
15:03:52 <Liskni_si> MouseResizableTile does that as well I think
15:04:01 <Liskni_si> (possibly reusing the code from DragPane or something)
15:04:18 <Liskni_si> no idea why BSP does it
15:04:53 <ElKowar> MouseResizableTile just creates a window using Graphics.X11.XLib.Window directly
15:06:30 <Liskni_si> oh
15:09:59 <ElKowar> So the X11 spec expects there to be two WM_CLASS values, one that specifies the concrete "instance" inside of the application that the window belongs to (i'd say that should be used for specifying "Decoration" vs "Popup" etc) and one for the application (should in our case just always be "XMonad"). technically, that first part is supposed to be dependant on how the user starts the application, i.e. giving an explicit instance name (i.e. w
15:09:59 <ElKowar> hen starting a terminal with --name "something", etc,...) - which doesn't really apply in our case
15:10:00 <geekosaur> WM_CLASS should be [Xmonad,xmonad], and WM_WINDOW_ROLE should be used for things like indicating decorations
15:10:12 <geekosaur> or XMonad, yeh
15:10:52 <geekosaur> (I'm catching up on the discussion)
15:10:54 <ElKowar> I guess it would make sense to have the first one be something like "XMonad Popup"?
15:11:21 <ElKowar> hmm lemme read the docs for WM_WINDOW_ROLE quicky
15:13:41 <ElKowar> > The client must set the WM_WINDOW_ROLE property to a string that uniquely identifies that window among all windows that have the same client leader window.
15:13:43 <lambdabot> <hint>:1:156: error:
15:13:44 <lambdabot> <hint>:1:156: error:
15:13:44 <lambdabot> parse error (possibly incorrect indentation or mismatched brackets)
15:13:51 <ElKowar> oh god lol
15:16:12 <ElKowar> The WM_WINDOW_ROLE spec seems to specificall be related to session management and stuff like that, which doesn't really apply to our usecase,.. or am I missing something? I do see how, semantically, this would be the correct way to handle it tho
15:19:01 <geekosaur> most of that documentation is from ICCCM which only talks abut window and session management
15:22:28 <ElKowar> so you'd say WM_CLASS = ["XMonad", "xmonad"] and WM_WINDOW_ROLE = "Decoration" (for example)?
15:23:01 <geekosaur> yeh
15:23:48 <ElKowar> will do! Do i set the WM_WINDOW_ROLE the same way i do for WM_CLASS? (getAtom + changeProperty32)? or is there some other magic involved (not super fluent in the X property API)
15:24:13 <geekosaur> same way, only with 1 string instead of 2
15:24:25 malook joins (~Thunderbi@5.111.64.247)
15:24:39 × malook quits (~Thunderbi@5.111.64.247) (Client Quit)
15:24:57 <geekosaur> although shouldn'tit be changeProperty8 since they're both strings?
15:25:37 <ElKowar> uhh, good point, yea.
15:42:34 <ElKowar> In that case i can't just use getAtom,... I've been searching for reference on how to actually get the `[CChar]` i need in the correct format without a lot of hacky-feeling low-level conversion but couldn't find anything.. are we doing that anywhere else already?
15:45:02 <ElKowar> uhhhh I'm probably looking for setTextProperty, right?
15:50:14 <geekosaur> we have getStringProperty
15:59:08 <Liskni_si> shouldn't WM_WINDOW_ROLE be unique?
15:59:21 <Liskni_si> “The combination of SM_CLIENT_ID and WM_WINDOW_ROLE can be used by other clients to uniquely identify a window across sessions.”
16:03:38 <ElKowar> getStringProperty simply relies on some default encoding? seems kind of fragile :o
16:03:51 <ElKowar> according to the spec it should be unique, yea,.... good point actually
16:04:46 <geekosaur> X11 doesn't really do encodings. getStringProperty tries UTF8_STRING first then falls back to STRING (7-bit ASCII)
16:05:08 <geekosaur> those are property type atoms
16:08:48 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
16:10:44 <ElKowar> so i
16:11:02 <ElKowar> so i'd reverse that by just getting the char codes and toEnuming them?
16:14:57 rabliatu joins (~quassel@89.38.227.92)
16:15:18 <geekosaur> ifyou use STRING then you need to substitute something for any character whose ord is > 127; if UTF8_STRING then yu want to encode the string first
16:17:24 × ElKowar quits (~Srain@p3e9d26c7.dip0.t-ipconnect.de) (Quit: ElKowar)
16:18:03 ElKowar joins (~Srain@p3e9d26c7.dip0.t-ipconnect.de)
16:25:35 leon joins (~leon@p3e9d26c7.dip0.t-ipconnect.de)
16:25:51 × leon quits (~leon@p3e9d26c7.dip0.t-ipconnect.de) (Client Quit)
16:26:00 leon joins (~ElKowar@p3e9d26c7.dip0.t-ipconnect.de)
16:27:03 × leon quits (~ElKowar@p3e9d26c7.dip0.t-ipconnect.de) (Client Quit)
16:32:17 gzj joins (~gzj@unaffiliated/gzj)
16:32:33 leon joins (~leon@p3e9d26c7.dip0.t-ipconnect.de)
16:37:08 × gzj quits (~gzj@unaffiliated/gzj) (Ping timeout: 260 seconds)
16:38:09 malook joins (~Thunderbi@5.111.64.247)
16:38:39 × malook quits (~Thunderbi@5.111.64.247) (Client Quit)
16:47:21 × mc47 quits (~yecinem@141.84.69.87) (Ping timeout: 256 seconds)
16:54:24 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 265 seconds)
16:57:20 mc47 joins (~yecinem@141.84.69.87)
17:14:12 <leon> So do we use WM_WINDOW_ROLE anyways, even though it should, according to the spec, be unique - which in this case it would not be?
17:14:21 <leon> or do we stick to setting the WM_CLASS
17:14:32 <leon> or do we just not separate different XMonad-created windows for now
17:17:55 <leon> (this is elkowar, trying out new IRC client, couldn't yet be bothered to set the nick correctly lol)
17:18:11 × ElKowar quits (~Srain@p3e9d26c7.dip0.t-ipconnect.de) (Remote host closed the connection)
17:18:16 leon is now known as ElKowar
17:18:18 <ElKowar> there we go
17:33:44 abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net)
17:38:27 ddellacosta joins (dd@gateway/vpn/mullvad/ddellacosta)
17:56:37 × ddellacosta quits (dd@gateway/vpn/mullvad/ddellacosta) (Ping timeout: 246 seconds)
18:16:20 × mc47 quits (~yecinem@141.84.69.87) (Ping timeout: 272 seconds)
19:03:20 berberman joins (~berberman@unaffiliated/berberman)
19:03:52 × berberman_ quits (~berberman@unaffiliated/berberman) (Ping timeout: 268 seconds)
19:31:41 × notis quits (~notis@85.203.44.37) (Read error: Connection reset by peer)
19:33:53 notis joins (~notis@85.203.44.37)
19:48:47 mc47 joins (~yecinem@89.246.239.190)
20:34:25 × notis quits (~notis@85.203.44.37) (Ping timeout: 264 seconds)
20:57:18 <mc47> Is there anyone using more than one status bar on one screen? Or is my setup just "weird"?
20:58:28 <geekosaur> I have two docks running on one screen, although only one is fed by xmonad
21:00:06 mc47 feels less weird
21:01:05 <mc47> I was brwosing through xmonad-contrib, and it seems that there is a fairly involved module for having status bars on different screens, but nothing for more than one status bar on a given screen
21:02:48 <al3x27> mc47: https://github.com/arcolinux/arcolinux-xmonad-xmobar.git
21:03:06 <al3x27> haven't tried it, so ymmv
21:05:03 <geekosaur> nothing really needed for more than one bar on a screen. the other one is about dynamically adding and removing bars when screens are added/removed
21:05:53 <mc47> al3x27 thanks, I have something similar in my configuration
21:06:34 <mc47> geekosaur yes, I came across that and I'm thinking how can I adapt it to fit my use case
21:07:12 <mc47> Maybe if I come up with something modular I'll push a patch
21:10:43 × geekosaur quits (ae68c070@cpe-174-104-192-112.neo.res.rr.com) (Remote host closed the connection)
21:10:56 <al3x27> mc47: found this one as well: https://github.com/nnoell/dotfiles/blob/master/v4.4/xmonad/xmonad.hs
21:13:56 <mc47> Interesting, all seem to manually start the bars and do all the "plumbing" manually
21:14:19 <mc47> and completely ignore DynamicBars
21:14:50 <al3x27> it's how all the examples do it
21:15:57 <al3x27> XMonad.Hooks.DynamicBars
21:16:09 <mc47> you're right, although that module needs more love :-) I'm still trying to work out how it works exactly, but it seems really interesting
21:16:14 <al3x27> doesn't look very beginner friendly
21:17:45 <mc47> agreed!
21:20:48 <al3x27> the source has almost no comments, compare that to https://hackage.haskell.org/package/xmonad-contrib-0.16/docs/src/XMonad.Hooks.DynamicLog.html which is perfect evening reading
21:21:00 al3x27 likes commented code
21:23:48 <mc47> Yeah I really like the comments in XMonad.Hooks.DynamicLog!
21:26:29 <al3x27> i don't know any haskell, but with that i was able to write a function that replaces my workspace names with icons
21:27:59 mc47 loves to hear about people using haskell without knowing haskell
21:29:05 <mc47> This speaks for how good is the documentation!
21:29:41 <mc47> For me it was the other way around: I learnt Haskell, really liked it, and then later I found out about xmonad and was like "THIS IS IT"
21:30:19 <al3x27> so far haskell it utterly weird, it's all upside-down
21:31:05 <al3x27> but the type system is great, and the error messages are actually helpful
21:31:26 <mc47> maybe everything is upside-down, and Haskell is the correct way to go?
21:32:58 <al3x27> i'll do more reading and let you know ;-)
21:33:18 <mc47> The typesystem is really awesome. if it compiles, it probably works (at least if you're not doing any weird stuff)
21:33:42 <mc47> I have to work with python on another project... The lack of a type system really makes me pull my hair some times
21:36:24 <al3x27> yes, no side effects and strict typing helps a lot, but python has normal loops and you can put print statements everywhere, makes it very noob friendly
21:36:28 notis joins (~notis@85.203.44.37)
21:38:20 <mc47> Which is a reason why we're using python in that other project, it's accessible for more people
21:39:27 ADG1089__ joins (~aditya@223.235.213.117)
21:40:36 × notis quits (~notis@85.203.44.37) (Ping timeout: 240 seconds)
21:42:34 <Solid> you can litter you code with `trace' in haskell as well ;)
21:43:04 <Solid> I've found haskell to be much more accessible than imperative languages; but I come from a bit of a different background
21:43:30 <al3x27> yes, found that out today, on #haskell, combine that with loading my xmonad.hs into ghci, it's totally awesome
21:44:02 <al3x27> Solid: most people here seem to be very much into math
21:44:25 <Solid> yes
21:44:48 al3x27 studied math in highschool in the eighties...
21:45:01 <Solid> if you like loops there are `for' and `for_' (although you have to squint a bit if you want to call them "normal" loops ;)
21:45:44 <al3x27> nah, it's better to try to blend with the natives
21:46:03 <Solid> hah
21:46:38 <Solid> they are just flipped versions of traverse and traverse_ respectively (or mapM and mapM_, if you live in the past :>)
21:46:45 <Solid> but they do come in handy sometimes
21:47:21 × ADG1089__ quits (~aditya@223.235.213.117) (Remote host closed the connection)
21:47:21 al3x27 has not yet progressed beyond 'map'
21:48:06 <Solid> ah you'll get to it at some point; it's awesome I promise :)
21:48:19 <al3x27> what is the best place to read on commands like traverse etc, the haskell wiki?
21:49:45 <mc47> The haskell wiki is awesome, but a bit "dry".. I used this book "Learn you a Haskell http://learnyouahaskell.com/" to go beyond the things we handled at the University, and it does more "hand-holding" than the wiki
21:50:39 <Solid> I was going to recommend the base haddocks, but it seems like traverse doesn't have any examples there :/
21:50:51 <Solid> > traverse_ print [1..2]
21:50:53 <lambdabot> <IO ()>
21:50:59 <Solid> ah, of course
21:52:52 <Solid> mc47: with regards to your pr: I think it'd be a bit nicer to use `signalProcessGroup', instead of manually inverting the PID
21:53:09 notis joins (~notis@85.203.44.165)
21:53:10 <Solid> it's in the same module as `signalProcess'
21:53:32 <mc47> Didn't know that existed, I'll change it now
21:57:35 <al3x27> mc47: learnyouahaskell looks to be my level, it even has pictures...
21:59:23 <mc47> I know, right! I really like the pictures there
22:13:45 × mc47 quits (~yecinem@89.246.239.190) (Remote host closed the connection)
22:13:45 <Liskni_si> mc47: I have both "multiple bars on one screen" and "(at least) one bar per screen"
22:13:56 <Liskni_si> and I've had it longer than X.H.DynamicBars existed
22:14:06 <Liskni_si> which is why I never bothered with that
22:17:23 <Liskni_si> oh and also because DynamicBars uses pipes (not props) and because I don't really use the dynamicLog stuff
22:21:08 <al3x27> Liskni_si: isn't it dynamiclog that tells the bar about the workspaces?
22:21:46 <Liskni_si> al3x27: well it's all just code, there's nothing that dynamiclog can do and xmonad.hs can't :-)
22:22:55 <al3x27> do you have your xmonad.hs on GH?
22:23:04 <Liskni_si> my per-screen bar contain the list of all windows (just like screen/tmux statusline), and that's something DynamicLog can't do
22:23:35 <Liskni_si> it's definitely something that can be added to it, but with the amount of custom stuff that I have in there, it's just easier to write it from scratch
22:23:58 <Liskni_si> https://github.com/liskin/dotfiles/blob/home/.xmonad/xmonad.hs#L422
22:24:54 <al3x27> thanks, you didn't obfuscate your nick very well, should have figured that one out ;-)
22:26:34 <al3x27> Liskni_si: what do you use the ⠁⠃⠇⡇⡏⡟⡿⣿ for?
22:27:19 <Liskni_si> when windows are tabbed together, they're bound to the same number
22:27:36 <Liskni_si> so this is just to tell them apart
22:29:14 <Liskni_si> https://store.lisk.in/tmp/2020-12-27-232851_958x1079_scrot.png
22:29:17 <Liskni_si> down there
22:33:06 <al3x27> that is very cool, i will steal that for later use
22:36:55 <Liskni_si> do note that this numbering of tabbed windows requires changes to SubLayouts that haven't been submitted to xmonad-contrib yet :-)
22:40:32 × notis quits (~notis@85.203.44.165) (Ping timeout: 256 seconds)
22:42:37 × ryjm quits (sid383513@gateway/web/irccloud.com/x-fozezseyqmozmxjk) (Ping timeout: 260 seconds)
22:43:12 × srhb quits (sid400352@NixOS/user/srhb) (Ping timeout: 260 seconds)
22:43:12 × benley quits (benley@osric.zoiks.net) (Ping timeout: 260 seconds)
22:44:22 × ericsagnes quits (~ericsagne@2405:6580:0:5100:49a8:1a11:c128:7983) (Ping timeout: 260 seconds)
22:44:50 notis joins (~notis@85.203.44.37)
22:45:00 ryjm joins (sid383513@gateway/web/irccloud.com/x-cgthedhmsargdwki)
22:45:44 <al3x27> patience is a virtue :-)
22:45:58 srhb joins (sid400352@NixOS/user/srhb)
22:46:21 ericsagnes joins (~ericsagne@2405:6580:0:5100:f3bd:76da:a01c:8f3f)
22:46:22 benley joins (benley@osric.zoiks.net)
22:54:45 × notis quits (~notis@85.203.44.37) (Ping timeout: 240 seconds)
22:57:07 notis joins (~notis@85.203.44.165)
23:03:40 × notis quits (~notis@85.203.44.165) (Ping timeout: 265 seconds)
23:05:24 notis joins (~notis@85.203.44.165)
23:08:52 × rabliatu quits (~quassel@89.38.227.92) (Ping timeout: 256 seconds)
23:10:12 × notis quits (~notis@85.203.44.165) (Ping timeout: 272 seconds)
23:11:45 notis joins (~notis@85.203.44.165)
23:16:14 × abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Ping timeout: 256 seconds)
23:17:10 × notis quits (~notis@85.203.44.165) (Read error: Connection reset by peer)
23:20:07 notis joins (~notis@85.203.44.165)
23:27:49 × notis quits (~notis@85.203.44.165) (Ping timeout: 260 seconds)
23:29:27 notis joins (~notis@85.203.44.165)
23:34:16 × notis quits (~notis@85.203.44.165) (Ping timeout: 272 seconds)
23:35:48 notis joins (~notis@85.203.44.37)
23:42:16 growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net)

All times are in UTC on 2020-12-27.