ksshmenu - A graphical SSH manager for KDE

» Deutsche Version

Sometimes it’s pretty annoying, being a system administrator. For example whenever you hear sentences such as “Can you quickly do a ‘/etc/init.d/apache2 restart’?“, followed by a stultifying work, opening 5 to 10 times a new tab in “konsole”, then logging in on each and drop the command through KDEs automatic session manager.

Of course that’s no way to deal with, for a impatient, lazy human, full of hybris like me. So I thought, I’m going to do some work now and have much less to type later. A night spent with C++ later “ksshmenu” went out, a little KDE kicker applet, that attaches itself to the desktop. Gnome users may use the more powerful and mature SSHMenu. Inspired from it, I wrote a minimal equivalent for KDE and the KDE terminal emulator konsole. Receiving some feedback by you and finding some time and caprice, I may add some missing features later.

Functionality and screenshots

Screenshots



Full screen with (automated) launched konsole sessions




menu view with nested groups




System dependent localisation (German end English) of the settings window.

Functions

  • context menu for servers, opening a konsole ssh-session reached my mouse click
  • Nested groups wich fits best for your needs. Place servers where ever you want
  • XML based configuration to be as flexible as possible
  • The possibility to open entire groups of servers within a tabbed shell and therefore controllable parallel within KDEs konsole.
  • Open Source (GPL 2)

Getting some interest, wishes and feedback by you, ksshmenu is of course still expandable. The application is also mostly untested, but works for me, but hey I follow the credo “release early, release often”.

Download

(I hope my English is understandable some way)

Kategorien

Eingeordnet unter: , und

Verwandte Artikel

2 Antworten auf »ksshmenu - A graphical SSH manager for KDE«

  1. Simply wonderfull!!!

    I made a little patch to use always one window

    — src-dist/ksshmenu.cpp 2008-05-16 17:48:39.000000000 0200
    src/ksshmenu.cpp 2008-09-27 11:24:16.000000000 0200
    @@ -41,6 41,7 @@
    ksshmenu::ksshmenu()
    : KSystemTray( 0, “ksshmenu” )
    {
    this->first = true;
    QString conf_file = QString(”%1/.ksshmenu.xml”).arg(getenv(”HOME”));

    this->loader = KGlobal::iconLoader();
    @@ -91,20 92,19 @@

    void ksshmenu::open_window(int elemid)
    {
    - this->comm->sendCommand(this->servers.at(elemid).name, this->servers.at(elemid).host, this->servers.at(elemid).user, this->servers.at(elemid).pass, true, “”);
    this->window = this->comm->sendCommand(this->servers.at(elemid).name, this->servers.at(elemid).host, this->servers.at(elemid).user, this->servers.at(elemid).pass, this->first, this->window);
    this->first = false;
    }

    void ksshmenu::open_all_windows(int elemid)
    {
    std::vector::iterator i;
    - QString window;
    - bool first = true;
    for( i = this->servers.begin(); i != this->servers.end(); i )
    {
    if ((*i).group.compare(this->servers.at(elemid).group) == 0 && ! (*i).is_group)
    {
    - window = this->comm->sendCommand((*i).name, (*i).host, (*i).user, (*i).pass, first, window);
    - first = false;
    this->window = this->comm->sendCommand((*i).name, (*i).host, (*i).user, (*i).pass, this->first, this->window);
    this->first = false;
    }
    }
    }
    diff -Naur src-dist/ksshmenu.h src/ksshmenu.h
    — src-dist/ksshmenu.h 2008-05-16 15:26:58.000000000 0200
    src/ksshmenu.h 2008-09-27 10:54:47.000000000 0200
    @@ -61,6 61,8 @@
    virtual ~ksshmenu();

    protected:
    QString window;
    bool first;
    std::vector servers;
    void mousePressEvent( QMouseEvent *e );
    KonsoleCommunicator * comm;

    Wedra - 27. September 2008 um 11:50

  2. Thank you very much. That seems, however be a matter of taste. I do like the original method.

    Arno - 27. September 2008 um 14:30

Einen Kommentar schreiben