Famulus - launcher

Submit portable freeware that you find here. It helps if you include information like description, extraction instruction, Unicode support, whether it writes to the registry, and so on.
Message
Author
User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#46 Post by dmg »

@smaragdus
Thanks for your immediate response, it is nice to hear from the developer of my beloved Famulus, at least I know that you are safe and sound! :)
Yeah, I am still around. I just don't code nearly as much as I used to, and what I do write I often don't polish to the point of being able to release it. :|
I have tested scores of launchers of any kind and Famulus is among my greatest favourites, so I would like to thank you for your excellent work- please accept my great and sincere thanks for this nifty little tool! ;)
You are very welcome! It is always nice (and a bit surprising) to hear someone actually uses one of my apps. :lol: If you have tested a bunch of launchers then I assume you have tried ContolPad? https://www.portablefreeware.com/index.php?id=1891 It is what I cop... I mean, what inspired me to create Famulus. 8)
In case that in the future you change your mind and decide to release a new version of Famulus (I really hope that 1.00.5b is not the last version!) I have a tiny fancy feature request- an additional column in "Commands" menu (perhaps next to "Option" column) which shows some statistics- the number of times a program or file has been launched.
Unfortunately, I have no plans to make any changes to Famulus. If someone found a significant bug I would certainly try to fix it, but as far as I am concerned at this point Famulus is feature complete. Sorry. :oops:
Since Famulus is running just great on my Windows 8 x64 machine (it is very light on RAM usage by the way) I updated Famulus database entry adding Windows 8 to the supported Windows versions.
Thank you kindly. :D
If there are new Betas in the future it will be my pleasure to test them! ;)
Well as I said I have no plans to change or add to Famulus, but I may have an alternative proposal. You say you would like to have a count of the number of times Famulus opens something? Do you particularly want that feature as part of Famulus itself, or would it suffice to have it another way separate from Famulus?

What I am thinking is a simple 'middle man' app that you would launch from Famulus, and it would then launch a designated file or program and save a launch count to a log file. If that sounds like something you could really use I would be happy to see what I can do. I code as a hobby. The main reason I have a folder full of unfinished apps is at some point they get so complicated that they are no longer fun to work on, so I abandon them. Changing Famulus would be a HUGE amount of time and work, but making a middle man app sounds much more doable and enjoyable to me.

What do you think? :)

User avatar
lintalist
Posts: 434
Joined: Sat Apr 19, 2014 12:52 am
Contact:

Re: Famulus

#47 Post by lintalist »

Hi there - couldn't resist having a quick peek and I'll admit I haven't studied the code very well but it seems stats can be added fairly quickly (see ZIP) - all changed & new lines are marked with "; stats" at the end of the line.
Works here but I don't know what all the other labels are meant to do so I only added it to "check:" label where I believe the programs are launched. (I won't work on it further but thought I'd share my experiment).
Attachments
Famulus-with-stats.zip
(5.98 KiB) Downloaded 418 times

User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#48 Post by dmg »

@lintalist

...The code is strong with this one. :shock:

I honestly have no idea how the Famulus' code really works at this point. It has been years since I wrote it, I did not comment the code and lets face it I am rubbish at coding on a good day. All that is why I said it would be a lot of work to add stats. Thank you lintalist, for this. If this fulfills smaragdus's requirements, then wonderful! :D

@smaragdus

Give lintalist's code a try, and see if it works as you requested. :)

User avatar
smaragdus
Posts: 2120
Joined: Sat Jun 22, 2013 3:24 am
Location: Aeaea

Re: Famulus

#49 Post by smaragdus »

@dmg

First, thank you very much for your detailed and informative reply.

Second, excuse me for my delayed answer. I usually respond faster but for about a week or more I experienced a kind of software fatigue, I would call it even software nausea. During that time I almost didn't touch my PC (only checking some sports results and peeping into my mail notifier with despair- there are still scores of unread mails).

No, I have never tested ControlPad.
I got the idea about statistics column from another long time ago abandoned launcher- HotKeyz:

Image

In fact one of the reasons I started using Famulus was that I was running short of shortcut key combinations. ;)

