qCommand

Rating: 
4.64706
Your rating: None Average: 4.6 (17 votes)

This is a simple app to manage and run often used shell commands without using the terminal. It comes with some ready to use presets to show all features.

These include using mcetool to toggle display always on, a workaround to the missing jack detection on XA2 devices, find files, output various system status and connect to an SSH server using "fingerterm".

Features

  • Search
  • Basic bash completion
  • Templates (commands that can be edited before execution)
  • Interactive mode using "fingerterm"
  • Output handling (copy lines and open files)
  • Error notifications
  • Cover actions

Languages

  • en
  • de
  • sv (by eson57)
  • zn_CH (by dashinfantry)
  • fr (by Quenty31 and Google Translate, sorry)

Notes

With SFOS 4 the gnu-bash is currently replaced by busybox. This prevents the bash completion (compgen) to work. Also some commands may not run as intended anymore.

A workaround without warranty from https://forum.sailfishos.org/t/4659:

pkcon remove busybox-symlinks-bash

Roadmap

All features of the current roadmap are implemented. If you have reasonable use cases for later extension, tell me or fork: https://github.com/dscheinah/qcommand

    Screenshots: 
    Application versions: 
    AttachmentSizeDate
    File qcommand-0.2-1.armv7hl.rpm51.99 KB25/02/2019 - 22:48
    File qcommand-0.2-1.i486.rpm52.88 KB25/02/2019 - 22:48
    File qcommand-0.3-1.armv7hl.rpm51.71 KB17/07/2019 - 20:50
    File qcommand-0.3-1.i486.rpm52.7 KB17/07/2019 - 20:50
    File qcommand-0.4-3.armv7hl.rpm53.16 KB20/07/2019 - 10:53
    File qcommand-0.4-3.i486.rpm53.84 KB20/07/2019 - 10:53
    File qcommand-0.5-1.armv7hl.rpm58.01 KB21/07/2019 - 19:08
    File qcommand-0.5-1.i486.rpm59.96 KB21/07/2019 - 19:08
    File qcommand-0.6-1.armv7hl.rpm62.39 KB24/07/2019 - 23:29
    File qcommand-0.6-1.i486.rpm65.14 KB24/07/2019 - 23:29
    File qcommand-0.7-1.armv7hl.rpm65.66 KB27/07/2019 - 04:10
    File qcommand-0.7-1.i486.rpm68.46 KB27/07/2019 - 04:10
    File qcommand-0.8-1.armv7hl.rpm44.47 KB29/07/2019 - 02:47
    File qcommand-0.8-1.i486.rpm47.45 KB29/07/2019 - 02:47
    File qcommand-0.9-1.armv7hl.rpm49.4 KB01/08/2019 - 09:42
    File qcommand-0.9-1.i486.rpm53.12 KB01/08/2019 - 09:42
    File qcommand-1.0-1.armv7hl.rpm51.34 KB07/08/2019 - 00:42
    File qcommand-1.0-1.i486.rpm55.09 KB07/08/2019 - 00:42
    File qcommand-1.1-2.armv7hl.rpm57.84 KB04/10/2020 - 20:58
    File qcommand-1.1-2.i486.rpm65.14 KB04/10/2020 - 20:58
    File qcommand-1.2-1.armv7hl.rpm58.26 KB11/02/2021 - 01:19
    File qcommand-1.2-1.i486.rpm65.53 KB11/02/2021 - 01:19
    File qcommand-1.2-1.aarch64.rpm61.3 KB06/06/2021 - 14:14
    File qcommand-1.2-2.armv7hl.rpm58.31 KB20/03/2022 - 19:52
    File qcommand-1.2-2.i486.rpm65.65 KB20/03/2022 - 19:52
    File qcommand-1.2-2.aarch64.rpm61.4 KB20/03/2022 - 19:52
    File qcommand-1.3-1.armv7hl.rpm58.65 KB24/04/2022 - 23:36
    File qcommand-1.3-1.i486.rpm66.04 KB24/04/2022 - 23:36
    File qcommand-1.3-1.aarch64.rpm61.48 KB24/04/2022 - 23:36
    File qcommand-1.3-3.armv7hl.rpm58.68 KB26/04/2022 - 00:09
    File qcommand-1.3-3.i486.rpm66.06 KB26/04/2022 - 00:09
    File qcommand-1.3-3.aarch64.rpm61.52 KB26/04/2022 - 00:09
    Changelog: 

    1.3

    • added experiemental menu icon to each command that allows to create a launcher icon
    • the package now requires sailfishsecrets and fingerterm

    1.2

    • added a switch to preset "Run as root" for command execution
    • reworked cover actions
      • if "Run as root" preset is turned on, the execution page opens unless the password is stored
      • if "Editable before execution" is turned on the execution page will always open
      • all other commands run as before
    • fixed bugs with the new SFOS 4 pre-release
      • password validation works again on first try
      • rendering the completion list no longer blocks the ui for minutes

    1.1

    • added experimental support for Sailfish Secrets to store the root password

    1.0

    • updated descriptions and screenshots for the first release version
    • added preset commands
    • add completion for words typed in current editor
    • nearly finalize translations

    0.9

    • allow output to be copied or opened (if an app for the mimetype of a file is available)
    • try to layout the output in tables based on tab characters in the output
    • add descriptions to switches
    • some performance improvements
    • fixed some bugs

    0.8

    • replace the default icon with another simple one
    • add a duplicate option for editing commands
    • enable experimental interactive mode using fingerterm if installed

    0.7

    • add search
    • commands can now be selected to be used for cover actions
    • add some magic (the first word) to group command for the cover
      • play now iterates over commands in the same group
      • next now iterates over groups
    • add notifications
      • when output is ready and the app is minimized
      • when an error occured
    • add more languages

    0.6

    • order cover commands by name
    • add experimental bash completion suggestions (not always correct but sometimes usable)
    • add option to edit commands before execution

    0.5

    • add basic support for running commands as root with the password from the enabled developer mode
    • rework the internal command execution
    • some minor bugfixes

    0.4

    • add an option to display output
    • add basic cover actions
    • fix a bug with commands reading from stdin
    • add more translations

    0.3

    • restructured some of the code to prepare the next updates
    • add german translation
    • do not identify commands by name but by a hidden id

    Comments

    Seven_of_nine's picture

    Works fine on Volla phone. Thank you very much!

    carmenfdezb's picture

    Hi @CoanTeen! Could you please add aarch64 package? Thanks in advance!

    CoanTeen's picture

    I added an untested build of the latest version for aarch64. Let's see if it works...

    levone1's picture

    Request - "Create Launcher Icon" for command, (I know I can do it myself, but would be a nice feature. ..)

    CoanTeen's picture

    I now added this an experimental feature. You can see a new entry in the "long press menu" of each command.

    levone1's picture

    Very nice, thank you. Seems to be working normally overall. One thing I found is that creating an X window with qxcompositor using
    /usr/bin/qxcompositor -o portrait --wayland-socket-name "../../display/wayland-container-0" &
    works fine through Qcommand entry, but just launches a blank terminal screen when using launcher icon.
    However, when I change it to literm -e "/usr/bin/qxcompositor -o portrait --wayland-socket-name "../../display/wayland-container-0" &"(or whatever terminal app),
    then it works.

    CoanTeen's picture

    I somehow assume this is a problem of fingerterm.

    But to follow some ideas (without me having a working setup for your problem), can you please confirm or test:

    1. When running from qCommand you do not have "interactive" checked.
    2. What happens, if you exchange  "fingerterm -e" with "bash -c"?
    3. What happens, if you add a "bash -c" before script execution inside the fingerterm parameter (e.g. between && and /home...)?

    As you see from my questions, my probable solution will be to always wrap the command in a bash and only use fingerterm if interactive mode is checked.

    levone1's picture

    bash -c works fine... Thanks again

    CoanTeen's picture

    I just released an update containing the mentioned fixes and the updated translations from eson57.

    CoanTeen's picture

    I added your request to my to do list. But I currently cannot estimate when the feature will arrive.

    carmenfdezb's picture

    Thank you so much! It works fine for me :)

    levone1's picture

    Strange issue - I've been using this for months without any problems...

    Update - never mind, sorry, I found it. I had modified my button.qml, and Codefield.qml in qCommand tripped at line 47, button background color. I just deleted that line, and ok now...

    Branja's picture

    Hello, kind sir. I like your app very much. It's quite useful. How can I add a command as a cover action? The option is greyed-out for my commands. Thx in advance.

    CoanTeen's picture

    For some reason I decided to do some "magic" with the cover actions. You need to enter at least two words (separated by a space) to enable the checkbox.
    This automagically creates groups of cover actions (two commands sharing the same first word are grouped together). If you run a command from the cover, the next command in the group becomes active. This allows you to create toggles like I have done with the qc-Audio and qc-Display examples. The "next" button iterates through the groups.

    Branja's picture

    Thank you very much. This is quite helpful.

    Could we also use commands that need root on the cover?

    CoanTeen's picture

    This is currently not possible as the cover is designed to directly execute a command without asking for root.
    I will add this request to the feature list for the next update. But that may take a while as I'm quite busy at the moment.

    Branja's picture

    I get it. Thx for a quick response, and for making such an awesome app.

    JacekJagosz's picture

    Thank you for keeping this app going!

    oxygenh's picture

    Dear Johannes, thank you very much for stores password feature. It work fine!
     

    oxygenh's picture

    Thank you for usefull app.
    Can possible to make store root password (e.g. throw Sailfish Secrets, as is done in Storeman for store login datas) ?

    CoanTeen's picture

    That's an interesting idea. I will look into that once I return from vacation.

    oxygenh's picture

    That would be nice. Thank you very much.

    ezameht's picture

    Thank you for this app! Is there a way to disable error notifications?

    CoanTeen's picture

    Error notifications are triggered on two different conditions:

    • if the called script did output to stderr
    • if the last command exited with a non zero error code

    If you got errors you don't care about, you can suppress them using output redirection (e.g. 2> /dev/null) and call the command "true" on the last line.

    TMavica's picture

    I have add a restart homescreen command as cover action, but it not appear in cover page

    CoanTeen's picture

    There seems to be some weird bug when adding commands with the cover action switch turned on. I will fix it with the next release later this week.

    Can you please try if it works when you edit the created command and reset the switch? Just to confirm that I found the right bug...

    TMavica's picture

    Icon?

    Markkyboy's picture

    nice idea, works well, but the UI needs a little attention here and there.

    CoanTeen's picture

    Thank you. If you have any suggestions for the UI please let me know. It is something I could need help with.

    Markkyboy's picture

    I suppose, to start with, just to capitalize some of the title/heading/options, for no reason that to fall inline with how Jolla does it, for example, instead of 'run command', change to 'Run command' and likewise for menu titles and options, all lowercase just doesn't look right in my opinion.

    Perhaps also, to use PageHeader where applicable, although it may make spacing look a bit odd.
    I will play around with the UI as I find your app quite useful. Another user here on Openrepos attempted something similar but development seemed to halt after the first version; https://openrepos.net/content/yaliang/gui-mcetool

     

    Pages