You are not logged in.
xwininfo: Window id: 0x320001f "GNOME MPlayer"
So you should enter "GNOME MPlayer" in your floats array.
Use xwininfo to get window ids.
Great, thanks. I've seen mention of window ids elsewhere, but forgot about them before I tried to figure this out.
EDIT:It's not working I double checked xwininfo and came up with the same Window id that you did.
I deleted Gimp from 'where floats =' and it still floats, so I'm guessing that's default and that code isn't doing anything. Silly. I thought since it didn't throw an error, it must be right.
It'd be swell if someone could check and see what I'm missing here. Also 'myTerminal = "lxterminal"' doesn't have any effect either.
xmonad.hs:
import XMonad
import XMonad.Layout.IndependentScreens
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import qualified XMonad.StackSet as W
import XMonad.Util.EZConfig(additionalKeys)
import System.IO
myTerminal = "lxterminal"
-- Whether focus follows the mouse pointer.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
main = do
nScreens <- countScreens
xmproc <- spawnPipe "xmobar"
spawn "sh /home/tony/.xmonad/autostart.sh"
xmonad $ defaultConfig
{ manageHook = manageDocks <+> manageHook defaultConfig
, layoutHook = avoidStruts $ layoutHook defaultConfig
, logHook = dynamicLogWithPP xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor "steelblue" "" . shorten 50
}
, workspaces = withScreens nScreens (workspaces defaultConfig)
, modMask = mod4Mask -- Rebind Mod to the Windows key
} `additionalKeys`
[ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -activate")
, ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
, ((0, xK_Print), spawn "scrot")
, ((mod4Mask .|. shiftMask, xK_F12), spawn ".screenlayout/external.sh")
, ((mod4Mask .|. shiftMask, xK_F1), spawn "lastfm")
, ((mod4Mask .|. shiftMask, xK_F2), spawn "chromium-browser")
, ((mod4Mask .|. shiftMask, xK_F3), spawn "lxterminal -e packer -Syyu --noedit --noconfirm --devel")
, ((mod4Mask .|. shiftMask, xK_F4), spawn "gedit")
, ((mod4Mask .|. shiftMask, xK_F5), spawn "thunar")
, ((mod4Mask .|. shiftMask, xK_F6), spawn "gpodder")
, ((mod4Mask .|. shiftMask, xK_F7), spawn "lxterminal")
, ((mod4Mask .|. shiftMask, xK_F8), spawn "oblogout")
, ((mod4Mask .|. shiftMask, xK_F9), spawn "Ted")
, ((mod4Mask .|. shiftMask, xK_F10), spawn "emacs")
]
myManageHook = composeAll . concat $
[ [ className =? c --> doFloat | c <- floats]
, [ resource =? r --> doIgnore | r <- ignore]]
where floats = ["GNOME MPlayer"]
ignore = ["trayer"]
Last edited by hobonix (2011-07-06 13:35:52)
I think Lisp is funny, double semi-colons and unmatched parentheses crack me up.
Offline
I've sometimes had trouble matching with className and have used appName instead, and xprop will identify this for you. Try this:
myManageHook = composeAll . concat $
[ [ appName =? c --> doFloat | c <- floats]
, [ resource =? r --> doIgnore | r <- ignore]]
where floats = ["gnome-mplayer"]
ignore = ["trayer"]
Offline
I'm currently trying to get output from Conky piped into xmobar properly. So far, no luck. The script works fine when I run it by hand, and the file is created with the right content...I just can't get it to show up in xmobar. Does anyone have any better suggestions?
.xmobarrc
Config { font = "xft:Togoshi Gothic:pixelsize=12"
, bgColor = "#0c0c0c"
, fgColor = "#9c9c9c"
, position = TopW L 100
, lowerOnStart = False
, commands = [ Run Date "%a %b %_d %k:%M" "date" 10
, Run StdinReader
, Run Com "~/.xmonad/conky_xmonad" ["&"] "conky" 300
] ]
, sepChar = "%"
, alignSep = "}{"
, template = "%StdinReader% }{ %conky% <fc=#ee9a00>%date%</fc>"
}
.xmonad/conky_xmonad (the line commented out was for testing purposes)
#!/bin/bash
# Filename: ~/.xmonad/conkyscript
conky -c ~/.conky_xmonad -i1 -q > ~/.xmonad/conkystat &
sleep 4
killall -q conky
echo `cat ~/.xmonad/conkystat`
#rm ~/.xmonad/conkystat
.conky_xmonad
background no
out_to_console yes
out_to_x no
update_interval 2
total_run_times 0
use_spacer none
TEXT
${execi 1 /usr/bin/mpd-info} | $memperc% ($mem) | Updates: ${execi 300 python ~/Dropbox/Scripts/conky/packages-short} | ${execi 60 python ~/Dropbox/Scripts/conky/gmail.py} Email(s)}
Last edited by lswest (2011-07-06 21:07:38)
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
I'm currently trying to get output from Conky piped into xmobar properly. So far, no luck. The script works fine when I run it by hand, and the file is created with the right content...I just can't get it to show up in xmobar. Does anyone have any better suggestions?
Most of us use dzen2 for that. Is there any particular reason you want to stick with xmobar?
Offline
Most of us use dzen2 for that. Is there any particular reason you want to stick with xmobar?
The reason is mainly that I have no experience with dzen2 I'm not at all hooked on using xmobar (after all, clicking on the workspaces isn't possible), so if you can give me an example of how to get xmonad's workspaces and conky in dzen2, I'd be more than happy to do it like that.
Last edited by lswest (2011-07-06 21:12:16)
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
The reason is mainly that I have no experience with dzen2 I'm not at all hooked on using xmobar (after all, clicking on the workspaces isn't possible), so if you can give me an example of how to get workspaces and conky in dzen2, I'd be more than happy to do it like that.
Well, this is how I use it:
In xmonad.hs:
myDzenFlags = " -bg " ++ escapeColor myBgColor
++ " -fg " ++ escapeColor myFontColor
++ " -e 'onstart=lower' "
++ " -h " ++ myPanelHeight
++ " -fn " ++ myFont
++ " -sa c "
++ " -y " ++ myPanelY
++ " -xs 2 "
statusBarCmd = "dzen2 "
++ myDzenFlags
++ " -w " ++ myMainPanelWidth
++ " -ta l "
main = do
din <- spawnPipe statusBarCmd
[...]
xmonad $ ewmh defaultConfig
{ manageHook = newManageHook sp
, layoutHook = myLayoutHook
, [...]
, logHook = myLogHook >> (dynamicLogWithPP $ myPP
{ ppOutput = hPutStrLn din
})
}
This shows the workspaces in one dzen using my log hook and pretty printer (PP).
Then I start a second dzen for conky:
secondBarCmd = "conky -c ~/.xmonad/conkyrc | dzen2 "
++ myDzenFlags
++ " -w " ++ myConkyPanelWidth
++ " -x " ++ myMainPanelWidth
++ " -ta r "
main = do
spawn secondBarCmd
[...]
}
This is the same main of course. And then there's ~/.xmonad/conkyrc:
out_to_console yes
out_to_x no
background yes
update_interval 1
total_run_times 0
use_spacer none
TEXT
\
${if_running amarok}^fg(\#418bd8)^i(/home/corrupt/.xmonad/images/mpd.xbm) ^fg(\#BFBFBF)${exec ~/.bin/amarokinfo} - \
^fg(\#418bd8)${exec /home/corrupt/.bin/amarokinfo -c}^fg(\#BFBFBF)| ${endif}\
${if_mpd_playing}$mpd_smart ($mpd_album) - $mpd_elapsed/$mpd_length |${endif} \
^i(/home/corrupt/.xmonad/images/pacman.xpm) ^ca(1,urxvt -e zsh -c "pacman -Qu && zsh")^fg(\#BFBFBF)${execi 30 pacman -Qu | wc -l} Updates^ca() | \
^fg(\#418bd8)^i(/home/corrupt/.xmonad/images/cpu.xbm) ^fg(\#BFBFBF)2x${freq_g 1}Ghz (${cpu cpu1}% ${cpu cpu2}%) | \
^fg(\#418bd8)^i(/home/corrupt/.xmonad/images/mem.xbm) ^fg(\#BFBFBF)$memperc% | \
^fg(\#418bd8)${time %A}^fg(\#BFBFBF) ${time %d.%m.%Y} |\
#^fg(\#E0DFDE)^bg(\#418bd8) ${time %H:%M}
Clickable workspaces can be achieved with xdotool. I'm doing it inside myPP.
ppVisible = ppVisibleColor . wrapClickable . (\a -> (a,a))
wrapClickable (idx,str) = "^ca(1," ++ xdo "w;" ++ xdo index ++ ")" ++ "^ca(3," ++ xdo "e;" ++ xdo index ++ ")" ++ str ++ "^ca()^ca()"
All just examples. If you want to look at the bigger picture, here's my github. But it's essentially a huge working mess. My haskell is alright I'd say but I haven't yet gotten round to modularizing my config. On my laptop I'm also using keys to dynamically create workspaces and only allow to delete those that aren't part of my static config. But it's not finished yet and therefore not yet on github.
Offline
Wow, great! I'll be looking through all this tomorrow (it's nearly midnight in Germany and I'm not awake enough to make big changes to my xmonad.hs right now).
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
I've sometimes had trouble matching with className and have used appName instead, and xprop will identify this for you. Try this:
myManageHook = composeAll . concat $ [ [ appName =? c --> doFloat | c <- floats] , [ resource =? r --> doIgnore | r <- ignore]] where floats = ["gnome-mplayer"] ignore = ["trayer"]
Nope. Oh well, it's a minor thing really.
I think Lisp is funny, double semi-colons and unmatched parentheses crack me up.
Offline
it's nearly midnight in Germany
I know
<--------
Last edited by count-corrupt (2011-07-06 21:42:23)
Offline
lswest wrote:it's nearly midnight in Germany
I know
<--------
Woops, I really need to start reading locations...
I've been trying to integrate your config and wrap my head around what your setup does, and so far I seems to be doing fine. The only issue I have yet to solve is the following:
xmonad.hs:96:32: Not in scope: `elemIndex'
line 96:currentWsIndex w = case (elemIndex w myWorkspaces) of
and my myWorkspaces:
myWorkspaces = ["命令","文書","話","ウェブ","日本語","六","七","八","音楽"]
I imagine I need to either alter my myWorkspaces, or else I need to import something.
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
or else I need to import something.
import Data.List
Offline
Thanks for the help. All the errors are gone, but the dzen bar isn't showing up.
*EDIT* Solved it, I had to install dzen2 with xft support because I was trying to use Togoshi Gothic.
Last edited by lswest (2011-07-07 10:31:44)
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
I installed Xmonad on Archbang which ships with Openbox (I have run vanilla Arch before). In OB Thunar recognizes my mp3 player, but not when I'm running Xmonad. I've Googled this and the closest I've got is setting up Xmonad to run with Xfce. Archbang uses some Xfce stuff, but when I started down that path I found that there were tools missing. I could figure out what package those tools come with, but I'm hoping there is a simpler or at least more direct way (setting up Xmonad to run with Openbox, hopefully).
I think Lisp is funny, double semi-colons and unmatched parentheses crack me up.
Offline
I installed Xmonad on Archbang which ships with Openbox (I have run vanilla Arch before). In OB Thunar recognizes my mp3 player, but not when I'm running Xmonad. I've Googled this and the closest I've got is setting up Xmonad to run with Xfce. Archbang uses some Xfce stuff, but when I started down that path I found that there were tools missing. I could figure out what package those tools come with, but I'm hoping there is a simpler or at least more direct way (setting up Xmonad to run with Openbox, hopefully).
I can't say I understand what your problem is. Thunar is not recognizing your applications?
There is absolutely no way to set up Xmonad to run with Openbox. Both are window managers and can only replace each other (though I do miss openbox' launcher menu at times). If there's a problem with thunar, it shouldn't be affected by the use of the window manager. You could try to start certain parts of XFCE in your .xinitrc as you would gnome-session or kdeinit4 (for gnome2/KDE4) or just use Xmonad directly in XFCE ad depicted here.
Offline
I installed Xmonad on Archbang which ships with Openbox (I have run vanilla Arch before). In OB Thunar recognizes my mp3 player, but not when I'm running Xmonad. I've Googled this and the closest I've got is setting up Xmonad to run with Xfce. Archbang uses some Xfce stuff, but when I started down that path I found that there were tools missing. I could figure out what package those tools come with, but I'm hoping there is a simpler or at least more direct way (setting up Xmonad to run with Openbox, hopefully).
My Thunar refuses to recognize media and removable devices unless I launch XMonad like this:
exec ck-launch-session dbus-launch --sh-syntax --exit-with-session xmonad
(important part is the dbus-launch bit).
If you want to test this without restarting XMonad, simply run thunar with:
dbus-launch thunar
Hope that helps.
Last edited by lswest (2011-07-08 07:00:40)
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
Two things:
First, I've made a slight modification to spawnSelected from XMonad.Actions.GridSelect, as explained here. I've been using it as the default way to start new applications and I like it. (If you would like to use it but don't know how, just ask and I'll write some example code).
Second, what do you use for your IM layout? "withIM" works as expected, but I can't find a nice layout to use with it. MosaicAlt works the best for me, but it still doesn't feel "right". I've tried Grid and GridRatio, but I didn't like them too.
(lambda ())
Offline
Hey all -
I've used a Xmonad-only setup for years, but would really like to try out the Xmonad+Gnome combo. That said, my Haskell is poor, and I'm having trouble finding a decent xmonad.hs that integrates with Gnome that I can use as a starting place. I have a few questions, if anyone can help:
1) I want the convenience of the Gnome DE, but I don't want the Gnome tray or panel. Has anyone successfully used Xmonad+Gnome + something like trayer? How would I do this? I would like to have GTK/Gnome applets still in-use (e.g., Network Manager), but the Gnome interface just isn't my thing.
I've seen some people starting the gnome-settings-daemon alongside Xmonad. Does this accomplish the above? What about the gnome-notification daemon?
2) Does anyone have a good set of dotfiles + xmonad.hs they would recommend as a starting place for this kind of thing?
Thanks
Edit: Made my first question more clear.
Last edited by daedalus (2011-09-15 19:51:59)
Offline
I would suggest the xfce panel then, usually less painfull to get to behave than trayer/standalonetray/similar.
Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest
Offline
This is my xmonad.hs. Works with xfce4-panel,tint2,fbpanel, and gnome-panel.
import XMonad
import XMonad.Config.Desktop
main = xmonad desktopConfig
Offline
Any simple dzen2 configuration to simulate dwm statusbar?
Update
Never mind: I already found the shortest path.
Surprisingly, everything can be done from within xmonad.
And feeding extra informations is as easy as:
, ppExtras = [dzenColorL "#A3CE69" "#1E1D1C" (date "^p(_RIGHT)^p(-55)%H:%M ")]
Last edited by bloom (2011-09-23 10:51:46)
Offline
Hi all,
I'd like to display only my workspaces in an individual font, and though I use dzen for my statusbar, this must be configured directly in xmonad.hs, I guess.
First I tried the XMonad.Layout.ShowWName stuff, but this is not what I meant -- it just shows the name of ws in the center of the screen for a second or so (if you want, have a look eg at (1) (2)).
So how to do this? Maybe it's sth similar to showing icons as ws names...
echo "1 2 3 4 5 6 7 8 9 0" | dzen2 -fn "blah-20" -p &
for a ttf "blah" in the size of 20px works btw.
we are Arch.
you will be assimilated!
resistance is futile!
Offline
I'm not sure if this is what you're after, but I use two instances of dzen, and as such you could set two separate fonts.
The relevant sections of my xmonad.hs:
Configuration:
myFont = "'Togoshi Gothic:size=9'"
myBgColor = "#0c0c0c"
myFontColor = "#ffffff"
myHighlightColor = "#9F6B00"
myPanelHeight = "18"
myPanelY = "0"
myMainPanelWidth = "660"
myConkyPanelWidth = "1040"
--Workspace dzen
myDzenFlags = " -bg " ++ escapeColor myBgColor
++ " -fg " ++ escapeColor myFontColor
++ " -h " ++ myPanelHeight
++ " -fn " ++ myFont
++ " -sa c "
++ " -y " ++ myPanelY
++ " -xs 2 "
statusBarCmd = "dzen2 "
++ myDzenFlags
++ " -w " ++ myMainPanelWidth
++ " -ta l "
--Conky dzen
secondBarCmd = "conky -c ~/.xmonad/.conkyrc_dwm_bar| dzen2 "
++ myDzenFlags
++ " -w " ++ myConkyPanelWidth
++ " -x " ++ myMainPanelWidth
++ " -ta r "
To create the bars put this at the start of your main = do function (before xmonad [...])
din <- spawnPipe statusBarCmd
spawn secondBarCmd
Hope that helps/points you in the right direction!
Lswest <- the first letter of my username is a lowercase "L".
"...the Linux philosophy is "laugh in the face of danger". Oops. Wrong one. "Do it yourself". That's it." - Linus Torvalds
Offline
...
myFont = "'Togoshi Gothic:size=9'" ... --Workspace dzen myDzenFlags = " -bg " ++ escapeColor myBgColor ++ " -fg " ++ escapeColor myFontColor ++ " -h " ++ myPanelHeight ++ " -fn " ++ myFont ... statusBarCmd = "dzen2 " ++ myDzenFlags ...
Yes, looks promising, thanks
Well, I use dzenPP, that looks like this:
myDzenPP = dzenPP
{ ppCurrent = dzenColor "#3399ff" "" . wrap " " " "
, ppHidden = dzenColor "#dddddd" "" . wrap " " " "
, ppHiddenNoWindows = dzenColor "#777777" "" . wrap " " " "
, ppUrgent = dzenColor "#ff0000" "" . wrap " " " "
, ppSep = " "
, ppLayout = dzenColor "#aaaaaa" "" . wrap " " " "
, ppTitle = dzenColor "#ffffff" ""
}
while main is:
main = do
status <- spawnPipe myDzenStatus -- xmonad status on the left
conky <- spawnPipe myDzenConky -- conky stats on the right
xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig
{ ... }
...unfortunately, there's no valid variable "ppFont". -- Is there a way to put sth like your myDzenFlags in here?
we are Arch.
you will be assimilated!
resistance is futile!
Offline
Probably I'm close to the solution with sth looking like this:
myDzenPP = dzenPP
{ ppCurrent = wrapFont myFont . dzenColor "#3399ff" "" . wrap " " " "
...
But "wrapFont" is out of scope and not mentioned here.
What to import, I already got XMonad.Hooks.DynamicLog?
Edit: Though it compiles well, the above is wrong anyhow.
Edit2: What about that SWNConfig-stuff as seen here and there?
@ lswest: found your configs btw.
This one looks also nice.
...lost in the fog. Let's see tomorrow.
Last edited by nexus7 (2011-10-11 00:52:03)
we are Arch.
you will be assimilated!
resistance is futile!
Offline
Hi nexus7,
This may not be the best solution but try to set your workspaces like so:
wsFont = "blah-20"
myWorkspaces = [ "^fn(" ++ wsFont ++ ")1"
, "^fn(" ++ wsFont ++ ")2"
, "^fn(" ++ wsFont ++ ")3"
, "^fn(" ++ wsFont ++ ")4"
, "^fn(" ++ wsFont ++ ")5"
, "^fn(" ++ wsFont ++ ")6"
, "^fn(" ++ wsFont ++ ")7"
, "^fn(" ++ wsFont ++ ")8"
, "^fn(" ++ wsFont ++ ")9"
, "^fn(" ++ wsFont ++ ")0"
]
Offline