Just wondering since I know a lot of people quietly use a screen-area-select -> tesseract OCR -> clipboard shortcut.

  • I separate subjects of interest into different Firefox windows, in different workspaces – so I have an extension title them and a startup script parse text to ask the compositor to put them in the correct workspace (lets me restart more conveniently).
  • I have automatically-set different-orientation wallpapers for using my 2-in-1 depending on whether I use it in portrait or landscape (kind of just for looks, but I don’t think if anyone else adds a wallpaper change to their screen rotation keybind).
  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    12
    ·
    edit-2
    6 days ago

    I’ve got a RPI running a full-screen ‘kiosk’ view from homeassitant that turns an external display on/off based on a motion sensor.

    So basically it’s showing current temperatures, thermostat control, etc. but I have the display turn off after X minutes of no movement and turn on when there has been movement so it’s only on when you’re in the room.

    • irotsoma@lemmy.blahaj.zone
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      I’d love to see your implementation specs, code, pr any other technical details you’d like to share. I’m setting up home assistant and one of the things I want it to do is replace the functions of my thermostat and add some additional details.

      I used to have a Nest Thermostat, but my furnace needed to be replaced a couple of months back and I got a Mitsubishi heat pump, but their thermostat sucks, and it isnt compatible with Nest because it’s all wireless. I installed the WiFi add-on to the furnace so I can use the app, too, but it also sucks pretty bad. Plus I miss the functionality of it turning down the heat when I’m away to save money and turning it back on before I get home.

      So I’m planning to implement my own solution and documenting and open sourcing everything. But it’s going to be several months before I get to doing it due to other more urgent projects. So, I’m looking at everything available. I definitely will be setting up a small display to replace the thermostat and having motion detectors to turn on the display when you approach it to see the temperature and such and to supplement the home/away detection.

      Anyway, I would love to see your implementation to see how you did this piece of it.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        17 hours ago

        It’s really quite simple - but works pretty well. There are 3 components:

        Kiosk service

        A simple systemd service that starts a kiosk script.

        [Unit]
        Description=Kiosk
        Wants=graphical.target
        After=graphical.target
        
        [Service]
        Environment=DISPLAY=:0.0
        Environment=XAUTHORITY=/home/pi/.Xauthority
        Type=simple
        ExecStart=/bin/bash /home/pi/kiosk.sh
        Restart=on-abort
        User=pi
        Group=pi
        
        [Install]
        WantedBy=graphical.target
        

        Kiosk script

        The script in /home/pi/kiosk.sh just starts a web browser in full-screen mode pointed at my home assistant instance:

        #!/bin/bash
        
        xset s noblank
        xset s off
        xset -dpms
        
        export DISPLAY=:0.0 
        
        echo 0 > /sys/class/backlight/rpi_backlight/bl_power
        
        LANDING_PAGE="https://homeassistant.example.com/"
        
        unclutter -idle 0.5 -root &
        
        /usr/bin/chromium-browser --noerrdialogs --disable-infobars --kiosk $LANDING_PAGE
        
        

        Display service

        I have a very simple python/flask service that runs and exposes an endpoint that lets you turn on/off the display. It’s called by a homeassistant automation for when the motion detector senses or hasn’t sensed movement.

        Here’s the python - I have this started from another “kiosk.service” systemd service as well.

        #!/usr/bin/env python3
        import subprocess
        
        from flask import Flask
        from flask_restful import Api, Resource
        
        def turn_off_display():
            with(open(backlight_dev, 'w')) as dev:
                dev.write("1")
        
        
        def turn_on_display():
            with(open(backlight_dev, 'w')) as dev:
                dev.write("0")
        
        
        class DisplayController(Resource):
            def get(self, state):
                if state == 'off':
                    turn_off_display()
                elif state == 'on':
                    turn_on_display()
                else:
                    return {'message': f'Unknown state {state} - should be off/on'}, 500
                return {"message": "Success"}
        
        
        def init():
            turn_on_display()
        
        
        if __name__ == "__main__":
            init()
            app = Flask(__name__)
            api = Api(app)
            api.add_resource(DisplayController, '/display/<string:state>')
            app.run(debug=False, host='0.0.0.0', port=3000)
        

        You can then have the HA rest action call this with “http://pidisplay:3000/display/on” or off.

    • thejevans@lemmy.ml
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      6 days ago

      I have a similar display in my kitchen. It’s in portrait mode and has time (my timezone and others), weather (hourly and daily), and dynamic popups for weather alerts in the top 1/3. It has a spot for dynamic content below that that shows things like time remaining for my espresso machine to heat up and the temperature of my ember mug if I’m using it. The bottom half of the screen flips every 15 seconds between calenders for my partner and I, and local scheduled transit times and live train times with a map of current train positions.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        ·
        6 days ago

        Much simpler than that - The motion sensors are zigbee and integrated with HomeAssistant. I have a HA automation that sends a REST call to a webservice I wrote on the PI that then just needs to write 1 or 0 to /sys/class/backlight/rpi_backlight/bl_power.

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            4
            ·
            6 days ago

            It’s one of these. I don’t know the chip but I haven’t had any issues with false positives. If anything they’re slightly under sensitive, but not enough to be a deal breaker for my purposes.

    • treadful@lemmy.zip
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      6 days ago

      I have similar, but I turn my display on/off with HDMI-CEC based on time.