I know that this is not the place where to make Android Recommendations but the original question is about an Android APP.
If you wish to SSH your Computer, which is indeed different than "Remote control" which can be achieved by a VNC/Teamviewer Application in a tablet, you may wish to give a chance to JuiceSSH.
JuiceSSH Free Version includes the next features:
The all in one terminal client for Android including SSH, Local Shell,
Mosh and Telnet support.
Features:
- Full colour terminal / ssh client
- Popup keyboard with all those normally hard to find characters
- Use the volume keys to quickly change font size
- External keyboard support
- Official Mosh support (http://mosh.mit.edu)
- Telnet support
- Local Android terminal support
- Click URLs to open in a browser
- Copy & Paste within sessions
- Save / Share SSH transcripts to Dropbox/Evernote/Email & SD card
- UTF-8 character support
- Easily organise your connections by group
- Keep multiple SSH sessions running in the background
- Seamlessly connect 'via' other SSH connections with one click
- Immediate access when you open the app to your frequently used connections
- Password & OpenSSH private key support
- SSH key agent forwarding
- Support for two-factor authentication (eg: Google Authenticator)
- Identities (users/password/keys) are abstracted from connections. Instead of updating every connection when you change your password -
just update the identity and any connections linked to it will use the
new password/key.
- Works out of the box with Ubuntu, RedHat, CentOS, Mint, Gentoo and all other flavours of Linux
- zlib compression to improve SSH sessions on high latency connections
I use it for the day-to-day administration of a self hosted server and it is really useful, you feel like being inside of an Ubuntu Terminal.
Some screenshot from my sessions (documented in my blog) are placed here to illustrate some tasks.
JuiceSSH and irssi for connections to IRC servers/channels.
JuiceSSH installing emacs in the server, which can also be used via JuiceSSH
ASCII based representation of an image in the server, really useful in order to see what is the picture.
The usage of JuiceSSH is really simple. You create the profiles which will include the username and password, then create the servers and use both in conjunction in order to make a connection, which means that if you admin more than one server, the same profile may be applied to many of them.
Remember to make the server reachable via LAN/WAN by allowing the Firewall the connections via port 22 in your favorite Firewall application. I use Firestarter in Ubuntu 12.04 and it does an awesome work so far. For external connections remember to forward the port 22 to the proper IP/Device where appropriate.
If you need further support or this answer doesn't fit your needs don't hesitate to drop a comment.
Good luck!
P.S. When SSH'ing a server, Midnight Commander and its included mcEdit text editor will be your best friends. Just a suggestion. :D
Well, may be not so sophisticated. I had looked to start by forking that repository but end up, writing from scratch.
Current state, it is working (LibreOffice v6.0.2.1). However, Setting are not presented in GUI.
Setup
- Tools > Macros > Organize Macros > LibreOffice Basic...
- My Macros > Standard: New module name it "ProgressLine" or whatever.
Select it then Edit, Copy below code into it
REM ***** BASIC *****
Dim iFileNumber As Integer
Dim iSectionCount As Integer
Dim iSectionPage As Integer
Dim iSectionIndex As Integer
Dim iSectionIndexCurrent As Integer
Dim oDocument As Object
Dim oPage As Object
Dim iPageCount As Integer
Dim oPositionPageMark As New com.sun.star.awt.Point
Dim oSizePageMark As New com.sun.star.awt.Size
Dim oSizeSectionTitle As New com.sun.star.awt.Size
Sub ProgressLine
'Default values
'sBulletShape = "com.sun.star.drawing.RectangleShape"
sBulletShape = "com.sun.star.drawing.EllipseShape"
'Values are fracture of page width
oSizePageMark_Width = 0.02
oSizePageMark_Height = 0.02
oSizeSectionTitle_Width = 0.20
oSizeSectionTitle_Height = 0.03
dSeparationRatioSection = 3.0
dMargin_Start = 0.05
dMargin_End = 0.10
dMargin_Side = 0.03
oFillColorPageMarkActive = RGB(255,0,0)
oFillColorPageMarkInactive = RGB(240, 200, 200)
oCharColorSectionTitleActive = RGB(255, 0, 0)
oCharColorSectionTitleInactive = RGB(150, 150, 150)
ProgressLineRemove()
oDocument = ThisComponent
If oDocument.supportsService("com.sun.star.drawing.GenericDrawingDocument") Then
'Load index
sIndexPath = oDocument.URL
sIndexPath = Mid( Left(sIndexPath, InStr(sIndexPath, ".odp")-1) & ".index",1,Len(sIndexPath)+2)
iFileNumber = Freefile
Open sIndexPath For Input As #iFileNumber
'First line is section total count
If Not eof(#iFileNumber) Then
Line Input #iFileNumber, sLine
If sLine<>"" Then
iSectionCount = Int(sLine)
End If
End If
'Remaining lines for sections: page, title
iPageCount = oDocument.DrawPages.Count
Dim sSectionTitle(iPageCount) As String
While Not eof(#iFileNumber)
Line Input #iFileNumber, sLine
If sLine<>"" Then
iSectionPage = Int(Left(sLine, InStr(sLine, ",")-1))
sSectionTitle(iSectionPage-1) = Right(sLine, Len(sLine)-InStr(sLine, ","))
End If
Wend
'loop over pages
iSectionIndex=-1
For iPageIndex=0 To iPageCount-1
If sSectionTitle(iPageIndex)<>"" Then
iSectionIndex = iSectionIndex+1
End If
oPage = oDocument.DrawPages(iPageIndex)
oSizePageMark.Width = oPage.Width*oSizePageMark_Width
oSizePageMark.Height = oPage.Width*oSizePageMark_Height
dSeparation = (oPage.Width*(1-dMargin_Start-dMargin_End)-oSizePageMark.Width*iPageCount)/((iPageCount-iSectionCount)+(iSectionCount-1)*dSeparationRatioSection)
'Place new shapes, loop over page for progress
iSectionIndexCurrent=-1
For iPageIndexCurrent=0 To iPageCount-1
If sSectionTitle(iPageIndexCurrent)<>"" Then
iSectionIndexCurrent = iSectionIndexCurrent+1
End If
oShape = oDocument.createInstance(sBulletShape)
oPositionPageMark.x = (iPageIndexCurrent+iSectionIndexCurrent*(dSeparationRatioSection-1))*dSeparation+iPageIndexCurrent*oSizePageMark.Width+oPage.Width*dMargin_Start
oPositionPageMark.y = oPage.Height-oPage.Width*dMargin_Side-oSizePageMark.Height
oShape.Size = oSizePageMark
oShape.Position = oPositionPageMark
oShape.LineStyle = none
If (iPageIndexCurrent=iPageIndex) Then
oShape.FillColor = oFillColorPageMarkActive
Else
oShape.FillColor = oFillColorPageMarkInactive
End If
oShape.Name = "Progress Line RS_" + (iPageIndex+1)+"_"+(iPageIndexCurrent+1)
oPage.add(oShape)
'Section titles, skip dummy title: "_"
If sSectionTitle(iPageIndexCurrent)<>"" And sSectionTitle(iPageIndexCurrent)<>"_" Then
oShape = oDocument.createInstance("com.sun.star.drawing.RectangleShape")
oShape.TextVerticalAdjust = com.sun.star.drawing.TextVerticalAdjust.TOP
oShape.TextHorizontalAdjust = com.sun.star.drawing.TextHorizontalAdjust.LEFT
oShape.TextLeftDistance = 0
oSizeSectionTitle.Width = oPage.Width*oSizeSectionTitle_Width
oSizeSectionTitle.Height = oPage.Width*oSizeSectionTitle_Height
oShape.Size = oSizeSectionTitle
oPositionPageMark.y = oPositionPageMark.y-oSizeSectionTitle.Height
oShape.Position = oPositionPageMark
oShape.LineStyle = none
oShape.FillStyle = none
oShape.Name = "Progress Line TS_" + (iPageIndex+1)+"_"+(iPageIndexCurrent+1)
oPage.add(oShape)
oShape.String = sSectionTitle(iPageIndexCurrent)
oShape.CharWeight = com.sun.star.awt.FontWeight.BOLD
oShape.CharFontName = "Arial" 'todo: doesn't work
If iSectionIndexCurrent=iSectionIndex Then
oShape.CharColor = oCharColorSectionTitleActive
Else
oShape.CharColor = oCharColorSectionTitleInactive
End If
End If
Next iPageIndexCurrent
Next iPageIndex
Close #iFileNumber
End If
End Sub
Sub ProgressLineRemove
oDocument = ThisComponent
If oDocument.supportsService("com.sun.star.drawing.GenericDrawingDocument") Then
'loop over pages
iSectionIndexCurrent=0
For iPageIndex=0 To oDocument.DrawPages.Count-1
oPage = oDocument.DrawPages(iPageIndex)
'Cleanup old shapes
iShapeIndex = oPage.getCount-1
Do While (iShapeIndex>=0)
oShape = oPage.getByIndex(iShapeIndex)
If (InStr(oShape.Name, "Progress Line") <> 0) Then
oPage.remove(oShape)
End If
iShapeIndex = iShapeIndex-1
Loop
Next iPageIndex
End If
End Sub
Save it
Workflow
Add ProgressLine
Create index, a text file, in same folder with same name but with .index
extension
5
1,_
2,H2_a
4,H2_b
7,H2_c
10,_
- First line is total number of section
- Remaining lines in this format: page, section title
_
special for section without title
Open your presentation
- Tools > Macros > Organize Macros > LibreOffice Basic...: Run
ProgressLine
Remove ProgressLine
- Tools > Macros > Organize Macros > LibreOffice Basic...: Run
ProgressLineRemove
Notes
- Most settings are grouped at the top of the script, so it should be somehow easy to tweak it.
Best Answer
As an update to the accepted answer, the LibreOffice Impress Remote app has been officialy released by the Document Foundation, and you can find it on Google Play. Requires a LibO 4.0.1, Bluetooth, and Android 2.3.3+.