TCFS2 + TCFS2Tools: Full-screen mode for TC etc

Discuss and announce Total Commander plugins, addons and other useful tools here, both their usage and their development.

Moderators: white, Hacker, petermad, Stefan2

Post Reply
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

TCFS2 + TCFS2Tools: Full-screen mode for TC etc

Post by *MVV »

This tool was written in order to create more flexible and powerful instrument than old TCFS tool. It allows to show/hide any TC window elements and is fully customizable, it comes with set of predefined commands that you may use in your commands, also you may create new commands using simple syntax, you may use free window style flags or wincmd.ini keys for storing flags and other data used by commands. You may create any number of presets that switch window mode to any desired (move/resize/maximize/restore TC window, show/hide any elements) and revert to previous window state. Also it has much smaller size.



Last version information

Version: 2.4.3
URL: TCFS2 at wincmd.ru / TCFS2 at totalcmd.net

Version: 1.4.4 32/64
URL: TCFS2Tools at wincmd.ru / TCFS2Tools at totalcmd.net

Requirements: operating system Windows 2000 and above, Total Commander :)

TCFS2 features:
+ maximize/restore window
+ move/resize window
+ hide/show window title
+ enable topmost window mode
+ hide/show any TC interface item
+ change dirs in panels
+ move file panels separator
+ send keypresses
+ undo last action using backup command
+ etc...

TCFS2Tools features:
+ show/hide main menu
+ temporary show main menu on menu call
+ show main menu as popup menu on user command
+ get/set file panel separator
+ get current view modes for panels
+ get system metrics via function GetSystemMetrics
+ get width and height of desktop work area

Tool has no graphical interface. All configuration is in INI file which must be placed near executable. Sample configuration file is in EN directory of package. You should specify command line parameters in order to call TCFS2 functions, please read Readme.txt for examples and full information.

You may use just TCFS2 w/o TCFS2Tools. However some features like show/hide main menu bar, detect panel view mode and move file panel separator won't work w/o TCFS2Tools. Please read Readme.txt file to know how to setup auto-loading of TCFS2Tools module with TC.
Last edited by MVV on 2019-11-11, 08:19 UTC, edited 17 times in total.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

xmeron wrote:Is there any single thread for TCFS2Tools? I searched everywhere in this site but only found some replies. So I have to post here to expreeeeeeeeeeeeeeeeeeeeeeeeeeeeeees my thanks.

I use very basic TCFS2's function from last year, till yesterday, with TCFS2Tools.dll, I succeeded to toggle/switch "hide menu/set any position of the separator" by only one same hotkey. It's so perfect! Thanks MVV!
Thank you for using it. It was written for friends. :)
xmeron wrote:BTW, It seems that TCFS2 support virtual keys, what's meaning for this? Means I can add Script / Macro in TCFS2.ini to get more functions?
You may add commands/macros to get new functions if you need them (e.g. for conditional switching to some window mode), also you may write commands directly in command line.

The only place where TCFS2 supports virtual keys is Windows message that allows to send keys to TC window (and macros with key names were added as a reminder).

Also there is a function in TCFS2Tools that allows to check if specific virtual key is pressed when - it allows to use same TC buttonbar button for more than one function depending on key modifiers (Shift, Ctrl, Alt, another mouse buttons). So just button may do one thing while button when Shift or right mouse button is held may do another thing.

Theese are only places where TCFS2 uses virtual keys (or I've missed something? :)).

Please don't forget that some modifiers are used by TC itself when you set separator position - if you hold Ctrl or Shift, separator position may be set only with 25% step, so keep it in mind that you assign shortcuts for such commands.
User avatar
xmeron
Junior Member
Junior Member
Posts: 90
Joined: 2009-06-17, 19:43 UTC

Post by *xmeron »

I've made a topic for TCFS2+TCFS2Tools, so lets continue to talk about them there.
Maybe you can add this new thread link to you ID signature.
Also there is a function in TCFS2Tools that allows to check if specific virtual key is pressed
I'd like to emulate double-left-mouse-click to execute tcm(2002) command, it looks like very possible? I already know there is a AHK script for this, but TCFS2 is more powerful and more native.
if you hold Ctrl or Shift, separator position may be set only with 25% step
Tested and confirmed, it's 25% when holding ctrl or shift. Never know this if I don't come to this forum.

A problem:
When you press hotkey too fast twice, some TC elements which need to be show/hide will lost. Why the showing/hiding progress is step by step, not immediately?
I still need to study your Readme.txt, your Readme.txt seems wrote for programmers, not for normal people, maybe it's the reason why I can only use the basic function of TCFS2 for so long time, maybe add some more typical application samples will be better.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

xmeron wrote:Maybe you can add this new thread link to you ID signature.
No, I can't, there is too small length limit for signatures on this board.
xmeron wrote:I'd like to emulate double-left-mouse-click to execute tcm(2002) command, it looks like very possible?
Where do you wish to do double clicks? TCFS2 itself may only be used from buttonbar/shortcuts/links etc when you start it manually, it doesn't stay in memory in order to wait for specific keypress.
xmeron wrote:A problem:
When you press hotkey too fast twice, some TC elements which need to be show/hide will lost. Why the showing/hiding progress is step by step, not immediately?
I still need to study your Readme.txt, your Readme.txt seems wrote for programmers, not for normal people, maybe it's the reason why I can only use the basic function of TCFS2 for so long time, maybe add some more typical application samples will be better.
When command contains condition and undo string, TCFS2 executes command and then waits for some time (e.g. to give TC a chance to change wincmd.ini), and then checks condition again. Undo string is appended to undo action only when command effect is detected (when command condition becomes false after command execution - or undo condition becomes true if it is specified). Default wait time is 50 ms, and you may change it with /d parameter. So, if your command has undo string, TCFS2 will wait for 50 ms after it to check if it needs to append command's undo string to undo action.

Maybe Readme sometimes is really hard to read but I don't know what part of Readme is hard for you, you need to tell about it. I think if you read entire Readme, including examples section (last part of section 1.2), you'll understand more. :) E.g. first example description tells about short delay after command execution:
Readme wrote:Example of command to turn TC button bar off:
tb0=tcm(2901), test(hasButtonBar), tb1

