main f911b20acfad cached
22 files
6.6 KB
2.4k tokens
1 requests
Download .txt
Repository: kageurufu/steamdeck_startup_animations
Branch: main
Commit: f911b20acfad
Files: 22
Total size: 6.6 KB

Directory structure:
gitextract_6pe7eui1/

├── README.md
├── deck_startup/
│   ├── deck_startup.3ds.webm
│   ├── deck_startup.64dd.webm
│   ├── deck_startup.dreamcast.webm
│   ├── deck_startup.ds.webm
│   ├── deck_startup.dsi.webm
│   ├── deck_startup.gamecube.webm
│   ├── deck_startup.gb.webm
│   ├── deck_startup.gba.webm
│   ├── deck_startup.gbc.webm
│   ├── deck_startup.ps1.webm
│   ├── deck_startup.ps2.webm
│   ├── deck_startup.ps4.webm
│   ├── deck_startup.switch.webm
│   ├── deck_startup.switchfirst.webm
│   ├── deck_startup.x360.webm
│   ├── deck_startup.xbone.webm
│   └── deck_startup.xbox.webm
├── install.sh
├── randomize_deck_startup.service
├── randomize_deck_startup.sh
└── uninstall.sh

================================================
FILE CONTENTS
================================================

================================================
FILE: README.md
================================================
# steamdeck_startup_animations
A collection of steamdeck startup animations, plus a script to randomize your startup on each boot

# So far, I've made boot animations from the following consoles:

* dreamcast
* ps1
* ps2
* ps4
* switch
* gamecube
* ps2
* switchfirst (first boot animation)
* switch (regular boot animation)
* xbox
* xbox 360
* xbox one

# Installation

```sh
curl -o - https://raw.githubusercontent.com/kageurufu/steamdeck_startup_animations/main/install.sh | bash -
```

If you're (justifiably) not a fan of `curl | bash`, you can run this:

```sh
mkdir -p "$HOME/homebrew"
mkdir -p "$HOME/.config/systemd/user"
git clone https://github.com/kageurufu/steamdeck_startup_animations "$HOME/homebrew/startup_animations"
ln -sf "$HOME/homebrew/startup_animations/randomize_deck_startup.service" "$HOME/.config/systemd/user/randomize_deck_startup.service"
systemctl --user daemon-reload
systemctl --user enable --now randomize_deck_startup.service
```

# Uninstallation

```sh
bash $HOME/homebrew/startup_animations/uninstall.sh
```

# Making an animation (somewhat advanced)

I used youtube-dl to grab the best video and audio tracks from youtube, and then ffmpeg to merge them, resizing down to fit the Deck's 1280x800 screen. Then I use `truncate` to make the file the right size. 

This all does work on the steamdeck

### Getting the dependencies

```sh
python3 -m ensurepip
~/.local/bin/pip install --user youtube-dl
```

### Creating the animation

```sh
# Get ps1.webm and ps1.m4a. Your file extensions may differ here
~/.local/bin/youtube-dl -f bestvideo -o 'ps1.%(ext)s' https://www.youtube.com/watch?v=1JwbfIi5Uio
~/.local/bin/youtube-dl -f bestaudio -o 'ps1.%(ext)s' https://www.youtube.com/watch?v=1JwbfIi5Uio

# Convert the video from whatever input formats to a webm video in VP9 encoding, with vorbis encoded audio
ffmpeg -i ps1.webm -i ps1.m4a \
       -map 0:v:0  -map 1:a:0 \
       -filter:v "scale='min(1280,iw)':min'(800,ih)':force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2" \
       -c:v vp9 \
       -c:a libvorbis \
       my_deck_startup_ps1.webm

# Make sure the generated file is less than 1840847B here
# Mine was `389670`, plenty small enough
stat -c '%s' my_deck_startup_ps1.webm

truncate -s 1840847 my_deck_startup_ps1.webm
```