About the 'middle man'- in my humble opinion it will become needlessly complicated and I do not think that such a 'middle man' is worth the effort. So far I have no complaints about Famulus-I am using it since 28th October and so far I have encountered neither problems nor crashes.

@dmg & @lintalist

I am not a programmer and I got an error when I tried to compile Famulus.ahk. Can you help me with the compilation?

User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#50 Post by dmg »

@smaragdus

My idea for the middle man would have been to have a single .exe for Famulus to run, and pass the intended file paths to it. It should have worked just as Famulus works now, except the launch commands would be altered and stats would be in a single .ini file. But it looks like @lintalist's solution works just fine.

Here is the compiled version. I suspect you had trouble because you were missing some of the source files.
Attachments
Famulus (with stats).zip
(727.83 KiB) Downloaded 415 times

User avatar
smaragdus
Posts: 2120
Joined: Sat Jun 22, 2013 3:24 am
Location: Aeaea

Re: Famulus

#51 Post by smaragdus »

@dmg

Thank you very much for the compilation! Also many thanks to lintalist for his contribution!

I tested Famulus with stats and it really works fine:

Image

In fact when I first responded to this thread I didn't expect the developer to chime in, I simply wanted to express my satisfaction with this tiny and light tool- I am not a programmer but I always appreciate resource-efficient and well-written code, especially now, when I am so much fed up with bulky and heavy Electron monsters.

I do not want to go too far yet I would like to ask- will making Famulus Commands window resizable require much effort?
Last edited by smaragdus on Thu Apr 06, 2017 7:59 pm, edited 1 time in total.

User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#52 Post by dmg »

@smaragdus

You are most welcome.

Sadly, window resizing is not something I have ever been able to implement. I do have two apps with resizable windows, but only because the required code was provided by other members of the AutoHotkey forum. I have tried a few times to translate that code over to other apps but I have not succeeded. As I mentioned in an above post, I am really not good at coding. Especially since I often go months without touching code, so my skills keep fading. Sorry. :(

Of course feel free to see if anyone else can make the those changes to the code, and good luck. :)


On an unrelated topic, since you test a lot of apps would you be willing to have a look at my current project? It is a simple desktop widget showing current time in binary code. If you care to, just look over the program options and help text. See if you spot anything that could be improved or re phrased. :)
Last edited by dmg on Tue Jun 13, 2017 1:56 pm, edited 1 time in total.

User avatar
smaragdus
Posts: 2120
Joined: Sat Jun 22, 2013 3:24 am
Location: Aeaea

Re: Famulus

#53 Post by smaragdus »

@dmg

I was about to ask you whether you were willing to share some of your recent work but I felt uncomfortable because I had been asking too much lately. So- thank you for uploading Binal. I have already downloaded it and I will have a look at it later today or perhaps tomorrow- now I feel deadly tired after severely testing another program which required a lot of efforts. If there are other programs you are developing please don't hesitate to show them.

User avatar
lintalist
Posts: 434
Joined: Sat Apr 19, 2014 12:52 am
Contact:

Re: Famulus

#54 Post by lintalist »

@dmg it is not as hard at is sounds - it would probably won't take you more as 15 minutes.

