Flake update. Quickshell on Desktop

This commit is contained in:
2025-07-22 16:54:00 +01:00
parent 7ca1e956e1
commit 5f3e6ed438
19 changed files with 746 additions and 101 deletions
+33
View File
@@ -0,0 +1,33 @@
general {
after_sleep_cmd=hyprctl dispatch dpms on
before_sleep_cmd=loginctl lock-session
lock_cmd=pidof hyprlock || hyprlock
}
listeners {
on-resume=brightnessctl -r
on-timeout=brightnessctl -s set 10
timeout=120
}
listeners {
on-resume=brightnessctl -rd rgb:kbd_backlight
on-timeout=brightnessctl -sd rgb:kbd_backlight set 0
timeout=120
}
listeners {
on-timeout=loginctl lock-session
timeout=180
}
listeners {
on-resume=hyprctl dispatch dpms on
on-timeout=hyprctl dispatch dpms off
timeout=300
}
listeners {
on-timeout=systemctl suspend
timeout=300
}
+373
View File
@@ -0,0 +1,373 @@
# Startup
exec-once=dbus-update-activation-environment --systemd --all && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
exec-once=wl-clipboard-history -t
exec-once=wl-paste -p --watch wl-copy -p ''
exec-once=hypridle
exec-once=quickshell
exec-once=fcitx5 -d
exec-once=swww-daemon
exec-once=swaync
# Monitors
monitor=DP-1,2560x1440@143,0x0,1
monitor=HDMI-A-1,1920x1080@60,2560x180,1
monitor=,preferred,auto,1,mirror,eDP-1
# Environment
env=WLR_NO_HARDWARE_CURSORS,1
env=HYPRCURSOR_THEME,Bibata-Modern-Ice
env=HYPRCURSOR_SIZE,24
env=XDG_CURRENT_DESKTOP,Hyprland
env=XDG_SESSION_TYPE,wayland
env=XDG_SESSION_DESKTOP,Hyprland
env=GTK_THEME,Materia-dark
env=QT_QPA_PLATFORM,wayland
env=XCURSOR_THEME,Bibata-Modern-Ice
env=XCURSOR_SIZE,24
# Colors
$green=rgb(00BB00)
$gray=rgb(555555)
$purple=rgb(BB00BB)
$lavendar=rgb(B39DF3)
$orange=rgb(F39660)
$lightgreen=rgb(93C863)
$lightblue=rgb(76CCE0)
$magenta=rgba(881798FF)
$crimson=rgba(471520FF)
# USED COLORS
$active_border=$lightgreen
$inactive_border=$gray
$expo_bg=$active_border
animations {
bezier=myBezier, 0.05, 0.9, 0.1, 1.05
animation=windows, 1, 7, myBezier
animation=windowsOut, 1, 7, default, popin 80%
animation=border, 1, 10, default
animation=borderangle, 1, 8, default
animation=fade, 1, 7, default
animation=workspaces, 1, 6, default
enabled=true
}
debug {
disable_logs=true
}
decoration {
blur {
enabled=true
new_optimizations=on
passes=1
size=3
xray=true
}
shadow {
color=rgba(1a1a1aee)
enabled=true
range=4
render_power=3
}
rounding=10
}
dwindle {
preserve_split=true
pseudotile=true
}
ecosystem {
no_donation_nag=true
no_update_news=true
}
experimental {
xx_color_management_v4=true
}
general {
border_size=2
col.active_border=$active_border
col.inactive_border=$inactive_border
gaps_in=2
gaps_out=4
layout=dwindle
}
gestures {
workspace_swipe=true
workspace_swipe_forever=true
}
input {
touchpad {
disable_while_typing=false
drag_lock=false
middle_button_emulation=true
natural_scroll=true
scroll_factor=0.500000
tap-to-click=true
}
follow_mouse=1
kb_layout=us
kb_model=
kb_options=
kb_rules=
kb_variant=
numlock_by_default=true
sensitivity=0
}
misc {
disable_hyprland_logo=false
disable_splash_rendering=false
key_press_enables_dpms=true
mouse_move_enables_dpms=true
}
# Plugin Config
plugin {
hyprexpo {
columns = 3
gap_size = 3
bg_col = $expo_bg
workspace_method = center current # [center/first] [workspace] e.g. first 1 or center m+1
enable_gesture = true # laptop touchpad
gesture_fingers = 3 # 3 or 4
gesture_distance = 300 # how far is the "max"
gesture_positive = false # true = swipe down, false = swipe up.
}
}
# Window Rules
windowrule=idleinhibit fullscreen, class:firefox
windowrule=idleinhibit fullscreen, class:floorp
windowrule=idleinhibit fullscreen, class:ghostty
windowrule=idleinhibit focus, class:firefox
windowrule=idleinhibit focus, class:floorp
windowrule=idleinhibit focus, class:mpv
windowrule=idleinhibit focus, class:^(emacs)$
windowrule=idleinhibit focus, class:^(Emacs)$
windowrule=idleinhibit focus, class:^(discord)$
windowrule=idleinhibit focus, class:^(spotify)$
windowrule=idleinhibit focus, class:^(Discord|discord)$
windowrule=opacity 0.98 0.9, class:^(Discord|discord)$
windowrule=float, class:polkit-kde-authentication-agent-1
windowrule=float, class:^(praat)$
windowrule=float, class:^(steam)$, title:^(Friends List)$
windowrule=float, class:^(network)$
windowrule=float, class:^(nm-)$
windowrule=float, class:^(Network)$
windowrule=float, class:Rofi
windowrule=float, class:Gimp
windowrule=float, class:Nautilus
windowrule=float, class:notification
windowrule=float, class:^(launcher)$
windowrule=tile, class:Spotify
windowrule=tile, title:Minecraft
windowrule=workspace name:game, class:^(steam)$
windowrule=workspace name:shell, class:^(KeePassXC)$
windowrule=workspace name:browser, class:^(firefox)$
windowrule=workspace name:browser, class:^(floorp)$
windowrule=workspace name:browser, class:^(Brave.*)$
windowrule=workspace name:music, class:^(Spotify)$
windowrule=workspace name:chat, class:^(discord)$
windowrule=workspace name:chat, class:^(Signal)$
windowrule=workspace name:game, title:Minecraft
# Workspace Rules
workspace=name:game, monitor:DP-1
workspace=name:browser, monitor:HDMI-A-1, default:true
workspace=name:chat, monitor:HDMI-A-1
workspace=name:video, monitor:DP-1
workspace=name:program, monitor:DP-1, default:true
workspace=name:extra, monitor:DP-1
# Commands
$lock=hyprlock
$screenshotarea=hyprctl keyword animation 'fadeOut,0,0,default'; grimblast copy area; hyprctl keyword animation 'fadeOut,1,4,default'
$discord=discord --enable-blink-features=MiddleClickAutoscroll
$emacs=emacsclient -c -a 'emacs'
$colorpick=hyprpicker -a -f hex
$screenshot=grimblast --cursor copy output
# Binds
$altMod=ALT
$ctrlMod=CTRL
$mainMod=SUPER
# Binds :: Programs
$none=
# :Meta-Bind: :Key: :Command: :Args:
bind=$altMod, Return, exec, ghostty
bind=$altMod SHIFT, Return, exec, alacritty
bind=$mainMod SHIFT, D, exec, $discord
bind=$mainMod SHIFT, E, exec, $emacs
bind=$mainMod SHIFT, F, exec, focus-linux
bind=$mainMod, SPACE, exec, pkill wofi || wofi
bind=$mainMod, E, exec, nautilus
bind=$mainMod, S, exec, spotify
bind=$mainMod, P, exec, $colorpick
bind=$none, Print, exec, $screenshotarea
bind=SHIFT, Print, exec, $screenshot
bind=$mainMod CTRL, Q, exec, $lock
bind=$mainMod SHIFT, P, pseudo
bind=$mainMod, C, killactive
bind=$mainMod, V, togglefloating
bind=$mainMod SHIFT, S, togglesplit
bind=$mainMod, F4, exit
# bind = SUPER, grave, hyprexpo:expo, toggle # Commented out cos "version mismatch (bs)"
# Workspace Name:Bind Numbers
$ws_game=1
$ws_shell=2
$ws_browser=3
$ws_music=4
$ws_image=5
$ws_chat=6
$ws_audio=7
$ws_video=8
$ws_program=9
$ws_extra=0
# Binds :: Navigation
# :Meta-Bind: :Key: :Command: :Args:
bind=$mainMod, F, fullscreen
bind=$mainMod, H, movefocus, l
bind=$mainMod, L, movefocus, r
bind=$mainMod, K, movefocus, u
bind=$mainMod, J, movefocus, d
bind=$mainMod, comma, focusmonitor, -1
bind=$mainMod, period, focusmonitor, +1
bind=$mainMod SHIFT, H, movewindow, l
bind=$mainMod SHIFT, L, movewindow, r
bind=$mainMod SHIFT, K, movewindow, u
bind=$mainMod SHIFT, J, movewindow, d
bind=$mainMod SHIFT, comma, movecurrentworkspacetomonitor, -1
bind=$mainMod SHIFT, period, movecurrentworkspacetomonitor, +1
bind=$mainMod, right, resizeactive, 10 0
bind=$mainMod, left, resizeactive, -10 0
bind=$mainMod, up, resizeactive, 0 -10
bind=$mainMod, down, resizeactive, 0 10
bind=$mainMod, $ws_game, workspace, name:game
bind=$mainMod, $ws_shell, workspace, name:shell
bind=$mainMod, $ws_browser, workspace, name:browser
bind=$mainMod, $ws_music, workspace, name:music
bind=$mainMod, $ws_image, workspace, name:image
bind=$mainMod, $ws_chat, workspace, name:chat
bind=$mainMod, $ws_audio, workspace, name:audio
bind=$mainMod, $ws_video, workspace, name:video
bind=$mainMod, $ws_program, workspace, name:programming
bind=$mainMod, $ws_extra, workspace, name:extra
bind=$mainMod SHIFT, $ws_game, movetoworkspace, name:game
bind=$mainMod SHIFT, $ws_shell, movetoworkspace, name:shell
bind=$mainMod SHIFT, $ws_browser, movetoworkspace, name:browser
bind=$mainMod SHIFT, $ws_music, movetoworkspace, name:music
bind=$mainMod SHIFT, $ws_image, movetoworkspace, name:image
bind=$mainMod SHIFT, $ws_chat, movetoworkspace, name:chat
bind=$mainMod SHIFT, $ws_audio, movetoworkspace, name:audio
bind=$mainMod SHIFT, $ws_video, movetoworkspace, name:video
bind=$mainMod SHIFT, $ws_program, movetoworkspace, name:programming
bind=$mainMod SHIFT, $ws_extra, movetoworkspace, name:extra
bind=$mainMod SHIFT CTRL, right, movetoworkspace, +1
bind=$mainMod SHIFT CTRL, left, movetoworkspace, -1
bind=$mainMod, mouse_down, workspace, e+1
bind=$mainMod, mouse_up, workspace, e-1
bind=$mainMod, Tab, workspace, e+1
bind=$mainMod SHIFT, Tab, workspace, e-1
bind=$mainMod CTRL, right, workspace, +1
bind=$mainMod CTRL, left, workspace, -1
bindm=$mainMod, mouse:272, movewindow
bindm=$mainMod, mouse:273, resizewindow
# Binds :: MultiMedia
$brightness=$NIX_CONFIG_DIR/scripts/progress-notify.sh brightness
$volume=$NIX_CONFIG_DIR/scripts/progress-notify.sh audio
$mute=$NIX_CONFIG_DIR/scripts/progress-notify.sh mute
binde=$none, XF86MonBrightnessDown, exec, brightnessctl set 10%- && $brightness
binde=$none, XF86MonBrightnessUp, exec, brightnessctl set 10%+ && $brightness
bindel=, XF86AudioRaiseVolume, exec, pamixer -i 5 && $volume
bindel=, XF86AudioLowerVolume, exec, pamixer -d 5 && $volume
bindel=, XF86AudioMute, exec, pamixer -t && $mute
bindl=$none, XF86AudioPlay, exec, playerctl play-pause
bindl=$none, XF86AudioNext, exec, playerctl next
bindl=$none, XF86AudioPrev, exec, playerctl previous
# Binds :: Submaps
# Submap::Resize
bind=$mainMod, R, submap, resize
submap=resize
bind=$none, escape,submap,reset
binde=$none, left, resizeactive, -10 0
bindr=$none, left, submap, reset
binde=$none, right, resizeactive, 10 0
bindr=$none, right, submap, reset
binde=$none, up, resizeactive, 0 10
bindr=$none, up, submap, reset
binde=$none, down, resizeactive, 0 -10
bindr=$none, down, submap, reset
binde=$none, H, resizeactive, -10 0
bindr=$none, H, submap, reset
binde=$none, J, resizeactive, 0 -10
bindr=$none, J, submap, reset
binde=$none, K, resizeactive, 0 10
bindr=$none, K, submap, reset
binde=$none, L, resizeactive, 10 0
bindr=$none, L, submap, reset
submap=reset
# Submap::Browser
bind=$mainMod, B, submap, browser
submap=browser
bind=$none, B, exec, brave
bind=$none, B, submap, reset
bind=SHIFT, F, exec, firefox
bind=SHIFT, F, submap, reset
bind=$none, F, exec, floorp
bind=$none, F, submap, reset
bind=$none, escape,submap,reset
submap=reset
# Submap::Video
bind=$mainMod SHIFT, V, submap, video
submap=video
bind=$none, O, exec, obs
bind=$none, O, submap, reset
bind=$none, V, exec , kdenlive
bind=$none, V, submap, reset
bind=$none, escape,submap,reset
submap=reset
+65
View File
@@ -0,0 +1,65 @@
background {
blur_passes=2
blur_size=8
path=$HOME/pictures/.wallpapers/green-forest.png
}
general {
disable_loading_bar=true
hide_cursor=true
no_fade_in=false
}
input-field {
monitor=
size=200, 30
capslock_color=#bb00ee
check_color=#0eff0d
dots_center=false
dots_size=0.330000
dots_spacing=0.150000
fade_on_empty=true
fail_color=#ff009e
fail_text=<i>$FAIL <b>($ATTEMPTS)</b></i>
font_color=#efefef
inner_color=#0c0c0c
outer_color=#fe0b00
outline_thickness=3
placeholder_text=<i>Enter Password...</i>
}
label {
monitor=
color=#ffffee
font_family=DejaVu Sans
font_size=28
halign=center
position=0, 80
text=$TIME
text_align=center
valign=center
}
label {
monitor=
color=#ffffee
font_family=DejaVu Sans
font_size=18
halign=left
position=80, 80
text=cmd[update:1000] echo " <span foreground='##ffffee'>$(date +'%A, %b %d %Y')</span>"
text_align=center
valign=bottom
}
label {
monitor=
color=#ffffee
font_family=DejaVu Sans
font_size=18
halign=right
position=80, 80
text=cmd[update:1000] echo "<span foreground='##feffee'>󰁿$(cat /sys/class/power_supply/BAT0/capacity)</span>"
text_align=center
valign=bottom
}
+5
View File
@@ -0,0 +1,5 @@
ipc=on
preload=$HOME/pictures/.wallpapers/skyline-view.png
preload=$HOME/pictures/.wallpapers/iceland-winter-mountains.jpg
splash=false
wallpaper=eDP-1,$HOME/pictures/.wallpapers/iceland-winter-mountains.jpg
+1 -1
View File
@@ -11,7 +11,7 @@ exec-once=swaync
# Monitors
monitor=eDP-1,1920x1080@60,0x0,1
monitor=HDMI-A-1,2550x1440@144,auto,1,mirror,eDP-1
monitor=HDMI-A-1,2560x1440@144,auto,1,mirror,eDP-1
monitor=,preferred,auto,1,mirror,eDP-1
# Environment
+29
View File
@@ -0,0 +1,29 @@
import Quickshell
import Quickshell.Io
import QtQuick
Scope {
Time { id: timeSource }
Variants {
model: Quickshell.screens;
PanelWindow {
property var modelData
screen: modelData
anchors {
top: true
left: true
right: true
}
implicitHeight: 24
Clock {
anchors.centerIn: parent
time: timeSource.time
}
}
}
}
+9
View File
@@ -0,0 +1,9 @@
import QtQuick
Text {
required property string time
font.family: "KelmscottMono"
font.pointSize: 14
text: time
}
+25
View File
@@ -0,0 +1,25 @@
import Quickshell
import Quickshell.Io
import QtQuick
Scope {
id: root
property string time
Process {
id: dateProc
command: [ "date", "+%T | %A, %b %d" ]
running: true
stdout: StdioCollector {
onStreamFinished: root.time = this.text
}
}
Timer {
interval: 1000
running: true
repeat: true
onTriggered: dateProc.running = true
}
}
+5
View File
@@ -0,0 +1,5 @@
import Quickshell
Scope {
Bar {}
}
+29
View File
@@ -0,0 +1,29 @@
import Quickshell
import Quickshell.Io
import QtQuick
Scope {
Time { id: timeSource }
Variants {
model: Quickshell.screens;
PanelWindow {
property var modelData
screen: modelData
anchors {
top: true
left: true
right: true
}
implicitHeight: 24
Clock {
anchors.centerIn: parent
time: timeSource.time
}
}
}
}
+9
View File
@@ -0,0 +1,9 @@
import QtQuick
Text {
required property string time
font.family: "KelmscottMono"
font.pointSize: 14
text: time
}
+25
View File
@@ -0,0 +1,25 @@
import Quickshell
import Quickshell.Io
import QtQuick
Scope {
id: root
property string time
Process {
id: dateProc
command: [ "date", "+%T | %A, %b %d | %Y" ]
running: true
stdout: StdioCollector {
onStreamFinished: root.time = this.text
}
}
Timer {
interval: 1000
running: true
repeat: true
onTriggered: dateProc.running = true
}
}
+5
View File
@@ -0,0 +1,5 @@
import Quickshell
Scope {
Bar {}
}