Program calls macro hasButtonBar that checks if ButtonBar key in [Layout] section of wincmd.ini equals to 1 (if key is absent, error value 1 returned since 1 is default value for this key). If condition is true, tcm command is executed that sends to TC cm_VisButtonbar (2901) command. After sending command program makes a short pause (you can set delay using /d command line parameter) and checks same condition again. If condition is false after executing command, tb1 undo command is appended to undo string.
User avatar
xmeron
Junior Member
Junior Member
Posts: 90
Joined: 2009-06-17, 19:43 UTC

Post by *xmeron »

MVV wrote:there is too small length limit for signatures on this board
TCFS2 is more useful than Virtual Panel according to my occasions. You can edit like this:
_________________
TC Forum: VirtualPanel plugin, TCFS2 Utilities...
TOTALCMD.NET: VirtualPanel, NTLinks, AskParam, ConPaste, Sudo, TCFS2…
MVV wrote:Where do you wish to do double clicks?
Double click the left or right panel's border. Check this attached AHK script, you will see all:
http://www.ghisler.ch/wiki/index.php/AutoHotkey:_Go_To_Parent_Directory_When_Doubleclicking_Border
MVV wrote:TCFS2 ...... it doesn't stay in memory
But TCFS2Tools does.
MVV wrote:TCFS2 will wait for 50 ms after it to check
Ah, I see.
xmeron wrote:When you press hotkey too fast twice, some TC elements which need to be show/hide will lost.
Especially when you want to hide directory tabs, and you press hotkey twice too fast, all the directory tabs will lost / will never back. Maybe you can add a function to prevent this to happen.
Readme wrote:After sending command program makes a short pause
Found it.
There is too many useful functions, but I still haven't think out where to group them & use them, so I only choose the relevant description to read and digest. Now I am much clearer about this readme file after you explained it and emphasized the key points.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

There is a 256 character limit for signature, so it is hard to have more than 2 links with description in it. Also I don't want to remove font size tag.

TCFS2Tools itself does nothing, it only executes commands when corresponding message arrives (you may call its commands even w/o TCFS2, directly from TC, just add their numbers to TOTALCMD.inc), I don't want to overload it. It would be better to use some other module or tool that will start TCFS2 or do task directly.
Especially when you want to hide directory tabs, and you press hotkey twice too fast, all the directory tabs will lost / will never back. Maybe you can add a function to prevent this to happen.
First of all, I need to understand which command you're executing so you lost tabs. Please write TCFS2 command line and matched commands, if non-standard. When I press test hotkey that starts TCFS2 with parameters /ef "tcm(2916)", tabs aren't lost even if I press key too fast.

Well, you're right, if I press hotkey for fs2 again while previous one is still executing, I can lost source window state, but tabs aren't lost anyway. Maybe we need a function to get current time and compare times to prevent too fast executing. Currently you may use following trick:

Code: Select all

[Items]
fs3=set_tcini(TCFS2, FS3_Running, 1) run_action(fs2) set_tcini(TCFS2, FS3_Running, 0), tcini(TCFS2, FS3_Running, 0)

Code: Select all

TCFS2.exe /ei fs3
So, command sets a flag (key FS3_Running in TCFS2 section of wincmd.ini) that it is running and then executes fs2 command, after execution it removes flag. And new command instance is not started if flag is set, so it may only be started if previous one finished.

You may use different flags for different commands, or you may use flag with same name - so no one new command will be executed if previous one is still work.

