sway-launchpad

A small rust script to switch sway workspaces using a Launchpad S
git clone git://archive.git.mtrnord.blog/MTRNord/sway-launchpad.git
Log | Files | Refs | LICENSE

commit d23acdce232c36488f51095640faf28ea9406678
parent 60a5031d0df541f4f781f41bbe5a5777991cdfa3
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sun,  6 Dec 2020 00:07:05 +0100

fix: reset colors when moving away from known workspaces

Took 6 minutes

Diffstat:
M.idea/workspace.xml | 20+++++++++++++++-----
Mlaunchpad_sway_controler/src/main.rs | 3+++
Mlaunchpad_sway_controler/src/sway/mod.rs | 4+++-
3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/.idea/workspace.xml b/.idea/workspace.xml @@ -8,6 +8,7 @@ <list default="true" id="cfc5721f-cc06-4df2-8555-3745919e4c56" name="Default Changelist" comment=""> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/src/main.rs" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/main.rs" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/launchpad_sway_controler/src/sway/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/launchpad_sway_controler/src/sway/mod.rs" afterDir="false" /> </list> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> @@ -15,7 +16,7 @@ <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="DarkyenusTimeTracker"> - <option name="totalTimeSeconds" value="4209" /> + <option name="totalTimeSeconds" value="4498" /> <option name="idleThresholdMs" value="60000" /> <option name="autoCountIdleSeconds" value="0" /> <option name="stopWhenIdleRatherThanPausing" value="true" /> @@ -62,7 +63,7 @@ </configuration> <configuration name="Run" type="CargoCommandRunConfiguration" factoryName="Cargo Command" nameIsGenerated="true"> <option name="channel" value="DEFAULT" /> - <option name="command" value="run -p launchpad_sway_controler" /> + <option name="command" value="run -p launchpad_sway_controler --release" /> <option name="allFeatures" value="false" /> <option name="emulateTerminal" value="false" /> <option name="backtrace" value="SHORT" /> @@ -97,7 +98,8 @@ <option name="presentableId" value="Default" /> <updated>1607182424184</updated> <workItem from="1607182426972" duration="523000" /> - <workItem from="1607182962786" duration="5460000" /> + <workItem from="1607182962786" duration="7425000" /> + <workItem from="1607203029545" duration="2954000" /> </task> <task id="LOCAL-00001" summary="refactor: Use Workspace setup"> <created>1607182699156</created> @@ -113,13 +115,21 @@ <option name="project" value="LOCAL" /> <updated>1607188349376</updated> </task> - <option name="localTasksCounter" value="3" /> + <task id="LOCAL-00003" summary="fix: on reset also disable LEDs again"> + <created>1607188704601</created> + <option name="number" value="00003" /> + <option name="presentableId" value="LOCAL-00003" /> + <option name="project" value="LOCAL" /> + <updated>1607188704601</updated> + </task> + <option name="localTasksCounter" value="4" /> <servers /> </component> <component name="VcsManagerConfiguration"> <MESSAGE value="refactor: Use Workspace setup" /> <MESSAGE value="feat: Add ability to have multiple actions beyond workspace managment" /> - <option name="LAST_COMMIT_MESSAGE" value="feat: Add ability to have multiple actions beyond workspace managment" /> + <MESSAGE value="fix: on reset also disable LEDs again" /> + <option name="LAST_COMMIT_MESSAGE" value="fix: on reset also disable LEDs again" /> </component> <component name="XSLT-Support.FileAssociations.UIState"> <expand /> diff --git a/launchpad_sway_controler/src/main.rs b/launchpad_sway_controler/src/main.rs @@ -25,6 +25,7 @@ pub enum LaunchpadMapping { Steam = 115, Games = 114, Youtube = 113, + Spotify = 112, Test = 0, } @@ -38,6 +39,7 @@ impl Into<PluginActions<'_>> for LaunchpadMapping { LaunchpadMapping::Steam => PluginActions::SwayWorkspace("11:\u{f1b6}"), LaunchpadMapping::Games => PluginActions::SwayWorkspace("12:\u{f11b}"), LaunchpadMapping::Youtube => PluginActions::SwayWorkspace("13:\u{f167}"), + LaunchpadMapping::Spotify => PluginActions::SwayWorkspace("42:\u{f001}"), LaunchpadMapping::Test => PluginActions::ExamplePlugin, } } @@ -55,6 +57,7 @@ impl TryFrom<i32> for LaunchpadMapping { 115 => Ok(LaunchpadMapping::Steam), 114 => Ok(LaunchpadMapping::Games), 113 => Ok(LaunchpadMapping::Youtube), + 112 => Ok(LaunchpadMapping::Spotify), 0 => Ok(LaunchpadMapping::Test), _ => Err(()), } diff --git a/launchpad_sway_controler/src/sway/mod.rs b/launchpad_sway_controler/src/sway/mod.rs @@ -37,6 +37,7 @@ pub enum WorkspaceLaunchpadMapping { Steam = 115, Games = 114, Youtube = 113, + Spotify = 112, } impl TryFrom<i32> for WorkspaceLaunchpadMapping { @@ -51,6 +52,7 @@ impl TryFrom<i32> for WorkspaceLaunchpadMapping { 11 => Ok(WorkspaceLaunchpadMapping::Steam), 12 => Ok(WorkspaceLaunchpadMapping::Games), 13 => Ok(WorkspaceLaunchpadMapping::Youtube), + 42 => Ok(WorkspaceLaunchpadMapping::Spotify), _ => Err(()), } } @@ -71,8 +73,8 @@ pub async fn listen_for_workspace_changes() -> Result<()> { if let Some(v) = &w.current { if let Some(num) = v.num { // TODO make ? work + reset_colors(&mut conn_out); if let Ok(workspace) = WorkspaceLaunchpadMapping::try_from(num) { - reset_colors(&mut conn_out); conn_out .send(&[144, (workspace as i32).try_into().unwrap(), 28]) .unwrap();