You are not logged in.

#26 2011-01-05 14:28:38

eduardo.eae
Member
From: Reconquista - Argentina
Registered: 2010-01-24
Posts: 68

Re: The WMFS Thread (Window Manager From Scratch)

Multiple screens doesn't work for me. It handle it as one large screen. Anyone have this working? It works on Xmonad but not with WMFS.

Here is my config:

#
# This is the default wmfs config file, copy it to
# ~/.config/wmfs/wmfsrc and edit it.
#

# Include file to split configuration
# @include "~/.config/wmfs/menu-wmfsrc"

[misc]
        font               = "fixed-8"
        raisefocus         = true
        focus_follow_mouse = false
        focus_pointer_click = true
        status_timing      = 15 #seconds
[/misc]

[bar]
        bg     = "#191919"
        fg     = "#ffffff"
        border = true
        # selbar = false   #not worked now, see section [selbar]

        [systray]
                # Enable/disable systray
                active = true

                # Screen of systray
                screen = 1

                # Spacing between tray icons
                spacing = 3
        [/systray]

        # Remove this section to disable the selbar.
        [selbar]
                bg = "#191919"
                fg = "#ffffff"

                # Cut title length
                # max_length = 25

                [mouse] button = "3" func = "clientlist"  [/mouse]
                [mouse] button = "4" func = "client_next" [/mouse]
                [mouse] button = "5" func = "client_prev" [/mouse]
        [/selbar]

[/bar]

[layouts]
        fg = "#191919"
        bg = "#FFAA00"

        # Border around the layout button.
        border = true

        # Value menu or switch.
        system = "menu"

        # Value left or right.
        placement = "right"

        # Keep layout geo for free layout
        keep_layout_geo = false

        # Symbol displayed for the selected layout in the list
        selected_layout_symbol = "*"

        # layouts.
        [layout] type = "tile_right"         symbol = "Derecha"    [/layout]
        [layout] type = "tile_left"          symbol = "Izquierda"  [/layout]
        [layout] type = "tile_top"           symbol = "Arriba"     [/layout]
        [layout] type = "tile_bottom"        symbol = "Abajo"      [/layout]
        [layout] type = "mirror_vertical"    symbol = "Espejo_V"   [/layout]
        [layout] type = "mirror_horizontal"  symbol = "Espejo_H"   [/layout]
        [layout] type = "tile_grid"          symbol = "Grilla_H"   [/layout]
        [layout] type = "tile_grid_vertical" symbol = "Grilla_V"   [/layout]
        [layout] type = "max"                symbol = "Maximizada" [/layout]
        [layout] type = "free"               symbol = "Libre"      [/layout]

[/layouts]

[tags]
        [default_tag]
             name             = "new tag"
             mwfact           = 0.5
             nmaster          = 1
             layout           = "tile_right"
             resizehint       = false
             infobar_position = "top"
        [/default_tag]

        tag_round      = false
        occupied_bg    = "#FF7700"
        occupied_fg    = "#191919"
        sel_fg         = "#191919"
        sel_bg         = "#FFAA00"
        urgent_bg      = "#DD1111"
        urgent_fg      = "#000000"
        # If true, number of the tag will be used for name
        name_count     = false

        # Border around the tag buttons.
        border      = true

        # Hide empty tags in tag list
        autohide    = true

        # Mouse buttons action on tag.
        mouse_button_tag_sel       = "1"
        mouse_button_tag_transfert = "2"
        mouse_button_tag_add       = "3"
        mouse_button_tag_next      = "4"
        mouse_button_tag_prev      = "5"

        [tag] name = "#"  [/tag]
        [tag] name = "1"  [/tag]
        [tag] name = "2"  [/tag]
        [tag] name = "3"  [/tag]
        [tag] name = "4"  [/tag]
        [tag] name = "5"  [/tag]
        [tag] name = "6"  [/tag]
        [tag] name = "7"  [/tag]
        [tag] name = "8"  [/tag]
        [tag] name = "9"  [/tag]
        [tag] name = "E1" [/tag]
        [tag] name = "E2" [/tag]
        [tag] name = "E3" [/tag]
        [tag] name = "E4" [/tag]
        [tag] name = "E5" [/tag]
        [tag] name = "E6" [/tag]
        [tag] name = "E7" [/tag]
        [tag] name = "Descargas" infobar_position = "hide" [/tag]
        [tag] name = "E9" screen = 0 [/tag]
