A Russian developer and a student at Innopolis University.
Coming soon! one day.
Highly customizible plugin-based telegram bot for remote control of the device it is running on (both shell-like and graphical)
License: MIT License
Add some video showing the main functionality of the project.
It would also be nice to beautify the readme overall, but I don't know how to :'(
xdotool
won't work on machines running Wayland, including some of the latest Ubuntu versions (22.04/22.10?). Rimokon should support both.
Besides, it'd be nice to make Rimokon look similar for the different display servers. It's probably impossible to make the commands look identical for the two cases, still, I want them to have a similar form. At the current moment of 1(?) active user, I don't mind making a backward incompatible change, as long as it improves the experience of the end-user (which is me ๐).
Have the ability to create (I see it as a config entry) telegram keyboards for quick access to frequently used commands.
One reason for abandoning prints is that they are presumably causing something like SIGHUP/SIGPIPE when Rimokon is run from a the shell that is exited after that.
Add a script for the initial setup of the bot, that would interactively generate config.py, possibly also suggesting the description/commands-list/name to provide to BotFather when registering the telegram bot
It would probably make more sense to kill all the child processes in case of emergency shutdown. I think this feature should be optional, but enabled by default.
Right now the emergency shutdown makes the Rimokon process actually quit. This introduces inconvenient side effects that should be resolved by running after_shutdown.py
. The idea is to reimplement emergency shutdown: instead of quitting, the bot will continue to receive and process messages, however, it won't perform any commands with them (or just reply that the bot is shut down and should be restarted manually).
As the /start
command is unrestricted by @admins_only
(which I would like to preserve, so that users who accidentally bump into the bot could understand what it's doing), the keyboard that it generates can be acquired by any user. That's not desired
xdotool key
can accept a sequence of keypresses separated with spaces. Would be nice (and seems not hard) to support this
Currently, the key/type commands are effectively aliases for Run xdotool key
/Run xdotool type
commands, respectively. And this can be reflected in the code, allowing for
As far as I understood, currently, you can send some commands but you're not getting any response back. So I propose adding a screenshot functionality. This can be useful in many ways, for instance, if you're interested in the progress of something running on your device (render, ML training, etc) or if you want to check which window is currently being displayed. I see i as: you send /screen and bot simply replies with a screenshot.
You can consider taking it next level ๐ by adding streams. The first thing that came into my mind is Telegram video calls. So, imagine that you want to change some setting in your laptop. For example you want to remove the 15 min time limit before it goes to sleep. You send something like /stream and you receive a video call streaming your desktop! How cool is that.๐ฅ Then you can proceed by sending more commands and I guess that would be a better alternative of Team Viewer, but open-source and just easy to use, because Telegram is always ready at hand with intuitive interface.
It would be more challenging as well (because you can control only with text commands), but it kinda reminds me of controlling a Martian rover (not that I've ever done that :) ) - so it would be quite a challenge, but it's good
Add exit code to this message:
Line 56 in f001db2
It would be nice to make the main repository README more concise, and explain the functionality in more detail in the Wiki section
Instead of either letting every user shut the bot down, or leaving this command to current admins only, It would probably be more safe and convenient to let arbitrary user use the !SHUTDOWN
command with a password. The password itself could be stored as a hash in the config file
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.