A Windows 10/11 desktop application for controlling Ikea's Idasen standing desk via Bluetooth LE. While Ikea provides Android and iOS apps, this application brings convenient desk control directly to your Windows desktop through a system tray interface.
📚 Visit the Wiki for comprehensive documentation, guides, and troubleshooting.
This project uses the idasen-desk-core library for all Bluetooth communication with the Idasen desk.
- Thank You
- What's New
- Features
- Requirements
- Installation
- Usage
- Settings
- Troubleshooting
- Contributing
- License
A special thank you to all the amazing people who test this application and provide valuable feedback! Your contributions help make this app better for everyone. Special recognition goes to Glakt and other dedicated testers who have taken the time to report issues, test new features, and help improve the desk control experience. Your support is greatly appreciated! 🙏
- 📦 Updated NuGet packages.
- 🔧 Fixed minor SonarCloud issue: '...class should be marked partial...'
- 🔧 Fixed not catching COMException (0x80263001).
- 🔧 Fixed restoring theme after resuming from hibernation.
- 🔧 Fixed restoring theme when connecting eGPU.
- 🔧 Fixed 'Failed to load settings' error.
- Increase scroll speed when using mouse wheel.
- 🎨 Enable support for mouse wheel scrolling inside 'SettingsPage'.
Short description: This patch release focuses on stability and quality-of-life improvements. It includes several bug fixes, performance optimizations, small usability improvements, dependency/security updates, and adds SonarCloud scanning so all code is now continuously checked for quality and security.
- 🛡️Fixes: resolved multiple reported crashes and edge-case bugs.
- 📡Improvements: reduced memory/CPU usage in core processing paths and improved logging for easier troubleshooting.
- 📊 Quality: all code is now scanned by SonarCloud (static analysis for bugs, code smells, and security issues).
- 📦 Maintenance: updated third-party dependencies and applied security patches.
- ✨ Added 2 new desk positions: Custom 1 and Custom 2
- ⚙️ Desk positions can be fine-tuned using up/down icons or arrow keys in the confirmation dialog
- 🎨 Enhanced UI for the system tray application
- 👁️ Configurable visibility for desk positions and Stop command in context menu
- 🔌 Smart context menu: shows only 'Connect' or 'Disconnect' based on connection state
- 🖱️ Click system tray icon to show/hide settings window
- 🪟 Resizable settings window with improved window management
- 📡 Improved Bluetooth LE connection handling
- 📦 Updated all NuGet packages to latest versions
- 🔒 Masked sensitive data in log files
- 🛡️ Fixed security vulnerabilities through package updates
- 📊 Added SonarCloud code quality analysis
- 🐛 Fixed various code smells and bugs identified by SonarCloud
- 🖥️ System Tray Integration: Unobtrusive control directly from your Windows taskbar
- 🎯 Preset Positions: Four customizable height positions (Standing, Seating, Custom 1, Custom 2)
- ⌨️ Global Hotkeys: Control your desk from any application
- 🔄 Auto-Connect: Automatically connects to your desk on startup
- 📏 Fine-Tuning: Adjust positions using arrow keys during confirmation
- 🔔 Desktop Notifications: Stay informed about connection status and desk movement
- 🎨 Theme Support: Multiple color themes to match your desktop
- 🔒 Parental Lock: Lock the physical desk controller to prevent unwanted adjustments
- ⚙️ Per-User Settings: Each Windows user can have their own desk configurations
- Connect/Disconnect from desk
- Move to preset heights
- Stop desk movement
- Configure and manage settings
- Lock/unlock physical desk controller
- Operating System: Windows 10/11
- Hardware: Bluetooth LE adapter
- Desk: Ikea Idasen standing desk
- Pairing: Desk must be paired with Windows via Bluetooth settings
Download the latest self-contained executable (no .NET runtime installation required):
- Download the executable from the link above
- Run the executable
- If Windows shows a security warning, click "More info" and then "Run anyway"
- The application will start and appear in your system tray
For users who prefer package managers, you can install via Scoop:
scoop bucket add tschroedter https://github.com/tschroedter/scoop-bucket
scoop install tschroedter/idasen-systemtrayAnd updating the app:
scoop update tschroedter/idasen-systemtrayNote: The app doesn't have enough stars to be in the official Scoop repository, so we maintain our own bucket (PR #20).
The application runs in your system tray and provides visual feedback about your desk's current state.
Unknown Height - Displayed when the desk height hasn't been determined yet:
Known Height - Updated automatically when the desk moves:
Tip: Click the system tray icon to show/hide the settings window.
Right-click the system tray icon to access the context menu:
Available options:
- Show/Hide Settings - Toggle the settings window
- Connect/Disconnect - Manage Bluetooth connection (only the relevant option is shown)
- Standing - Move to standing position
- Seating - Move to seating position
- Custom 1 - Move to custom position 1
- Custom 2 - Move to custom position 2
- Stop - Immediately stop desk movement
- Exit - Close the application
Note: Menu items can be shown/hidden in the settings.
The desk can be controlled through:
- System tray context menu (right-click)
- Settings window menu (left sidebar)
- Global hotkeys (configurable)
To execute an action:
- Double-click a menu item (or use the hotkey)
- A confirmation dialog appears
- Fine-tune the position using up/down arrow keys if needed
- Confirm or cancel the action
The application automatically connects to your Idasen desk on startup. Desktop notifications keep you informed:
- 🔄 Trying to connect...
- ✅ Connected
- ❌ Failed to connect
Access settings by clicking "Show Settings" from the context menu or clicking the system tray icon. All settings are stored per Windows user.
Configure up to four preset positions:
- Standing: Your preferred standing height
- Seating: Your preferred sitting height
- Custom 1: Additional custom position
- Custom 2: Additional custom position
Each position includes:
- Height value (adjustable)
- Tray checkbox: Show/hide in context menu
- Stop: Toggle visibility of the Stop command in the context menu
Default global hotkeys (works in any application):
- Standing:
Ctrl + Shift + Alt + ↑(Up Arrow) - Seating:
Ctrl + Shift + Alt + ↓(Down Arrow) - Custom 1:
Ctrl + Shift + Alt + ←(Left Arrow) - Custom 2:
Ctrl + Shift + Alt + →(Right Arrow)
Choose from multiple color themes to match your desktop environment.
Displays the location of application log files for troubleshooting.
Shows where your user settings are stored.
Specify a custom desk name if you've changed it from the default. The app searches for devices with names starting with "Desk" by default.
Optionally specify your desk's Bluetooth MAC address (unsigned long format) for faster connection. The app prioritizes Desk Name first, then Desk Address.
Enable this feature to lock the physical desk controller. When active, pressing the up/down buttons on the desk will immediately stop movement, preventing unauthorized adjustments.
Fine-tune the estimated stopping distance from maximum movement speed. Adjust this if your desk overshoots or undershoots target heights.
Reset all settings to their default values.
Note: The settings are stored per Windows user.
Before using this application, you must pair your Idasen desk with Windows through Bluetooth settings.
Some users have reported that Windows 11 doesn't detect the desk in pairing mode. The solution is to enable advanced Bluetooth device discovery:
- Open Windows Settings → Bluetooth & devices
- Enable "Show all Bluetooth devices"
- Put your desk in pairing mode
- The desk should now appear in the device list
For more details, see this Reddit discussion.
If Windows 11 still can't find your desk using the modern Bluetooth settings:
-
Open Bluetooth Settings
- Go to Settings → Bluetooth & devices → Devices
-
Access Legacy Settings
- Scroll down and click "More devices and printers settings"
- The "Devices and Printers" window opens
-
Add Device
- Right-click in the window background (empty space)
- Select "Add a device"
- The "Choose a device or printer to add to this PC" window opens
-
Pair the Desk
- Put your Idasen desk into Bluetooth pairing mode
- The desk should appear in the window
- Select it and click "Next"
- Follow the on-screen instructions
Q: The application fails to connect to the Idasen desk?
A: Ensure your desk is paired with Windows first. The desk should appear in your Bluetooth devices list.
To verify:
- Open Settings → Bluetooth & devices
- Check if "Desk" or your custom desk name is listed
- The desk should show as "Connected" or "Paired"
If the desk is paired but the application still can't connect:
- Try disconnecting and reconnecting the desk in Windows Bluetooth settings
- Restart the application
- Check the log files (location shown in Advanced Settings)
- Ensure no other application is using the desk's Bluetooth connection
Still having problems? Please open an issue with:
- Your Windows version
- Error messages from log files
- Steps you've already tried
We welcome contributions to improve this project! Whether you're fixing bugs, adding features, or improving documentation, your help is appreciated.
When submitting a pull request:
- Follow the code style guidelines - See GitHub Copilot Instructions for detailed standards
- Add appropriate labels - Required for our automated changelog system:
featureorenhancement- New featuresfix,bugfix, orbug- Bug fixeschoreormaintenance- Maintenance tasksdocumentationordocs- Documentation changes
- Include tests - Add or update tests for new functionality
- Update documentation - Keep docs in sync with code changes
-
GitHub Copilot Instructions - Comprehensive development guide including:
- Building and testing instructions
- Code style and standards
- Pull request guidelines
- Common development tasks
-
Changelog Automation Guide - How our automated changelog works
-
Implementation Details - Technical implementation overview
-
Workflow Diagrams - Visual representation of CI/CD processes
# Clone the repository
git clone https://github.com/tschroedter/idasen-desk.git
cd idasen-desk/src
# Restore dependencies
dotnet restore Idasen-Desk.sln
# Build the solution
dotnet build Idasen-Desk.sln --configuration Release
# Run tests
dotnet test Idasen-Desk.sln --configuration Release- Language: C# / .NET 8.0
- UI Framework: WPF (Windows Presentation Foundation)
- Architecture: MVVM with Autofac DI
- Testing: xUnit, NSubstitute, FluentAssertions
- Communication: Bluetooth LE
- Check the documentation for detailed guides
- Review existing issues
- Use the pull request template
- View CI/CD workflows in the Actions tab
Comprehensive documentation is available in the Wiki:
For Users:
- Getting Started - Installation and setup
- User Guide - Complete usage instructions
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
- Configuration - Advanced configuration options
For Developers:
- Developer Guide - Contributing guidelines
- Build Instructions - How to build from source
- Architecture - Technical architecture
- Changelog Automation Guide - How our automated changelog works
- Implementation Details - Technical implementation overview
- Workflow Diagrams - Visual representation of CI/CD processes
- SonarCloud Setup - Code quality analysis setup
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with ❤️ for the Ikea Idasen desk community
- Thanks to all contributors
- Wiki - Comprehensive documentation
- Releases - Download the latest version
- Issues - Report bugs or request features
- Discussions - Ask questions and share ideas
- Changelog - View all changes
- Ikea Idasen Desk - Official product page