[/tags]

[root]
       # Command you can execute to set the background.
        background_command = "nitrogen --set-tiled /home/eduardo/datos/documentos/fondos/fondo.jpg"

        [mouse] button = "4" func = "tag_next"              [/mouse]
        [mouse] button = "5" func = "tag_prev"              [/mouse]
[/root]

[client]
        client_round         = true
        border_height        = 1
        border_shadow        = false
        border_normal        = "#191919"
        border_focus         = "#FFAA00"
        resize_corner_normal = "#191919"
        resize_corner_focus  = "#FFAA00"
        set_new_win_master   = false

        # Space between tiled clients
        padding = 0

        # Modifier for mouse use
        modifier = "Mod4"

        [mouse] button = "1" func = "client_raise" [/mouse]
        [mouse] button = "1" func = "mouse_move"   [/mouse]
        [mouse] button = "3" func = "client_raise" [/mouse]
        [mouse] button = "3" func = "mouse_resize" [/mouse]

[/client]

[rules]
       [rule] class = "MPlayer"  max = true [/rule]
       [rule] class = "Zathura"  max = true [/rule]
       [rule] class = "Gpicview" max = true [/rule]
       [rule] class = "Gliv"     free = true [/rule]
       [rule] class = "Gimp" role  = "gimp-toolbox" free = true [/rule]
       [rule] instance = "sun-awt-X11-XFramePeer" class = "jd-Main" screen = 1 tag = 18 [/rule]
       [rule] instance = "Download" screen = 1 tag = 18 [/rule]
       [rule] instance = "youtube"  screen = 1 tag = 18 [/rule]
       [rule] instance = "FlashGot" screen = 1 tag = 18 [/rule]
[/rules]

[launcher]
        [set_launcher]
                width_limit = 300
                name = "launcher_exec"
                prompt = "Ejecutar: "
                command = "exec"
        [/set_launcher]

        # Lauch in Terminal
        [set_launcher]
                width_limit = 400
                name = "launcherm_exec"
                prompt = "Ejecutar en terminal: "
                command = "urxvtc -e"
        [/set_launcher]
[/launcher]

