sopa0 / hyprsome Goto Github PK
View Code? Open in Web Editor NEWAwesome-like workspaces for Hyprland
License: Other
Awesome-like workspaces for Hyprland
License: Other
If I run hyprsome workspace 2
in a terminal, the workspace switches, as expected.
However, using the same command in a Hyprland keybinding does nothing at all.
Here's my relevant hyprland.conf keybindings
# Workspaces
bind = $Strong, 1, exec, hyprsome workspace 1
bind = $Strong, 2, exec, hyprsome workspace 2
bind = $Strong, 3, exec, hyprsome workspace 3
bind = $Strong, 4, exec, hyprsome workspace 4
bind = $Strong, 5, exec, hyprsome workspace 5
bind = $Strong, 6, exec, hyprsome workspace 6
bind = $Strong, 7, exec, hyprsome workspace 7
bind = $Strong, 8, exec, hyprsome workspace 8
bind = $Strong, 9, exec, hyprsome workspace 9
# Move window to a workspace
bind = $Strong SHIFT, 1, exec, hyprsome move 1
bind = $Strong SHIFT, 2, exec, hyprsome move 2
bind = $Strong SHIFT, 3, exec, hyprsome move 3
bind = $Strong SHIFT, 4, exec, hyprsome move 4
bind = $Strong SHIFT, 5, exec, hyprsome move 5
bind = $Strong SHIFT, 6, exec, hyprsome move 6
bind = $Strong SHIFT, 7, exec, hyprsome move 7
bind = $Strong SHIFT, 8, exec, hyprsome move 8
bind = $Strong SHIFT, 9, exec, hyprsome move 9
Something interesting of note, when I login to a tty, and use the command dbus-launch Hyprland
, the keybindings do work as expected, with no issues at all. I tried adding said command to my hyprland.desktop file, but it unfortunately didn't work.
I use SDDM as a display manager, sugar-light
as my theme.
Fedora Workstation 37
Hi,
Here's my current config:
monitor=,preferred,auto,1
monitor=DP-2, 1920x1080, 0x0, 1
workspace=DP-2, 11
monitor=eDP-1, 2560x1600, 1920x0, 1
workspace=eDP-1,1
monitor=HDMI-A-1, 1920x1080, 4480x0, 1
workspace=HDMI-A-1, 21
# workspaces, needs https://github.com/sopa0/hyprsome
wsbind=1,eDP-1
wsbind=2,eDP-1
wsbind=3,eDP-1
wsbind=4,eDP-1
wsbind=5,eDP-1
wsbind=11,DP-2
wsbind=12,DP-2
wsbind=13,DP-2
wsbind=14,DP-2
wsbind=15,DP-2
wsbind=21,HDMI-A-1
wsbind=22,HDMI-A-1
wsbind=23,HDMI-A-1
wsbind=24,HDMI-A-1
wsbind=25,HDMI-A-1
Keybinds:
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, exec, hyprsome workspace 1
bind = $mainMod, 2, exec, hyprsome workspace 2
bind = $mainMod, 3, exec, hyprsome workspace 3
bind = $mainMod, 4, exec, hyprsome workspace 4
bind = $mainMod, 5, exec, hyprsome workspace 5
bind = $mainMod, 6, exec, hyprsome workspace 6
bind = $mainMod, 7, exec, hyprsome workspace 7
bind = $mainMod, 8, exec, hyprsome workspace 8
bind = $mainMod, 9, exec, hyprsome workspace 9
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, exec, hyprsome move 1
bind = $mainMod SHIFT, 2, exec, hyprsome move 2
bind = $mainMod SHIFT, 3, exec, hyprsome move 3
bind = $mainMod SHIFT, 4, exec, hyprsome move 4
bind = $mainMod SHIFT, 5, exec, hyprsome move 5
bind = $mainMod SHIFT, 6, exec, hyprsome move 6
bind = $mainMod SHIFT, 7, exec, hyprsome move 7
bind = $mainMod SHIFT, 8, exec, hyprsome move 8
bind = $mainMod SHIFT, 9, exec, hyprsome move 9
I'm under the impression that with your binary and this config, I should be able to switch to workspace 12 on monitor 2 (DP-2), by pressing SUPER+2 when I'm focused on workspace 11 on monitor 2.
However, when I try to do this, it focuses monitor 1 instead. If I then press it again with workspace 2 on monitor 1 focused, it will go to workspace 12 on monitor 2 (when it should really be doing nothing, because I'm already focusing on the correct workspace). When I repeatedly press SUPER+2, it will cycle through every second workspace on each monitor.
I'm guessing this is not at all how this is intended to work. Is something wrong with my config?
I'm migrating from bspwm, where every monitor had its own set of independant workspaces. Let me know if this is not possible with your binary.
I have a two monitor setup, when I turn them off and back on again, sometimes hyprland workspace 4 will, for example, instead of taking me to workspace 4, it takes me to workspace 24. No fix unless restarting Hyprland (as far as I know).
Doesn't happen using the official hyprland workspace dispatcher.
When I install hyprsome, I get this error.
OS: Arch Linux x86_64
Kernel: 6.2.9-zen1-1-zen
DE: Hyprland
Terminal: WezTerm
CPU: AMD Ryzen 3 3200G (4) @ 3.600GHz
GPU: AMD ATI Radeon Vega Series / Radeon Vega Mobile Series
Memory: 4149MiB / 13909MiB
GPU Driver: amdgpu
cargo 1.64.0 (387270bc7 2022-09-16)
Error Message
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:14:57
|
14 | let monitor = monitors.into_iter().find(|m| m.id == id).unwrap();
| ^^ expected `i16`, found `u8`
error[E0277]: can't compare `i16` with `u8`
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:14:54
|
14 | let monitor = monitors.into_iter().find(|m| m.id == id).unwrap();
| ^^ no implementation for `i16 == u8`
|
= help: the trait `PartialEq<u8>` is not implemented for `i16`
= help: the following other types implement trait `PartialEq<Rhs>`:
<f32 as PartialEq<serde_json::Value>>
<f32 as PartialEq>
<f64 as PartialEq<serde_json::Value>>
<f64 as PartialEq>
<i128 as PartialEq>
<i16 as PartialEq<serde_json::Value>>
<i16 as PartialEq>
<i32 as PartialEq<serde_json::Value>>
and 18 others
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:126:34
|
126 | .filter(|c| c.monitor == mon_id)
| ^^^^^^ expected `i16`, found `u8`
error[E0277]: can't compare `i16` with `u8`
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:126:31
|
126 | .filter(|c| c.monitor == mon_id)
| ^^ no implementation for `i16 == u8`
|
= help: the trait `PartialEq<u8>` is not implemented for `i16`
= help: the following other types implement trait `PartialEq<Rhs>`:
<f32 as PartialEq<serde_json::Value>>
<f32 as PartialEq>
<f64 as PartialEq<serde_json::Value>>
<f64 as PartialEq>
<i128 as PartialEq>
<i16 as PartialEq<serde_json::Value>>
<i16 as PartialEq>
<i32 as PartialEq<serde_json::Value>>
and 18 others
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:132:34
|
132 | let mon = monitor::get_by_id(aw.monitor);
| ------------------ ^^^^^^^^^^ expected `u8`, found `i16`
| |
| arguments to this function are incorrect
|
note: function defined here
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:12:8
|
12 | pub fn get_by_id(id: u8) -> Monitor {
| ^^^^^^^^^ ------
help: you can convert an `i16` to a `u8` and panic if the converted value doesn't fit
|
132 | let mon = monitor::get_by_id(aw.monitor.try_into().unwrap());
| ++++++++++++++++++++
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:149:34
|
149 | let mon = monitor::get_by_id(aw.monitor);
| ------------------ ^^^^^^^^^^ expected `u8`, found `i16`
| |
| arguments to this function are incorrect
|
note: function defined here
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:12:8
|
12 | pub fn get_by_id(id: u8) -> Monitor {
| ^^^^^^^^^ ------
help: you can convert an `i16` to a `u8` and panic if the converted value doesn't fit
|
149 | let mon = monitor::get_by_id(aw.monitor.try_into().unwrap());
| ++++++++++++++++++++
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:167:34
|
167 | let mon = monitor::get_by_id(aw.monitor);
| ------------------ ^^^^^^^^^^ expected `u8`, found `i16`
| |
| arguments to this function are incorrect
|
note: function defined here
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:12:8
|
12 | pub fn get_by_id(id: u8) -> Monitor {
| ^^^^^^^^^ ------
help: you can convert an `i16` to a `u8` and panic if the converted value doesn't fit
|
167 | let mon = monitor::get_by_id(aw.monitor.try_into().unwrap());
| ++++++++++++++++++++
error[E0308]: mismatched types
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/main.rs:186:34
|
186 | let mon = monitor::get_by_id(aw.monitor);
| ------------------ ^^^^^^^^^^ expected `u8`, found `i16`
| |
| arguments to this function are incorrect
|
note: function defined here
--> /home/tg/.cargo/registry/src/github.com-1ecc6299db9ec823/hyprsome-0.1.10/src/hyprland_ipc/monitor.rs:12:8
|
12 | pub fn get_by_id(id: u8) -> Monitor {
| ^^^^^^^^^ ------
help: you can convert an `i16` to a `u8` and panic if the converted value doesn't fit
|
186 | let mon = monitor::get_by_id(aw.monitor.try_into().unwrap());
| ++++++++++++++++++++
Some errors have detailed explanations: E0277, E0308.
For more information about an error, try `rustc --explain E0277`.
error: could not compile `hyprsome` due to 8 previous errors
error: failed to compile `hyprsome v0.1.10`, intermediate artifacts can be found at `/tmp/cargo-installz82uiS`
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.