Valent Cohesion

A sleek macOS-inspired floating dropshelf utility for highly customized Linux desktops.

Utility GPL-3.0 Rust / GTK4 Active Status

Overview

Valent Cohesion is a sleek, macOS-inspired floating dropshelf utility designed for modern Linux desktop environments. Built in Rust with GTK 4, it provides a lightning-fast, secure, and resource-efficient temporary holding drawer for files, folders, and links, simplifying drag-and-drop operations across virtual workspaces, full-screen windows, or terminal instances.

Cohesion features a modern semi-transparent dark UI with smooth slide animations, click-through background areas, and edge triggering, combining a premium aesthetic with seamless workspace utility.

Key Features

Sleek Glassmorphic Design

  • Semi-Transparent UI: Modern dark aesthetic featuring acrylic transparency and smooth transition animations using GTK's native hardware-accelerated Revealer widget.
  • Out-of-the-way UX: Stays hidden until triggered, keeping your screen clean and clutter-free.

Wayland & X11 Compatibility

  • Fullscreen Input Stencil: Runs as a fullscreen, transparent window that is fully click-through except for the exact region occupied by the shelf or trigger zone.
  • Edge Triggering: Automatically slides into view when you slide your mouse pointer to the rightmost screen boundary.
  • Active Drag Awakening: Dragging files or links to the screen edge instantly opens the shelf so you can drop them in.

Multi-File Drag-Out

  • Individual File Cards: Each item is displayed as a neat, responsive card that you can drag back out individually.
  • "Drag All" Handle: A dedicated handle lets you drag all stored files collectively into another application, terminal, or folder.

System Tray & Real-Time Preferences

  • Status Indicator Menu: Registers a native status notifier icon in your tray bar (using the D-Bus SNI protocol). Right-click to toggle the drawer, open settings, or quit.
  • Interactive Settings Panel: Features real-time sliders to customize Drawer Width, Slide-in Speed, and Transparency dynamically without restarting.
  • Configurations: Automatically persists application settings locally under ~/.config/valent-cohesion/config.

IPC Unix Socket Control

  • Command-Line Interface: Communicates with external scripts or desktop shortcuts using a Unix socket, allowing you to trigger actions via the terminal or map custom keybinds.

Installation & Build

Valent Cohesion is built using Rust and GTK 4. Ensure you have the GTK 4 development headers and a Rust toolchain installed.

1. Build and Install Debian Package

On Debian, Ubuntu, or derivative distributions, you can compile and package the app as a system-wide package:

bash - Package Build
# Build the Debian package using the packaging script bash packaging/build-deb.sh # Install the generated .deb package sudo dpkg -i target/debian/valent-cohesion_0.1.7_amd64.deb

2. Compile from Source

Alternatively, clone the repository and compile the release binary directly:

bash - Cargo Build
# Clone the repository git clone https://gitlab.com/quantum-hue/valent-cohesion.git cd valent-cohesion # Build optimized release binary cargo build --release # Binary available at target/release/valent-cohesion

Command-Line Interface (CLI)

The compiled binary acts as both the background daemon and the command-line client. You can control the shelf directly from your terminal or bind these commands to global keyboard shortcuts:

bash - CLI Commands
# Start the background daemon valent-cohesion start # Check the daemon status and list stored files valent-cohesion status # Toggle the shelf slide-in / slide-out valent-cohesion toggle # Add files directly to the shelf valent-cohesion add /absolute/path/to/file.pdf ./image.png # Stop the daemon gracefully valent-cohesion stop