The ffmpeg command is a bit confusing, so heres a breakdown

* `-i ps1.webm -i ps1.m4a`  
  Load both the video and audio files we downloaded.
* `-map 0:v:0  -map 1:a:0`  
  Only use the first video stream from the first file, and first audio stream from the second.  
  This prevents having multiple video or audio streams in the final file
* `-filter:v "scale='min(1280,iw)':min'(800,ih)':force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2"`  
  This is most confusing part, basically we're resizing the video to fit 1280x800  
  `min'(1280,iw)':min'(800,ih)'` ensures the target size is never upscaled  
  `force_original_aspect_ratio=decrease` scales to fit within a given size, keeping the original aspect ratio  
  `pad=1280:800:(ow-iw)/2:(oh-ih)/2` pad the video size to 1280:800, centering the original video. This is optional and I might not use it in the future
* `-c:v vp9 c:a libvorbis` Select our output VP9 / vorbis codecs

 


================================================
FILE: install.sh
================================================
#!/usr/bin/env bash

# Create required directories
echo ":: Creating required directories"
mkdir -p "$HOME/homebrew"
mkdir -p "$HOME/.config/systemd/user"

# Clone the startup animations repository
if [[ ! -d "$HOME/homebrew/startup_animations" ]]; then
  echo ":: Installing to $HOME/homebrew/startup_animations"
  git clone https://github.com/kageurufu/steamdeck_startup_animations "$HOME/homebrew/startup_animations"
  cd "$HOME/homebrew/startup_animations"
else
  echo ":: Updating $HOME/homebrew/startup_animations"
  cd "$HOME/homebrew/startup_animations"
  git pull
fi

# Install the service file
echo ":: Installing the startup service"
ln -sf "$HOME/homebrew/startup_animations/randomize_deck_startup.service" "$HOME/.config/systemd/user/randomize_deck_startup.service"
systemctl --user daemon-reload
systemctl --user enable --now randomize_deck_startup.service



================================================
FILE: randomize_deck_startup.service
================================================
[Unit]
Description=Randomize deck_startup.webm after boot

[Install]
WantedBy=default.target

[Service]
Type=oneshot
WorkingDirectory=/home/deck/homebrew/startup_animations
# ExecStartPre=/bin/sleep 30
ExecStart=/home/deck/homebrew/startup_animations/randomize_deck_startup.sh


================================================
FILE: randomize_deck_startup.sh
================================================
#!/usr/bin/env bash

Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

msg() {
  echo -e ":: ${*}$Color_Off"
}

msg2() {
  echo -e "$Red!!$Color_Off ${*}$Color_Off"
}

DECK_UIOVERRIDES="/home/deck/.steam/root/config/uioverrides"
DECK_UIOVERRIDES_MOVIES="${DECK_UIOVERRIDES}/movies"
DECK_UIOVERRIDES_STARTUP="${DECK_UIOVERRIDES_MOVIES}/deck_startup.webm"

restore_backup() {
  DECK_STARTUP_FILE="/home/deck/.steam/steam/steamui/movies/deck_startup.webm"
  DECK_STARTUP_STOCK_MD5="4ee82f478313cf74010fc22501b40729"

  if [[ -f "$DECK_STARTUP_FILE.backup" ]]; then
    checksum="$(md5sum "$DECK_STARTUP_FILE" | cut -d ' ' -f 1)"
    if [[ "$checksum" != "$DECK_STARTUP_STOCK_MD5" ]]; then
      rm "$DECK_STARTUP_FILE"
      mv "$DECK_STARTUP_FILE.backup" "$DECK_STARTUP_FILE"
    fi

    rm "$DECK_STARTUP_FILE.backup"
  fi
}

list_animations() {
  find deck_startup/ -type f -iname '*.webm' -print0
}

random_animation() {
  mapfile -d $'\0' animations < <(list_animations)
  echo "${animations[$RANDOM % ${#animations[@]}]}"
}

