button and script to create and switch to a new workspace

This commit is contained in:
2025-06-19 09:52:45 +02:00
parent 85483b87de
commit 9aea7f501b
6 changed files with 70 additions and 32 deletions

View File

@@ -1,4 +0,0 @@
#!/usr/bin/env bash
# https://github.com/end-4/dots-hyprland/blob/main/.config/ags/scripts/hyprland/workspace_action.sh
hyprctl dispatch "$1" $(((($(hyprctl activeworkspace -j | jq -r .id) - 1) / 10) * 10 + $2))

11
.scripts/workspace-new.sh Executable file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# get highest workspace ID
max_id=$(hyprctl workspaces | grep '^workspace ID ' | awk '{print $3}' | sort -n | tail -1)
# case not found default to 0
if [ -z "$max_id" ]; then
max_id=0
fi
hyprctl dispatch workspace $((max_id + 1))

View File

@@ -2,6 +2,20 @@
<img src="https://github.com/Uyanide/dotfiles/blob/main/.chores/tiling.png?raw=true"/> <img src="https://github.com/Uyanide/dotfiles/blob/main/.chores/tiling.png?raw=true"/>
<img src="https://github.com/Uyanide/dotfiles/blob/main/.chores/grub.jpg?raw=true"/> <img src="https://github.com/Uyanide/dotfiles/blob/main/.chores/grub.jpg?raw=true"/>
## Setup Overview
- **OS**: Archlinux
- **WM**: Hyprland
- **Bar**: Waybar
- **Shell**: Fish
- **Prompt**: Oh My Posh
- **Terminal**: Kitty & Ghostty (floating)
- **Colorscheme**: Catppuccin-mocha(-blue)
- **App Launcher**: Fuzzel
- **Logout Screen**: Wlogout
- **Desktop Widgets**: Eww
- **Notification Daemon**: Mako
## Hyprland & most of Hypr\* ecosystem ## Hyprland & most of Hypr\* ecosystem
Based on [end-4/dots-hyprland](https://github.com/end-4/dots-hyprland) but without ags. Based on [end-4/dots-hyprland](https://github.com/end-4/dots-hyprland) but without ags.
@@ -18,10 +32,6 @@ Based on [vinceliuice/Elegant-grub2-themes](https://github.com/vinceliuice/Elega
Gathered from internet, based on <s>I don't know who</s> (such config files had been laying in my disk before I could even notice and already looked nice without further configurations) (and I'm pretty sure they were not the default config files shipped with the waybar package) Gathered from internet, based on <s>I don't know who</s> (such config files had been laying in my disk before I could even notice and already looked nice without further configurations) (and I'm pretty sure they were not the default config files shipped with the waybar package)
## Colorscheme for basically everything
[Catppuccin-mocha(-blue)](https://catppuccin.com)
## Fonts ## Fonts
Not unified, combination of: Not unified, combination of:

View File

@@ -14,7 +14,6 @@ bind = Ctrl+Super+Shift, V, exec, easyeffects # Launch EasyEffects (equalizer &
#! #!
##! Essentials ##! Essentials
bind = Super, T, exec, kitty # Launch kitty (terminal) bind = Super, T, exec, kitty # Launch kitty (terminal)
bind = Super+Shift, T, exec, ghostty # Launch ghostty (terminal)
bind = Super, Return, exec, kitty # [hidden] bind = Super, Return, exec, kitty # [hidden]
bind = Super+Shift, Return, exec, ghostty # [hidden] bind = Super+Shift, Return, exec, ghostty # [hidden]
bind = Super, Super_L, exec, eww open main --toggle # Launch dashboard (eww) bind = Super, Super_L, exec, eww open main --toggle # Launch dashboard (eww)
@@ -104,16 +103,16 @@ bind = Super, D, fullscreen, 1
##! Workspace navigation ##! Workspace navigation
# Switching # Switching
#/# bind = Super, Hash,, # Focus workspace # (1, 2, 3, 4, ...) #/# bind = Super, Hash,, # Focus workspace # (1, 2, 3, 4, ...)
bind = Super, 1, exec, ~/.scripts/workspace-action.sh workspace 1 # [hidden] bind = Super, 1, workspace, 1 # [hidden]
bind = Super, 2, exec, ~/.scripts/workspace-action.sh workspace 2 # [hidden] bind = Super, 2, workspace, 2 # [hidden]
bind = Super, 3, exec, ~/.scripts/workspace-action.sh workspace 3 # [hidden] bind = Super, 3, workspace, 3 # [hidden]
bind = Super, 4, exec, ~/.scripts/workspace-action.sh workspace 4 # [hidden] bind = Super, 4, workspace, 4 # [hidden]
bind = Super, 5, exec, ~/.scripts/workspace-action.sh workspace 5 # [hidden] bind = Super, 5, workspace, 5 # [hidden]
bind = Super, 6, exec, ~/.scripts/workspace-action.sh workspace 6 # [hidden] bind = Super, 6, workspace, 6 # [hidden]
bind = Super, 7, exec, ~/.scripts/workspace-action.sh workspace 7 # [hidden] bind = Super, 7, workspace, 7 # [hidden]
bind = Super, 8, exec, ~/.scripts/workspace-action.sh workspace 8 # [hidden] bind = Super, 8, workspace, 8 # [hidden]
bind = Super, 9, exec, ~/.scripts/workspace-action.sh workspace 9 # [hidden] bind = Super, 9, workspace, 9 # [hidden]
bind = Super, 0, exec, ~/.scripts/workspace-action.sh workspace 10 # [hidden] bind = Super, 0, workspace, 10 # [hidden]
#/# bind = Ctrl+Super, ←/→,, # Workspace: focus left/right #/# bind = Ctrl+Super, ←/→,, # Workspace: focus left/right
bind = Ctrl+Super, Right, workspace, +1 # [hidden] bind = Ctrl+Super, Right, workspace, +1 # [hidden]
bind = Ctrl+Super, Left, workspace, -1 # [hidden] bind = Ctrl+Super, Left, workspace, -1 # [hidden]
@@ -134,16 +133,16 @@ bind = Super, mouse:275, togglespecialworkspace, s # [hidden]
##! Workspace management ##! Workspace management
# Move window to workspace Super + Alt + [0-9] # Move window to workspace Super + Alt + [0-9]
#/# bind = Super+Alt, Hash,, # Window: move to workspace # (1, 2, 3, 4, ...) #/# bind = Super+Alt, Hash,, # Window: move to workspace # (1, 2, 3, 4, ...)
bind = Super+Alt, 1, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 1 # [hidden] bind = Super+Alt, 1, movetoworkspacesilent, 1 # [hidden]
bind = Super+Alt, 2, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 2 # [hidden] bind = Super+Alt, 2, movetoworkspacesilent, 2 # [hidden]
bind = Super+Alt, 3, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 3 # [hidden] bind = Super+Alt, 3, movetoworkspacesilent, 3 # [hidden]
bind = Super+Alt, 4, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 4 # [hidden] bind = Super+Alt, 4, movetoworkspacesilent, 4 # [hidden]
bind = Super+Alt, 5, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 5 # [hidden] bind = Super+Alt, 5, movetoworkspacesilent, 5 # [hidden]
bind = Super+Alt, 6, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 6 # [hidden] bind = Super+Alt, 6, movetoworkspacesilent, 6 # [hidden]
bind = Super+Alt, 7, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 7 # [hidden] bind = Super+Alt, 7, movetoworkspacesilent, 7 # [hidden]
bind = Super+Alt, 8, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 8 # [hidden] bind = Super+Alt, 8, movetoworkspacesilent, 8 # [hidden]
bind = Super+Alt, 9, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 9 # [hidden] bind = Super+Alt, 9, movetoworkspacesilent, 9 # [hidden]
bind = Super+Alt, 0, exec, ~/.scripts/workspace-action.sh movetoworkspacesilent 10 # [hidden] bind = Super+Alt, 0, movetoworkspacesilent, 10 # [hidden]
bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden] bind = Ctrl+Super+Shift, Right, movetoworkspace, +1 # [hidden]
bind = Ctrl+Super+Shift, Left, movetoworkspace, -1 # [hidden] bind = Ctrl+Super+Shift, Left, movetoworkspace, -1 # [hidden]
bind = Ctrl+Super, Up, workspace, -5 # [hidden] bind = Ctrl+Super, Up, workspace, -5 # [hidden]
@@ -162,3 +161,4 @@ bind = Super+Alt, S, movetoworkspace, special:s
bind = Super, P, pin bind = Super, P, pin
bind = Alt, Tab, cyclenext bind = Alt, Tab, cyclenext
bind = Super, Tab, hyprexpo:expo, toggle # can be: toggle, select, off/disable or on/enable bind = Super, Tab, hyprexpo:expo, toggle # can be: toggle, select, off/disable or on/enable
bind = Super+Ctrl, T, exec, ~/.scripts/workspace-new.sh

