Re: Slider: PDF presentations

I may have to rethink it. I was working from a faulty assumption. Presentations and projectors use a 4x3 aspect ratio (eg 640x480), and so do many monitors. But widescreen monitors are becoming more common.

If the monitor slipper would be on was also 4x3 there would be no way (without distorting the original aspect ratios) to show even just panels 1 and 3 without leaving room for all the others. No matter what size you make the "main" notes panel, if there is room for one smaller panel, there will be room for several other smaller panels.

Given how common wide screen monitors are becoming, however, assuming slipper is on a 4x3 aspect ratio monitor is not a safe assumption.

In any case, this will take a full rewrite of slipper - as slipper previusly didn't render the pdf at all, nor did it include the libs to do so - it just grabbed slider's renderings of the x server. With a separate notes file slipper itself will have to do some pdf rendering. So given that I'm starting mostly from scratch on slipper, I'm brainstorming different approaches ... and thus input is gladly welcomed.

Re: Slider: PDF presentations

EDIT: Oh crap! It seems I commited and pushed the binary to github, not the revised source. Sorry, I'll clean that up as soon as I get back to my other computer. *hangs head in shame*(fixed)

No new progress on slipper just yet, but another request came in that was very simple to implement: autoplay and loop modes to use slider in "kiosk" style displays.

These are brand new, not documented, and not yet very tested, so any input would be appreciated. New command line parameters (must come before pdf filename which must be the last parameter):-l continuous loop mode-t N autoplay with N as a (positive integer) number of seconds for the delay time between each slide

Re: Slider: PDF presentations

Trilby wrote:

I may have to rethink it. I was working from a faulty assumption. Presentations and projectors use a 4x3 aspect ratio (eg 640x480), and so do many monitors. But widescreen monitors are becoming more common.

If the monitor slipper would be on was also 4x3 there would be no way (without distorting the original aspect ratios) to show even just panels 1 and 3 without leaving room for all the others. No matter what size you make the "main" notes panel, if there is room for one smaller panel, there will be room for several other smaller panels.

Given how common wide screen monitors are becoming, however, assuming slipper is on a 4x3 aspect ratio monitor is not a safe assumption.

In any case, this will take a full rewrite of slipper - as slipper previusly didn't render the pdf at all, nor did it include the libs to do so - it just grabbed slider's renderings of the x server. With a separate notes file slipper itself will have to do some pdf rendering. So given that I'm starting mostly from scratch on slipper, I'm brainstorming different approaches ... and thus input is gladly welcomed.

Do you need to do this? As I understand it, the idea was to be able to display notes produced by beamer on e.g. a laptop while the slides produced by beamer end up on the external monitor/projector. But in that case, why do you need to worry about the content? Why not just allow people to use beamer's facilities for including small versions of slides in the notes for a presentation? (Seeing the time is obviously another matter.) I'm sure I've misunderstood but I would like to know what is envisaged here. (Why? Curiosity, really. I'm not in a position to use this myself at the moment because Lenovo suck.)

Re: Slider: PDF presentations

That is an interesting idea - but a preview of the next slide is a definite must for me.

Certainly one could get creative with latex and make a notes pdf with notes, a mini-version of the current slide, and a preview of the next slide, but that would then be *required* for slipper to be useful.

Working well with beamer notes pdfs is a great idea - requiring them is a bad idea.

Slipper should be able to be fed just a single normal pdf which it would display in slider on the remote screen, while providing (at a minimum) a current-view and next-view like the existing version does. Adding more is great, but not at the expense of sacrificing this.

In fact, this other incarnation, which would show one pdf on one monitor, and a notes pdf on another, would only require a very minimal script wrapper that launched slider twice (once for each monitor and pdf) and then did some sort of event duplication and forwarding. I'm not sure if the event duplication and forwarding could actually be done in a shell script. I may build this into slider to make this possible. I see it as a command line parameter to slider that would provide the Window ID of an already running instance of slider. The newly launched version would send an event (XSendEvent) to the other instance for every event it receives. This would make it very easy to make just a bash script to get the behavior you propose from sliper - but by only using slider.

Re: Slider: PDF presentations

Now I see. I didn't realise it already had that functionality at all.

It doesn't really require getting creative with latex - beamer has the functionality built in if you are in notes generating mode. But I quite see that you would not wish to sacrifice more programme-agnostic functionality.

Re: Slider: PDF presentations

Slider has been reborn!

Completely recoded from scratch, I've been able to make early design decisions based on the revisions I had to force into version 1 which was collecting far too many layers of duct tape covered over with ugly wallpaper.

