Editing Python Smart ClipBoard
Jump to navigation
Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
− | = | + | = '''The following is junk, will transform in a bit an this message will go''' = |
+ | |||
+ | |||
+ | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | = Goal/Purpose = | |
+ | This program (clip_board.py) is an application to enhance the windows ( unix ?? ) clipboard | ||
+ | by adding the ability to it to: | ||
− | + | *Transform keyboard contents. | |
− | * | + | *Insert predefined elements into the clipboard. |
− | * | + | *Interpret copied text as commands or directions to the system to carry out some action specified in the clipboard contents for example browse to some website. |
− | * | ||
− | |||
+ | See the GUI at [[TBD]] | ||
== Status == | == Status == | ||
− | This program is up and running | + | This program is up and running. Making improvements from time to time for my projects. Code at GitHub, see [[https://github.com/russ-hensel/python_smart_terminal Code at GitHub]] |
+ | == Code == | ||
− | |||
Code at GitHub, see [[https://github.com/russ-hensel/smart_clipboard/tree/master Code at GitHub]] | Code at GitHub, see [[https://github.com/russ-hensel/smart_clipboard/tree/master Code at GitHub]] | ||
+ | |||
This is an article started by Russ Hensel, see "http://www.opencircuits.com/index.php?title=Russ_hensel#About My Articles" About My Articles for a bit of info. | This is an article started by Russ Hensel, see "http://www.opencircuits.com/index.php?title=Russ_hensel#About My Articles" About My Articles for a bit of info. | ||
Line 83: | Line 81: | ||
</pre> | </pre> | ||
− | * In a similar way a wiki has a big messy way of setting up a table. "wiki table" | + | * In a similar way a wiki has a big messy way of setting up a table. "wiki table" put a whole example in my clipboard for pasting. |
* Many programmers like file names without spaces. A transformation function in the clipboard will take the text in the clipboard, remove the spaces and put it back in the clipboard. | * Many programmers like file names without spaces. A transformation function in the clipboard will take the text in the clipboard, remove the spaces and put it back in the clipboard. | ||
Line 126: | Line 124: | ||
You will get a zip file, unzip it and you should get: | You will get a zip file, unzip it and you should get: | ||
− | + | ||
.... whatever --| | .... whatever --| | ||
| | | | ||
− | |-- clipboard -- | + | |-- clipboard --| -> all code required to run the application ( not sure if smart_terminal or python_smart_terminal or nothing is top level name, just put it in some well named place ) |
− | + | | -- images -> image files, mostly screen shots, icons... or what ever, not important for the code. | |
− | + | | -- wiki_etc -> various files documenting program, including at least some of the material from this wiki | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Put them in your system making "....whatever" anything convenient for your Python ( that is move the files to where you keep your Python source ). | Put them in your system making "....whatever" anything convenient for your Python ( that is move the files to where you keep your Python source ). | ||
Line 147: | Line 139: | ||
== Run == | == Run == | ||
− | Run it | + | Run it until it stops complaining about dependencies ( in the console ), after that ( and perhaps even before ) the GUI should come up. You are installed. |
− | I have run the program on both Windows 10 | + | I have run the program on both Windows 10 and Rasperian on a RPi. It should work in most OS's. Let me know about issues. |
− | + | Some parts of the program think that mySql is available. It should run fine without it ( there will be a message or two in the console ), untill you try to use the database then it is not so gracious. Straight ahead use as a terminal does not use the database. | |
= Configure to Run = | = Configure to Run = | ||
Line 157: | Line 149: | ||
== Basic == | == Basic == | ||
− | Basic configuration is all done in a file called parameters.py. It seemed easier to simply use a Python text file instead of some other format like an ini file. Pretty much all the file does is set instance variables in itself. It is used by the program controller ( | + | Basic configuration of comm parameters like port, baud rate .... is all done in a file called parameters.py. It seemed easier to simply use a Python text file instead of some other format like an ini file. Pretty much all the file does is set instance variables in itself. It is used by the program controller ( smart_terminal.SmartTerminal ) to create an instance of Parameters and then the values can be used. Save the original ( parameters.py, maybe I will include a backup maybe not ) in case you mess it up too much. |
I have made yet another pass to clean up and comment the code in parameters. Let me know if you have issues. You should understand some values are being phased out but may still have some implementation and some may be coming in and have little or no implementation. The comments should let you identify these situations. | I have made yet another pass to clean up and comment the code in parameters. Let me know if you have issues. You should understand some values are being phased out but may still have some implementation and some may be coming in and have little or no implementation. The comments should let you identify these situations. | ||
− | Parameters starts out with some "meta" parameters. These are defined early in the creation of the objects and may effect other values. In any case you can always define a value twice, the last one always wins. | + | Parameters starts out with some "meta" parameters. These are defined early in the creation of the objects and may effect other values. In any case you can always define a value twice, the last one always wins. The most important meta parameter is mode, you should not change it from self.mode = "Terminal" unless you understand the implications or do not mind going on a ride. |
− | All the com port values are defined in pretty much one place, find it ( say search on " | + | All the com port values are defined in pretty much one place, find it ( say search on "baud" ) an change it to what you need. |
− | |||
− | |||
== Running It == | == Running It == | ||
− | When you run it it should open a windows a lot like the picture [[ | + | When you run it it should open a windows a lot like the picture [[Smart Terminal GUI]]. Errors may show up in your Python console or the log file ( look in parameters.py for the name of the log file, typically self.pylogging_fn = "smart_terminal.py_log" ). The most likely errors will point to missing Python modules like pyserial. You should install with pip ( or conda if using Spyder ). Let me know how it goes. |
− | + | Normally the terminal does not open the com port until you press the <Open> button. The parameters are displayed in the GUI if you do not like them ( for example when you press the <open> button the port open status changes to "open failed", not the desired "open" ) you can shutdown, edit parameters.py and restart. There is a simpler way. | |
*First configure parameters.py to know the name of a text editor on your system. For mine this is one of: | *First configure parameters.py to know the name of a text editor on your system. For mine this is one of: | ||
Line 189: | Line 179: | ||
− | ..... more here soon | + | ..... more here soon ...... |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
= Notes on the Code = | = Notes on the Code = | ||
− | + | In some ways I am proud of the code, it was sometimes a slog, and I had to learn a lot of Python to get it going. On the other hand it kind of sucks, it has lots of dead code, ass backwards was of doing things, poor naming...... There is also a good bit of code on features that I am adding, but that is unfinished. Until I loose interest in it it will probably improve. However, adding features is more part of the life of a programmer than polishing old features; making something better that seems good enough is not always the priority it should be. If you do not like it, mostly keep it to yourself unless it is accompanied by an offer to improve it. I do not need ideas, I need time. That said if you think you have a helpful comment contact me, my page will tell you how: [[User:Russ_hensel]] | |
= Design = | = Design = | ||
Line 211: | Line 189: | ||
Description of the design, and a bit to help you figure out what the files do ( for .py files also see the top of file ). | Description of the design, and a bit to help you figure out what the files do ( for .py files also see the top of file ). | ||
− | see: | + | see: [[Python Smart Terminal Technical]] |
− | |||
− | |||
= Customizing/Extending = | = Customizing/Extending = | ||
− | Simple customization may be done simply by changing the parameter file, see: [[Smart Terminal Parameter Examples]] | + | Simple customization may be done simply by changing the parameter file, see: [[Smart Terminal Parameter Examples]] If you want to add code that can be done by messing with any of the source code ( not recommended ) or by programming an extension, see: [[Python Smart Terminal Technical]] and [[Writing You Own Extensions to SmartTerminal]] |
= Additional Info = | = Additional Info = | ||
Line 223: | Line 199: | ||
*Click on the category '''ClipBoard''' below ( and perhaps the others as well ) | *Click on the category '''ClipBoard''' below ( and perhaps the others as well ) | ||
+ | *[[Writing You Own Extensions to ClipBoard]] | ||
*[[ClipBoard GUI]] | *[[ClipBoard GUI]] | ||
− | |||
*[[Python Desk Top Applications]] | *[[Python Desk Top Applications]] | ||