[keys]
         # Reload the configuration of wmfs.
        [key] mod = {"Mod4", "Control"} key = "r" func = "reload" [/key]

        # Open a terminal.
        [key] mod = {"Mod4"} key = "Return" func = "spawn" cmd = "urxvtc" [/key]

        # Kill the selected client.
        [key] mod = {"Mod4", "Shift"} key = "c" func = "client_kill" [/key]

        # Quit wmfs.
        [key] mod = {"Control", "Mod4", "Shift"} key = "q" func = "quit" [/key]

        # Toggle maximum the selected client
        [key] mod = {"Mod4"} key = "m" func = "toggle_max" [/key]

        # Toggle free the selected client.
        [key] mod = {"Mod4"} key = "f" func = "toggle_free" [/key]

        # Toggle the position of the infobar.
        [key] mod = {"Mod4"} key = "b" func = "toggle_infobar_position" [/key]

        # Toggle above all
        [key] mod = {"Mod4"} key = "a" func = "toggle_abovefc" [/key]

        # Select the next client.
        [key] mod = {"Mod4"} key = "Tab" func = "client_next" [/key]
        [key] mod = {"Alt" } key = "Tab" func = "client_next" [/key]

        # Select the previous client.
        [key] mod = {"Mod4","Shift"} key = "Tab" func = "client_prev" [/key]
        [key] mod = {"Alt" ,"Shift"} key = "Tab" func = "client_prev" [/key]

        # Swap current client with the next.
        [key] mod = {"Mod4","Alt"} key = "Tab" func = "client_swap_next" [/key]

        # Swap current client with the previous.
        [key] mod = {"Mod4","Alt","Shift"} key = "Tab" func = "client_swap_prev" [/key]

        # Select the next tag.
        [key] mod = {"Control"} key = "Right" func = "tag_next" [/key]

        # Select the previous tag.
        [key] mod = {"Control"} key = "Left" func = "tag_prev" [/key]

        # Select the next visible tag.
        [key] mod = {"Control","Mod4"} key = "Right" func = "tag_next_visible" [/key]

        # Select the previous visible tag.
        [key] mod = {"Control","Mod4"} key = "Left" func = "tag_prev_visible" [/key]

        # Set the next layout.
        [key] mod = {"Mod4"} key = "space" func = "layout_next" [/key]

        # Set the previous layout.
        [key] mod = {"Mod4", "Alt"} key = "space" func = "layout_prev" [/key]

        # Increase mwfact.
        [key] mod = {"Mod4"} key = "Right" func = "set_mwfact" cmd = "+0.025" [/key]

        # Decrease mwfact.
        [key] mod = {"Mod4"} key = "Left" func = "set_mwfact" cmd = "-0.025" [/key]

        # Increase nmaster.
        [key] mod = {"Mod4"} key = "Up" func = "set_nmaster" cmd = "+1" [/key]

        # Decease nmaster.
        [key] mod = {"Mod4"} key = "Down" func = "set_nmaster" cmd = "-1" [/key]

        [key] mod = {"Control" } key = "Up" func = "screen_next" [/key]
        [key] mod = {"Control" } key = "Down" func = "screen_prev" [/key]

        #LauncherM.
        [key] mod = {"Mod4","Alt"} key = "p" func = "launcher" cmd = "launcherm_exec" [/key]

        #Launcher.
        [key] mod = {"Mod4"} key = "p" func = "launcher" cmd = "launcher_exec" [/key]

        # Set the tag x.
        [key] mod = {"Mod4"} key = "bar" func = "tag" cmd = "1"  [/key]
        [key] mod = {"Mod4"} key = "1"   func = "tag" cmd = "2"  [/key]
        [key] mod = {"Mod4"} key = "2"   func = "tag" cmd = "3"  [/key]
        [key] mod = {"Mod4"} key = "3"   func = "tag" cmd = "4"  [/key]
        [key] mod = {"Mod4"} key = "4"   func = "tag" cmd = "5"  [/key]
        [key] mod = {"Mod4"} key = "5"   func = "tag" cmd = "6"  [/key]
        [key] mod = {"Mod4"} key = "6"   func = "tag" cmd = "7"  [/key]
        [key] mod = {"Mod4"} key = "7"   func = "tag" cmd = "8"  [/key]
        [key] mod = {"Mod4"} key = "8"   func = "tag" cmd = "9"  [/key]
        [key] mod = {"Mod4"} key = "9"   func = "tag" cmd = "10" [/key]
        [key] mod = {"Mod4"} key = "F1"  func = "tag" cmd = "11" [/key]
        [key] mod = {"Mod4"} key = "F2"  func = "tag" cmd = "12" [/key]
        [key] mod = {"Mod4"} key = "F3"  func = "tag" cmd = "13" [/key]
        [key] mod = {"Mod4"} key = "F4"  func = "tag" cmd = "14" [/key]
        [key] mod = {"Mod4"} key = "F5"  func = "tag" cmd = "15" [/key]
        [key] mod = {"Mod4"} key = "F6"  func = "tag" cmd = "16" [/key]
        [key] mod = {"Mod4"} key = "F7"  func = "tag" cmd = "17" [/key]
        [key] mod = {"Mod4"} key = "F8"  func = "tag" cmd = "18" [/key]
        [key] mod = {"Mod4"} key = "F9"  func = "tag" cmd = "19" [/key]

        # Transfert selected client to x.
        [key] mod = {"Mod4", "Shift"} key = "bar" func = "tag_transfert" cmd ="1"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "1"   func = "tag_transfert" cmd ="2"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "2"   func = "tag_transfert" cmd ="3"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "3"   func = "tag_transfert" cmd ="4"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "4"   func = "tag_transfert" cmd ="5"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "5"   func = "tag_transfert" cmd ="6"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "6"   func = "tag_transfert" cmd ="7"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "7"   func = "tag_transfert" cmd ="8"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "8"   func = "tag_transfert" cmd ="9"  [/key]
        [key] mod = {"Mod4", "Shift"} key = "9"   func = "tag_transfert" cmd ="10" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F1"  func = "tag_transfert" cmd ="11" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F2"  func = "tag_transfert" cmd ="12" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F3"  func = "tag_transfert" cmd ="13" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F4"  func = "tag_transfert" cmd ="14" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F5"  func = "tag_transfert" cmd ="15" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F6"  func = "tag_transfert" cmd ="16" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F7"  func = "tag_transfert" cmd ="17" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F8"  func = "tag_transfert" cmd ="18" [/key]
        [key] mod = {"Mod4", "Shift"} key = "F9"  func = "tag_transfert" cmd ="19" [/key]

        # Toggle additional tags (x) on the current tag
        [key] mod = {"Mod4", "Alt"} key = "bar" func = "tag_toggle_additional" cmd ="1"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "1"   func = "tag_toggle_additional" cmd ="2"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "2"   func = "tag_toggle_additional" cmd ="3"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "3"   func = "tag_toggle_additional" cmd ="4"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "4"   func = "tag_toggle_additional" cmd ="5"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "5"   func = "tag_toggle_additional" cmd ="6"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "6"   func = "tag_toggle_additional" cmd ="7"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "7"   func = "tag_toggle_additional" cmd ="8"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "8"   func = "tag_toggle_additional" cmd ="9"  [/key]
        [key] mod = {"Mod4", "Alt"} key = "9"   func = "tag_toggle_additional" cmd ="10" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F1"  func = "tag_toggle_additional" cmd ="11" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F2"  func = "tag_toggle_additional" cmd ="12" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F3"  func = "tag_toggle_additional" cmd ="13" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F4"  func = "tag_toggle_additional" cmd ="14" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F5"  func = "tag_toggle_additional" cmd ="15" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F6"  func = "tag_toggle_additional" cmd ="16" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F7"  func = "tag_toggle_additional" cmd ="17" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F8"  func = "tag_toggle_additional" cmd ="18" [/key]
        [key] mod = {"Mod4", "Alt"} key = "F9"  func = "tag_toggle_additional" cmd ="19" [/key]

        # Mis teclas

        # MC
        [key] mod = {"Mod4"} key = "e" func = "spawn" cmd = "urxvtc -e mc" [/key]
        # Newsbeuter
        [key] mod = {"Mod4"} key = "n" func = "spawn" cmd = "urxvtc -e newsbeuter" [/key]
        # RedShift
        [key] mod = {"Mod4"} key = "l" func = "spawn" cmd = "[[ -f /tmp/.gamma ]] && (redshift -x -m randr ; rm /tmp/.gamma) || (redshift -t 4500:4500 -o -l 1:1 -m randr ; touch /tmp/.gamma)" [/key]
        # Monitor
        [key] mod = {"Mod4"} key = "o" func = "spawn" cmd = "/usr/local/bin/monitor" [/key]
        # VirtualVox
        [key] mod = {"Mod4"} key = "v" func = "spawn" cmd = ". /etc/eae.cosas ; VM=`ls -1 /home/eduardo/datos/.VirtualBox/Machines/ | menu -p 'VirtualBox'` && VirtualBox --startvm $VM &" [/key]
        # nmon
        [key] mod = {"Mod4"} key = "t" func = "spawn" cmd = "urxvtc -e nmon" [/key]
        # NetMan
        [key] mod = {"Mod4"} key = "w" func = "spawn" cmd = "sudo /usr/local/sbin/netman" [/key]
        # Favoritos
        [key] mod = {}       key = "Pause" func = "spawn" cmd = "/usr/local/bin/favoritos favoritos" [/key]
        [key] mod = {"Mod4"} key = "Pause" func = "spawn" cmd = "/usr/local/bin/favoritos favoritos2" [/key]
        # htop
        [key] mod = {"Mod4","Alt"} key = "t" func = "spawn" cmd = "urxvtc -e htop" [/key]
        # ACPI
        [key] mod = {"Mod4","Alt"} key = "a" func = "spawn" cmd = ". /etc/eae.cosas ; [ -f /var/run/daemons/acpid ] && (sudo /etc/rc.d/acpid stop && echo 'ACPID detenido' | zen &) || (sudo /etc/rc.d/acpid start && echo 'ACPID iniciado' | zen &)" [/key]
        # Lock screen
        [key] mod = {"Mod4"} key = "BackSpace" func = "spawn" cmd = "sleep 0.5s ; xset dpms force off & alock -auth pam" [/key]
        # Kill basura
        [key] mod = {"Mod4","Control"} key = "BackSpace" func = "spawn" cmd = "killall dbus-daemon dbus-launch xclip" [/key]
        # Equalizador
        [key] mod = {"Mod4","Control"} key = "e" func = "spawn" cmd = "/usr/local/bin/equal" [/key]
        [key] mod = {"Mod4","Alt"}     key = "e" func = "spawn" cmd = "/usr/local/bin/equal" [/key]
        # MOCP
        [key] mod = {"Mod4","Control"} key = "m" func = "spawn" cmd = "/usr/bin/urxvtc -tn rxvt-unicode -e /usr/bin/mocp" [/key]
        [key] mod = {"Mod4","Alt"}     key = "m" func = "spawn" cmd = "/usr/bin/urxvtc -tn rxvt-unicode -e /usr/bin/mocp" [/key]
        [key] mod = {}          key = "XF86AudioPlay" func = "spawn" cmd = "mocp -G" [/key]
        [key] mod = {"Control"} key = "XF86AudioPlay" func = "spawn" cmd = "mocp -p" [/key]
        [key] mod = {}          key = "XF86AudioStop" func = "spawn" cmd = "mocp -s" [/key]
        [key] mod = {"Control"} key = "XF86AudioStop" func = "spawn" cmd = "mocp -x" [/key]
        [key] mod = {}          key = "XF86AudioNext" func = "spawn" cmd = "mocp -f" [/key]
        [key] mod = {"Control"} key = "XF86AudioNext" func = "spawn" cmd = "mocp -k 5" [/key]
        [key] mod = {}          key = "XF86AudioPrev" func = "spawn" cmd = "mocp -r" [/key]
        [key] mod = {"Control"} key = "XF86AudioPrev" func = "spawn" cmd = "mocp -k -5" [/key]
        # Volumen
        [key] mod = {}          key = "XF86AudioLowerVolume" func = "spawn" cmd = "amixer -q set Master 5- unmute" [/key]
        [key] mod = {"Control"} key = "XF86AudioLowerVolume" func = "spawn" cmd = "amixer -q set Master 0 mute" [/key]
        [key] mod = {}          key = "XF86AudioRaiseVolume" func = "spawn" cmd = "amixer -q set Master 5+ unmute" [/key]
        [key] mod = {"Control"} key = "XF86AudioRaiseVolume" func = "spawn" cmd = "amixer -q set Master 100 unmute" [/key]
        # Reiniciar
        [key] mod = {"Mod4","Control","Alt"} key = "r" func = "spawn" cmd = "sudo reboot" [/key]
        # Apagar
        [key] mod = {"Mod4","Control","Alt"} key = "a" func = "spawn" cmd = "sudo poweroff" [/key]

        #[key] mod = {} key = "" func = "spawn" cmd = "" [/key]
