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

Reply via email to