The new version directly incorporates the presenter mode tools (no more "slipper") and detects whether a second monitor is attached (and configured - you run xrandr or something similar yourself).

If there is more than one screen, the highest numbered monitor gets the presentation and the local monitor gets a presenter mode (this can be overridden with the -m switch to select which video outputs to use). Presenter mode (by default) shows the current and next slide, unless you provide a second pdf for notes, then it will (by default) show the current notes slide, the current presentation slide, and the next presentation slide.

These defaults are highly configurable via command line switches. See here for details.

As this has been completely redone from scratch, there are some bits missing which should return shortly. Most notably is zooming (this *will* be coming back) and I just realized, overview-mode navigation. I've also not reimplemented the drawing pens. If I do reimplement them, it will be using cairo drawing functions rather than Xlib; this will allow for nicer looking antialiased lines - but no promises as I don't know the cario libs that well yet.

EDIT: zooming has been added back - but not thoroughly tested yet.

EDIT: pens have been added back and done full in cairo (easier than I thought) which gives a much nicer aliased line drawing. I've also added "polka" dot cursor/highlighters. Try them out to see what they do (hit 1-6 while presenting), then customize them in config.h + recompile.

Re: Slider: PDF presentations

I've just added a handful of bits to slider. And as I've honored requests for added features, I didn't want slider to get too bloated, so I've put many options in conditional compile blocks. With the Makefile you can use `make` to get all the currently (mostly) stable features including fade transitions, drawing pens, highlighting cursors, and pdf action links. Use `make minimal` to just have all the slide-show abilities without all these bells and whistles.

You can also use `make experimental` to get a preview of where Slider is going. Cfr, you may want to keep an eye on this as form filling is coming together now (not yet functional though).

If you want more control of which features are included, simply edit the OPTS line in the Makefile.

In response to a github request, I've also added persistent drawing options: you can use perm_pens to draw on a slide, move on in the presentation, then go back to the slide and still have the drawings there.

While I am keeping an eye on the feature-creep bloat, even with all the features - including experimental ones - slider is just under 1000 loc.

Re: Slider: PDF presentations

cfr, the experimental build (make experimental) now has a mostly functional form filling ability. Note the *mostly*, and that is is very beta - but it'd be handy if you could tell me how/where it breaks first.

What it should be able to do: simple text fields should work, button fields (check boxes, radio buttons) should work, multiline text fields are functional though the placement of the cursor right after hitting enter isn't right yet.

What it can't yet do: choice fields/combo boxes and signature fields.

How to use it: build with `make experimental`, then when you are on a page with fields, hit 'f' and they will be highlighted. Click on the field you wish to edit, then start typing. Enter or Esc will exit a simple text field, Esc will exit a multiline-capable field.

It's coded in such a way that wide-char symbols should work (accented or compose-key characters) - but I am not equipped to do much testing with this.

Future work: right now the selection highlight color and text color are fixed and arbitrary - this will be a bit more customizable later, once all the functionality is ironed out. Also, I try to read the font size from the pdf for the entry field, but the sample fillable pdfs I've found don't actually include a font size in the filllable fields - so if there is none and arbitrary default is used.

Missing, doubtful if it will be implemented: automatic line wrapping in multiline fields - hit enter for your own line breaks, or when you exit the field the pdf will wrap the text as necessary.

Finally, if you have some example pdfs with a variety of field types that I could test this against, please send some via my email linked in my profile.

Re: Slider: PDF presentations

How to use it: build with `make experimental`, then when you are on a page with fields, hit 'f' and they will be highlighted. Click on the field you wish to edit, then start typing. Enter or Esc will exit a simple text field, Esc will exit a multiline-capable field.

I suggest a vim-like selection mode. I love the way you can open hyperlinks and select formfields in firefox with VimFx. Press f, then each link and form field gets a short alphabetical identifier to activate it.

Also, I try to read the font size from the pdf for the entry field, but the sample fillable pdfs I've found don't actually include a font size in the filllable fields - so if there is none and arbitrary default is used.

Maybe calculate it from the height of the formfield or the surrounding text if it is not available.

Re: Slider: PDF presentations

Thanks, actually I do use the key shortcuts for activating action links (playing embedded media, jumping to a certain page). I'm thinking about implementing the same mechanism with form filling, but if I do that would be in the finishing touches phases.

I've thought about calculating font sizes too - this could work pretty well for simple text fields, but not so well for multiline, as there is no indication of how many lines it is meant to hold.

