From 4cf6e46a7bd59abbebda4ae917109ced251ca17a Mon Sep 17 00:00:00 2001 From: vieta Date: Sat, 27 Dec 2025 15:18:10 +0100 Subject: [PATCH 1/2] base desktop --- desktop/README.md | 8 + desktop/config.toml | 20 +++ desktop/firefox.sh | 2 + desktop/kiosk-setting/sway/config | 165 ++++++++++++++++++ .../sway/config.d/50-systemd-user.conf | 9 + desktop/kiosk-setting/sway/loop.sh | 5 + desktop/setup.sh | 7 + desktop/sway/.config.swp | Bin 0 -> 12288 bytes desktop/sway/config | 104 +++++++++++ desktop/sway/config.d/50-systemd-user.conf | 9 + desktop/sway/ffrun.sh | 11 ++ desktop/sway/preseed | 1 + post_install.sh | 7 +- 13 files changed, 345 insertions(+), 3 deletions(-) create mode 100644 desktop/README.md create mode 100755 desktop/config.toml create mode 100755 desktop/firefox.sh create mode 100755 desktop/kiosk-setting/sway/config create mode 100755 desktop/kiosk-setting/sway/config.d/50-systemd-user.conf create mode 100755 desktop/kiosk-setting/sway/loop.sh create mode 100755 desktop/setup.sh create mode 100755 desktop/sway/.config.swp create mode 100755 desktop/sway/config create mode 100755 desktop/sway/config.d/50-systemd-user.conf create mode 100755 desktop/sway/ffrun.sh create mode 160000 desktop/sway/preseed diff --git a/desktop/README.md b/desktop/README.md new file mode 100644 index 0000000..384d819 --- /dev/null +++ b/desktop/README.md @@ -0,0 +1,8 @@ +# Kioskmodus +- Firefox autostart +- Sway +- Restart Firefox via short cut: ALT+Enter +- Close Firefox via short cut: ALT+Q +## Systemd Service für restart +- Inaktiv wegen wayland + diff --git a/desktop/config.toml b/desktop/config.toml new file mode 100755 index 0000000..d0ad293 --- /dev/null +++ b/desktop/config.toml @@ -0,0 +1,20 @@ +[terminal] +# The VT to run the greeter on. Can be "next", "current" or a number +# designating the VT. +vt = 1 + +# The default session, also known as the greeter. +[default_session] +# with whatever you want started, such as `sway`. +command = "sway --config /etc/kiosk-setting/sway/config" +# if using wlgreet +#command = "sway --config /etc/greetd/sway-config" +# The user to run the command as. The privileges this user must have depends +# on the greeter. A graphical greeter may for example require the user to be +# in the `video` group. +user = "kiosk1" + +[initial_session] +command = "sway'" +user = "kiosk1" + diff --git a/desktop/firefox.sh b/desktop/firefox.sh new file mode 100755 index 0000000..3a703e2 --- /dev/null +++ b/desktop/firefox.sh @@ -0,0 +1,2 @@ +#!/bin/bash +killall firefox && firefox --kiosk mahn.ke/kiosk diff --git a/desktop/kiosk-setting/sway/config b/desktop/kiosk-setting/sway/config new file mode 100755 index 0000000..36b733a --- /dev/null +++ b/desktop/kiosk-setting/sway/config @@ -0,0 +1,165 @@ +# Default config for sway +# +# Copy this to ~/.config/sway/config and edit it to your liking. +# +# Read `man 5 sway` for a complete reference. +exec firefox kiosk mahn.ke/kiosk + + +### Variables +# +# Logo key. Use Mod1 for Alt. +set $mod Mod1 +# Home row direction keys, like vim +#set $left h +#set $down j +#set $up k +#set $right l +# Your preferred application launcher +set $menu wmenu-run + +include /etc/sway/config-vars.d/* + +bindsym $mod+Return firefox kiosk mahn.ke/kiosk +bindsym $mod+q kill + + # Start your launcher + # bindsym $mod+d exec $menu + + # floating_modifier $mod normal + + # Reload the configuration file + # bindsym $mod+Shift+c reload + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' +# + # Move your focus around + #bindsym $mod+$left focus left + #bindsym $mod+$down focus down + #bindsym $mod+$up focus up + #bindsym $mod+$right focus right + # Or use $mod+[up|down|left|right] + #bindsym $mod+Left focus left + #bindsym $mod+Down focus down + #bindsym $mod+Up focus up + #bindsym $mod+Right focus right + + # Move the focused window with the same, but add Shift + #bindsym $mod+Shift+$left move left + #bindsym $mod+Shift+$down move down + #bindsym $mod+Shift+$up move up + #bindsym $mod+Shift+$right move right + # Ditto, with arrow keys + # bindsym $mod+Shift+Left move left + # bindsym $mod+Shift+Down move down + # bindsym $mod+Shift+Up move up + #bindsym $mod+Shift+Right move right +# +# Workspaces: +# + # Switch to workspace + # bindsym $mod+1 workspace number 1 + # bindsym $mod+2 workspace number 2 + # bindsym $mod+3 workspace number 3 + # bindsym $mod+4 workspace number 4 + # bindsym $mod+5 workspace number 5 + #bindsym $mod+6 workspace number 6 + #bindsym $mod+7 workspace number 7 + #bindsym $mod+8 workspace number 8 + #bindsym $mod+9 workspace number 9 + #bindsym $mod+0 workspace number 10 + # Move focused container to workspace + #bindsym $mod+Shift+1 move container to workspace number 1 + #bindsym $mod+Shift+2 move container to workspace number 2 + #bindsym $mod+Shift+3 move container to workspace number 3 + #bindsym $mod+Shift+4 move container to workspace number 4 + #bindsym $mod+Shift+5 move container to workspace number 5 + #bindsym $mod+Shift+6 move container to workspace number 6 + #bindsym $mod+Shift+7 move container to workspace number 7 + #bindsym $mod+Shift+8 move container to workspace number 8 + #bindsym $mod+Shift+9 move container to workspace number 9 + #bindsym $mod+Shift+0 move container to workspace number 10 + # Note: workspaces can have any name you want, not just numbers. + # We just use 1-10 as the default. +# +# Layout stuff: +# + # You can "split" the current object of your focus with + # $mod+b or $mod+v, for horizontal and vertical splits + # respectively. + #bindsym $mod+b splith + #bindsym $mod+v splitv + + # Switch the current container between different layout styles + #bindsym $mod+s layout stacking + #bindsym $mod+w layout tabbed + #bindsym $mod+e layout toggle split + + # Make the current focus fullscreen + #bindsym $mod+f fullscreen + + # Toggle the current focus between tiling and floating mode + #bindsym $mod+Shift+space floating toggle + + # Swap focus between the tiling area and the floating area + #bindsym $mod+space focus mode_toggle + + # Move focus to the parent container + #bindsym $mod+a focus parent +# +# Scratchpad: +# + # Sway has a "scratchpad", which is a bag of holding for windows. + # You can send windows there and get them back later. + + # Move the currently focused window to the scratchpad + #bindsym $mod+Shift+minus move scratchpad + + # Show the next scratchpad window or hide the focused scratchpad window. + # If there are multiple scratchpad windows, this command cycles through them. + #bindsym $mod+minus scratchpad show +# +# Resizing containers: +# +#mode "resize" { + # left will shrink the containers width + # right will grow the containers width + # up will shrink the containers height + # down will grow the containers height + # bindsym $left resize shrink width 10px + # bindsym $down resize grow height 10px + # bindsym $up resize shrink height 10px + # bindsym $right resize grow width 10px + + # Ditto, with arrow keys + # bindsym Left resize shrink width 10px + # bindsym Down resize grow height 10px + # bindsym Up resize shrink height 10px + # bindsym Right resize grow width 10px + + # Return to default mode + # bindsym Return mode "default" + # bindsym Escape mode "default" +#} +#bindsym $mod+r mode "resize" +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + # bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + # bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + # bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + #bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + # Special keys to adjust brightness via brightnessctl + # bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + # bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ + # Special key to take a screenshot with grim + # bindsym Print exec grim + +# +# Status Bar: +# +# Read `man 5 sway-bar` for more information about this section. + +include /etc/sway/config.d/* diff --git a/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf b/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf new file mode 100755 index 0000000..ab04a90 --- /dev/null +++ b/desktop/kiosk-setting/sway/config.d/50-systemd-user.conf @@ -0,0 +1,9 @@ +# import variables into system-user enviroment +# based on the instructions in the sway wiki +# see also https://github.com/swaywm/sway/issues/5732 +# and https://github.com/systemd/systemd/blob/dfc637d0ff756889e8e5b7cb4ec991eb06069aa1/xorg/50-systemd-user.sh + +exec systemctl --user import-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP + +exec hash dbus-update-activation-environment 2>/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway diff --git a/desktop/kiosk-setting/sway/loop.sh b/desktop/kiosk-setting/sway/loop.sh new file mode 100755 index 0000000..419919c --- /dev/null +++ b/desktop/kiosk-setting/sway/loop.sh @@ -0,0 +1,5 @@ +#!/bin/bash +while true; do + ./firefox.sh + sleep 1 +done diff --git a/desktop/setup.sh b/desktop/setup.sh new file mode 100755 index 0000000..77d1d11 --- /dev/null +++ b/desktop/setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh +sudo cp -r kiosk-setting /etc/ && \ +sudo cp firefox.sh /usr/bin/firefox.sh && \ +sudo apt install greetd sway && \ +sudo cp config.toml /etc/greetd/config.toml && \ +sudo reboot + diff --git a/desktop/sway/.config.swp b/desktop/sway/.config.swp new file mode 100755 index 0000000000000000000000000000000000000000..8a0e42725234885723daeafa05f31c0d825d09c5 GIT binary patch literal 12288 zcmYc?2=nw+u+%eTU|?VnU|>i%;F-xJ(8a*O#lTRMpI-tJCWKQ`lQI+Ybd!^lGcxe0 z)z8S!P1VoN%rDN?*GtaNOUq2xFD_54)Q7O~X&sdt4S~@RpdUwoq^#d8w107HU@@P zHU@?kHU@@tHU6hpr4wFV3s6<7h|9apmAY~HQ)w7bwQSJKt-|Xfs4Tym^MSqNY_iz*J4m+P*w;o zNh~QXR&YuzvSLtXU{Fv{P)N$mODV3*RR}1`%qvkytw>E)NH5CF1i_ae6Vx?TIN_rNt!* z2#XcUG82)w$t5{pomlO6EKSMG_svZ9EiFlfSY40^b+~SEerZv1s%|bwD#pRZ)y*-~ zCnP@DKQzeM)j^>oKRrDsm4L}XiJ8TzVfi_wxtOMB=4I=aL8OpO_w@62P|!A2C19{m zetBvU=?3c(G#G0@fSigR3}A;M1p>~9f%*{?DFLN9#i`&R2dCQ5lFXdUlFZa%P@=6x z@v&=ha$-TMLT-Las)ABVYFc7xPKgqVilEez(xNYGpC17gWG`4Q3KPKd6)v>j{+xZKN>#`$%_+$&$Vo+3Tb`Mhl3!k|qfnBOS*(zppPQSQm!gnd znVgeatWc6slwX>j0Wu<24{Bm?Mt(U+Kp`)+q6E_*cZVWnQ0~3kW7)AUzVx>4r8#TSk#3UD1a4}7T{6=&J18Rpd^4x6*wn=Re|CO ztO{q+#|U_clcAXaYzSUAgYp1a6>djE53` zP+FX-08R_hr3E!0y)_{D8gQV-g5w4yB|rlnViH&p7B!{#oC*nUhyft`u;>T50P0x~ z6Rbj60UXqo`K3irsl=lE(!3O~B#INkVXO_UdO^!)^Agh)bW0S<6N~adIa@bZK|M0R zRH2|KwHTC9K(Ulsky!%D!bK&?r6qa_F8K)P4)=_|KR98?3IViU{9W15} zcD%BJE70x8Y%z}Y7;r#N4sJijQrSRpOHNFgsjPZ#EJ1xSV~hPee?fP?ks zLNX!PWK`R=!JdTaa4AYmS3oyTA*oU!BR?kv6wd zHiN)zf0dHdB6#D!B(bPOAyEM&l$n>91Fr6z5{omFi>(;Isu89ZF~E8u`l%=#m~`E; z#G+zw4}<~Q%8F0QFG@)TM@lLK0|Th>uacXZSE^7BB6W*O^B9yBB0<@/dev/null && \ + dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP=sway diff --git a/desktop/sway/ffrun.sh b/desktop/sway/ffrun.sh new file mode 100755 index 0000000..a46b0fd --- /dev/null +++ b/desktop/sway/ffrun.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +APP_NAME="firefox-esr" +APP_COMMAND="firefox-esr" + +while true; do + if ! pgrep -x "$APP_NAME" > /dev/null; then + swaymsg exec "$APP_COMMAND" + fi + sleep 1 # Wait a second before checking again +done + diff --git a/desktop/sway/preseed b/desktop/sway/preseed new file mode 160000 index 0000000..84281c0 --- /dev/null +++ b/desktop/sway/preseed @@ -0,0 +1 @@ +Subproject commit 84281c058648cd18ee702d772766cf1a170670e8 diff --git a/post_install.sh b/post_install.sh index 8c9659e..cd302f1 100644 --- a/post_install.sh +++ b/post_install.sh @@ -1,3 +1,4 @@ +#!/usr/bin/env bassh printf "[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=kiosk\n\n[security]\n\n[xdmcp]\n\n[chooser]\n\n[debug]\n" > /etc/gdm3/daemon.conf mkdir -p /usr/lib/firefox-esr/distribution tee /usr/lib/firefox-esr/distribution/policies.json > /dev/null <<'EOF' @@ -6,7 +7,7 @@ tee /usr/lib/firefox-esr/distribution/policies.json > /dev/null <<'EOF' "DisableDeveloperTools": true, "BlockAboutAddons": true, "BlockAboutConfig": true, - "BlockAboutProfiles": true, + "BlockAboutProf#!/usr/bin/env basshiles": true, "BlockAboutSupport": true, "DisableFirefoxAccounts": true, "DisablePrivateBrowsing": true, @@ -57,6 +58,6 @@ chown -R kiosk:kiosk /home/kiosk/.config tee /home/kiosk/.bash_profile > /dev/null <<'EOF' if [ -z "$WAYLAND_DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then - exec cage firefox --kiosk https://c3nav.de + exec cage firefox --kiosk mahn.ke/kiosk fi -EOF \ No newline at end of file +EOF -- 2.50.1 From b29e81fe2996bdaaa45de4d9071951528f703114 Mon Sep 17 00:00:00 2001 From: vieta Date: Sat, 27 Dec 2025 15:25:20 +0100 Subject: [PATCH 2/2] base desktop + preseed v01 --- desktop/config.toml | 4 ++-- desktop/kiosk-setting/sway/config | 4 +--- desktop/setup.sh | 3 +-- post_install.sh | 5 +++-- setup.sh | 7 +++++++ 5 files changed, 14 insertions(+), 9 deletions(-) create mode 100755 setup.sh diff --git a/desktop/config.toml b/desktop/config.toml index d0ad293..76abbc8 100755 --- a/desktop/config.toml +++ b/desktop/config.toml @@ -12,9 +12,9 @@ command = "sway --config /etc/kiosk-setting/sway/config" # The user to run the command as. The privileges this user must have depends # on the greeter. A graphical greeter may for example require the user to be # in the `video` group. -user = "kiosk1" +user = "kiosk" [initial_session] command = "sway'" -user = "kiosk1" +user = "kiosk" diff --git a/desktop/kiosk-setting/sway/config b/desktop/kiosk-setting/sway/config index 36b733a..780f59f 100755 --- a/desktop/kiosk-setting/sway/config +++ b/desktop/kiosk-setting/sway/config @@ -3,9 +3,7 @@ # Copy this to ~/.config/sway/config and edit it to your liking. # # Read `man 5 sway` for a complete reference. -exec firefox kiosk mahn.ke/kiosk - - +#exec firefox kiosk mahn.ke/kiosk ### Variables # # Logo key. Use Mod1 for Alt. diff --git a/desktop/setup.sh b/desktop/setup.sh index 77d1d11..7d2250f 100755 --- a/desktop/setup.sh +++ b/desktop/setup.sh @@ -1,7 +1,6 @@ #!/bin/sh -sudo cp -r kiosk-setting /etc/ && \ -sudo cp firefox.sh /usr/bin/firefox.sh && \ sudo apt install greetd sway && \ +sudo cp -r desktop/kiosk-setting/ /etc/ && \ sudo cp config.toml /etc/greetd/config.toml && \ sudo reboot diff --git a/post_install.sh b/post_install.sh index cd302f1..1a9fa92 100644 --- a/post_install.sh +++ b/post_install.sh @@ -1,5 +1,6 @@ -#!/usr/bin/env bassh -printf "[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=kiosk\n\n[security]\n\n[xdmcp]\n\n[chooser]\n\n[debug]\n" > /etc/gdm3/daemon.conf +#!/usr/bin/env bash +#printf "[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=kiosk\n\n[security]\n\n[xdmcp]\n\n[chooser]\n\n[debug]\n" > /etc/gdm3/daemon.conf + mkdir -p /usr/lib/firefox-esr/distribution tee /usr/lib/firefox-esr/distribution/policies.json > /dev/null <<'EOF' { diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..3736f0a --- /dev/null +++ b/setup.sh @@ -0,0 +1,7 @@ +#!/bin/sh +sudo apt install greetd sway && \ +sudo cp -r desktop/kiosk-setting/ /etc/ && \ +sudo cp config.toml /etc/greetd/config.toml && \ +./post_install.sh +sudo reboot + -- 2.50.1