[/keys]

I use xrandr and have xinerama disabled. xinerama is for having one large desktop right? I remember that WMFS used to hang when I configured the other monitor with xinerama enabled.

Last edited by eduardo.eae (2011-01-05 14:30:56)

Offline

#27 2011-01-05 17:40:36

bacardi55
Member
Registered: 2010-03-24
Posts: 25

Re: The WMFS Thread (Window Manager From Scratch)

eduardo.eae wrote:

Multiple screens doesn't work for me. It handle it as one large screen. Anyone have this working? It works on Xmonad but not with WMFS.

Here is my config:

#
...

I use xrandr and have xinerama disabled. xinerama is for having one large desktop right? I remember that WMFS used to hang when I configured the other monitor with xinerama enabled.


How are you using xrandr?
I'm using xrandr and 2 screens and both screen are handled separatly


Archlinux, wmfs and vim lover smile
dotfiles
wmfs contrib
Excuse my poor english, this ain't my mother tongue smile

Offline

#28 2011-01-05 20:28:16

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: The WMFS Thread (Window Manager From Scratch)

Merging into the WMFS thread.

Rather than have WMFS stuff spread over the boards, it would be better to consolidate in the one thread...


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#29 2011-01-05 22:47:20

eduardo.eae
Member
From: Reconquista - Argentina
Registered: 2010-01-24
Posts: 68

