Skip to content

Desk Thing: The Discord Thing, Trello Thing, The Weather Thing, The Macro Thing, Just not The Car Thing anymore

License

Notifications You must be signed in to change notification settings

ItsRiprod/DeskThing

Repository files navigation

Youtube Banner image

Quick Links

Reddit Link

📃Trello Board

💬Deskthing Discord

🌐Official Deskthing Website

📺 Deskthing Youtube Channel

💬 Car Thing Hax Community Discord


‼️DeskThing is completely free to use but donations are greatly appreciated ☕


The DeskThing ✔️

Let's begin, shall we?

This is the DeskThing project. Using Spotify's existing Car Thing, the DeskThing makes the perfect desk assistant. In short, the DeskThing serves as an alternative OS for the Spotify Car Thing. It allows you to load up community-made apps to it to do anything from control your local audio to seeing who is in your discord call! If you want to help contribute to this endeavor and attempt to revive the car thing, you can do so through my buymeacoffee link or through Github Sponsors.

Cheers!

Dammit Jeff posted a video covering the DeskThing! Check it out here

⚠️DO NOT PULL MAIN BRANCH TO INSTALL ⚠️

Instead, go to The Official Website and download the installer for your OS For a video walkthrough of v0.6.0, go to this video


All instructions are up-to-date as late of v0.9.0-beta. Later versions may differ in functionality and setup

✨ Features

Click to see the source

The DeskThing is a simple CarThing Chromium-based website that can communicate with a Desktop APP on your computer. The CarThing can:

Note: Not all of these are updated and are pending a revision. This is new as of v0.7.0

Features

  • All In One Package 📦

    • Download apps directly from the Desktop App
    • Manage and update the Car Thing's display
    • Probably more - just check it out already
  • Configurable Controls ⚙️

    • Make any button do any function!
    • Control audio with the top buttons, front buttons, back buttons, really whatever you want!
    • Modify them from the Desktop UI
    • Add more directly from apps! (Basically, you can do anything)
image *The deskthing mappings page - will be updated in v0.12*

App Highlights (View the rest on the deskthing website or in the app store in deskthing)

image
  • Spotify Integration 🎧

    • Show currently listening (Album, Artist, Song name, album art)
    • Control Spotify (Skip, pause, play, rewind, shuffle, repeat)
    • Supports Podcasts too!
    • Set Audio Output Source
image *[LyrThing](https://github.com/espeon/LyrThing/) community app showing spotify lyrics by Espeon*
  • Local Audio Control 🎧

    • Show currently listening (Album, Artist, Song name, album art)
    • Control Any Playing Media (Skip, pause, play, rewind, shuffle, repeat)
  • Custom Apps

image

Gif uploaded via the Image Viewer app


▶️ Setting Up

Click to see the source

Detailed Setup Instructions

Updating this ReadMe with the updated flashing / installation instructions was tedious and led to confusion

So now, it is contained inside an easy youtube video

You can also check out the Additional Resources for further tutorials if you'd rather look there.

https://www.youtube.com/watch?v=iW2biAnq0n8

While older versions may work, this is recommended.


🔨 Local Development

Click to see the source

Local Development / Contribution

Node Version: >=v25.0.0 NPM Version: >=11.6.2

Note: These steps are for developers contributing to the project. For end-users installing DeskThing, do not pull the main branch—use the installer from The Official Website instead.

  1. Clone the repo
git clone https://github.com/itsriprod/deskthing
  1. cd into the directory
cd ./deskthing/DeskThingServer
  1. Install packages
npm install
  1. Run the development build
npm run dev

That's it, you should be off to the races! A few aspects of the app are different while in development, but nothing monumental.

The architecture is

src/
   main/ // all of the server-end code
   preload/ // types and definitions for the IPC communication layer
   renderer/ // the GUI of the application
   shared/ // shared types between the frontend and backend that are local to the server (global types are in @deskthing/types)

If you notice a lot of types issues, this may be due to the @deskthing/types being unpublished. To solve, you'll need to clone the Types package and link it locally

in a new, unrelated directory:

git clone https://github.com/itsriprod/deskthing-types
cd deskthing-types
npm install
# On linux you may have to run this as sudo due to symlinks
npm link

in the deskthingserver directory

npm link @deskthing/types

There, now you'll be using the development form of the types package!


🤝 Contributing

Click to see the source

Welcome contributions! Here's how to get started:

  • Reporting Issues: Use GitHub Issues to report bugs or suggest features. Include details like OS, DeskThing version, and steps to reproduce.
  • Submitting Pull Requests: Fork the repo, make changes on a feature branch, and submit a PR. Ensure code follows the project's style (e.g., TypeScript types from @deskthing/types or shared/ directory). For new features, include screenshots or demos if applicable.
  • Coding Standards: Use ESLint/Prettier if configured. Test your changes locally before submitting.
  • Questions: Join the DeskThing Discord for discussions.

📗 Additional Resources


Questions? DM me on discord @riprod

Action Shots

2024-11-03 14-52-17 2024-11-03 14_54_36 2024-11-03_14-49-12 2024-11-03_14_51_33 2024-11-03_14-54-50 2024-11-03_14_56_07

DeskThing wouldn't be possible without our sponsors

helium-badge

Want to support deskthing? You can here!

About

Desk Thing: The Discord Thing, Trello Thing, The Weather Thing, The Macro Thing, Just not The Car Thing anymore

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Languages