2023/02/25

2023-02-25 00:14:15 +0100wuqs(~user@191.177.51.98)
2023-02-25 00:17:28 +0100 <wuqs> can i create a shortcut for using Gimp screenshot function?
2023-02-25 00:21:05 +0100 <geekosaur> not readily. although it looks like it already has one, if it's open/focused? (PrtSc)
2023-02-25 00:23:19 +0100 <wuqs> yes, but i need to focus on it, then get my shot
2023-02-25 00:23:50 +0100 <geekosaur> you can spawn it but you can't tell when it's ready for you to paste a key to it
2023-02-25 00:26:24 +0100 <geekosaur> I also don't know if it'll accept a pasted key when not focused (or indeed if it'll accept it at all; X11 marks synthetic events as such and some programs ignore them)
2023-02-25 00:27:36 +0100 <wuqs> ok, i am lost... but actually i found something useful!
2023-02-25 00:27:44 +0100 <wuqs> ("<Print>", spawn "gimp --batch '(plug-in-screenshot RUN-INTERACTIVE FALSE 0 0 0 0 0)'"
2023-02-25 00:27:55 +0100 <geekosaur> and it would probably be easier to do it by spawning xdotool rather than trying to do it directly: we have some stuff to paste keys but it expects printables, not xK_Print
2023-02-25 00:27:56 +0100 <wuqs> did the job for me on additionalKeysP`
2023-02-25 00:28:12 +0100 <geekosaur> huh, okay
2023-02-25 00:28:34 +0100 <geekosaur> might conceivably need to toss in an `unGrab` to avoid a possible race condition
2023-02-25 00:29:14 +0100 <geekosaur> but yes, someting like that is preferable to trying to manufacture keystrokes
2023-02-25 00:29:30 +0100 <geekosaur> xmonad is a window manager, not the X server
2023-02-25 00:30:26 +0100 <wuqs> i was hoping there was something simple that i am missing
2023-02-25 00:30:52 +0100 <wuqs> like someone pointed me about the power-off button...
2023-02-25 00:31:08 +0100 <wuqs> but actually that commad 'RUN-INTERACTIVE...' is pretty sweet
2023-02-25 00:31:51 +0100 <geekosaur> this, sadly, is not simple unless you can use a command like that
2023-02-25 00:32:12 +0100 <geekosaur> identifying a window and sending synthetic events to it is ugly and annoying
2023-02-25 00:32:17 +0100 <geekosaur> and may not work
2023-02-25 04:03:34 +0100banc(banc@gateway/vpn/protonvpn/banc) (Ping timeout: 246 seconds)
2023-02-25 04:08:20 +0100jludwig(~justin@li657-110.members.linode.com) (Quit: ZNC - https://znc.in)
2023-02-25 04:09:31 +0100jludwig(~justin@li657-110.members.linode.com)
2023-02-25 04:13:51 +0100wuqs(~user@191.177.51.98) (Remote host closed the connection)
2023-02-25 04:19:21 +0100banc(banc@gateway/vpn/protonvpn/banc)
2023-02-25 04:42:04 +0100td_(~td@i5387092A.versanet.de) (Ping timeout: 246 seconds)
2023-02-25 04:44:11 +0100td_(~td@i5387090F.versanet.de)
2023-02-25 07:09:28 +0100qbt(~qbt@user/edun)
2023-02-25 07:51:21 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net) (Ping timeout: 255 seconds)
2023-02-25 07:53:08 +0100werneta(~werneta@70-142-214-115.lightspeed.irvnca.sbcglobal.net)
2023-02-25 07:57:56 +0100 <galactic_starfis> for the record I use spiral, but mostly just as a tall clone but with showoff capabilities I can whip up the instant somebody comments on my "weird hacker computer"... which happens really often, believe it or not
2023-02-25 07:58:42 +0100 <galactic_starfis> I basically never surpass 3 or 4 windows with spiral unless showing off or testing things like easymovement
2023-02-25 08:27:39 +0100 <geekosaur> I have an xmonad logo posted on my apartment door, and one of my neighbors has already made an "Einstein" comment about it 🙂
2023-02-25 08:29:26 +0100 <geekosaur> (I'm not supposed to be up now, it's the middle of the night…)
2023-02-25 08:38:27 +0100 <qbt> galactic_starfis, the "weird hacker computer" comments always warms my heart :)
2023-02-25 08:50:40 +0100 <galactic_starfis> lol, same geekosaur
2023-02-25 08:51:06 +0100 <galactic_starfis> not the Einstein thing, but the up at midnight thing
2023-02-25 10:00:30 +0100unclechu(~unclechu@2001:470:69fc:105::354) (Quit: You have been kicked for being idle)
2023-02-25 10:14:20 +0100 <vrs> gridselect also is great for showing off
2023-02-25 10:14:36 +0100unclechu(~unclechu@2001:470:69fc:105::354)
2023-02-25 10:18:05 +0100qbt(~qbt@user/edun) (Ping timeout: 268 seconds)
2023-02-25 10:20:46 +0100qbt(~qbt@user/edun)
2023-02-25 10:28:54 +0100qbt(~qbt@user/edun) (Quit: WeeChat 3.8)
2023-02-25 11:10:50 +0100 <geekosaur> yeah but at 58 I can't pull off all-nighters any more, I'm dead the next day
2023-02-25 11:11:10 +0100 <geekosaur> (sadly I just woke up and can't get back to sleep, so that means today…)
2023-02-25 11:43:16 +0100mc47(~mc47@xmonad/TheMC47)
2023-02-25 11:52:19 +0100 <mazte[m]> <geekosaur> "(sadly I just woke up and can'..." <- Relatable
2023-02-25 11:53:22 +0100 <mazte[m]> Anyone know of a good way to spawn a center float window with a hard set geometry?
2023-02-25 11:54:03 +0100 <mazte[m]> Say, a 360x360 center float window, where the window would've originally tiled
2023-02-25 11:54:53 +0100 <mazte[m]> I was going to make a hook for it, but I figured I'd ask, since I don't exactly know how to mess with geometry and people here might have a much better method than what I'm thinking of
2023-02-25 11:55:05 +0100 <geekosaur> sadlly, this is difficult because xmonad will still remember it as a RationalRect in case it has to be drawn on a screen with a different geometry (as on my machine where the laptop panel is smaller than the external monitor)
2023-02-25 11:55:41 +0100 <geekosaur> in general I just calculate the equivalent RationalRect and try to remember not to display the workspace on the wrong monitor
2023-02-25 11:57:57 +0100 <mazte[m]> Would it not be possible by passing along some message to make it behave as such? For example, I have pavucontrol set to open as a center float and it seems to prefer a specific geometry, that being around 1/3 full screen. Is this not just pavucontrol passing a desired geometry to xmonad and then xmonad adhering to it?
2023-02-25 11:58:33 +0100 <geekosaur> xmonad converts it to a rationalrect and will force pavucontrol to adhere to that subsequently
2023-02-25 11:59:02 +0100 <geekosaur> (by default xmonad tries to honor floats, but the window manager has the last word, not the app)
2023-02-25 11:59:05 +0100 <mazte[m]> mazte[m]: So, I was going to try make a script to activate when x app is spawned, if that's the case
2023-02-25 11:59:17 +0100 <mazte[m]> Ah
2023-02-25 12:01:00 +0100 <geekosaur> (the "message" is the `WM_SIZE_HINTS` property on the window)
2023-02-25 12:01:25 +0100 <mazte[m]> so, xmonad decides to spawn in pavucontrol in this size, not pavucontrol?
2023-02-25 12:01:30 +0100mazte[m]uploaded an image: (2892KiB) < https://libera.ems.host/_matrix/media/v3/download/matrix.org/tOqKfUpCkpSINbWvsBcEVAxL/2023-02-25_0… >
2023-02-25 12:02:23 +0100 <mazte[m]> oh, i think i got you. That explains why the behavior is different with various cases
2023-02-25 12:02:35 +0100 <geekosaur> pavucontrol sets WM_SIZE_HINTS, xmonad will honor it when first spawned but turn it into a RationalRect for future displays of the window on possibly different sized screens
2023-02-25 12:03:01 +0100 <geekosaur> which means it will preserve the "1/3 full screen" at the price of "x number of pixels" being wrong
2023-02-25 12:03:25 +0100 <geekosaur> and apps work in terms of pixels; RationalRect is an xmonad thing
2023-02-25 12:07:01 +0100 <mazte[m]> Gotcha. I was thinking of trying to make a keybind to make x window into a float and inherit a geometry
2023-02-25 12:09:25 +0100 <geekosaur> withFocused $ windows $ W.centerFloat (someRationalRectHere)
2023-02-25 12:12:19 +0100 <geekosaur> sorry, centerFloat isn't in XMonad.StackSet, it's in ManageHelpers
2023-02-25 12:13:53 +0100 <geekosaur> and that usage I gavce ou was actually doRectFloat. what I get for waking up at 4:30am
2023-02-25 12:14:28 +0100 <geekosaur> anyway look at https://hackage.haskell.org/package/xmonad-contrib-0.17.1/docs/XMonad-Hooks-ManageHelpers.html for helpful float-at stuff
2023-02-25 12:14:42 +0100 <geekosaur> which you use with XMonad.Operations.windows
2023-02-25 12:16:18 +0100 <geekosaur> and no, they're all ManageHooks so can't be used directly, you have to copy the source without the `doF` wrapper
2023-02-25 12:16:47 +0100 <geekosaur> not sure these get used enough to justify refactoring for direct `windows` use
2023-02-25 12:35:41 +0100 <[Leary]> Rather than copying the implementation, you can use something like `runManageHook mh w = runQuery mh w >>= windows . appEndo`, perhaps as `withFocused . runManageHook`.
2023-02-25 12:41:36 +0100 <geekosaur> yeh, that just seems silly to me though
2023-02-25 12:41:54 +0100 <geekosaur> wish they'd provided unwrapped versions of the ManageHooks to start out with
2023-02-25 12:44:37 +0100 <mazte[m]> sorry, had to do something
2023-02-25 12:44:47 +0100 <mazte[m]> <geekosaur> "anyway look at https://hackage...." <- will do
2023-02-25 12:45:26 +0100 <mazte[m]> ill try these out, tyvm
2023-02-25 12:58:07 +0100 <liskin> mazte[m]: does your pavucontrol not remember its last size?
2023-02-25 12:58:34 +0100 <liskin> I also set pavucontrol to autofloat, but all I had to do to have it be of reasonable size is to resize it to that size once
2023-02-25 12:58:37 +0100 <liskin> same for cantata
2023-02-25 12:59:12 +0100 <liskin> oh, maybe I should've read all messages
2023-02-25 13:12:31 +0100 <geekosaur> if you want to size it manually and then get a RationalRect for it, see https://github.com/geekosaur/xmonad.hs/blob/skkukuk/xmonad.hs#L374-L403
2023-02-25 13:12:59 +0100 <geekosaur> I find that useful for spawning a window and then building an NSP for it
2023-02-25 13:57:17 +0100 <mazte[m]> <liskin> "mazte: does your pavucontrol not..." <- I do not resize it; it goes into center float mode when it spawns
2023-02-25 13:57:49 +0100 <mazte[m]> technically, it never really changes size, which is what i prefer
2023-02-25 13:57:54 +0100 <mazte[m]> <mazte[m]> "2023-02-25_03:00:16.png" <- it stays like this consistently
2023-02-25 14:03:38 +0100 <mazte[m]> <geekosaur> "if you want to size it manually..." <- Ideally, it would just be a set rational rect from the start or when a key is pressed
2023-02-25 14:04:14 +0100 <mazte[m]> perhaps im not explaining this well, but ill be able to try this out in a bit
2023-02-25 14:04:49 +0100 <geekosaur> right, the point is you do this once to get the RationalRect (maybe using its initial size) and then you use `showWinRR` to find out the `RationalRect` and wire that in
2023-02-25 14:08:18 +0100 <mazte[m]> Ah, got you. My bad, it's a little late
2023-02-25 14:13:46 +0100 <geekosaur> otherwise, hm. 350×350 centered on a 1920×1080 display would be `(RationalRect 0.4089 0.3380 0.1823 0.3241)`, I think?
2023-02-25 14:21:40 +0100 <geekosaur> actually if you want 1/3 instead of 350, that would be `(RationalRect 0.3333 0.3333 0.3333 0.3333)` nice and easy 🙂
2023-02-25 14:22:09 +0100 <geekosaur> (350 pixels isn't much)
2023-02-25 14:22:23 +0100 <geekosaur> (these days at least)
2023-02-25 14:33:11 +0100 <liskin> mazte[m]: yeah, but why don't you try to resize it?
2023-02-25 14:33:25 +0100 <liskin> resize, close, and then next time it opens it'll have that size :-)
2023-02-25 14:34:11 +0100 <liskin> not really a solution if you want it to always be perfectly sized, and also if you have multiple monitors of different size, this whole relative vs. absolute sizing will mess things up
2023-02-25 14:34:20 +0100 <liskin> but it mostly works for me :-)
2023-02-25 15:46:48 +0100gknux(~gknux@user/galaxy-knuckles/x-3015990) (Quit: ....and i am outta here....)
2023-02-25 15:47:46 +0100gknux(~gknux@user/galaxy-knuckles/x-3015990)
2023-02-25 17:00:38 +0100unclechu(~unclechu@2001:470:69fc:105::354) (Quit: You have been kicked for being idle)
2023-02-25 17:12:03 +0100hightower2(~hightower@16-152.dsl.iskon.hr) (Ping timeout: 255 seconds)
2023-02-25 17:50:54 +0100hightower2(~hightower@85.94.71.188)
2023-02-25 18:57:15 +0100catman(~catman@user/catman)
2023-02-25 19:11:52 +0100catman(~catman@user/catman) (Quit: WeeChat 3.8)
2023-02-25 19:49:07 +0100telser_(~quassel@user/telser) (Ping timeout: 268 seconds)
2023-02-25 19:50:01 +0100telser(~quassel@user/telser)
2023-02-25 22:05:50 +0100 <mazte[m]> <geekosaur> "actually if you want 1/3 instead..." <- Hah, perfect. I'll try this
2023-02-25 22:09:26 +0100 <mazte[m]> <liskin> "resize, close, and then next..." <- This is quite cool, but I'd have to do it for multiple, no?
2023-02-25 22:10:58 +0100 <mazte[m]> I wanted to make it so I could center float some arbitrary window with a defined rational rect, ideally that of pavucontrol, which seems to be around 1/3
2023-02-25 22:12:08 +0100 <mazte[m]> I don't know why I mentioned hooks yesterday. I'll blame it on sleep deprivation, lmao
2023-02-25 22:50:23 +0100catman(~catman@user/catman)
2023-02-25 23:01:00 +0100catman(~catman@user/catman) (Ping timeout: 260 seconds)
2023-02-25 23:19:53 +0100abhixec(~abhinav@c-67-169-139-16.hsd1.ca.comcast.net) (Read error: Connection reset by peer)
2023-02-25 23:21:54 +0100mvk(~mvk@2607:fea8:5caa:ac00::fa57)