Re: The WMFS Thread (Window Manager From Scratch)

I use xrandr manually:

xrandr --output VGA1 --auto --right-of LVDS1

LVDS1 = Laptop LCD
VGA1 = External monitor

I tried with --left-of instead and got the same outcome.

How do you use it??

* SORRY!! Aparently now it doesn't work properly in xmonad either. I must have screwed something up by myself. Will have a look at it. Thanks anyway.

Last edited by eduardo.eae (2011-01-06 00:14:25)

Offline

#30 2011-01-11 12:29:54

Erus_Iluvatar
Wiki Admin
Registered: 2010-04-01
Posts: 122

Re: The WMFS Thread (Window Manager From Scratch)

Proud WMFS user, reporting here since i have just finished translating Wiki page to French (with some minor additions)

* picks another booze *

Here's a shot of my WMFS desktop :
tNnh2bA


I'm french, don't mind my mistakes in english.

Offline

#31 2011-01-15 14:27:02

NYFinest
Member
From: New York
Registered: 2010-07-23
Posts: 19

Re: The WMFS Thread (Window Manager From Scratch)

Erus_Iluvatar what are you using for the status bar? also what font are you using?

Thanks


Lenovo X201T
Arch x86_64

Offline

#32 2011-01-16 19:33:12

thayer
Fellow
From: Vancouver, BC
Registered: 2007-05-20
Posts: 1,560
Website