0. Give your Gui a +MinSize (current dimensions so it can't be made smaller as what you currently have set it to)
1. #include AutoXYWH() - https://autohotkey.com/boards/viewtopic.php?f=6&t=1079
2. Make sure each control you want to move has a variable name (incl. text controls)
3. Add a GuiSize: label and in that label call AutoXYWH() for each control you want to move - automatically changing width & height of the listview would be something like: AutoXYWH("wh", "list")

With a bit of trial and error playing around with w h x y (hence the 15 minutes) you'll be done 8)

User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#55 Post by dmg »

@lintalist

Thank you kindly. I will look at that and try again, but it really does look like what I have tried before. Never got it to work on any of my GUIs but who knows. :D

User avatar
lintalist
Posts: 434
Joined: Sat Apr 19, 2014 12:52 am
Contact:

Re: Famulus

#56 Post by lintalist »

Proof of concept :wink: ( assuming you #include-d AutoXYWH) I "; stopped here" to indicate the controls you need to do if you wish to implement it.

Code: Select all

edit_commands:
 {
   if (commands_gui != "1")
    {
      gui, 3:default
      gui, 3:+MinSize720x435 +Resize
      lv_headers := "Activation Code|File Path - Parameters|Working Directory|Option|Used"
      gui, 3:add, listview, grid nosorthdr sort -lv0x10 -multi altsubmit r20 w700 h305 x10 y10 vlist gget_row, %lv_headers%
      gui, 3:add, groupbox, vgbox x10 y320 w700 h80
      gui, 3:add, text, x20 y340 w80 h20   vactivation_code_text, Activation Code:
      gui, 3:add, edit, x103 y340 w137 h20 vactivation_code,
      gui, 3:add, text, x250 y340 w50 h20  vfile_path_text, File Path:
      gui, 3:add, edit, x300 y340 w326 h20 vfile_path,
      gui, 3:add, button, x628 y340 w30 h20 vget_path_botton gget_path, File
      gui, 3:add, button, x658 y340 w30 h20 vget_path_dir_button gget_path_dir, Dir.
      gui, 3:add, button, x688 y340 w12 h20 vopen_width_button gopen_with, * ; stopped here
      gui, 3:add, text, x20 y370 w40 h20, Option:
      gui, 3:add, dropdownlist, r4 x60 y370 w136 h20 voption, |max|min|hid
      gui, 3:add, text, x206 y370 w90 h20, Working Directory:
      gui, 3:add, edit, x300 y370 w368 h20 vwork_dir,
      gui, 3:add, button, x670 y370 w30 h20 gget_dir, Dir.
      gui, 3:add, button, x10 y410 w60 h20 gclear, Clear
      gui, 3:add, button, x70 y410 w60 h20 gconvert_path, Convert
      gui, 3:add, button, x530 y410 w60 h20 gsave, Save
      gui, 3:add, button, x590 y410 w60 h20 gdelete, Delete
      gui, 3:add, button, default x650 y410 w60 h20 g3guiclose, Done
      gui, 3:show, w720 h435, Commands
      commands_gui := "1"
    }
   goto, list
 }
return

3GuiSize:
	If (A_EventInfo = 1) ; The window has been minimized.
		Return
AutoXYWH("wh"    , "list")
AutoXYWH("yw"    , "gbox")
AutoXYWH("y"     , "activation_code_text")
AutoXYWH("y"     , "activation_code")
AutoXYWH("y"     , "file_path_text")
AutoXYWH("y"     , "file_path")
AutoXYWH("y"     , "get_path_button")
AutoXYWH("y"     , "get_path_dir_button")
AutoXYWH("y"     , "open_width_button")
; etc
Return

User avatar
smaragdus
Posts: 2120
Joined: Sat Jun 22, 2013 3:24 am
Location: Aeaea

Re: Binal 1.00.0b

#57 Post by smaragdus »

@dmg
I finally managed to test Binal version 1.00.0b. It is portable and stealth- settings.ini inside program folder (desktop position is remembered right).
Possible improvements:
  • Stay on top option.
  • Colours chosen via a palette, now one needs to paste the desired values from a colour picker.
  • Settings/About/Exit also available from right-click on the desktop widget, not only from the tray icon.
  • Possibly an option to enable a normal clock in a tiny box at the top of the widget for those not very fluent in binary code (like me).
Regards

User avatar
dmg
Posts: 325
Joined: Fri Jun 04, 2010 2:11 am
Contact:

Re: Famulus

#58 Post by dmg »

@smaragdus

Thank you for looking at it. :D
Stay on top option.
I designed Binal as a desktop widget, and actually jumped through a few hoops getting it to stay under all windows. Can you explain how a stay on top option would be useful? :?:
Colours chosen via a palette, now one needs to paste the desired values from a color picker.
I agree! I already considered that, and created a color picker, but when I try to integrate the code it all breaks. So that might still happen but... yeah. :?
Settings/About/Exit also available from right-click on the desktop widget, not only from the tray icon.
That is an excellent idea, and I will work on it. :D
Possibly an option to enable a normal clock in a tiny box at the top of the widget for those not very fluent in binary code (like me).
I can see how that might be a nice option, but I am not sure it is what I want for Binal. I am also not sure of the code requirements to adding another GUI and modifying the time checking code.


I will get to these changes in a few days. I have a bad cold and have not been at my PC much this week. Will work again when I feel better. :oops:

User avatar
smaragdus
Posts: 2120
Joined: Sat Jun 22, 2013 3:24 am
Location: Aeaea

Re: Famulus

#59 Post by smaragdus »

@dmg
Thank you for looking at it. :D
You are always welcome.
I designed Binal as a desktop widget, and actually jumped through a few hoops getting it to stay under all windows. Can you explain how a stay on top option would be useful? :?:
What is useful for some is useless for others. "Stay on Top" option will be useful for me since I prefer to be always able to see the clocks I am using without minimizing any windows.
I agree! I already considered that, and created a color picker, but when I try to integrate the code it all breaks. So that might still happen but... yeah. :?
I suppose that anyone whom it would occur to use a binary clock will be capable of pasting manually the desired colour value. So I think that such a feature will just add a bit of convenience at the price of much efforts by the coding part. ;)
That is an excellent idea, and I will work on it. :D
I wouldn't call it excellent but trivial and in fact it will not add much value. ;)
I can see how that might be a nice option, but I am not sure it is what I want for Binal. I am also not sure of the code requirements to adding another GUI and modifying the time checking code.
I never expect all my ideas to be adopted. I acknowledge this was a peripheral suggestion.
I will get to these changes in a few days. I have a bad cold and have not been at my PC much this week. Will work again when I feel better. :oops:
I hope you will get well soon! Happy coding. :)