You may also write specified command just into command line to prevent modification of TCFS2.ini, and you may execute any commands between set and remove flag function calls:

Code: Select all

TCFS2.exe /ef "set_tcini(TCFS2, FS2_Running, 1) run_action(fs2) set_tcini(TCFS2, FS2_Running, 0), tcini(TCFS2, FS2_Running, 0)"
User avatar
xmeron
Junior Member
Junior Member
Posts: 90
Joined: 2009-06-17, 19:43 UTC

Post by *xmeron »

MVV wrote:Well, you're right, if I press hotkey for fs2 again while previous one is still executing, I can lost source window state, but tabs aren't lost anyway.
Sometimes lost title bar, sometimes lost toolbar, and sometimes lost directory bar, the result is quite random, just like buying lottery.
MVV's Code wrote:[Items]
fs3=set_tcini(TCFS2, FS3_Running, 1) run_action(fs2) set_tcini(TCFS2, FS3_Running, 0), tcini(TCFS2, FS3_Running, 0)
MVV's Code wrote:TCFS2.exe /ei fs3
Yes, it works, the situation is much better now. These code is so cute, I continued to press tens of times hotkey in one second, they all gave final results without anything lost.
Only one time, TC paused in the middle of the switch progress state, and I pressed hotkey one more time, then they were all back. But this case never appear again, maybe it was due to my wrong operation, you never mind.
User avatar
chromax
Junior Member
Junior Member
Posts: 71
Joined: 2003-04-24, 16:55 UTC
Location: Neo Tokio

Post by *chromax »

Hi,

can you please give me a hint.

I have autorun.wdx loaded. In the autorun.cfg it loads the TCFS2Tools.dll correctly and I also made a command "em_xxx" to disable the menu bar.
This works. When I start the command "em_xxx" in TC it disables the menu bar.

Now I just simply try to put this also in the autorun. I think that this will nearly everybody, so it would be helpful to mention that in the readme.

The "CommandExec em_xxx" after the dll in the autorun.cfg gives no message. But nothing happens.

How can I manage that this works without pushing a button or type in the command everytime I start TC?
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

chromax, I don't know what command you've made but you may simply start TCFS2 directly from Autorun script:

Code: Select all

LoadLibrary Modules\TCFS2Tools.dll
ShellExec "%COMMANDER_PATH%\Addons\TCFS2\TCFS2.exe" "/ei mm0"
So, after you've loaded TCFS2Tools, you may start TCFS2 and execute command mm0 to hide menu bar.
User avatar
chromax
Junior Member
Junior Member
Posts: 71
Joined: 2003-04-24, 16:55 UTC
Location: Neo Tokio

Post by *chromax »

Ah, so simple it is.

I did not came up with it.
Maybe you should add this simple example into the readme.
User avatar
zaffi
Junior Member
Junior Member
Posts: 34
Joined: 2009-03-24, 08:50 UTC

what is it good for, really?

Post by *zaffi »

hi all.

i'm considering myself a power user,

but so far i can't see how this plugin can help me in my daily work.

besides saving some screen real estate, how can it help me, what big tasks it can achieve?

do you have practical examples that solves a problem or makes a difference?

thanks


@xmeron: it's very disturbing to see a flashing gif while trying to read the forum. i eventually adblocked all avatars :(
User avatar
HolgerK
Power Member
Power Member
Posts: 5406
Joined: 2006-01-26, 22:15 UTC
Location: Europe, Aachen

Post by *HolgerK »

it's very disturbing to see a flashing gif while trying to read the forum. i eventually adblocked all avatars
Firefox
about:config
image.animation_mode once

:wink:
Holger
User avatar
zaffi
Junior Member
Junior Member
Posts: 34
Joined: 2009-03-24, 08:50 UTC

errr.

Post by *zaffi »

Firefox
userContent.css
xmeron.display: none;
:roll:
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

TCFS2 2.0.2.258:
+ new if function works like ?: operator but calculates only one expression
+ new null function that checks if parameter is a null string
+ redirection in tcini and set_tcini now supports relative paths [new]
+ hide busy cursor after starting TCFS2 [new]


I don't see any avatars: browser shows only cached images by default:)
zaffi wrote:besides saving some screen real estate, how can it help me, what big tasks it can achieve?

do you have practical examples that solves a problem or makes a difference?
It depends on your problem=) TCFS2 may be used to switch between different window modes, to hide main menu bar etc. It was made to control TC window, it doesn't contain any 'offtopic' features.
User avatar
MVV
Power Member
Power Member
Posts: 8702
Joined: 2008-08-03, 12:51 UTC
Location: Russian Federation

Post by *MVV »

Updated version is out. :)

TCFS2 2.0.3.270 (changes since 2.0.2.258):
+ pseudo-macro @sid that have unique value for every TCFS2 instance
* wrong environment variables processing in redirection (after 2.0.3.256)
Post Reply