Git Product home page Git Product logo

hyprsome's People

Contributors

sopa0 avatar yavko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hyprsome's Issues

Hyprsome works fine via command-line, but fails when used as a keybinding

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

Focusing workspace goes to different monitor

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.

Turning monitors on and off adds 10 to workspaces

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.

Error when installing

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`

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.