Hi Roman,
thanks for the feedback!
> I tried to do the same, but failed. I can show a PDF using pkg/pdf_view
> by routing it - for example - to "themed wm" or "background". How can I
> use the "slides" layer and how do I can make sure the PDF is shown with
> "optimal" zoom level (page with/height)? How can I toggle the slides
> layer on and off?
I'm using the attached patch.
It integrates the slides along with the PDF viewer into the boot image.
This way, I am able to show the slides at any time, even without
selecting any Sculpt partition.
The slides are picked up as 'bin/slides.pdf' from the Genode build
directory when executing the sculpt.run script.
For toggling the visibility of the slides, the patch configures the
pseudo key KEY_PRESENTATION as global key in the nitpicker GUI server.
This key code is generated via the input-filter remap rule for F11.
Cheers
Norman
--
Dr.-Ing. Norman Feske
Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
diff --git a/repos/gems/recipes/raw/drivers_managed-pc/input_filter.config b/repos/gems/recipes/raw/drivers_managed-pc/input_filter.config
index 0ebf6b5fea..e6280881f0 100644
--- a/repos/gems/recipes/raw/drivers_managed-pc/input_filter.config
+++ b/repos/gems/recipes/raw/drivers_managed-pc/input_filter.config
@@ -5,7 +5,7 @@
<chargen>
<remap>
<!-- <key name="KEY_CAPSLOCK" to="KEY_ESC"/> -->
- <key name="KEY_F11" to="KEY_RESTART"/>
+ <key name="KEY_F11" to="KEY_PRESENTATION"/>
<key name="KEY_F12" to="KEY_DASHBOARD"/>
<key name="KEY_LEFTMETA" to="KEY_SCREEN"/>
<include rom="numlock.remap"/>
diff --git a/repos/gems/run/sculpt.run b/repos/gems/run/sculpt.run
index f675f46f1c..c95890e35e 100644
--- a/repos/gems/run/sculpt.run
+++ b/repos/gems/run/sculpt.run
@@ -10,7 +10,8 @@ if {[have_spec nova]} {
create_boot_directory
import_from_depot [depot_user]/src/[base_src] \
- [depot_user]/pkg/sculpt
+ [depot_user]/pkg/sculpt \
+ [depot_user]/pkg/pdf_view
proc config_system_content {} { return {\
<!-- supported states: "poweroff" or "reset" when acpica started -->
@@ -71,7 +72,7 @@ install_config {
<policy label="nit_focus -> slides"
report="global_keys_handler -> slides"/>
<policy label="nit_focus -> hover" report="nitpicker -> hover"/>
- <policy label="slides_nit_fb_config -> slides"
+ <policy label="slides_nit_fader_config -> slides"
report="global_keys_handler -> slides"/>
<policy label="leitzentrale -> manager -> displays"
report="nitpicker -> displays"/>
@@ -368,6 +369,59 @@ install_config {
</route>
</start>
+ <start name="slides_nit_fader" priority="-2" caps="100">
+ <resource name="RAM" quantum="22M"/>
+ <binary name="nit_fader"/>
+ <provides><service name="Nitpicker"/></provides>
+ <route>
+ <service name="ROM" label="config"> <child name="slides_nit_fader_config"/> </service>
+ <service name="Nitpicker"> <child name="nitpicker" label="slides"/> </service>
+ <service name="Timer"> <child name="timer"/> </service>
+ <any-service> <parent/> </any-service>
+ </route>
+ </start>
+
+ <start name="pdf_view" priority="-2" caps="256">
+ <resource name="RAM" quantum="64M"/>
+ <config>
+ <vfs>
+ <rom name="slides.pdf" />
+ <dir name="dev"> <log/> </dir>
+ </vfs>
+ <libc stdout="/dev/log" stderr="/dev/log"/>
+ </config>
+ <route>
+ <service name="Nitpicker"> <child name="slides_nit_fader"/> </service>
+ <service name="Timer"> <child name="timer"/> </service>
+ <any-service> <parent/> </any-service>
+ </route>
+ </start>
+
+ <start name="slides_nit_fader_config" priority="-2">
+ <binary name="rom_filter"/>
+ <resource name="RAM" quantum="1M"/>
+ <provides><service name="ROM"/></provides>
+ <config>
+ <input name="slides_enabled" rom="slides" node="slides">
+ <attribute name="enabled" /> </input>
+ <output node="config">
+ <if>
+ <has_value input="slides_enabled" value="yes" />
+ <then>
+ <attribute name="alpha" value="255"/>
+ </then>
+ <else>
+ <attribute name="alpha" value="0"/>
+ </else>
+ </if>
+ </output>
+ </config>
+ <route>
+ <service name="ROM" label="slides"> <child name="report_rom"/> </service>
+ <any-service> <parent/> </any-service>
+ </route>
+ </start>
+
<start name="leitzentrale_config" priority="-2">
<binary name="rom_filter"/>
<resource name="RAM" quantum="1M"/>
@@ -671,6 +725,6 @@ exec sh -c "tar cf [run_dir]/genode/depot_users.tar -C [genode_dir] \
# Create boot image
#
-append boot_modules { }
+append boot_modules { slides.pdf }
build_boot_image $boot_modules
diff --git a/repos/gems/run/sculpt/nitpicker.config b/repos/gems/run/sculpt/nitpicker.config
index 9d8c3ea805..40a0157d5a 100644
--- a/repos/gems/run/sculpt/nitpicker.config
+++ b/repos/gems/run/sculpt/nitpicker.config
@@ -21,10 +21,11 @@
<policy label="backdrop" domain="background"/>
<default-policy domain="default"/>
- <global-key name="KEY_RESTART" label="global_keys_handler -> input" />
- <global-key name="KEY_DASHBOARD" label="global_keys_handler -> input" />
- <global-key name="KEY_CAPSLOCK" label="global_keys_handler -> input" />
- <global-key name="KEY_NUMLOCK" label="global_keys_handler -> input" />
- <global-key name="KEY_SCREEN" label="runtime -> wm -> wm -> decorator" />
- <global-key name="KEY_SCREEN" label="runtime -> themed_wm -> wm -> decorator" />
+ <global-key name="KEY_RESTART" label="global_keys_handler -> input" />
+ <global-key name="KEY_DASHBOARD" label="global_keys_handler -> input" />
+ <global-key name="KEY_CAPSLOCK" label="global_keys_handler -> input" />
+ <global-key name="KEY_NUMLOCK" label="global_keys_handler -> input" />
+ <global-key name="KEY_PRESENTATION" label="global_keys_handler -> input" />
+ <global-key name="KEY_SCREEN" label="runtime -> wm -> wm -> decorator" />
+ <global-key name="KEY_SCREEN" label="runtime -> themed_wm -> wm -> decorator" />
</config>
_______________________________________________
Genode users mailing list
[email protected]
https://lists.genode.org/listinfo/users