EDIT: I should also mention I haven't implemented saving the changes yet - this turns out to be very easy to do, I just want to be sure everything is working well before I provide the option of overwritting files. Currently slider does save the changes in /tmp/fill.pdf - so one could just move that file to wherever they'd want it - but this is a temporary hack while I work with the experimental form-filling features.

EDIT: I should also mention I haven't implemented saving the changes yet - this turns out to be very easy to do, I just want to be sure everything is working well before I provide the option of overwritting files.

I think you should always save an unmodified copy before saving if it does not exist yet, except if disabled with a setting or parameter. e.g. you show file.pdf, then the first time slipper will save changes you will get file.pdf.bakslid. This backup won't be touched again. Another backup is only created if it goes missing.It is always a good idea to keep an unmodified copy since it is easy to forget that when presenting I think. Just imagine you want to present multiple times and always start with clean slides

Re: Slider: PDF presentations

Yup, the saving option would never be automatic. There would be a command/key-binding to save changes. I suspect not-saving will be the more common choice.

I was thinking of resizing to fit - but this has some quirks. First, the size I need to figure out is only for the interactive text box - once that is exited, the text is saved to the temporary pdf, and this is passed to poppler for "rerendering" - so poppler decides on the final font size. Any font size I chose for the interactive text box will not likely be identical to that of the pdf, but changing it on the fly while typing would be rather crazy. The text fields do have a required parameter for maximum string length though - and along with the size of the rectangle I could estimate a good font size [this is assuming the pdf creation tools don't just pick some arbitrarily large maximum text length ... which they probably do!]. But this is not trivial with a multiline text box, particularly because these are not fixed width fonts. But an estimate will do.

I've realized that adding in text wrapping will not be too hard though. This is fairly low on the priority list right now, but it can be expected down the line. (edit this has been implemented, but no promises on reliability)

Re: Slider: PDF presentations

Trilby wrote:

cfr, the experimental build (make experimental) now has a mostly functional form filling ability. Note the *mostly*, and that is is very beta - but it'd be handy if you could tell me how/where it breaks first.

What it should be able to do: simple text fields should work, button fields (check boxes, radio buttons) should work, multiline text fields are functional though the placement of the cursor right after hitting enter isn't right yet.

What it can't yet do: choice fields/combo boxes and signature fields.

How to use it: build with `make experimental`, then when you are on a page with fields, hit 'f' and they will be highlighted. Click on the field you wish to edit, then start typing. Enter or Esc will exit a simple text field, Esc will exit a multiline-capable field.

It's coded in such a way that wide-char symbols should work (accented or compose-key characters) - but I am not equipped to do much testing with this.

I will get to this as soon as possible. We are at the height of the assessment season with examination boards next week (I marked 297 essays between Monday last week and yesterday) but I will try to find time. If not, the madness will soon end one way or another and I will be able to make some time.

Future work: right now the selection highlight color and text color are fixed and arbitrary - this will be a bit more customizable later, once all the functionality is ironed out. Also, I try to read the font size from the pdf for the entry field, but the sample fillable pdfs I've found don't actually include a font size in the filllable fields - so if there is none and arbitrary default is used.

Missing, doubtful if it will be implemented: automatic line wrapping in multiline fields - hit enter for your own line breaks, or when you exit the field the pdf will wrap the text as necessary.

Icing on the cake. Uniced cakes are better for you .

Finally, if you have some example pdfs with a variety of field types that I could test this against, please send some via my email linked in my profile.

Re: Slider: PDF presentations

For whatever it is worth, I would prefer a fixed font size. Resize-to-fit is good for cases where you are filling in a form to print or email somewhere. It is less good if your audience is trying to view what you are typing. acroread just lets the contents scroll out of view if there is too much text for the box size. This works fine for presentation purposes although in most cases I don't actually trigger it. In any case, the font size needs to be large enough to be visible to students at the back of a lecture hall, for example.

I don't ever get notified of updates to the AUR package for slider. Am I missing something or are new versions appearing elsewhere? I currently have version 1.114.8d5059a of slider-git with a PKGBUILD tweaked to make experimental. Is that the version I should be testing?

Re: Slider: PDF presentations

Trilby wrote:

cfr, the experimental build (make experimental) now has a mostly functional form filling ability. Note the *mostly*, and that is is very beta - but it'd be handy if you could tell me how/where it breaks first.

Apologies for the delay. Am finally getting to this.

So I sort of figured out the git PKGBUILD thing. I guess they don't show as updated and you just run makepkg again and it updates appropriately? Anyway, I installed the latest version built with experimental.

What it should be able to do: simple text fields should work, button fields (check boxes, radio buttons) should work, multiline text fields are functional though the placement of the cursor right after hitting enter isn't right yet.

So far I've tested only multiline text fields. I am about to construct a test file to test the rest. Filling out the field worked fine - great, actually. Very nice! However, the entire screen turns pink if I try to type more than the maximum possible number of characters which is a little disturbing.

I noticed that when fields are not shown, I have no mouse pointer. Is this intended? It makes it very difficult to click on links or other things on the slides. I also noticed that alt-tab does not allow me to move away from the presentation. I'm not really bothered by this but I cannot find any way to escape the presentation except by logging in on another vt and killing the process. Probably I've missed something somewhere.

How to use it: build with `make experimental`, then when you are on a page with fields, hit 'f' and they will be highlighted. Click on the field you wish to edit, then start typing. Enter or Esc will exit a simple text field, Esc will exit a multiline-capable field.

It's coded in such a way that wide-char symbols should work (accented or compose-key characters) - but I am not equipped to do much testing with this.

I will test this (accented at least) in my test file.

Missing, doubtful if it will be implemented: automatic line wrapping in multiline fields - hit enter for your own line breaks, or when you exit the field the pdf will wrap the text as necessary.

In multiline fields, text seems to wrap automatically.

EDIT: Note that I am testing this with a single laptop screen so I am not using the separate notes functionality. (I don't have a separate monitor available here.)

Re: Slider: PDF presentations

cfr wrote:

In multiline fields, text seems to wrap automatically.

Yup, I was wrong about how hard that would be. I does work pretty well - but since the font size in the interactive text window may not match that of the pdf, the lines might wrap at positions that look a bit odd when it 'rerenders' the text in the pdf. In my tests this often makes the lines a little shorter, so they had wrapped too early.

cfr wrote:

However, the entire screen turns pink if I try to type more than the maximum possible number of characters which is a little disturbing.

This is intentional, but I'm open to suggestions. It only flashes red/pink, right? If not, then something is definitely wrong, but the flash is a warning indicator (like visual bell in a terminal). It's used when you try to edit forum fields or use action links prior to the pdf being fully rendered, and in a few other instances where some requested behavior is not allowed: like reaching the end of what is allowed in a text box. Again I'm wide open to suggestions on this, but I think some sort of indicator is good as opposed to just not responding.

Exiting should be the same as it's been for a while Ctrl-Q. In 1.0 it was Alt-Q, but a user argued that Ctrl-Q was the default in all computer systems. I don't agree, but I had no deep ties to alt-Q, so I changed it to Ctrl-Q for v2.0. [Then another user argued that some other key combination was the default in all computer systems and that Ctrl-Q was just a horrible idea. There is now a github fork of Slider, to use a different key binding for quit! Both of these users failed to grasp that config.h was meant to be customized. Oh well.] I do not do a single key binding (like 'q' alone, or Esc) to quit as for large presentations, rendering can take a few moments - I wouldn't want the exit key to be easy to hit by mistake - and at least as a vim user, my pinky has a habbit of hitting escape without my expressed permission. But users are free to remap this (in config.h) as they see fit.

EDIT: and the mouse pointer: The showing/hiding of the mouse cursor is intentional - but I'm open to input on if/how this should be changed. If you want to click links, they wouldn't work anyways until you use the action-link key binding ('a' or Shift-'a'), at which point the mouse cursor will be shown. I preferred the pointer to be hidden unless the user was in a 'mode' that allowed for mouse interaction. Right now drawing pen, rectangle, action link, and form field modes allow mouse interaction, so the mouse is displayed for the duration of those modes.

Re: Slider: PDF presentations

Thanks for the response. I figured out the ctrl-Q. Although this is blindingly obvious I think when I have a presentation I am just very used to acroread. Although ctrl-Q quits acroread, Esc gets you out of the full screen mode without quitting. I find this useful because sometimes I need to switch to something else and I don't want to have to wait for everything to rerender. If I have more than one set of slides, I'll open both and then escape one and switch to the other at the appropriate point. That way I don't have to wait while the second loads.

I created a test pdf using some basic form bits from hyperref and a more polished frame which I obviously made when I either worked this out better or had better documentation.

Results:

- simple, single-line and multiline text fields work fine although I find the flashing pink a bit alarming. Is it possible to just flash the colour for the text field rather than the whole screen? This is great, though, and the main thing I really was hoping would get implemented although it would be great to get a save-as option at some point. My pdfs do specify the text size of the font for the field although I'm not sure that acroread or slider respect this. I'm not certain, though, as the sizes are misleading once things are blown up. At any rate, slide seems to handle this much like acroread and unlike okular (in non-presentation mode) it seems to pick up the current font.

- I cannot get anything else to work right now. I created a selection of different "choice menus" (default, combo, combo with menulength=1, popdown, radio), a check box and a "push button". None of these work in slider. Some work in okular (when not in presentation mode). All work in acroread. Obviously I didn't expect the combo or popdown to work but I'm not sure if the radio and checkbox should. I don't actually know what the "push button" is meant to do so it is hard to say if this works or not.

Would you like me to send you the pdf?

EDIT: Incidentally, is alt-tab deliberately disabled? And should switching to another vt and back result in a black screen, which is what I get?

EDIT EDIT: I quite like having the mouse pointer available. Sometimes I just use it to help point to something particular on the slide - a bit like a poor person's laser pointer.

EDIT EDIT EDIT: I'm wondering if this is all just combo/choice doesn't work yet since hyperref uses different varieties of \ChoiceMenu to implement radio buttons etc. Although that doesn't explain the check box not working...

Re: Slider: PDF presentations

cfr wrote:

Esc gets you out of the full screen mode without quitting ... I'll open both and then escape one and switch to the other at the appropriate point

I had something like this in the early versions, I just didn't put it back in when I wrote v2.0, but I can defintely put that back in. What would not be practical would be to rescale eveyrthing in 'real time', so the show will be rendered to show fullscreen, but you'll be able to 'unfullscreen' the window to switch between presentations soon.

Having that pdf to experiment with would be great. I did most of my testing with text boxes. I only quickly tried radio-buttons/checkboxes and they seemed to work, but I'm not surprised they are not complete.

Combo-boxes/listboxes I haven't even started with - I was looking for an example. The documentation for some of these functions is sparse, so I need to do a bit of trial and error.

For Alt-Tab, do you mean switching between different programs? If so, that alt-tab is not 'disabled', it's just that that is a window manager function, and window managers are supposed to ignore override-redirect windows, which slider is. But once I reimplement the 'unfullscreen' which will switch the window from override-redirect to normal, then alt-tab and any other window manager controls will work.

Switching to another VT and back resulting in a black screen is to be expected. Slider is still running, and is working fine, but X doesn't "know" about VTs, and so slider doesn't get any event or message to tell it that it should be redrawn. If you do anything with slider (even just Enter to redraw the current slide) it will show up again.

I could add a function to toggle the mouse pointer without requiring being in any 'mode'. But have you tried the "polka" function? It may seem like an odd name, until you try it - but it is made for replacing pointers. By default it is bound to numbers 1-6 -each of these make a mouse pointer "polka dot" of different size and/or color. These sizes and colors are completely customizable in config.h - I just picked a few that may show some of the possible range. A regular mouse cursor would often be too smal or plainly colored to be quickly visible by the audience (IMHO).

Re: Slider: PDF presentations

Trilby,If I try to send you email via your profile, I am unable to attach a file. I tried putting the file in the public bit of my dropbox but I cannot figure out how to get the public url to send you. (I am meant to right click the file according to the instructions but this doesn't seem to work in Dolphin.)

Re. the mouse pointer: I'll try the polkas. I wasn't really sure what that meant. Is it possible to configure the shape at all or are they all dots? Anyway, I'll definitely give those a whirl.

Thanks for the explanation of alt-tab.

I'm going to try to improve my test file but if I can figure out how to get the current version to you meanwhile, I'll definitely send it on.

Re: Slider: PDF presentations

Trilby wrote:

You can send it to jmcclure@cns.umass.edu

Done.

Currently all the "polka" pointers are filled circles - Other shapes wouldn't be hard, especially simple shapes like a pointer arrow.

Would be excellent. But, really, being able to fill in text fields in presentation mode and save the results is the truly fantastic thing and I would like to say just how much I appreciate your work on this.

Re: Slider: PDF presentations

OK this one is pretty cool: I just added cursor strings. They work a lot like the polka dots, but you can use any string of text in place of the polka dot.

I've stocked the default config with a handful of ones I think should be useful - and one not at all useful, but just for some shameless branding. Use them with Shift+# where # is a number 1-7. These can be customized in config.h to use any string desired - there are a lot of handy unicode characters that could make good pointers or highlighters. The size and color are adjusted with the same 'config string' I've used for everything else in config.h. These only added a dozen lines of code as they could hijack almost all the same code as the polka dots (which in turn had hijacked the code of the pens, and the rectangles).

Since these seem so much more useful than the polka dots (which were really just a novelty bit as the drawing pens had already provided all the needed code), I'm going to change the default bindings in my next git push so that the cursor strings are the regular number keys and the polka-dots are shift+number.