Re: The WMFS Thread (Window Manager From Scratch)

Thanks Jason, as if I don't have enough half-finished projects on the go...how can I not try out a new dwm-like window manager after reading your blog post?  smile

I must admit I like the config syntax and built-in system tray (damn I wish Anselm would do this).  The built-in launcher seems nice too, though I still prefer gmrun for this.

What I dislike is the omission of a drawsquare function that indicates a non-active tag is occupied.  I'm not crazy about introducing yet another colour scheme to the bar for this purpose; it just starts to look sloppy.

If anyone is interested, you can find my ongoing test config here:

https://github.com/thayerwilliams/wmfs- … ter/wmfsrc

I'll stick with dwm for now, but they definitely have my attention.

Last edited by thayer (2011-01-18 17:51:39)


thayer williams ~ cinderwick.ca

Offline

#33 2011-01-16 20:37:01

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: The WMFS Thread (Window Manager From Scratch)

thayer wrote:

What I dislike is the omission of a drawsquare function that indicates a non-active tag is occupied.  I'm not crazy about introducing yet another colour scheme to the bar for this purpose; it just starts to look sloppy.

I must agree: I do miss the squares. I was looking at the code in dwm.c over the weekend to see if it was readily importable, but -with no C skills- it appears to be a little trickier than I hoped.

What I really like about WMFS, is that all of the functionality that I patch into dwm is already there - plus some of the stuff I just haven't bothered with, like xft fonts and colours in the status bar, which are just eye-candy but add to the overall usability nonetheless.


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#34 2011-01-16 21:02:06

Dieter@be
Forum Fellow
From: Belgium
Registered: 2006-11-05
Posts: 2,000
Website

Re: The WMFS Thread (Window Manager From Scratch)

why did i not hear of this before?
also, what's the philosophy behind this? do they aim to be "a more simple awesome", or something?
when i first read the name, i thought it was more like a framework, expecting users to build their own WM's from it (a bit like Xmonad)


< Daenyth> and he works prolifically
4 8 15 16 23 42

Offline

#35 2011-01-16 21:56:15

Alm
Member
Registered: 2010-09-15
Posts: 64

Re: The WMFS Thread (Window Manager From Scratch)

NYFinest wrote:

Erus_Iluvatar what are you using for the status bar? also what font are you using?

Thanks

You can find Erus' config there: https://github.com/erus/WmfsConfig


See, you're unpacking.

Offline

#36 2011-01-16 22:43:36

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: The WMFS Thread (Window Manager From Scratch)

Dieter@be wrote:

why did i not hear of this before?

It's still in stealth mode smile


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#37 2011-01-17 08:21:46

bacardi55
Member
Registered: 2010-03-24
Posts: 25

Re: The WMFS Thread (Window Manager From Scratch)

jasonwryan wrote:
thayer wrote:

What I dislike is the omission of a drawsquare function that indicates a non-active tag is occupied.  I'm not crazy about introducing yet another colour scheme to the bar for this purpose; it just starts to look sloppy.