View File

@@ -11,7 +11,9 @@
"spacing": 2, // Gaps between modules (px) "spacing": 2, // Gaps between modules (px)
"modules-left": [ "modules-left": [
"custom/rofi", "custom/rofi",
"hyprland/workspaces", // "hyprland/workspaces",
// "custom/workspacenew",
"group/workspaceactions",
"hyprland/window", "hyprland/window",
//"hyprland/submap", //"hyprland/submap",
//"idle_inhibitor", //"idle_inhibitor",
@@ -55,6 +57,7 @@
"format": "󰐥", "format": "󰐥",
"tooltip": false, "tooltip": false,
"on-click": "wlogout", "on-click": "wlogout",
"on-click-right": "hyprctl dispatch killactive",
"min-length": 2, "min-length": 2,
"max-length": 2 "max-length": 2
}, },
@@ -66,7 +69,6 @@
// "on-click-middle": "pkill -9 fuzzel", // "on-click-middle": "pkill -9 fuzzel",
"on-click": "eww open main --toggle", "on-click": "eww open main --toggle",
"on-click-right": "pkill fuzzel || fuzzel", "on-click-right": "pkill fuzzel || fuzzel",
"on-click-middle": "hyprctl dispatch killactive",
"min-length": 2, "min-length": 2,
"max-length": 2 "max-length": 2
}, },
@@ -214,6 +216,10 @@
}, },
// Hyprland // Hyprland
"group/workspaceactions": {
"modules": ["hyprland/workspaces", "custom/workspacenew"],
"orientation": "inherit"
},
"hyprland/workspaces": { "hyprland/workspaces": {
"all-outputs": true, "all-outputs": true,
"format": "{name}", "format": "{name}",
@@ -223,6 +229,11 @@
"sort-by-number": true, "sort-by-number": true,
"active-only": false "active-only": false
}, },
"custom/workspacenew": {
"format": "+",
"tooltip": false,
"on-click": "~/.scripts/workspace-new.sh"
},
"hyprland/window": { "hyprland/window": {
"max-length": 100, "max-length": 100,
"separate-outputs": true, "separate-outputs": true,

View File

@@ -37,6 +37,7 @@ tooltip {
border: 3px solid @overlay0; border: 3px solid @overlay0;
} }
#custom-workspacenew,
#workspaces button { #workspaces button {
padding: 3px 5px; /* Adjusted padding to reduce height */ padding: 3px 5px; /* Adjusted padding to reduce height */
margin: 3px 5px; /* Reduced margin slightly */ margin: 3px 5px; /* Reduced margin slightly */
@@ -60,13 +61,22 @@ tooltip {
background-color: @red; background-color: @red;
} }
#workspaces { #workspaceactions {
background-color: alpha(@base, 0.6); background-color: alpha(@base, 0.6);
border-radius: 14px; border-radius: 14px;
padding: 3px 6px; /* Adjusted padding to reduce height */ padding: 3px 6px; /* Adjusted padding to reduce height */
border: 3px solid @blue; border: 3px solid @blue;
} }
#workspaces {
padding: 0px;
margin: 0px;
}
#custom-workspacenew:hover {
background-color: alpha(@blue, 0.3);
}
#window { #window {
background-color: alpha(@base, 0.6); background-color: alpha(@base, 0.6);
font-size: 15px; /* Slightly smaller font size */ font-size: 15px; /* Slightly smaller font size */