User avatar
Cornflower
Posts: 244
Joined: Fri Aug 31, 2007 7:58 am
Location: Canada's capital

Re: Famulus

#60 Post by Cornflower »

Famulus has become one of my all-time favourite getting things done apps, especially since I would rather type commands than look for and click icons.
It does, however, have some limitations. Since I am not a coder, I have found a few other ways to make famulus "sing" that I'd like to share

Use with rwparam Forum Topic: viewtopic.php?f=4&t=20359&hilit=rwparam to add parameters to executables instead of naming the execuatable and file in the ini.
e.g. "c:\ut\rwparam.exe" "c:\ut\autohotkey.exe"


To run multiple items with a single command, you can have duplicate names I use this for startup sequences. It looks like this in the commands.dat file
e.g.
|start|"p:\portable\everything.exe"||min|
|start|"c:\portable\coffee"|||
|start|"c:\portable\Reminder.exe"|||


To add a parameter from the clipboard, nircmd Forum Topic: viewtopic.php?f=4&t=1912&hilit=nircmd works well
e.g. |doi|"c:\ut\nircmd.exe" exec show C:\apps\FirefoxPortable\FirefoxPortable.exe https://dx.doi.org/~$clipboard$|||
I use this when I get a DOI from a science journal that I want to look up, but there is just the doi and not the link.


CMDOW https://ritchielawrence.github.io/cmdow/ is great. I use it when to resize windows that refuse to do so in Windows 10. I place the window in question where I want it, and from a command line, run cmdow /p /t to find the size and screen location parameters, e.g.
0x9D1346 1 2636 Res Ina Ena Vis 619 0 1308 1207 mempad MemPad -
Then I use the parameters I find and use the multiple item trick to open, then resize/locate the window
e.g., using the above information
|work|"c:\portable\mempad.exe" "C:\docs\work.lst"|||
|work|"c:\portable\cmdow.exe" "MemPad - work.lst" /act /mov 619 0 /siz 1308 1207|||
What this does is open the program (with its document in this case), then use the top-left corner (619,0) with /mov and and horizontal/vertical size (1308,1207) paramters to place the window. There is a split-secon splash but I can live with that.

I am aware that nircmd and cmdow are command-line programs and hence are not in the database, and if I had the time to relearn ahk coding, I'd like to put these features in famulus itself, but I am happy with the workarounds that keep famulus a continuous-use utility in my toolkit.

If others have any additional 'tricks', I'd love to see them posted.

[viewtopic.php?t=17765]

Post Reply