I must agree: I do miss the squares. I was looking at the code in dwm.c over the weekend to see if it was readily importable, but -with no C skills- it appears to be a little trickier than I hoped.

What I really like about WMFS, is that all of the functionality that I patch into dwm is already there - plus some of the stuff I just haven't bothered with, like xft fonts and colours in the status bar, which are just eye-candy but add to the overall usability nonetheless.

I'm not familiar with DWM but if you explain what you need and ask for a feature in the redmine, I'm sure that someone will do it (me for example smile)


Archlinux, wmfs and vim lover smile
dotfiles
wmfs contrib
Excuse my poor english, this ain't my mother tongue smile

Offline

#38 2011-01-17 10:37:35

Erus_Iluvatar
Wiki Admin
Registered: 2010-04-01
Posts: 122

Re: The WMFS Thread (Window Manager From Scratch)

@NYFinest : using conky and an uggly sed script for coloring the output, and Alm already answered for the rest, thanks to him.


I'm french, don't mind my mistakes in english.

Offline

#39 2011-01-17 16:15:19

thayer
Fellow
From: Vancouver, BC
Registered: 2007-05-20
Posts: 1,560
Website

Re: The WMFS Thread (Window Manager From Scratch)

bacardi55 wrote:
thayer wrote:

What I dislike is the omission of a drawsquare function that indicates a non-active tag is occupied.

I'm not familiar with DWM but if you explain what you need and ask for a feature in the redmine, I'm sure that someone will do it (me for example smile)

Done: http://wmfs.info/issues/71

Cheers and thanks


thayer williams ~ cinderwick.ca

Offline

#40 2011-01-17 18:00:49

bacardi55
Member
Registered: 2010-03-24
Posts: 25

Re: The WMFS Thread (Window Manager From Scratch)

thayer wrote:
bacardi55 wrote:
thayer wrote:

What I dislike is the omission of a drawsquare function that indicates a non-active tag is occupied.

I'm not familiar with DWM but if you explain what you need and ask for a feature in the redmine, I'm sure that someone will do it (me for example smile)

Done: http://wmfs.info/issues/71

Cheers and thanks

It seems that xorg62 (creator and lead dev) wants to do it himself :-)
it will be something more configurable than just having a square smile


Archlinux, wmfs and vim lover smile
dotfiles
wmfs contrib
Excuse my poor english, this ain't my mother tongue smile

Offline

#41 2011-01-17 22:10:46

blin
Member
From: Saint-Petersbur, Russia
Registered: 2010-10-31
Posts: 17

Re: The WMFS Thread (Window Manager From Scratch)

Is it possible to use special characters like ".","/","*" etc. in keybindings?

I've tried to bind "mpc toggle" to Mod4+/ (also tried Mod4+. and Mod4+,) and was unsuccessful.
Here is the line that i've tried:

[key] mod = {"Mod4"} key = "/"  func = "spawn" cmd = "mpc -q toggle" [/key]

