Hello,
Apologies for the repost....i had posted here: https://www.reddit.com/r/xmonad/comments/hvaug9/xagridselect_spawnselected_colorized/ but no response for some time now. So I want to try here. Basically, I am trying to custom colorize spawnSelected grid apps. I was able to do this with goToSelected and I really like the color scheme. Was hoping to use the same color scheme that i use for goToSelected applied to spawnSelected. Any input is much appreciated! Stay safe. -Dave _______________________________________________ xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Hi!
Your spawnSelected' has one argument [(String, String)], but you try to invoke it with two - myAppGrid and winconfig. I'd remove winconfig argument and instead stick it into gs_colorizer field in your GSConfig constructor. Best regards, Platon Pronko On 2020-08-07 17:13, Dave Macias wrote: > Hello, > > Apologies for the repost....i had posted here: https://www.reddit.com/r/xmonad/comments/hvaug9/xagridselect_spawnselected_colorized/ but no response for some time now. So I want to try here. > > Basically, I am trying to custom colorize spawnSelected grid apps. > I was able to do this with goToSelected and I really like the color scheme. > > Was hoping to use the same color scheme that i use for goToSelected applied to spawnSelected. > > Any input is much appreciated! > > Stay safe. > > -Dave > > _______________________________________________ > xmonad mailing list > [hidden email] > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Thank you for the reply. That helped me to figure it out. But I had to create a separate Colorizer. (see below) Is there a way to use the same colorizer as goToSelected? Thanks! myGSFont = "xft:Noto Sans CJK KR:bold:pixelsize=10" myColorizer :: Window -> Bool -> X (String, String) myColorizer = colorRangeFromClassName (0x31,0x2e,0x39) -- lowest inactive bg (0x31,0x2e,0x39) -- highest inactive bg (0x78,0x3e,0x57) -- active bg (0xc0,0xa7,0x9a) -- inactive fg (0xff,0xff,0xff) -- active fg gridColorizer :: a -> Bool -> X (String, String) gridColorizer _ True = return ("#00aa00", "black") gridColorizer _ False = return ("#333333", "#cccccc") myGSConfig :: t -> GSConfig Window myGSConfig colorizer = (buildDefaultGSConfig myColorizer) { gs_cellheight = 30 , gs_cellwidth = 200 , gs_cellpadding = 6 , gs_originFractX = 0.5 , gs_originFractY = 0.5 , gs_colorizer = myColorizer , gs_font = myGSFont } -- spawnSelected Redefine spawnSelected' :: [(String, String)] -> X () spawnSelected' lst = gridselect conf lst >>= flip whenJust spawn where conf = def { gs_cellheight = 30 , gs_cellwidth = 200 , gs_cellpadding = 6 , gs_originFractX = 0.5 , gs_originFractY = 0.5 , gs_colorizer = gridColorizer , gs_font = myGSFont } , ((mod4Mask, xK_g), goToSelected $ myGSConfig myColorizer) , ((mod4Mask, xK_y), spawnSelected' myAppGrid) , ((mod4Mask, xK_u), runSelectedAction (buildDefaultGSConfig gridColorizer) [ ("Chromium", spawnHere "chromium") , ("Hexchat", spawnHere "hexchat") On Sat, Aug 8, 2020 at 8:46 AM Platon Pronko <[hidden email]> wrote: Hi! _______________________________________________ xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Hi!
You mean you want to reuse your `myColorizer` for spawnSelected, correct? Then you'll need to rewrite colorRangeFromClassName a bit, because that one expects Window and you have a String. Something like this may work (haven't compiled it, just copied&tweaked the source for colorRangeFromClassName): colorRangeFromString :: (Word8, Word8, Word8) -- ^ Beginning of the color range -> (Word8, Word8, Word8) -- ^ End of the color range -> (Word8, Word8, Word8) -- ^ Background of the active window -> (Word8, Word8, Word8) -- ^ Inactive text color -> (Word8, Word8, Word8) -- ^ Active text color -> Window -> Bool -> X (String, String) colorRangeFromString startC endC activeC inactiveT activeT str active = if active then (rgbToHex activeC, rgbToHex activeT) else (rgbToHex $ mix startC endC $ stringToRatio str, rgbToHex inactiveT) where rgbToHex :: (Word8, Word8, Word8) -> String rgbToHex (r, g, b) = '#':twodigitHex r ++twodigitHex g++twodigitHex b stringColorizer :: String -> Bool -> X (String, String) stringColorizer = colorRangeFromString (0x31,0x2e,0x39) -- lowest inactive bg (0x31,0x2e,0x39) -- highest inactive bg (0x78,0x3e,0x57) -- active bg (0xc0,0xa7,0x9a) -- inactive fg (0xff,0xff,0xff) -- active fg windowColorizer :: Window -> Bool -> X (String, String) windowColorizer w active = runQuery className w >>= flip stringColorizer active Best regards, Platon Pronko On 2020-08-10 15:13, Dave Macias wrote: > Thank you for the reply. > That helped me to figure it out. > But I had to create a separate *Colorizer*. (see below) > Is there a way to use the same colorizer as goToSelected? > Thanks! > > myGSFont = "xft:Noto Sans CJK KR:bold:pixelsize=10" > myColorizer :: Window -> Bool -> X (String, String) > myColorizer = colorRangeFromClassName > (0x31,0x2e,0x39) -- lowest inactive bg > (0x31,0x2e,0x39) -- highest inactive bg > (0x78,0x3e,0x57) -- active bg > (0xc0,0xa7,0x9a) -- inactive fg > (0xff,0xff,0xff) -- active fg > > *gridColorizer :: a -> Bool -> X (String, String) > gridColorizer _ True = return ("#00aa00", "black") > gridColorizer _ False = return ("#333333", "#cccccc")* > > myGSConfig :: t -> GSConfig Window > myGSConfig colorizer = (buildDefaultGSConfig myColorizer) > { gs_cellheight = 30 > , gs_cellwidth = 200 > , gs_cellpadding = 6 > , gs_originFractX = 0.5 > , gs_originFractY = 0.5 > , gs_colorizer = myColorizer > , gs_font = myGSFont > } > > -- spawnSelected Redefine > spawnSelected' :: [(String, String)] -> X () > spawnSelected' lst = gridselect conf lst >>= flip whenJust spawn > where conf = def > { gs_cellheight = 30 > , gs_cellwidth = 200 > , gs_cellpadding = 6 > , gs_originFractX = 0.5 > , gs_originFractY = 0.5 > * , gs_colorizer = gridColorizer > * , gs_font = myGSFont > } > > > , ((mod4Mask, xK_g), goToSelected $ myGSConfig myColorizer) > * , ((mod4Mask, xK_y), spawnSelected' myAppGrid) > * , ((mod4Mask, xK_u), runSelectedAction (buildDefaultGSConfig gridColorizer) > [ ("Chromium", spawnHere "chromium") > , ("Hexchat", spawnHere "hexchat") > > On Sat, Aug 8, 2020 at 8:46 AM Platon Pronko <[hidden email] <mailto:[hidden email]>> wrote: > > Hi! > > Your spawnSelected' has one argument [(String, String)], but you try to invoke it with two - myAppGrid and winconfig. I'd remove winconfig argument and instead stick it into gs_colorizer field in your GSConfig constructor. > > Best regards, > Platon Pronko > > On 2020-08-07 17:13, Dave Macias wrote: > > Hello, > > > > Apologies for the repost....i had posted here: https://www.reddit.com/r/xmonad/comments/hvaug9/xagridselect_spawnselected_colorized/ but no response for some time now. So I want to try here. > > > > Basically, I am trying to custom colorize spawnSelected grid apps. > > I was able to do this with goToSelected and I really like the color scheme. > > > > Was hoping to use the same color scheme that i use for goToSelected applied to spawnSelected. > > > > Any input is much appreciated! > > > > Stay safe. > > > > -Dave > > > > _______________________________________________ > > xmonad mailing list > > [hidden email] <mailto:[hidden email]> > > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > > > _______________________________________________ > xmonad mailing list > [hidden email] <mailto:[hidden email]> > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Planton, Thank you kindly! I attempted to compile but with these results: xmonad.hs:346:58: error: Ambiguous occurrence ‘stringColorizer’ It could refer to either ‘XMonad.Actions.GridSelect.stringColorizer’, imported from ‘XMonad.Actions.GridSelect’ at xmonad.hs:46:1-32 or ‘Main.stringColorizer’, defined at xmonad.hs:338:1 | 346 | windowColorizer w active = runQuery className w >>= flip stringColorizer active | ^^^^^^^^^^^^^^^ So I updated that line to : windowColorizer w active = runQuery className w >>= flip XMonad.Actions.GridSelect.stringColorizer active but error: xmonad.hs:331:25: error: • Variable not in scope: mix :: (Word8, Word8, Word8) -> (Word8, Word8, Word8) -> t0 -> (Word8, Word8, Word8) • Perhaps you meant one of these: ‘max’ (imported from Prelude), ‘min’ (imported from Prelude) | 331 | else (rgbToHex $ mix startC endC | ^^^ xmonad.hs:332:16: error: Variable not in scope: stringToRatio :: Window -> t0 | 332 | $ stringToRatio str, rgbToHex inactiveT) | ^^^^^^^^^^^^^ xmonad.hs:334:37: error: Variable not in scope: twodigitHex :: Word8 -> [Char] | 334 | rgbToHex (r, g, b) = '#':twodigitHex r | ^^^^^^^^^^^ xmonad.hs:335:35: error: Variable not in scope: twodigitHex :: Word8 -> [Char] | 335 | ++twodigitHex g++twodigitHex b | ^^^^^^^^^^^ xmonad.hs:335:50: error: Variable not in scope: twodigitHex :: Word8 -> [Char] | 335 | ++twodigitHex g++twodigitHex b | ^^^^^^^^^^^ On Mon, Aug 10, 2020 at 9:01 AM Platon Pronko <[hidden email]> wrote: Hi! _______________________________________________ xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Hi!
I forgot that there is a same member in XMonad.Actions.GridSelect. You can rename `stringColorizer` to `myStringColorizer` (and `windowColorizer` to `myWindowColorizer` for uniformity). And don't forget to rename invocation of `stringColorizer` inside `windowColorizer` - it was meant to reuse our own colorizer instead of calling to XMonad.Actions.GridSelect.stringColorizer. Regarding `mix` and `twodigitHex` - they are not exported from the module, so you will need to copy them from the source (http://hackage.haskell.org/package/xmonad-contrib-0.16/docs/src/XMonad.Actions.GridSelect.html#twodigitHex). Best regards, Platon Pronko On 2020-08-10 16:14, Dave Macias wrote: > Planton, > Thank you kindly! > > I attempted to compile but with these results: > > xmonad.hs:346:58: error: > Ambiguous occurrence ‘stringColorizer’ > It could refer to > either ‘XMonad.Actions.GridSelect.stringColorizer’, > imported from ‘XMonad.Actions.GridSelect’ at xmonad.hs:46:1-32 > or ‘Main.stringColorizer’, defined at xmonad.hs:338:1 > | > 346 | windowColorizer w active = runQuery className w >>= flip stringColorizer active > | ^^^^^^^^^^^^^^^ > > > So I updated that line to : > > *windowColorizer w active = runQuery className w >>= flip XMonad.Actions.GridSelect.stringColorizer active > * > > but error: > > xmonad.hs:331:25: error: > • Variable not in scope: > mix > :: (Word8, Word8, Word8) > -> (Word8, Word8, Word8) -> t0 -> (Word8, Word8, Word8) > • Perhaps you meant one of these: > ‘max’ (imported from Prelude), ‘min’ (imported from Prelude) > | > 331 | else (rgbToHex $ mix startC endC > | ^^^ > > xmonad.hs:332:16: error: > Variable not in scope: stringToRatio :: Window -> t0 > | > 332 | $ stringToRatio str, rgbToHex inactiveT) > | ^^^^^^^^^^^^^ > > xmonad.hs:334:37: error: > Variable not in scope: twodigitHex :: Word8 -> [Char] > | > 334 | rgbToHex (r, g, b) = '#':twodigitHex r > | ^^^^^^^^^^^ > > xmonad.hs:335:35: error: > Variable not in scope: twodigitHex :: Word8 -> [Char] > | > 335 | ++twodigitHex g++twodigitHex b > | ^^^^^^^^^^^ > > xmonad.hs:335:50: error: > Variable not in scope: twodigitHex :: Word8 -> [Char] > | > 335 | ++twodigitHex g++twodigitHex b > | ^^^^^^^^^^^ > > On Mon, Aug 10, 2020 at 9:01 AM Platon Pronko <[hidden email] <mailto:[hidden email]>> wrote: > > Hi! > > You mean you want to reuse your `myColorizer` for spawnSelected, correct? Then you'll need to rewrite colorRangeFromClassName a bit, because that one expects Window and you have a String. Something like this may work (haven't compiled it, just copied&tweaked the source for colorRangeFromClassName): > > colorRangeFromString :: (Word8, Word8, Word8) -- ^ Beginning of the color range > -> (Word8, Word8, Word8) -- ^ End of the color range > -> (Word8, Word8, Word8) -- ^ Background of the active window > -> (Word8, Word8, Word8) -- ^ Inactive text color > -> (Word8, Word8, Word8) -- ^ Active text color > -> Window -> Bool -> X (String, String) > colorRangeFromString startC endC activeC inactiveT activeT str active = > if active > then (rgbToHex activeC, rgbToHex activeT) > else (rgbToHex $ mix startC endC > $ stringToRatio str, rgbToHex inactiveT) > where rgbToHex :: (Word8, Word8, Word8) -> String > rgbToHex (r, g, b) = '#':twodigitHex r > ++twodigitHex g++twodigitHex b > > stringColorizer :: String -> Bool -> X (String, String) > stringColorizer = colorRangeFromString > (0x31,0x2e,0x39) -- lowest inactive bg > (0x31,0x2e,0x39) -- highest inactive bg > (0x78,0x3e,0x57) -- active bg > (0xc0,0xa7,0x9a) -- inactive fg > (0xff,0xff,0xff) -- active fg > > windowColorizer :: Window -> Bool -> X (String, String) > windowColorizer w active = runQuery className w >>= flip stringColorizer active > > Best regards, > Platon Pronko > > On 2020-08-10 15:13, Dave Macias wrote: > > Thank you for the reply. > > That helped me to figure it out. > > But I had to create a separate *Colorizer*. (see below) > > Is there a way to use the same colorizer as goToSelected? > > Thanks! > > > > myGSFont = "xft:Noto Sans CJK KR:bold:pixelsize=10" > > myColorizer :: Window -> Bool -> X (String, String) > > myColorizer = colorRangeFromClassName > > (0x31,0x2e,0x39) -- lowest inactive bg > > (0x31,0x2e,0x39) -- highest inactive bg > > (0x78,0x3e,0x57) -- active bg > > (0xc0,0xa7,0x9a) -- inactive fg > > (0xff,0xff,0xff) -- active fg > > > > *gridColorizer :: a -> Bool -> X (String, String) > > gridColorizer _ True = return ("#00aa00", "black") > > gridColorizer _ False = return ("#333333", "#cccccc")* > > > > myGSConfig :: t -> GSConfig Window > > myGSConfig colorizer = (buildDefaultGSConfig myColorizer) > > { gs_cellheight = 30 > > , gs_cellwidth = 200 > > , gs_cellpadding = 6 > > , gs_originFractX = 0.5 > > , gs_originFractY = 0.5 > > , gs_colorizer = myColorizer > > , gs_font = myGSFont > > } > > > > -- spawnSelected Redefine > > spawnSelected' :: [(String, String)] -> X () > > spawnSelected' lst = gridselect conf lst >>= flip whenJust spawn > > where conf = def > > { gs_cellheight = 30 > > , gs_cellwidth = 200 > > , gs_cellpadding = 6 > > , gs_originFractX = 0.5 > > , gs_originFractY = 0.5 > > * , gs_colorizer = gridColorizer > > * , gs_font = myGSFont > > } > > > > > > , ((mod4Mask, xK_g), goToSelected $ myGSConfig myColorizer) > > * , ((mod4Mask, xK_y), spawnSelected' myAppGrid) > > * , ((mod4Mask, xK_u), runSelectedAction (buildDefaultGSConfig gridColorizer) > > [ ("Chromium", spawnHere "chromium") > > , ("Hexchat", spawnHere "hexchat") > > > > On Sat, Aug 8, 2020 at 8:46 AM Platon Pronko <[hidden email] <mailto:[hidden email]> <mailto:[hidden email] <mailto:[hidden email]>>> wrote: > > > > Hi! > > > > Your spawnSelected' has one argument [(String, String)], but you try to invoke it with two - myAppGrid and winconfig. I'd remove winconfig argument and instead stick it into gs_colorizer field in your GSConfig constructor. > > > > Best regards, > > Platon Pronko > > > > On 2020-08-07 17:13, Dave Macias wrote: > > > Hello, > > > > > > Apologies for the repost....i had posted here: https://www.reddit.com/r/xmonad/comments/hvaug9/xagridselect_spawnselected_colorized/ but no response for some time now. So I want to try here. > > > > > > Basically, I am trying to custom colorize spawnSelected grid apps. > > > I was able to do this with goToSelected and I really like the color scheme. > > > > > > Was hoping to use the same color scheme that i use for goToSelected applied to spawnSelected. > > > > > > Any input is much appreciated! > > > > > > Stay safe. > > > > > > -Dave > > > > > > _______________________________________________ > > > xmonad mailing list > > > [hidden email] <mailto:[hidden email]> <mailto:[hidden email] <mailto:[hidden email]>> > > > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > > > > > _______________________________________________ > > xmonad mailing list > > [hidden email] <mailto:[hidden email]> <mailto:[hidden email] <mailto:[hidden email]>> > > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > > > xmonad mailing list [hidden email] http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad |
Free forum by Nabble | Edit this page |