restore_backup

animation="$(random_animation)"
msg "Using $animation"
mkdir -p "${DECK_UIOVERRIDES_MOVIES}"
ln -f "$animation" "$DECK_UIOVERRIDES_STARTUP"



================================================
FILE: uninstall.sh
================================================
#!/usr/bin/env bash

if [[ -e "$HOME/.config/systemd/user/randomize_deck_startup.service" ]]; then
  echo ":: Removing the boot service"
  systemctl --user disable randomize_deck_startup.service
  rm "$HOME/.config/systemd/user/randomize_deck_startup.service"
fi

if [[ -f "$HOME/.steam/steam/steamui/movies/deck_startup.webm.backup" ]]; then
  echo ":: Restoring deck_startup.webm.backup"
  rm "$HOME/.steam/steam/steamui/movies/deck_startup.webm"
  mv "$HOME/.steam/steam/steamui/movies/deck_startup.webm.backup" "$HOME/.steam/steam/steamui/movies/deck_startup.webm"
fi

if [[ -L "$HOME/.steam/root/config/uioverrides/movies/deck_startup.webm" ]]; then
  rm "$HOME/.steam/root/config/uioverrides/movies/deck_startup.webm"
fi

if [[ -e "$HOME/homebrew/startup_animations" ]]; then
  echo ":: Deleting the startup_animations directory"
  rm -rf "$HOME/homebrew/startup_animations"
fi

Download .txt
gitextract_6pe7eui1/

├── README.md
├── deck_startup/
│   ├── deck_startup.3ds.webm
│   ├── deck_startup.64dd.webm
│   ├── deck_startup.dreamcast.webm
│   ├── deck_startup.ds.webm
│   ├── deck_startup.dsi.webm
│   ├── deck_startup.gamecube.webm
│   ├── deck_startup.gb.webm
│   ├── deck_startup.gba.webm
│   ├── deck_startup.gbc.webm
│   ├── deck_startup.ps1.webm
│   ├── deck_startup.ps2.webm
│   ├── deck_startup.ps4.webm
│   ├── deck_startup.switch.webm
│   ├── deck_startup.switchfirst.webm
│   ├── deck_startup.x360.webm
│   ├── deck_startup.xbone.webm
│   └── deck_startup.xbox.webm
├── install.sh
├── randomize_deck_startup.service
├── randomize_deck_startup.sh
└── uninstall.sh
Condensed preview — 22 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7K chars).
[
  {
    "path": "README.md",
    "chars": 3255,
    "preview": "# steamdeck_startup_animations\nA collection of steamdeck startup animations, plus a script to randomize your startup on "
  },
  {
    "path": "install.sh",
    "chars": 872,
    "preview": "#!/usr/bin/env bash\n\n# Create required directories\necho \":: Creating required directories\"\nmkdir -p \"$HOME/homebrew\"\nmkd"
  },
  {
    "path": "randomize_deck_startup.service",
    "chars": 277,
    "preview": "[Unit]\nDescription=Randomize deck_startup.webm after boot\n\n[Install]\nWantedBy=default.target\n\n[Service]\nType=oneshot\nWor"
  },
  {
    "path": "randomize_deck_startup.sh",
    "chars": 1463,
    "preview": "#!/usr/bin/env bash\n\nColor_Off='\\033[0m'       # Text Reset\n\n# Regular Colors\nBlack='\\033[0;30m'        # Black\nRed='\\03"
  },
  {
    "path": "uninstall.sh",
    "chars": 885,
    "preview": "#!/usr/bin/env bash\n\nif [[ -e \"$HOME/.config/systemd/user/randomize_deck_startup.service\" ]]; then\n  echo \":: Removing t"
  }
]

// ... and 17 more files (download for full content)

About this extraction

This page contains the full source code of the kageurufu/steamdeck_startup_animations GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 22 files (6.6 KB), approximately 2.4k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!