first commit
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"workspace": {
|
||||
"library": [
|
||||
"/usr/local/share/hypr/stubs"
|
||||
]
|
||||
},
|
||||
"diagnostics": {
|
||||
"globals": [
|
||||
"hl",
|
||||
"mainMod",
|
||||
"noctalia"
|
||||
]
|
||||
}
|
||||
}
|
||||
Vendored
+8
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"Lua.workspace.library": [
|
||||
"/usr/local/share/hypr/stubs"
|
||||
],
|
||||
"Lua.diagnostics.globals": [
|
||||
"hl"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
-- Setup curves
|
||||
hl.curve("wind", {
|
||||
points = {
|
||||
{ 0.05, 0.9 },
|
||||
{ 0.1, 1.05 }
|
||||
},
|
||||
type = "bezier"
|
||||
})
|
||||
hl.curve("winIn", {
|
||||
points = {
|
||||
{ 0.1, 1.1 },
|
||||
{ 0.1, 1.1 }
|
||||
},
|
||||
type = "bezier"
|
||||
})
|
||||
hl.curve("winOut", {
|
||||
points = {
|
||||
{ 0.3, -0.3 },
|
||||
{ 0, 1 }
|
||||
},
|
||||
type = "bezier"
|
||||
})
|
||||
hl.curve("liner", {
|
||||
points = {
|
||||
{ 1, 1 },
|
||||
{ 1, 1 }
|
||||
},
|
||||
type = "bezier"
|
||||
})
|
||||
hl.curve("almostLinear", {
|
||||
points = {
|
||||
{ 0.5, 0.5 },
|
||||
{ 0.75, 1 }
|
||||
},
|
||||
type = "bezier"
|
||||
})
|
||||
|
||||
|
||||
-- Setup animations
|
||||
hl.animation({
|
||||
leaf = "windows",
|
||||
speed = 6,
|
||||
bezier = "wind",
|
||||
style = "slide",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "windowsIn",
|
||||
speed = 6,
|
||||
bezier = "winIn",
|
||||
style = "slide",
|
||||
enabled = false
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "windowsOut",
|
||||
speed = 5,
|
||||
bezier = "winOut",
|
||||
style = "slide",
|
||||
enabled = false
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "windowsMove",
|
||||
speed = 5,
|
||||
bezier = "wind",
|
||||
style = "slide",
|
||||
enabled = false
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "border",
|
||||
speed = 1,
|
||||
bezier = "liner",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "borderangle",
|
||||
speed = 30,
|
||||
bezier = "liner",
|
||||
loop = true,
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "layers",
|
||||
speed = 6,
|
||||
bezier = "wind",
|
||||
style = "popin 90%",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "layersIn",
|
||||
speed = 6,
|
||||
bezier = "winIn",
|
||||
style = "popin 90%",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "layersOut",
|
||||
speed = 5,
|
||||
bezier = "winOut",
|
||||
style = "popin 90%",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "workspaces",
|
||||
speed = 5,
|
||||
bezier = "wind",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
|
||||
|
||||
hl.animation({
|
||||
leaf = "fadeIn",
|
||||
speed = 1.73,
|
||||
bezier = "almostLinear",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "fadeOut",
|
||||
speed = 1.46,
|
||||
bezier = "almostLinear",
|
||||
enabled = true
|
||||
})
|
||||
|
||||
hl.animation({
|
||||
leaf = "fade",
|
||||
speed = 3.03,
|
||||
bezier = "almostLinear",
|
||||
enabled = true
|
||||
})
|
||||
@@ -0,0 +1,37 @@
|
||||
-- #################
|
||||
-- ### AUTOSTART ###
|
||||
-- #################
|
||||
|
||||
hl.on("hyprland.start", function()
|
||||
hl.exec_cmd("wl-paste --type text --watch cliphist store") -- Stores only text data
|
||||
hl.exec_cmd("wl-paste --type image --watch cliphist store") -- Stores only image data
|
||||
hl.exec_cmd("wl-clip-persist --clipboard regular")
|
||||
hl.exec_cmd("systemctl --user start hyprpolkitagent")
|
||||
hl.exec_cmd("hypridle")
|
||||
|
||||
-- Notification
|
||||
-- hl.exec_cmd("mako")
|
||||
-- hl.exec_cmd("~/.config/mako/scripts/spotify-notify.sh")
|
||||
|
||||
-- For screen sharing
|
||||
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP")
|
||||
hl.exec_cmd("systemctl --user import-environment")
|
||||
|
||||
hl.exec_cmd("~/.config/hypr/scripts/screensharing.sh")
|
||||
hl.exec_cmd("xwaylandvideobridge")
|
||||
|
||||
-- Bluetooth
|
||||
-- hl.exec_cmd("blueman-applet") -- Make sure you have installed blueman
|
||||
-- hl.exec_cmd("nm-applet")
|
||||
-- hl.exec_cmd("blueman-tray")
|
||||
|
||||
-- For keyboard
|
||||
hl.exec_cmd("fcitx5 -D")
|
||||
|
||||
-- Start plugins
|
||||
hl.exec_cmd("hyprpm reload")
|
||||
hl.exec_cmd("kded6")
|
||||
hl.exec_cmd("kbuildsycoca6")
|
||||
hl.exec_cmd("qs -c noctalia-shell")
|
||||
|
||||
end)
|
||||
+102
@@ -0,0 +1,102 @@
|
||||
image = "/home/akiidjk/.config/wallpapers/eyes.png"
|
||||
|
||||
background = "#131314ff"
|
||||
|
||||
error = "#ffb4abff"
|
||||
|
||||
error_container = "#93000aff"
|
||||
|
||||
inverse_on_surface = "#313030ff"
|
||||
|
||||
inverse_primary = "#5c5e64ff"
|
||||
|
||||
inverse_surface = "#e5e2e2ff"
|
||||
|
||||
on_background = "#e5e2e2ff"
|
||||
|
||||
on_error = "#690005ff"
|
||||
|
||||
on_error_container = "#ffdad6ff"
|
||||
|
||||
on_primary = "#2e3035ff"
|
||||
|
||||
on_primary_container = "#c7c7cdff"
|
||||
|
||||
on_primary_fixed = "#191c20ff"
|
||||
|
||||
on_primary_fixed_variant = "#45474cff"
|
||||
|
||||
on_secondary = "#303032ff"
|
||||
|
||||
on_secondary_container = "#e1dfe2ff"
|
||||
|
||||
on_secondary_fixed = "#1b1b1dff"
|
||||
|
||||
on_secondary_fixed_variant = "#464649ff"
|
||||
|
||||
on_surface = "#e5e2e2ff"
|
||||
|
||||
on_surface_variant = "#c6c6cbff"
|
||||
|
||||
on_tertiary = "#372f29ff"
|
||||
|
||||
on_tertiary_container = "#d3c4bcff"
|
||||
|
||||
on_tertiary_fixed = "#221a15ff"
|
||||
|
||||
on_tertiary_fixed_variant = "#4f453eff"
|
||||
|
||||
outline = "#909095ff"
|
||||
|
||||
outline_variant = "#45474bff"
|
||||
|
||||
primary = "#c5c6ccff"
|
||||
|
||||
primary_container = "#35373cff"
|
||||
|
||||
primary_fixed = "#e2e2e8ff"
|
||||
|
||||
primary_fixed_dim = "#c5c6ccff"
|
||||
|
||||
scrim = "#000000ff"
|
||||
|
||||
secondary = "#c7c6c8ff"
|
||||
|
||||
secondary_container = "#464649ff"
|
||||
|
||||
secondary_fixed = "#e4e2e4ff"
|
||||
|
||||
secondary_fixed_dim = "#c7c6c8ff"
|
||||
|
||||
shadow = "#000000ff"
|
||||
|
||||
source_color = "#35373cff"
|
||||
|
||||
surface = "#131314ff"
|
||||
|
||||
surface_bright = "#3a3939ff"
|
||||
|
||||
surface_container = "#201f20ff"
|
||||
|
||||
surface_container_high = "#2a2a2aff"
|
||||
|
||||
surface_container_highest = "#353435ff"
|
||||
|
||||
surface_container_low = "#1c1b1cff"
|
||||
|
||||
surface_container_lowest = "#0e0e0eff"
|
||||
|
||||
surface_dim = "#131314ff"
|
||||
|
||||
surface_tint = "#c5c6ccff"
|
||||
|
||||
surface_variant = "#45474bff"
|
||||
|
||||
tertiary = "#d2c4bbff"
|
||||
|
||||
tertiary_container = "#3e352fff"
|
||||
|
||||
tertiary_fixed = "#efe0d7ff"
|
||||
|
||||
tertiary_fixed_dim = "#d2c4bbff"
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
require("colors")
|
||||
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 15,
|
||||
border_size = 2,
|
||||
-- # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
|
||||
col = {
|
||||
active_border = primary,
|
||||
inactive_border = on_primary
|
||||
},
|
||||
|
||||
-- # Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true,
|
||||
|
||||
-- -- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "dwindle"
|
||||
},
|
||||
decoration = {
|
||||
rounding = 10,
|
||||
rounding_power = 2,
|
||||
|
||||
-- # Change transparency of focused and unfocused windows
|
||||
active_opacity = 1,
|
||||
inactive_opacity = 1,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = background,
|
||||
},
|
||||
|
||||
-- # https://wiki.hyprland.org/Configuring/Variables/#blur
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,22 @@
|
||||
general {
|
||||
lock_cmd = notify-send "lock!" # dbus/sysd lock command (loginctl lock-session)
|
||||
unlock_cmd = notify-send "unlock!" # same as above, but unlock
|
||||
ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam)
|
||||
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
|
||||
before_sleep_cmd = loginctl lock-session # lock before suspend.
|
||||
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
|
||||
}
|
||||
|
||||
# Screenlock
|
||||
listener {
|
||||
timeout = 180 # in seconds
|
||||
on-timeout = hyprlock # command to run when timeout has passed
|
||||
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
# Suspend
|
||||
listener {
|
||||
timeout = 3600 # in seconds
|
||||
on-timeout = systemctl suspend # command to run when timeout has passed
|
||||
# on-resume = notify-send "Welcome back to your desktop!" # command to run when activity is detected after timeout has fired.
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
hl.env("AQ_DRM_DEVICES", "/dev/dri/card1")
|
||||
|
||||
-- Setup gestures
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace"
|
||||
})
|
||||
|
||||
-- Some config
|
||||
hl.config({
|
||||
dwindle = {
|
||||
-- force_split = 0,
|
||||
preserve_split = true,
|
||||
-- smart_split = false,
|
||||
-- smart_resizing = true,
|
||||
-- permanent_direction_override = false,
|
||||
-- special_scale_factor = 1,
|
||||
-- split_width_multiplier = 1.0,
|
||||
-- use_active_for_splits = true,
|
||||
-- default_split_ratio = 1.0,
|
||||
-- split_bias = 0,
|
||||
-- precise_mouse_move = false,
|
||||
},
|
||||
})
|
||||
|
||||
-- Load monitors config
|
||||
require("monitors")
|
||||
|
||||
-- Nvidia settings
|
||||
hl.env("LIBVA_DRIVER_NAME.nvidia", "true")
|
||||
hl.env("__GLX_VENDOR_LIBRARY_NAME.nvidia", "true")
|
||||
|
||||
require("autostart")
|
||||
|
||||
|
||||
-- #############################
|
||||
-- ### ENVIRONMENT VARIABLES ###
|
||||
-- #############################
|
||||
|
||||
-- # See https://wiki.hyprland.org/Configuring/Environment-variables/
|
||||
hl.env("XCURSOR_SIZE", 24)
|
||||
hl.env("HYPRCURSOR_SIZE", 24)
|
||||
hl.env("QT_QPA_PLATFORMTHEME","qt6ct")
|
||||
hl.env("XDG_MENU_PREFIX","arch- kbuildsycoca6")
|
||||
|
||||
-- # 01-xdg-base.conf
|
||||
--hl.env("XDG_CONFIG_HOME", "/home/domenico/.config")
|
||||
--hl.env("XDG_DATA_HOME", "/home/domenico/.local/share")
|
||||
--hl.env("XDG_CACHE_HOME", "/home/domenco/.cache")
|
||||
--hl.env("XDG_STATE_HOME", "/home/domenico/.local/state")
|
||||
|
||||
--hl.env("XDG_DATA_DIRS", "/home/domenico/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share")
|
||||
|
||||
-- # 10-kde-on-niri/hyprland
|
||||
|
||||
--hl.env("QT_QPA_PLATFORM", "wayland")
|
||||
|
||||
-- # REQUIRED: make sure portal uses KDE Qt platform theme
|
||||
--hl.env("QT_QPA_PLATFORMTHEME","kde")
|
||||
--hl.env("QT_QPA_PLATFORMTHEME_QT6","kde")
|
||||
|
||||
-- # REQUIRED: helps fixing Dolphin default applications issue
|
||||
--hl.env("XDG_MENU_PREFIX","plasma-")
|
||||
|
||||
--hl.env("QT_AUTO_SCREEN_SCALE_FACTOR","1")
|
||||
--hl.env("QT_ENABLE_HIGHDPI_SCALING","1")
|
||||
--hl.env("QT_SCALE_FACTOR_ROUNDING_POLICY","RoundPreferFloor")
|
||||
|
||||
-- 80-gtk-no-btn.conf
|
||||
--hl.env("GTK_DECORATION_LAYOUT","")
|
||||
|
||||
-- 99-electron.conf
|
||||
--hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
|
||||
|
||||
-- #####################
|
||||
-- ### LOOK AND FEEL ###
|
||||
-- #####################
|
||||
require("hyprcolors")
|
||||
require("animation")
|
||||
|
||||
hl.config({
|
||||
misc = {
|
||||
force_default_wallpaper = -1, -- # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = true -- # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
-- #############
|
||||
-- ### INPUT ###
|
||||
-- #############
|
||||
require("input")
|
||||
require("keybinds")
|
||||
|
||||
-- ##############################
|
||||
-- ### WINDOWS AND WORKSPACES ###
|
||||
-- ##############################
|
||||
-- # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
-- # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
|
||||
require("windowrule")
|
||||
require("workspace")
|
||||
|
||||
-- ##################
|
||||
-- ### EXTENSIONS ###
|
||||
-- ##################
|
||||
-- require("vicinae")
|
||||
|
||||
-- This loads Noctalia-generated Hyprland colors.
|
||||
dofile("/home/domenico/.config/hypr/noctalia/noctalia-colors.lua")
|
||||
@@ -0,0 +1,212 @@
|
||||
general {
|
||||
ignore_empty_input = true
|
||||
fail_timeout = 1000
|
||||
# hide_cursor = true
|
||||
}
|
||||
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.current_wallpaper # only png supported for now
|
||||
color = rgba(25, 20, 20, 1.0)
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_passes = 0 # 0 disables blurring
|
||||
blur_size = 2
|
||||
noise = 0
|
||||
contrast = 0
|
||||
brightness = 0
|
||||
vibrancy = 0
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 30
|
||||
outline_thickness = 0
|
||||
dots_size = 0.25 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.55 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
dots_rounding = -1
|
||||
outer_color = rgba(242, 243, 244, 0)
|
||||
inner_color = rgba(242, 243, 244, 0)
|
||||
font_color = rgba(242, 243, 244, 0.75)
|
||||
fade_on_empty = false
|
||||
placeholder_text = # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
check_color = rgba(204, 136, 34, 0)
|
||||
fail_color = rgba(204, 34, 34, 0) # if authentication failed, changes outer_color and fail message color
|
||||
fail_text = $FAIL <b>($ATTEMPTS)</b> # can be set to empty
|
||||
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
|
||||
capslock_color = -1
|
||||
numlock_color = -1
|
||||
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
|
||||
invert_numlock = false # change color if numlock is off
|
||||
swap_font_color = false # see below
|
||||
position = 0, -468
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 20
|
||||
font_family = SF Pro Display Bold
|
||||
position = 0, 405
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME12
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 93
|
||||
font_family = SF Pro Display Bold
|
||||
position = 0, 310
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $USER
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 12
|
||||
font_family = SF Pro Display Bold
|
||||
position = 0, -407
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = Touch ID or Enter Password
|
||||
color = rgba(242, 243, 244, 0.75)
|
||||
font_size = 10
|
||||
font_family = SF Pro Display
|
||||
position = 0, -438
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
image {
|
||||
monitor =
|
||||
path = ~/.config/wallpapers/icons/spidy_black_1.jpg
|
||||
border_color = 0xffdddddd
|
||||
border_size = 0
|
||||
size = 73
|
||||
rounding = -1
|
||||
rotate = 0
|
||||
reload_time = -1
|
||||
reload_cmd =
|
||||
position = 0, -353
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Music blur div
|
||||
shape {
|
||||
monitor =
|
||||
size = 340, 140
|
||||
color =rgba(00, 00, 00, 0.1)
|
||||
rounding = 30
|
||||
rotate = 0
|
||||
position = 0, -150
|
||||
halign = center
|
||||
valign = center
|
||||
zindex = 1
|
||||
}
|
||||
|
||||
|
||||
|
||||
# Music album art
|
||||
image {
|
||||
monitor =
|
||||
size = 110
|
||||
rounding = 20
|
||||
rotate = 0
|
||||
reload_time = 1
|
||||
reload_cmd = ~/.config/hypr/scripts/playerctlock.sh --arturl
|
||||
position = 800, -150
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
|
||||
|
||||
# PLAYER LENGTH
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/playerctlock.sh --length | cut -c 1-15)"
|
||||
color = rgba(255, 255, 255, 0.8)
|
||||
font_size = 10
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 950, -190
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
|
||||
|
||||
# PLAYER STATUS
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/playerctlock.sh --status | cut -c 1-15)"
|
||||
color = rgba(255, 255, 255, 0.8)
|
||||
font_size = 10
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 950, -170
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
|
||||
|
||||
|
||||
# PLAYER SOURCE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/playerctlock.sh --source | cut -c 1-15)"
|
||||
color = rgba(255, 255, 255, 0.6)
|
||||
font_size = 10
|
||||
font_family = JetBrains Mono Nerd Font Mono
|
||||
position = 950, -140
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
|
||||
|
||||
# PLAYER TITLE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/playerctlock.sh --title | cut -c 1-15)"
|
||||
color = rgba(255, 255, 255, 0.8)
|
||||
font_size = 12
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 950, -120
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
|
||||
|
||||
|
||||
# PLAYER ARTIST
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:1000] echo "$(~/.config/hypr/scripts/playerctlock.sh --artist | cut -c 1-15)"
|
||||
color = rgba(255, 255, 255, 0.8)
|
||||
font_size = 10
|
||||
font_family = JetBrains Mono Nerd Font Mono ExtraBold
|
||||
position = 950, -100
|
||||
halign = left
|
||||
valign = center
|
||||
zindex = 5
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
background = rgba(1e1e2eff)
|
||||
base = rgba(1e1e2eff)
|
||||
text = rgba(cdd6f4ff)
|
||||
alternate_base = rgba(313244ff)
|
||||
bright_text = rgba(11111bff)
|
||||
accent = rgba(cba6f7ff)
|
||||
accent_secondary = rgba(fab387ff)
|
||||
@@ -0,0 +1,15 @@
|
||||
-- #############
|
||||
-- ### INPUT ###
|
||||
-- #############
|
||||
|
||||
-- # https://wiki.hyprland.org/Configuring/Variables/#input
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "it",
|
||||
follow_mouse = 1,
|
||||
sensitivity = 0, -- # -1.0 - 1.0, 0 means no modification.
|
||||
touchpad = {
|
||||
natural_scroll = true
|
||||
},
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,107 @@
|
||||
local terminal = "kitty"
|
||||
local fileManager = "dolphin"
|
||||
local browser = "vivaldi"
|
||||
local editor = "code"
|
||||
|
||||
noctalia = "qs -c noctalia-shell ipc call "
|
||||
mainMod = "SUPER"
|
||||
|
||||
-- Exec
|
||||
hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(terminal), { description = "Open terminal" })
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager), { description = "Open file manager" })
|
||||
hl.bind(mainMod .. " + B", hl.dsp.exec_cmd(browser), { description = "Open browser" })
|
||||
hl.bind(mainMod .. " + C", hl.dsp.exec_cmd(editor), { description = "Open editor" })
|
||||
hl.bind(mainMod .. " + V", hl.dsp.exec_cmd(noctalia .. "plugin:clipper toggle"), {description = "Open Clipboard history"})
|
||||
hl.bind("ALT + L", hl.dsp.exec_cmd("hyprlock --grace 5"), { description = "Lock screen" })
|
||||
|
||||
hl.bind("SUPER + SHIFT + C", hl.dsp.exec_cmd("bash ~/.config/hypr/scripts/hyprPicker.sh"),
|
||||
{ description = "Color picker" })
|
||||
|
||||
hl.bind("CTRL + SHIFT + A", hl.dsp.exec_cmd("playerctl play-pause"), { description = "Play/pause media" })
|
||||
hl.bind("CTRL + SHIFT + D", hl.dsp.exec_cmd("playerctl next"), { description = "Next media" })
|
||||
hl.bind("CTRL + SHIFT + S", hl.dsp.exec_cmd("playerctl previous"), { description = "Previous media" })
|
||||
|
||||
-- WM Control binds
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.window.close(), { description = "Close window" })
|
||||
hl.bind("SUPER + SHIFT + Q", hl.dsp.exit(), { description = "Exit WM" })
|
||||
hl.bind(mainMod .. " + F", hl.dsp.window.fullscreen({ mode = 1, internal = 0, client = 2 }),
|
||||
{ description = "Maximize window" })
|
||||
hl.bind(mainMod .. " + SHIFT + F", hl.dsp.window.fullscreen({ mode = 0, internal = 0, client = 2 }),
|
||||
{ description = "Fullscreen window" })
|
||||
hl.bind(mainMod .. " + T", hl.dsp.window.float(), { description = "Toggle floating" })
|
||||
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit"), { description = "Toggle split" })
|
||||
hl.bind(mainMod .. " + G", hl.dsp.layout("swapsplit"), { description = "Swap split" })
|
||||
|
||||
-- Window Switch
|
||||
hl.bind(mainMod .. " + CTRL + left", hl.dsp.focus({ direction = "left" }), { description = "Focus left" })
|
||||
hl.bind(mainMod .. " + CTRL + right", hl.dsp.focus({ direction = "right" }), { description = "Focus right" })
|
||||
hl.bind(mainMod .. " + CTRL + up", hl.dsp.focus({ direction = "up" }), { description = "Focus up" })
|
||||
hl.bind(mainMod .. " + CTRL + down", hl.dsp.focus({ direction = "down" }), { description = "Focus down" })
|
||||
hl.bind(mainMod .. " + P", hl.dsp.window.pin(), { description = "Pin a window"})
|
||||
-- Window Move
|
||||
-- hl.bind(mainMod .. " + SHIFT + left", hl.windo)
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
for i = 1, 10 do
|
||||
local key = i % 10
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = key }), { description = "Focus workspace " .. key })
|
||||
hl.bind(mainMod .. " + SHIFT +" .. key, hl.dsp.window.move({ workspace = key }),
|
||||
{ description = "Move to workspace " .. key })
|
||||
end
|
||||
-- hl.bind(mainMod .. " + 0", hl.dsp.workspace(10))
|
||||
hl.bind(mainMod .. " + Tab", hl.dsp.focus({ workspace = "previous" }), { description = "Focus previous workspace" })
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ workspace = "-1" }), { description = "Focus left workspace" })
|
||||
hl.bind(mainMod .. " + SHIFT + left", hl.dsp.window.move({ workspace = "-1" }))
|
||||
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ workspace = "+1" }), { description = "Focus right workspace" })
|
||||
hl.bind(mainMod .. " + SHIFT + right", hl.dsp.window.move({ workspace = "+1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true, description = "Drag window" })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true, description = "Resize window" })
|
||||
|
||||
hl.bind(mainMod .. " + CTRL + SHIFT + left", hl.dsp.window.resize({ x = -40, y = 0, relative = true }),
|
||||
{ description = "Resize window left" })
|
||||
hl.bind(mainMod .. " + CTRL + SHIFT + right", hl.dsp.window.resize({ x = 40, y = 0, relative = true }),
|
||||
{ description = "Resize window right" })
|
||||
hl.bind(mainMod .. " + CTRL + SHIFT + up", hl.dsp.window.resize({ x = 0, y = -40, relative = true }),
|
||||
{ description = "Resize window up" })
|
||||
hl.bind(mainMod .. " + CTRL + SHIFT + down", hl.dsp.window.resize({ x = 0, y = 40, relative = true }),
|
||||
{ description = "Resize window down" })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"),
|
||||
{ repeating = true, description = "Raise volume" })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
|
||||
{ repeating = true, description = "Lower volume" })
|
||||
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
|
||||
{ repeating = true, description = "Toggle mute" })
|
||||
hl.bind("SHIFT + XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"),
|
||||
{ repeating = true, description = "Toggle mic mute" })
|
||||
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 5%+"),
|
||||
{ repeating = true, description = "Raise brightness" })
|
||||
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 5%-"),
|
||||
{ repeating = true, description = "Lower brightness" })
|
||||
|
||||
-- Screenshot a window
|
||||
local satty = "/home/domenico/.cargo/bin/satty --filename - --copy-command wl-copy --fullscreen --output-filename ~/Immagini/Screenshots/satty-$(date '+%Y%m%d-%H:%M:%S').png"
|
||||
local copy = "wl-copy"
|
||||
hl.bind("SUPER + SHIFT + S", hl.dsp.exec_cmd('grim -t png -g "$(slurp)" - | ' .. copy), { description = "Screenshot region" })
|
||||
hl.bind("SUPER + CTRL + SHIFT + S", hl.dsp.exec_cmd('grim -t png -g "$(slurp)" - | ' .. satty))
|
||||
hl.bind("PRINT", hl.dsp.exec_cmd('grim - | ' .. copy), { description = "Fullscreen Screenshots"})
|
||||
-- Night mode and ToggleMirror scripts
|
||||
hl.bind("SUPER + M", hl.dsp.exec_cmd("bash ~/.config/hypr/scripts/toggleMirror.sh"), { description = "Toggle mirror" })
|
||||
hl.bind("SUPER + SHIFT + M", hl.dsp.exec_cmd("bash ~/.config/hypr/scripts/nightmode.sh"), { description = "Toggle night mode" })
|
||||
|
||||
|
||||
|
||||
-- Noctalia shortcut
|
||||
hl.bind(mainMod .. " + Backslash", hl.dsp.exec_cmd(noctalia .. "launcher toggle"), { description = "Toggle quickshell bar" })
|
||||
--hl.bind(mainMod .. " + N", hl.dsp.global(noctalia .. ""), { description = "Toggle quickshell hub" })
|
||||
hl.bind(mainMod .. " + W", hl.dsp.exec_cmd(noctalia .. "plugin:wallcards toggle"), { description = "Toggle wall picker" })
|
||||
hl.bind(mainMod .. " + K", hl.dsp.global("quickshell:keybindingsToggle"), { description = "Toggle keybindings" })
|
||||
hl.bind(mainMod .. " + L", hl.dsp.global("quickshell:changeBarLayout"), { description = "Change bar layout" })
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
--################
|
||||
--### MONITORS ###
|
||||
--################
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "1920x1080@144",
|
||||
position = "0x0",
|
||||
scale = "1",
|
||||
cm = "srgb"
|
||||
})
|
||||
|
||||
-- hl.monitor({
|
||||
-- output = "HDMI-A-1",
|
||||
-- mode = "1920x1080@60",
|
||||
-- position = "0x1280",
|
||||
-- scale = "1",
|
||||
-- mirror = "eDP-1"
|
||||
-- })
|
||||
|
||||
|
||||
-- hl.monitor({
|
||||
-- output = "DP-3",
|
||||
-- mode = "1920x1080@60",
|
||||
-- position = "0x450",
|
||||
-- scale = "1"
|
||||
-- })
|
||||
|
||||
-- hl.monitor({
|
||||
-- output = "DP-2",
|
||||
-- mode = "1920x1080@144",
|
||||
-- position = "1920x380",
|
||||
-- scale = "1",
|
||||
-- })
|
||||
|
||||
hl.monitor({
|
||||
output = "HDMI-A-1",
|
||||
mode = "1920x1080@60",
|
||||
position = "3840x0",
|
||||
scale = "1",
|
||||
transform = true
|
||||
})
|
||||
@@ -0,0 +1,25 @@
|
||||
$primary = rgb(cba6f7)
|
||||
$surface = rgb(1e1e2e)
|
||||
$secondary = rgb(fab387)
|
||||
$error = rgb(f38ba8)
|
||||
$tertiary = rgb(94e2d5)
|
||||
$surface_lowest = rgb(212232)
|
||||
|
||||
general {
|
||||
col.active_border = $primary
|
||||
col.inactive_border = $surface
|
||||
}
|
||||
|
||||
group {
|
||||
col.border_active = $secondary
|
||||
col.border_inactive = $surface
|
||||
col.border_locked_active = $error
|
||||
col.border_locked_inactive = $surface
|
||||
|
||||
groupbar {
|
||||
col.active = $secondary
|
||||
col.inactive = $surface
|
||||
col.locked_active = $error
|
||||
col.locked_inactive = $surface
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
-- Colors template generated by Noctalia
|
||||
-- Source command is:
|
||||
-- dofile(os.getenv("HOME") .. "/.config/hypr/noctalia/noctalia-colors.lua")
|
||||
|
||||
local primary = "rgb(cba6f7)"
|
||||
local surface = "rgb(1e1e2e)"
|
||||
local secondary = "rgb(fab387)"
|
||||
local error = "rgb(f38ba8)"
|
||||
|
||||
hl.config({
|
||||
general = {
|
||||
col = {
|
||||
active_border = primary,
|
||||
inactive_border = surface,
|
||||
},
|
||||
},
|
||||
|
||||
group = {
|
||||
col = {
|
||||
border_active = secondary,
|
||||
border_inactive = surface,
|
||||
border_locked_active = error,
|
||||
border_locked_inactive = surface,
|
||||
},
|
||||
|
||||
groupbar = {
|
||||
col = {
|
||||
active = secondary,
|
||||
inactive = surface,
|
||||
locked_active = error,
|
||||
locked_inactive = surface,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -0,0 +1,6 @@
|
||||
-- no blur
|
||||
hl.config({ decoration = { blur = { enabled = false } } })
|
||||
|
||||
-- no shadow
|
||||
hl.config({ decoration = { shadow = { enabled = false } } })
|
||||
|
||||
@@ -0,0 +1,134 @@
|
||||
################## PLUGIN MANAGER ##################
|
||||
|
||||
plugin {
|
||||
|
||||
dynamic-cursors {
|
||||
|
||||
# enables the plugin
|
||||
enabled = true
|
||||
# sets the cursor behaviour, supports these values:
|
||||
# tilt - tilt the cursor based on x-velocity
|
||||
# rotate - rotate the cursor based on movement direction
|
||||
# stretch - stretch the cursor shape based on direction and velocity
|
||||
# none - do not change the cursors behaviour
|
||||
mode = stretch
|
||||
|
||||
# minimum angle difference in degrees after which the shape is changed
|
||||
# smaller values are smoother, but more expensive for hw cursors
|
||||
threshold = 2
|
||||
|
||||
# for mode = rotate
|
||||
rotate {
|
||||
|
||||
# length in px of the simulated stick used to rotate the cursor
|
||||
# most realistic if this is your actual cursor size
|
||||
length = 20
|
||||
|
||||
# clockwise offset applied to the angle in degrees
|
||||
# this will apply to ALL shapes
|
||||
offset = 0.0
|
||||
}
|
||||
|
||||
# for mode = tilt
|
||||
tilt {
|
||||
|
||||
# controls how powerful the tilt is, the lower, the more power
|
||||
# this value controls at which speed (px/s) the full tilt is reached
|
||||
# the full tilt being 60° in both directions
|
||||
limit = 5000
|
||||
|
||||
# relationship between speed and tilt, supports these values:
|
||||
# linear - a linear function is used
|
||||
# quadratic - a quadratic function is used (most realistic to actual air drag)
|
||||
# negative_quadratic - negative version of the quadratic one, feels more aggressive
|
||||
# see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done
|
||||
function = negative_quadratic
|
||||
|
||||
# time window (ms) over which the speed is calculated
|
||||
# higher values will make slow motions smoother but more delayed
|
||||
window = 100
|
||||
}
|
||||
|
||||
# for mode = stretch
|
||||
stretch {
|
||||
|
||||
# controls how much the cursor is stretched
|
||||
# this value controls at which speed (px/s) the full stretch is reached
|
||||
# the full stretch being twice the original length
|
||||
limit = 3000
|
||||
|
||||
# relationship between speed and stretch amount, supports these values:
|
||||
# linear - a linear function is used
|
||||
# quadratic - a quadratic function is used
|
||||
# negative_quadratic - negative version of the quadratic one, feels more aggressive
|
||||
# see `activation` in `src/mode/utils.cpp` for how exactly the calculation is done
|
||||
function = quadratic
|
||||
|
||||
# time window (ms) over which the speed is calculated
|
||||
# higher values will make slow motions smoother but more delayed
|
||||
window = 100
|
||||
}
|
||||
|
||||
# configure shake to find
|
||||
# magnifies the cursor if its is being shaken
|
||||
shake {
|
||||
|
||||
# enables shake to find
|
||||
enabled = true
|
||||
|
||||
# use nearest-neighbour (pixelated) scaling when shaking
|
||||
# may look weird when effects are enabled
|
||||
nearest = true
|
||||
|
||||
# controls how soon a shake is detected
|
||||
# lower values mean sooner
|
||||
threshold = 6.0
|
||||
|
||||
# magnification level immediately after shake start
|
||||
base = 4.0
|
||||
# magnification increase per second when continuing to shake
|
||||
speed = 4.0
|
||||
# how much the speed is influenced by the current shake intensitiy
|
||||
influence = 0.0
|
||||
|
||||
# maximal magnification the cursor can reach
|
||||
# values below 1 disable the limit (e.g. 0)
|
||||
limit = 0.0
|
||||
|
||||
# time in millseconds the cursor will stay magnified after a shake has ended
|
||||
timeout = 2000
|
||||
|
||||
# show cursor behaviour `tilt`, `rotate`, etc. while shaking
|
||||
effects = false
|
||||
|
||||
# enable ipc events for shake
|
||||
# see the `ipc` section below
|
||||
ipc = false
|
||||
}
|
||||
|
||||
# use hyprcursor to get a higher resolution texture when the cursor is magnified
|
||||
# see the `hyprcursor` section below
|
||||
hyprcursor {
|
||||
|
||||
# use nearest-neighbour (pixelated) scaling when magnifing beyond texture size
|
||||
# this will also have effect without hyprcursor support being enabled
|
||||
# 0 / false - never use pixelated scaling
|
||||
# 1 / true - use pixelated when no highres image
|
||||
# 2 - always use pixleated scaling
|
||||
nearest = true
|
||||
|
||||
# enable dedicated hyprcursor support
|
||||
enabled = true
|
||||
|
||||
# resolution in pixels to load the magnified shapes at
|
||||
# be warned that loading a very high-resolution image will take a long time and might impact memory consumption
|
||||
# -1 means we use [normal cursor size] * [shake:base option]
|
||||
resolution = -1
|
||||
|
||||
# shape to use when clientside cursors are being magnified
|
||||
# see the shape-name property of shape rules for possible names
|
||||
# specifying clientside will use the actual shape, but will be pixelated
|
||||
fallback = clientside
|
||||
}
|
||||
}
|
||||
}
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
## Configuration file for eos-welcome.
|
||||
# Note: using bash syntax.
|
||||
#
|
||||
# 'Greeter' values: enable or disable.
|
||||
# 'OnceDaily' values: no or yes; yes means eos-welcome is shown only once a day.
|
||||
# 'LastCheck' values: automatically filled by eos-welcome.
|
||||
|
||||
Greeter=enable
|
||||
OnceDaily=no
|
||||
LastCheck=0
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
hyprpicker --format hex | head -c -1 | wl-copy
|
||||
convert -size 100x100 xc:$(wl-paste) /tmp/color.png
|
||||
notify-send -i /tmp/color.png "Copied to your clipboard!" "$(wl-paste)"
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
if [ ! -f "$HOME/.current_wallpaper" ]; then
|
||||
matugen image -t scheme-fidelity -m dark --source-color-index 0 ~/.config/wallpapers/decline.png --show-colors --verbose --fallback-color "#000000"
|
||||
cp ~/.config/wallpapers/decline.png ~/.current_wallpaper
|
||||
fi
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
if pgrep -x "hyprsunset" > /dev/null
|
||||
then
|
||||
killall -9 hyprsunset
|
||||
notify-send "🌞 Day Mode Activated" -u "low"
|
||||
else
|
||||
hyprsunset -t 3500 &
|
||||
notify-send "🌙 Night Mode Activated" -u "low"
|
||||
fi
|
||||
Executable
+115
@@ -0,0 +1,115 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
echo "Usage: $0 --title | --arturl | --artist | --length | --album | --source"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Function to get metadata using playerctl
|
||||
get_metadata() {
|
||||
key=$1
|
||||
playerctl metadata --format "{{ $key }}" 2>/dev/null
|
||||
}
|
||||
|
||||
# Check for arguments
|
||||
|
||||
# Function to determine the source and return an icon and text
|
||||
get_source_info() {
|
||||
trackid=$(get_metadata "mpris:trackid")
|
||||
if [[ "$trackid" == *"firefox"* ]]; then
|
||||
echo -e "Firefox "
|
||||
elif [[ "$trackid" == *"spotify"* ]]; then
|
||||
echo -e "Spotify "
|
||||
elif [[ "$trackid" == *"chromium"* ]]; then
|
||||
echo -e "Chrome "
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
}
|
||||
|
||||
# Parse the argument
|
||||
case "$1" in
|
||||
--title)
|
||||
title=$(get_metadata "xesam:title")
|
||||
if [ -z "$title" ]; then
|
||||
echo ""
|
||||
else
|
||||
echo "${title:0:28}" # Limit the output to 50 characters
|
||||
fi
|
||||
;;
|
||||
--arturl)
|
||||
url=$(get_metadata "mpris:artUrl")
|
||||
if [ -z "$url" ]; then
|
||||
echo ""
|
||||
else
|
||||
if [[ "$url" == file://* ]]; then
|
||||
url=${url#file://}
|
||||
elif [[ "$url" == http://* || "$url" == https://* ]]; then
|
||||
filename=$(basename "$url")
|
||||
if [[ "$filename" != *.png && "$filename" != *.jpg && "$filename" != *.jpeg ]]; then
|
||||
filename="${filename}.jpg"
|
||||
fi
|
||||
wget -q "$url" -O "/tmp/$filename"
|
||||
url="/tmp/$filename"
|
||||
fi
|
||||
|
||||
# Make sure local files also have a png/jpg extension if required
|
||||
if [[ "$url" != *.png && "$url" != *.jpg && "$url" != *.jpeg ]]; then
|
||||
if [ -f "$url" ]; then
|
||||
cp "$url" "/tmp/$(basename "$url").jpg"
|
||||
url="/tmp/$(basename "$url").jpg"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "$url"
|
||||
fi
|
||||
;;
|
||||
--artist)
|
||||
artist=$(get_metadata "xesam:artist")
|
||||
if [ -z "$artist" ]; then
|
||||
echo ""
|
||||
else
|
||||
echo "${artist:0:30}" # Limit the output to 50 characters
|
||||
fi
|
||||
;;
|
||||
--length)
|
||||
length=$(get_metadata "mpris:length")
|
||||
if [ -z "$length" ]; then
|
||||
echo ""
|
||||
else
|
||||
# Convert length from microseconds to a more readable format (seconds)
|
||||
echo "$(echo "scale=2; $length / 1000000 / 60" | bc) m"
|
||||
fi
|
||||
;;
|
||||
--status)
|
||||
status=$(playerctl status 2>/dev/null)
|
||||
if [[ $status == "Playing" ]]; then
|
||||
echo ""
|
||||
elif [[ $status == "Paused" ]]; then
|
||||
echo ""
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
;;
|
||||
--album)
|
||||
album=$(playerctl metadata --format "{{ xesam:album }}" 2>/dev/null)
|
||||
if [[ -n $album ]]; then
|
||||
echo "$album"
|
||||
else
|
||||
status=$(playerctl status 2>/dev/null)
|
||||
if [[ -n $status ]]; then
|
||||
echo "Not album"
|
||||
else
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
--source)
|
||||
get_source_info
|
||||
;;
|
||||
*)
|
||||
echo "Invalid option: $1"
|
||||
echo "Usage: $0 --title | --url | --artist | --length | --album | --source"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Executable
+8
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
sleep 1
|
||||
killall xdg-desktop-portal-hyprland
|
||||
killall xdg-desktop-portal-wlr
|
||||
killall xdg-desktop-portal
|
||||
/usr/libexec/xdg-desktop-portal-hyprland &
|
||||
sleep 2
|
||||
/usr/lib/xdg-desktop-portal &
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
# Toggle mirroring HDMI-A-1 to/from eDP-1 on Hyprland
|
||||
|
||||
isMirror=$(hyprctl monitors all -j | jq -r '.[] | select(.name=="HDMI-A-1") | .mirrorOf' 2>/dev/null || echo "none")
|
||||
echo "Current mirror status: $isMirror"
|
||||
|
||||
if [ "$isMirror" == "none" ]; then
|
||||
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@59.95", position = "1920x0", scale = 1.0, mirror = "eDP-1" })'
|
||||
else
|
||||
hyprctl eval 'hl.monitor({ output = "HDMI-A-1", mode = "1920x1080@59.95", position = "1920x0", scale = 1.0, mirror = "none"})'
|
||||
fi
|
||||
Executable
+7
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
WALL=$1
|
||||
echo "setting $WALL as wallpaper"
|
||||
matugen image -t scheme-fidelity -m dark $WALL --show-colors --verbose --fallback-color "#000000"
|
||||
echo "set $WALL as wallpaper sucessfuly"
|
||||
@@ -0,0 +1,90 @@
|
||||
local inFocusOpacity = "0.95"
|
||||
local notInFocusOpacity = "0.8"
|
||||
|
||||
|
||||
|
||||
hl.window_rule({
|
||||
suppress_event = "maximize",
|
||||
match = {
|
||||
class = ".*"
|
||||
}
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
no_initial_focus = true,
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = 1,
|
||||
float = 1,
|
||||
fullscreen = 0,
|
||||
pin = 0
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
hl.window_rule({
|
||||
opacity = inFocusOpacity .. " " .. notInFocusOpacity,
|
||||
match = { title = "^.*().*$" }
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
opacity = "0.80",
|
||||
float = true,
|
||||
size = { 600, 400 },
|
||||
match = { class = "^(nwg-displays)$" }
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
opacity = 0.80,
|
||||
float = true,
|
||||
size = { 600, 400 },
|
||||
match = { class = "^(blueman-manager)$" }
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
opacity = 0.80,
|
||||
float = true,
|
||||
size = { 600, 400 },
|
||||
match = { class = "^(org.pulseaudio.pavucontrol)$" }
|
||||
})
|
||||
|
||||
|
||||
-- xwaylandvideobridge
|
||||
hl.window_rule({
|
||||
opacity = "0.0 override",
|
||||
no_anim = 1,
|
||||
no_initial_focus = 1,
|
||||
no_focus = 1,
|
||||
max_size = { 1, 1 },
|
||||
no_blur = 1,
|
||||
match = { class = "^(xwaylandvideobridge)$" }
|
||||
})
|
||||
|
||||
|
||||
|
||||
-- Picture in Picture
|
||||
hl.window_rule({
|
||||
float = true,
|
||||
tile = false,
|
||||
opacity = "1.0",
|
||||
pin = true,
|
||||
match = {
|
||||
title = "(Picture in picture)"
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
-- Spotify mini player
|
||||
hl.window_rule({
|
||||
float = true,
|
||||
tile = false,
|
||||
opacity = "1.0 0.75",
|
||||
size={419, 56},
|
||||
move={1482, 1006},
|
||||
pin = true,
|
||||
match = {
|
||||
workspace = "special:music",
|
||||
class="Chromium-browser",
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,40 @@
|
||||
local music_workspace = "music"
|
||||
local voicechat_workspace = "voice"
|
||||
local obs_workspace = "obs"
|
||||
|
||||
local numkeys = {
|
||||
{code = "87"}, -- 1
|
||||
{code = "88"}, -- 2
|
||||
{code = "89"}, -- 3
|
||||
{code = "83"}, -- 4
|
||||
{code = "84"}, -- 5
|
||||
{code = "85"}, -- 6
|
||||
{code = "79"}, -- 7
|
||||
{code = "80"}, -- 8
|
||||
{code = "81"}, -- 9
|
||||
{code = "90"} -- 0
|
||||
}
|
||||
|
||||
-- Keybinds that define workspaces
|
||||
hl.bind(mainMod .. " + code:"..numkeys[7].code, hl.dsp.workspace.toggle_special(music_workspace))
|
||||
hl.bind(mainMod .. " + code:"..numkeys[8].code, hl.dsp.workspace.toggle_special(voicechat_workspace))
|
||||
hl.bind(mainMod .. " + code:"..numkeys[9].code, hl.dsp.workspace.toggle_special(obs_workspace))
|
||||
|
||||
|
||||
hl.window_rule({
|
||||
name = "discord",
|
||||
match = {class = "^(discord)$"},
|
||||
workspace = "special:" .. voicechat_workspace
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "spotify",
|
||||
match = {class = "^(Spotify)$"},
|
||||
workspace = "special:" .. music_workspace
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "obs",
|
||||
match = {class = "com.obsproject.Studio"},
|
||||
workspace = "special:" .. obs_workspace
|
||||
})
|
||||
Reference in New Issue
Block a user