diff -abBpur cvs-fluxbox/src/CurrentWindowCmd.cc ak-fluxbox-newactions/src/CurrentWindowCmd.cc --- cvs-fluxbox/src/CurrentWindowCmd.cc 2004-02-17 11:33:57.547912424 +0100 +++ ak-fluxbox-newactions/src/CurrentWindowCmd.cc 2004-02-17 12:28:04.154353224 +0100 @@ -47,6 +47,19 @@ void SendToWorkspaceCmd::real_execute() fbwindow().screen().sendToWorkspace(m_workspace_num, &fbwindow()); } +void SendToNextWorkspaceCmd::real_execute() { + unsigned int workspace_num= + ( fbwindow().screen().currentWorkspaceID() + m_workspace_num ) % + fbwindow().screen().getNumberOfWorkspaces(); + fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); +} + +void SendToPrevWorkspaceCmd::real_execute() { + int workspace_num= fbwindow().screen().currentWorkspaceID() - m_workspace_num; + if ( workspace_num < 0 ) workspace_num+= fbwindow().screen().getNumberOfWorkspaces(); + fbwindow().screen().sendToWorkspace(workspace_num, &fbwindow()); +} + void WindowHelperCmd::execute() { WinClient *client = Fluxbox::instance()->getFocusedWindow(); if (client && client->fbwindow()) // guarantee that fbwindow() exists too diff -abBpur cvs-fluxbox/src/CurrentWindowCmd.hh ak-fluxbox-newactions/src/CurrentWindowCmd.hh --- cvs-fluxbox/src/CurrentWindowCmd.hh 2004-02-17 11:33:57.547912424 +0100 +++ ak-fluxbox-newactions/src/CurrentWindowCmd.hh 2004-02-17 12:28:04.154353224 +0100 @@ -69,6 +69,24 @@ private: const int m_workspace_num; }; +class SendToNextWorkspaceCmd: public WindowHelperCmd { +public: + explicit SendToNextWorkspaceCmd(int workspace_num):m_workspace_num(workspace_num) { } +protected: + void real_execute(); +private: + const int m_workspace_num; +}; + +class SendToPrevWorkspaceCmd: public WindowHelperCmd { +public: + explicit SendToPrevWorkspaceCmd(int workspace_num):m_workspace_num(workspace_num) { } +protected: + void real_execute(); +private: + const int m_workspace_num; +}; + // move cmd, relative position class MoveCmd: public WindowHelperCmd { public: diff -abBpur cvs-fluxbox/src/FbCommandFactory.cc ak-fluxbox-newactions/src/FbCommandFactory.cc --- cvs-fluxbox/src/FbCommandFactory.cc 2004-02-17 11:33:57.548912272 +0100 +++ ak-fluxbox-newactions/src/FbCommandFactory.cc 2004-02-17 12:28:04.155353072 +0100 @@ -108,6 +108,8 @@ FbCommandFactory::FbCommandFactory() { "rootmenu", "saverc", "sendtoworkspace", + "sendtonextworkspace", + "sendtoprevworkspace", "setstyle", "setworkspacename", "setworkspacenamedialog", @@ -235,6 +237,10 @@ FbTk::Command *FbCommandFactory::stringT return new CurrentWindowCmd(&FluxboxWindow::toggleDecoration); else if (command == "sendtoworkspace") return new SendToWorkspaceCmd(atoi(arguments.c_str()) - 1); // make 1-indexed to user + else if (command == "sendtonextworkspace") + return new SendToNextWorkspaceCmd(atoi(arguments.c_str())); + else if (command == "sendtoprevworkspace") + return new SendToPrevWorkspaceCmd(atoi(arguments.c_str())); else if (command == "killwindow") return new KillWindowCmd(); else if (command == "nexttab") Nur in ak-fluxbox-newactions/src: FbCommandFactory.cc.orig. diff -abBpur cvs-fluxbox/src/Keys.cc ak-fluxbox-newactions/src/Keys.cc --- cvs-fluxbox/src/Keys.cc 2004-02-17 11:33:57.551911816 +0100 +++ ak-fluxbox-newactions/src/Keys.cc 2004-02-17 12:28:04.156352920 +0100 @@ -158,7 +158,7 @@ bool Keys::addBinding(const std::string if (val.size() <= 0) return true; // empty lines are valid. - if (val[0][0] == '#') //the line is commented + if (val[0][0] == '#' || val[0][0] == '!' ) //the line is commented return true; // still a valid line. unsigned int key = 0, mod = 0;