Changing / to t works, as expected. Should i escape this characters somehow (backslash escaping doesn't work), or is it so by design?


PS1='[$(date +%H:%M:%S) - \H] \n[$(pwd)]\$ '

Offline

#42 2011-01-18 02:39:47

BurntSushi
Member
From: Massachusetts
Registered: 2009-06-28
Posts: 362
Website

Re: The WMFS Thread (Window Manager From Scratch)

@blin

Try using "slash" instead of "/".

For other characters, either run xev from a terminal, press the desired key, and examine the output, or consult /usr/include/X11/keysymdef.h.


Education is favorable to liberty. Freedom can exist only in a society of knowledge. Without learning, men are incapable of knowing their rights, and where learning is confined to a few people, liberty can be neither equal nor universal.

Tu ne cede malis sed contra audentior ito

Offline

#43 2011-01-18 10:45:19

blin
Member
From: Saint-Petersbur, Russia
Registered: 2010-10-31
Posts: 17

Re: The WMFS Thread (Window Manager From Scratch)

Thanks, BurntSushi.

Thanks to the open source i was able to find screen controling functions. They probably should be included in the default config.

        [key] mod = {"Mod4"} key = "s" func = "screen_next" [/key]
        [key] mod = {"Mod4"} key = "o" func = "client_screen_next" [/key] #send current client to the next screen

I've also encountered a bug https://wmfs.info/issues/72 has anyone else encountered this?


PS1='[$(date +%H:%M:%S) - \H] \n[$(pwd)]\$ '

Offline

#44 2011-01-19 08:28:41

enzzzy
Member
Registered: 2010-10-09
Posts: 13

Re: The WMFS Thread (Window Manager From Scratch)

Is it possible to switch between the floating or free layer and tiling layer ?
For example. I open a terminal on a tag (which is in tile right mode). On that same tag i launch the rdesktop client in free mode.
The rdesktop client will always stay on top.

The only solution i found is to bring focus to the terminal, set it in "max" mode. At that point i can switch with ALT + Tab...

Offline

#45 2011-01-19 08:31:43

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: The WMFS Thread (Window Manager From Scratch)

You can set up keybindings to toggle between layouts:

# Toggle layouts
[key] mod = {"Mod4"} key = "t" func = "set_layout" cmd = "tile_right" [/key]
[key] mod = {"Mod4"} key = "s" func = "set_layout" cmd = "tile_bottom" [/key]
[key] mod = {"Mod4"} key = "m" func = "set_layout" cmd = "max" [/key]
[key] mod = {"Mod4"} key = "f" func = "set_layout" cmd = "free" [/key]

Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#46 2011-01-19 10:40:33

enzzzy
Member
Registered: 2010-10-09
Posts: 13

Re: The WMFS Thread (Window Manager From Scratch)

That's not really what i ment. I would like to keep the client in free mode and bring al tiled clients to the front.

Offline

#47 2011-01-19 17:01:02

Inxsible
Forum Fellow
From: Chicago
Registered: 2008-06-09
Posts: 9,183

Re: The WMFS Thread (Window Manager From Scratch)

I am a very happy i3 user, but I am gonna try this out tonight and give it a whirl just for the heck of it. The only thing that worries me is that I shouldn't forget all my i3 shortcuts in trying to learn the wmfs ones wink

Before i3, i used musca adn dwm before that, but I probably wouldn't remember how to do certain things in the earlier tilers. how do you guys keep track of the WM related commands (if you use more than 1 WM)


Forum Rules

There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !

Offline

#48 2011-01-19 17:35:55

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: The WMFS Thread (Window Manager From Scratch)

Inxsible wrote:

how do you guys keep track of the WM related commands (if you use more than 1 WM)

Map all keybindings the same way across all WM's. It might take a little longer to set up a WM that way, but it makes the transition seamless...


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#49 2011-01-19 18:02:37

Inxsible
Forum Fellow
From: Chicago
Registered: 2008-06-09
Posts: 9,183

Re: The WMFS Thread (Window Manager From Scratch)

yes but not every WM is capable of doing things that another WM can. you know what I mean ?


Forum Rules

There's no such thing as a stupid question, but there sure are a lot of inquisitive idiots !

Offline

#50 2011-01-19 18:33:45

ggarm
Member
Registered: 2010-03-13
Posts: 6

Re: The WMFS Thread (Window Manager From Scratch)

Hello,

I'm also trying wmfs and love it so far. However there is a small issue...

When i try to play a video with mplayer I can no longer switch from fullscreen, pressing 'f' only changes the aspect-ratio.
I've switched to another WM and there is no problem there, so I'm betting it's my config:

 
[rules]
     # Example of rule for Mplayer
     [rule]
         instance = "xv"       # First part of WM_CLASS
         class    = "MPlayer"  # Seconf part of WM_CLASS, not needed if first part is correct
         # role = ""           # WM_WINDOW_ROLE
         screen   = 0          # Screen to use
         tag      = 2          # Tag number of apps
         free     = true       # Set automatic free client
         max      = false      # Set automatic maximized client
     [/rule]
   [tag]
          name             = "main"
          screen           = 0
          mwfact           = 0.65
          nmaster          = 1
          layout           = "tile_grid_vertical"
          resizehint       = false
          infobar_position = "top"
          #[mouse] [/mouse] Possible multi mouse section
    [/tag]

    [tag] name = "web"   [/tag]
    [tag] name = "chat" screen = 0 layout = "free" [/tag]

Did anyone have a similar issue before?

Last edited by ggarm (2011-01-19 18:35:20)

Offline

Board footer

Powered by FluxBB