Logs: freenode/#xmonad
| 2021-02-02 15:47:03 | → | ADG1089__ joins (~aditya@223.236.190.35) |
| 2021-02-02 15:59:56 | → | thoros joins (~thoros@194-96-55-156.hdsl.highway.telekom.at) |
| 2021-02-02 16:15:48 | × | ADG1089__ quits (~aditya@223.236.190.35) (Remote host closed the connection) |
| 2021-02-02 16:25:48 | → | growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net) |
| 2021-02-02 17:02:30 | → | abhixec joins (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) |
| 2021-02-02 17:04:19 | × | thoros quits (~thoros@194-96-55-156.hdsl.highway.telekom.at) (Ping timeout: 265 seconds) |
| 2021-02-02 17:12:37 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 2021-02-02 17:18:44 | → | thoros joins (~thoros@194-96-55-156.hdsl.highway.telekom.at) |
| 2021-02-02 18:53:12 | × | geekosaur quits (82650c7c@130.101.12.124) (Ping timeout: 248 seconds) |
| 2021-02-02 19:33:01 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 2021-02-02 19:46:05 | × | notis quits (~notis@185.51.134.230) (Ping timeout: 240 seconds) |
| 2021-02-02 19:46:30 | → | notis joins (~notis@185.51.134.230) |
| 2021-02-02 20:26:18 | × | Bruners quits (lasseb@gateway/shell/tihlde/x-prbtsfnrzpsykjsd) (Ping timeout: 260 seconds) |
| 2021-02-02 20:26:36 | × | mc47 quits (~yecinem@89.246.239.190) (Quit: Leaving) |
| 2021-02-02 20:30:58 | → | Bruners joins (lasseb@gateway/shell/tihlde/x-eozvpbgovnsurlwk) |
| 2021-02-02 21:25:21 | × | geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed) |
| 2021-02-02 21:44:07 | → | geekosaur joins (82650c7c@130.101.12.124) |
| 2021-02-02 21:52:43 | × | xaltsc quits (~xaltsc@unaffiliated/xaltsc) (Ping timeout: 258 seconds) |
| 2021-02-02 21:56:03 | × | geekosaur quits (82650c7c@130.101.12.124) (Quit: Connection closed) |
| 2021-02-02 22:17:56 | × | de-vri-es quits (~de-vri-es@voyager.de-vri.es) (Quit: Bathrobe!) |
| 2021-02-02 22:18:27 | → | de-vri-es joins (~de-vri-es@voyager.de-vri.es) |
| 2021-02-02 22:41:15 | × | seschwar quits (~seschwar@unaffiliated/seschwar) (Quit: :wq) |
| 2021-02-02 23:08:43 | × | thoros quits (~thoros@194-96-55-156.hdsl.highway.telekom.at) (Ping timeout: 272 seconds) |
| 2021-02-02 23:53:55 | × | Liskni_si quits (~liskin@ackle.nomi.cz) (Remote host closed the connection) |
| 2021-02-02 23:54:14 | → | Liskni_si joins (~liskin@ackle.nomi.cz) |
| 2021-02-03 00:14:00 | × | notis quits (~notis@185.51.134.230) (Read error: Connection reset by peer) |
| 2021-02-03 00:17:07 | <ectospasm> | I'm having trouble defining a function that returns a different string based on the number of screens found by XMonad.Layout.IndependentScreens.countScreens. I think I have an OK function definition, but when I call the function I get the following error: http://io.ix/2Oa9 |
| 2021-02-03 00:17:21 | <ectospasm> | Here's my current xmonad.hs: http://io.ix/2Oa8 |
| 2021-02-03 00:18:29 | <ectospasm> | whoops |
| 2021-02-03 00:18:34 | <ectospasm> | Those urls are wrong |
| 2021-02-03 00:18:49 | <ectospasm> | Here's my error: http://ix.io/2Oa9 |
| 2021-02-03 00:19:05 | <ectospasm> | Here's my xmonad.hs: http://ix.io/2Oa8 |
| 2021-02-03 00:21:41 | <fizzie> | Those are the same URLs. But ix.io has been frequently wrong as of late. |
| 2021-02-03 00:22:57 | <fizzie> | Oh, I entirely missed you had translated 'io' and 'ix'. Ignore what I said, then. |
| 2021-02-03 00:23:06 | <fizzie> | (But it's *also* true that ix.io's been flaky.) |
| 2021-02-03 00:25:11 | <ectospasm> | Yeah, XMonad is broken for me right now, because this won't compile. I usually post this stuff to my Git repo, but the URL for that would be longer and harder to type. |
| 2021-02-03 00:25:54 | <fizzie> | Anyhow, the error is what it says: `getCenterBar` expects an Int, but IS.countScreens needs to do some actual work to count the screens, so its type is (roughly) `X countScreens`. You're using it correctly in the `toggleHomeScreens` function, because the do notation `sc <- IS.countScreens` will pull the Int out of the monad. |
| 2021-02-03 00:27:29 | <ectospasm> | Unfortunately my Haskell skills are always rusty at best (I only use Haskell for XMonad). fizzie: do you have any suggestions on how I can fix it? |
| 2021-02-03 00:28:16 | <ectospasm> | Would I set the type definition to be X () -> Int -> String? I'm still unclear on how that works. |
| 2021-02-03 00:29:19 | <fizzie> | For the centerBar / bottomBar definitions, you could do something like `centerBar = fmap getCenterBar IS.countScreens` (or equivalent; there's many ways to write that); to complement that, you'd need to change your main function to be something like: do { dzenCenterCommand <- centerBar; dzenCenterBar <- spawnPipe centerCommand; ... }. |
| 2021-02-03 00:29:58 | → | gazler_ joins (~gazler@195.107.2.81.in-addr.arpa) |
| 2021-02-03 00:31:22 | <fizzie> | Or `do { dzenCenterBar -> centerBar >>= spawnPipe; ... }` should also work, I guess. |
| 2021-02-03 00:31:33 | <ectospasm> | don't I already have `dzenCenterBar <- spawnPipe centerBar`? |
| 2021-02-03 00:31:44 | <fizzie> | Yes, but that's not what I wrote. |
| 2021-02-03 00:32:39 | <ectospasm> | No, I guess I don't understand what the difference between what I have and what you wrote is. |
| 2021-02-03 00:32:51 | × | gazler quits (~gazler@195.107.2.81.in-addr.arpa) (Ping timeout: 265 seconds) |
| 2021-02-03 00:33:04 | <fizzie> | See, if you do `centerBar = fmap getCenterBar IS.countScreens`, that makes `centerBar` itself an IO-ish computation (its inferred type will be `m String`, where m is any instance of MonadIO, including IO or X), so in your main function you need to sequence two things: first, running `centerBar` to get a String, and then running `spawnPipe` on that string to get a Handle. |
| 2021-02-03 00:33:59 | <fizzie> | If you type `dzenCenterBar <- spawnPipe centerBar` in a do block, that's enough to run one thing (the spawnPipe). But it would expect an argument of type `String`, and you'd be giving it an (again, approximately) `IO String`. |
| 2021-02-03 00:34:30 | <ectospasm> | Ah, OK. I get confused with all these types flying around. |
| 2021-02-03 00:34:49 | <ectospasm> | Let me try that. |
| 2021-02-03 00:34:53 | <fizzie> | If you type `dzenCenterCommand <- centerBar; dzenCenterBar <- spawnPipe dzenCenterCommand`, you're explicitly executing those two IO operations one after each other. The first pulls the String out (and calls it `dzenCenterCommand`), the second runs the spawnPipe. |
| 2021-02-03 00:37:10 | <fizzie> | And the `dzenCenterBar <- centerBar >>= spawnPipe` is the same except it uses the (>>=) operator, which has the type signature `forall a b . Monad m => m a -> (a -> m b) -> m b`, meaning if you give it (say) an `IO String` as the first argument, and `String -> IO Handle` as the second (such as spawnPipe), it will feed the former to the latter and you'll get an `IO Handle` out. |
| 2021-02-03 00:38:06 | <ectospasm> | OK, that compiles! |
| 2021-02-03 00:38:12 | <fizzie> | (Also, if you talk to a real Haskell person, I'm sure you'll get much more theoretically elegant way of doing all this.) |
| 2021-02-03 00:39:33 | <ectospasm> | Well, I'm back in X, so this will work for now. |
| 2021-02-03 00:40:17 | <ectospasm> | And the actual problem I was trying to fix is now fixed. Before, centerBar and bottomBar were mere constant strings, but that broke the placement of my logHook. |
| 2021-02-03 00:40:38 | <fizzie> | FWIW, what you could *also* have done is just to make your main function `main = do { nScreens <- IS.countScreens; dzenCenterBar <- spawnPipe (getCenterBar nScreens); .. }`. In other words, you'd just explicitly run countScreens once in main, and then you have a plain old Int that you can pass to your getCenterBar. |
| 2021-02-03 00:40:39 | <ectospasm> | At least, it was broken in a single-screen scenario. |
| 2021-02-03 00:42:20 | <ectospasm> | That's basically what's happening in my toggleHomeScreens function. I'll see if I can clean it up later, but for now this will work! Thanks, fizzie! |
| 2021-02-03 01:33:31 | × | thc202 quits (~thc202@unaffiliated/thc202) (Ping timeout: 258 seconds) |
| 2021-02-03 02:23:10 | × | wz1000 quits (~wz1000@static.11.113.47.78.clients.your-server.de) (Ping timeout: 272 seconds) |
| 2021-02-03 02:25:03 | Hash | is now known as EnchanterTim |
| 2021-02-03 03:22:36 | × | theDon quits (~td@94.134.91.201) (Ping timeout: 240 seconds) |
| 2021-02-03 03:24:34 | → | theDon joins (~td@94.134.91.50) |
| 2021-02-03 03:29:12 | → | everythingTaken joins (~everythin@gateway/tor-sasl/everythingtaken) |
| 2021-02-03 03:36:33 | × | everythingTaken quits (~everythin@gateway/tor-sasl/everythingtaken) (Quit: everythingTaken) |
| 2021-02-03 03:45:43 | × | abhixec quits (~abhixec@c-67-169-139-16.hsd1.ca.comcast.net) (Quit: leaving) |
| 2021-02-03 04:28:27 | × | growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2021-02-03 04:30:52 | → | growpotkin joins (~growpotki@130-45-30-154.dyn.grandenetworks.net) |
| 2021-02-03 04:32:14 | → | growpotk- joins (~growpotki@130-45-30-154.dyn.grandenetworks.net) |
| 2021-02-03 04:38:04 | EnchanterTim | is now known as StonedApe |
| 2021-02-03 04:55:51 | → | materiyolo joins (~materiyol@112.204.170.198) |
| 2021-02-03 05:17:19 | × | growpotk- quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Ping timeout: 272 seconds) |
| 2021-02-03 05:48:16 | <StonedApe> | Hello |
| 2021-02-03 05:49:19 | <StonedApe> | When I make youtube video fullscreen, the alignment of the butons and seekbar is off. I have to push META+b to turn off panels. And then I can click button and use the seek bar. |
| 2021-02-03 05:50:29 | <StonedApe> | If panels are on, and I make youtube fullscreen, and go back to NOT fullscreen, the window is still messed up. I then quickly have to turn off panels with meta+b, then turn it back on with meta+b and then the chromeium browser window adjusts itself |
| 2021-02-03 05:50:40 | <StonedApe> | Is there any way to prevent this behavior |
| 2021-02-03 05:51:10 | <StonedApe> | https://termbin.com/5dfh here's my xmonad.hs |
| 2021-02-03 05:51:45 | <StonedApe> | xmonad $ docks $ ewmh defaultConfig |
| 2021-02-03 05:51:52 | <StonedApe> | manageHook = manageDocks <+> myManageHook <+> manageHook defaultConfig |
| 2021-02-03 05:52:04 | <StonedApe> | That's how I ahve it. |
| 2021-02-03 05:52:26 | <StonedApe> | , ("<F12>", sendMessage ToggleStruts) -- Expand and I use F12 to use toggleStruts |
| 2021-02-03 05:52:46 | <StonedApe> | avoidStruts . smartBorders in my layout hook |
| 2021-02-03 05:52:49 | <StonedApe> | Any ideas guys? |
| 2021-02-03 06:10:25 | → | palo1 joins (~weechat@c-base/crew/palo) |
| 2021-02-03 06:12:28 | × | growpotkin quits (~growpotki@130-45-30-154.dyn.grandenetworks.net) (Quit: ZNC 1.8.2 - https://znc.in) |
| 2021-02-03 06:13:15 | × | palo quits (~weechat@c-base/crew/palo) (Ping timeout: 246 seconds) |
| 2021-02-03 06:13:15 | palo1 | is now known as palo |
| 2021-02-03 06:44:22 | → | lordie joins (~lordie@168.194.157.104) |
| 2021-02-03 06:45:55 | <lordie> | Ar |
| 2021-02-03 07:01:16 | → | thoros joins (~thoros@194-96-55-156.hdsl.highway.telekom.at) |
| 2021-02-03 07:08:58 | → | ChubaDuba joins (~ChubaDuba@37.112.231.139) |
| 2021-02-03 07:16:46 | → | thc202 joins (~thc202@unaffiliated/thc202) |
| 2021-02-03 07:18:11 | <StonedApe> | lordie: hello |
| 2021-02-03 07:18:49 | <StonedApe> | I used avodistruts because I wanted to hide xmobar when I make the video full screen |
| 2021-02-03 07:19:09 | <StonedApe> | if I use avoidstruts, I can hide xmobar with togglestruts |
| 2021-02-03 07:19:35 | <StonedApe> | But when I use it, I have to manually do all that I said prev. |
| 2021-02-03 07:20:06 | <StonedApe> | I just want to hide all bars/panels when video si full screen |
| 2021-02-03 07:20:30 | <StonedApe> | and have it done automatically, without having to do avoidstruts/toggle struts |
| 2021-02-03 07:44:47 | → | xaltsc joins (~xaltsc@unaffiliated/xaltsc) |
All times are in UTC.