Compare commits
No commits in common. "c67d2dec04df5da5e7d7d61fb1ca2e195c1be7e2" and "8381f25e3a7379afffe5e51be26547cad6fcc262" have entirely different histories.
c67d2dec04
...
8381f25e3a
43 changed files with 15 additions and 3346 deletions
|
|
@ -1,60 +0,0 @@
|
|||
{
|
||||
"features": {
|
||||
"ghcr.io/devcontainers-extra/features/fish-apt-get:1": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "ghcr.io/devcontainers-extra/features/fish-apt-get@sha256:d3c21bb6aec6e0f9d5348adee443c70c31d5f4372b8ad5f56a0ab925b2725108",
|
||||
"integrity": "sha256:d3c21bb6aec6e0f9d5348adee443c70c31d5f4372b8ad5f56a0ab925b2725108"
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/extension-spellcheck:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/extension-spellcheck@sha256:954a79f524e5130b7c961e6d0ac7252fbc8e40c5e63229b030f5a27477dfa7ce",
|
||||
"integrity": "sha256:954a79f524e5130b7c961e6d0ac7252fbc8e40c5e63229b030f5a27477dfa7ce"
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/extensions-essentials-ultimate:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/extensions-essentials-ultimate@sha256:62483dfabb169b804d1d385eccf0344a8b0d6a62c60b3761d579e70a59291772",
|
||||
"integrity": "sha256:62483dfabb169b804d1d385eccf0344a8b0d6a62c60b3761d579e70a59291772",
|
||||
"dependsOn": [
|
||||
"ghcr.io/guziomg/devcontainers/extensions-github:latest",
|
||||
"ghcr.io/guziomg/devcontainers/extensions-essentials:latest",
|
||||
"ghcr.io/guziomg/devcontainers/extension-spellcheck:latest"
|
||||
]
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/extensions-essentials:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/extensions-essentials@sha256:bbd0673cb07d64ca60e714a786db2c55bf921fbd49bad907376a0dfa960258d9",
|
||||
"integrity": "sha256:bbd0673cb07d64ca60e714a786db2c55bf921fbd49bad907376a0dfa960258d9"
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/extensions-github:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/extensions-github@sha256:5455b28dcb0cfa1c4a0ed0c9ac9fad263af9c5265406021923c50027b6ca62d9",
|
||||
"integrity": "sha256:5455b28dcb0cfa1c4a0ed0c9ac9fad263af9c5265406021923c50027b6ca62d9"
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/fish-apt-extended:latest": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/fish-apt-extended@sha256:ce8190cd2f0365c625c2e8b5800f27771ccf517823feb082ec96c75f5c083a66",
|
||||
"integrity": "sha256:ce8190cd2f0365c625c2e8b5800f27771ccf517823feb082ec96c75f5c083a66",
|
||||
"dependsOn": [
|
||||
"ghcr.io/devcontainers-extra/features/fish-apt-get:1"
|
||||
]
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/personal:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/personal@sha256:f116eaa06ae322f69943724323d757c8fb9b326c3bd7fc1899ee4d54863568ff",
|
||||
"integrity": "sha256:f116eaa06ae322f69943724323d757c8fb9b326c3bd7fc1899ee4d54863568ff",
|
||||
"dependsOn": [
|
||||
"ghcr.io/guziomg/devcontainers/extensions-essentials-ultimate:latest",
|
||||
"ghcr.io/guziomg/devcontainers/polskie-rozszerzenia:latest",
|
||||
"ghcr.io/guziomg/devcontainers/fish-apt-extended:latest"
|
||||
]
|
||||
},
|
||||
"ghcr.io/guziomg/devcontainers/polskie-rozszerzenia:latest": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "ghcr.io/guziomg/devcontainers/polskie-rozszerzenia@sha256:708c77bf302f7a097384dd98b3beec2e344e4965995ab38a3f861bb923fcf71d",
|
||||
"integrity": "sha256:708c77bf302f7a097384dd98b3beec2e344e4965995ab38a3f861bb923fcf71d",
|
||||
"dependsOn": [
|
||||
"ghcr.io/guziomg/devcontainers/extension-spellcheck:latest"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"name": "Hyprland configs",
|
||||
"image": "mcr.microsoft.com/devcontainers/base:noble",
|
||||
"features": {
|
||||
//"ghcr.io/guziomg/devcontainers/hyprland:latest": {},
|
||||
"ghcr.io/guziomg/devcontainers/personal:latest": {}
|
||||
}
|
||||
}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
scripts/volume-bin
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"workspace": {
|
||||
"library": [
|
||||
"/usr/share/hypr/stubs"
|
||||
]
|
||||
}
|
||||
}
|
||||
8
.vscode/settings.json
vendored
8
.vscode/settings.json
vendored
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"cSpell.words": [
|
||||
"envar",
|
||||
"hypr",
|
||||
"hyprpanel",
|
||||
"killall"
|
||||
]
|
||||
}
|
||||
19
LICENSE
19
LICENSE
|
|
@ -1,7 +1,18 @@
|
|||
MIT License
|
||||
|
||||
Copyright © 2026 Guzio
|
||||
Copyright (c) 2026 Guzio
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
||||
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
# This config is a STUB! This should never be generated.
|
||||
# Use the default lua config from https://github.com/hyprwm/Hyprland/blob/main/example/hyprland.lua
|
||||
|
||||
|
||||
|
||||
$mainMod = SUPER
|
||||
$terminal = konsole
|
||||
$fileManager = dolphin
|
||||
$menu = hyprlauncher
|
||||
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
413
hyprland.lua
413
hyprland.lua
|
|
@ -1,413 +0,0 @@
|
|||
-------------------
|
||||
---- VARIABLES ----
|
||||
-------------------
|
||||
local hyprdir = ".config/hypr/"
|
||||
local scripts = hyprdir.."scripts/"
|
||||
|
||||
-- Set programs that I use
|
||||
local terminal = scripts.."terminal.sh"
|
||||
local fileManager = "dolphin"
|
||||
local menu = scripts.."toggle_hyprshell.sh"
|
||||
|
||||
|
||||
------------------
|
||||
---- MONITORS ----
|
||||
------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||
|
||||
-- defaults
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = 1,
|
||||
mirror = "eDP-1",
|
||||
})
|
||||
|
||||
-- Main tablet screen
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "preferred",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
-- My monitor at home
|
||||
hl.monitor({
|
||||
output = "desc:Acer Technologies Acer XF240H 0x0160F332",
|
||||
mode = "preferred",
|
||||
position = "1925x-900",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
|
||||
-------------------
|
||||
---- AUTOSTART ----
|
||||
-------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||
|
||||
hl.on("hyprland.start", function ()
|
||||
-- Load plugins
|
||||
--hl.exec_cmd("hyprpm reload")
|
||||
|
||||
-- Special workspaces
|
||||
hl.exec_cmd(terminal)
|
||||
hl.exec_cmd("flatpak run app.zen_browser.zen")
|
||||
hl.exec_cmd("flatpak run com.discordapp.Discord")
|
||||
hl.exec_cmd("flatpak run im.riot.Riot")
|
||||
hl.exec_cmd("flatpak run md.obsidian.Obsidian")
|
||||
|
||||
-- Core daemons
|
||||
hl.exec_cmd("hyprshell -c "..hyprdir.."hyprshell.ron -s "..hyprdir.."hyprshell.css run")
|
||||
hl.exec_cmd("vicinae server")
|
||||
hl.exec_cmd("wvkbd-deskintl --hidden -o")
|
||||
hl.exec_cmd("hyprpanel")
|
||||
hl.exec_cmd(scripts.."keyboard.sh reset")
|
||||
hl.exec_cmd(scripts.."volume-core.sh --start-daemon")
|
||||
|
||||
-- Waydroid (note: this also launches rootedinit.sh under-the-hood)
|
||||
hl.exec_cmd(scripts.."waydroid.sh")
|
||||
|
||||
-- Dark theme
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface gtk-theme Breeze-Dark"); -- for GTK3 apps
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface color-scheme prefer-dark"); -- for GTK4 apps
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface gtk-color-palette \"'black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90'\""); --Unrelated to Dark Theme (just my color palette), but there was no better place for it.
|
||||
end)
|
||||
|
||||
|
||||
-------------------------------
|
||||
---- ENVIRONMENT VARIABLES ----
|
||||
-------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||
|
||||
-- Were the defaults; no reason to fuck around
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
|
||||
-- Dark theme, again (*must set manually)
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
|
||||
|
||||
|
||||
-----------------------
|
||||
----- PERMISSIONS -----
|
||||
-----------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
||||
|
||||
hl.config({
|
||||
ecosystem = {
|
||||
enforce_permissions = true,
|
||||
},
|
||||
})
|
||||
|
||||
hl.permission({binary="/usr/(bin|local/bin)/grim", type="screencopy", mode="allow"})
|
||||
hl.permission({binary="/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", type="screencopy", mode="allow"})
|
||||
|
||||
hl.permission({binary="/usr/(bin|local/bin)/hyprpm", type="plugin", mode="allow"})
|
||||
hl.permission({binary="/usr/(bin|local/bin)/hyprshell", type="plugin", mode="allow"})
|
||||
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 4,
|
||||
gaps_out = {top=0, right=8, bottom=8, left=8},
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = {"rgb(FFE610)", "rgb(E6FF10)"}, angle = 240 },
|
||||
inactive_border = { colors = {"rgba(FFE61020)", "rgba(E6FF10E0)"}, angle = 240 },
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "dwindle",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 15,
|
||||
rounding_power = 3,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true, --During the Lua migration, I noticed the following note attached in the previous config: „NOTE: Occasionally (when terminal breaks), this needs to be disabled (until I figure out how to get blur only on the background ALWAYS, without making all terminal text glow SOMETIMES)”. However, I don't think I experienced any „terminal glowing” problems in a long time (tho transparency still breaks on it from time to time), so ig this is no longer needed? Leaving the note in, just in case it does end up happening again.
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} }})
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} }})
|
||||
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} }})
|
||||
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} }})
|
||||
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} }})
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||
|
||||
-- Special workspaces slide-in from the top (thx, https://github.com/hyprwm/Hyprland/discussions/1757#discussioncomment-8921961)
|
||||
hl.animation({ leaf = "specialWorkspaceIn", enabled=true, speed=2, bezier="easeInOutCubic", style="slidefadevert -50%" })
|
||||
hl.animation({ leaf = "specialWorkspaceOut", enabled=true, speed=2, bezier="easeInOutCubic", style="slidefadevert -50%" })
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
|
||||
hl.config({
|
||||
dwindle = {
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
|
||||
hl.config({
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
|
||||
hl.config({
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = true,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
--------------
|
||||
---- MISC ----
|
||||
--------------
|
||||
|
||||
hl.config({
|
||||
misc = {
|
||||
force_default_wallpaper = 2, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "pl",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "fkeys:basic_13-24",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
---------------------
|
||||
---- KEYBINDINGS ----
|
||||
---------------------
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(terminal))
|
||||
local closeWindowBind = hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
-- closeWindowBind:set_enabled(false)
|
||||
hl.bind(mainMod .. " + M", hl.dsp.exit())
|
||||
hl.bind(mainMod .. " + SUPER_L", hl.dsp.exec_cmd(menu), { release = true })
|
||||
|
||||
-- Quick-pad: Special workspaces + boss-key
|
||||
hl.bind(mainMod .. " + X", hl.dsp.workspace.toggle_special("terminal"))
|
||||
hl.bind(mainMod .. " + A", hl.dsp.workspace.toggle_special("browser"))
|
||||
hl.bind(mainMod .. " + D", hl.dsp.workspace.toggle_special("discord"))
|
||||
hl.bind(mainMod .. " + C", hl.dsp.workspace.toggle_special("element"))
|
||||
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("obsidian"))
|
||||
hl.bind(mainMod .. " + Z", hl.dsp.exec_cmd(scripts.."hide.sh"))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
-- Screenshots
|
||||
hl.bind("PRINT", hl.dsp.exec_cmd(scripts.."screenshot.sh"))
|
||||
hl.bind(mainMod.." + PRINT", hl.dsp.exec_cmd(scripts.."screenshot.sh --full"))
|
||||
|
||||
|
||||
--------------------------------
|
||||
---- WINDOWS AND WORKSPACES ----
|
||||
--------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
|
||||
-- Example window rules that are useful
|
||||
|
||||
local suppressMaximizeRule = hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
suppressMaximizeRule:set_enabled(false) -- ...No, I won't. I run everything as exclusive-window-per-workspace anyway, so I'm not worried about „Windows deciding to take up all my space” (I literally do that). All this will do is cause de-syncs (especially in client-side decorated apps, like all the crapware made in GTK) for exactly 0 benefit.
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
-- Hyprland-run windowrule
|
||||
hl.window_rule({
|
||||
name = "move-hyprland-run",
|
||||
match = { class = "hyprland-run" },
|
||||
move = "20 monitor_h-120",
|
||||
float = true,
|
||||
})
|
||||
|
||||
-- My rules
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-default",
|
||||
match = {
|
||||
class = ".*",
|
||||
float = false
|
||||
},
|
||||
workspace = "emptym"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-terminal",
|
||||
match = { class = "org.kde.konsole" },
|
||||
workspace = "special:terminal"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-browser",
|
||||
match = { class = "app.zen_browser.zen" },
|
||||
workspace = "special:browser silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-discord",
|
||||
match = { class = "discord" },
|
||||
workspace = "special:discord silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-element",
|
||||
match = { class = "im.riot.Riot" },
|
||||
workspace = "special:element silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-obsidian",
|
||||
match = { class = "obsidian" },
|
||||
workspace = "special:obsidian silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-minecraft-default",
|
||||
match = { class = "Minecraft.*" },
|
||||
workspace = "emptym",
|
||||
maximize = true
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-minecraft-modpack-melatonin",
|
||||
match = { class = "Melatonin" },
|
||||
workspace = "emptym",
|
||||
maximize = true
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-waydroid",
|
||||
match = { class = "Waydroid" },
|
||||
workspace = "special:waydroid",
|
||||
fullscreen = true
|
||||
})
|
||||
|
||||
|
||||
-------------------
|
||||
---- HYPRGRASS ----
|
||||
-------------------
|
||||
|
||||
--hl.plugin.touch_gestures = {
|
||||
-- sensitivity = 4.0,
|
||||
-- edge_margin = 50,
|
||||
-- ["hyprgrass-bind"] = ", edge:d:u, exec, $scriptsdir/keyboard.sh --no-rotate",
|
||||
-- ["hyprgrass-bind"] = ", tap:3, exec, $menu -k"
|
||||
--}
|
||||
107
hyprlock.conf
107
hyprlock.conf
|
|
@ -1,107 +0,0 @@
|
|||
# sample hyprlock.conf
|
||||
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
|
||||
#
|
||||
# rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
|
||||
# ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
|
||||
#
|
||||
# shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
|
||||
#
|
||||
# you can get started by copying this config to ~/.config/hypr/hyprlock.conf
|
||||
#
|
||||
|
||||
$font = Monospace
|
||||
|
||||
general {
|
||||
# CHANGED: to true
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# uncomment to enable fingerprint authentication
|
||||
# auth {
|
||||
# fingerprint {
|
||||
# enabled = true
|
||||
# ready_message = Scan fingerprint to unlock
|
||||
# present_message = Scanning...
|
||||
# retry_delay = 250 # in milliseconds
|
||||
# }
|
||||
# }
|
||||
|
||||
animations {
|
||||
enabled = true
|
||||
bezier = linear, 1, 1, 0, 0
|
||||
animation = fadeIn, 1, 5, linear
|
||||
animation = fadeOut, 1, 5, linear
|
||||
animation = inputFieldDots, 1, 2, linear
|
||||
}
|
||||
|
||||
background {
|
||||
monitor =
|
||||
path = screenshot
|
||||
blur_passes = 3
|
||||
}
|
||||
|
||||
input-field {
|
||||
monitor =
|
||||
size = 20%, 5%
|
||||
outline_thickness = 3
|
||||
inner_color = rgba(0, 0, 0, 0.0) # no fill
|
||||
|
||||
outer_color = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
check_color = rgba(00ff99ee) rgba(ff6633ee) 120deg
|
||||
fail_color = rgba(ff6633ee) rgba(ff0066ee) 40deg
|
||||
|
||||
font_color = rgb(143, 143, 143)
|
||||
fade_on_empty = false
|
||||
rounding = 15
|
||||
|
||||
font_family = $font
|
||||
placeholder_text = Input password...
|
||||
fail_text = $PAMFAIL
|
||||
|
||||
# uncomment to use a letter instead of a dot to indicate the typed password
|
||||
# dots_text_format = *
|
||||
# dots_size = 0.4
|
||||
dots_spacing = 0.3
|
||||
|
||||
# uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
|
||||
# hide_input = true
|
||||
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] date +"%A, %d %B %Y" # update every 60 seconds
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
label {
|
||||
monitor =
|
||||
text = $LAYOUT[en,ru]
|
||||
font_size = 24
|
||||
onclick = hyprctl switchxkblayout all next
|
||||
|
||||
position = 250, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
|
@ -1,178 +0,0 @@
|
|||
{
|
||||
"bar.customModules.storage.paths": [
|
||||
"/"
|
||||
],
|
||||
"theme.bar.floating": false,
|
||||
"bar.layouts": {
|
||||
"0": {
|
||||
"middle": [
|
||||
"worldclock"
|
||||
],
|
||||
"right": [
|
||||
"microphone",
|
||||
"cava",
|
||||
"battery",
|
||||
"windowtitle",
|
||||
"custom/desktop"
|
||||
],
|
||||
"left": [
|
||||
"dashboard",
|
||||
"custom/menu",
|
||||
"custom/screenshot",
|
||||
"custom/rotate",
|
||||
"custom/keyboard",
|
||||
"custom/clipboard",
|
||||
"systray",
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"1": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"volume",
|
||||
"network",
|
||||
"bluetooth",
|
||||
"battery",
|
||||
"systray",
|
||||
"clock",
|
||||
"notifications"
|
||||
]
|
||||
},
|
||||
"2": {
|
||||
"left": [
|
||||
"dashboard",
|
||||
"workspaces",
|
||||
"windowtitle"
|
||||
],
|
||||
"middle": [
|
||||
"media"
|
||||
],
|
||||
"right": [
|
||||
"volume",
|
||||
"clock",
|
||||
"notifications"
|
||||
]
|
||||
}
|
||||
},
|
||||
"menus.dashboard.controls.enabled": true,
|
||||
"menus.dashboard.shortcuts.enabled": false,
|
||||
"menus.dashboard.directories.enabled": false,
|
||||
"menus.volume.raiseMaximumVolume": false,
|
||||
"bar.launcher.icon": "",
|
||||
"menus.clock.weather.enabled": false,
|
||||
"menus.power.showLabel": true,
|
||||
"menus.clock.time.military": true,
|
||||
"menus.clock.weather.location": "Los Angeles",
|
||||
"bar.customModules.worldclock.leftClick": "menu:calendar",
|
||||
"theme.bar.buttons.modules.worldclock.enableBorder": true,
|
||||
"bar.customModules.worldclock.format": "%H:%M:%S",
|
||||
"menus.clock.time.hideSeconds": false,
|
||||
"menus.clock.weather.unit": "imperial",
|
||||
"bar.customModules.worldclock.divider": "",
|
||||
"bar.customModules.worldclock.tz": [
|
||||
"Europe/Warsaw"
|
||||
],
|
||||
"bar.customModules.worldclock.icon": "",
|
||||
"bar.customModules.cava.leftClick": "menu:media",
|
||||
"bar.customModules.cava.middleClick": "",
|
||||
"theme.bar.menus.opacity": 100,
|
||||
"theme.bar.opacity": 100,
|
||||
"theme.bar.buttons.dashboard.icon": "#f9e2af",
|
||||
"theme.bar.buttons.dashboard.border": "#f9e2af",
|
||||
"theme.bar.buttons.style": "wave2",
|
||||
"theme.bar.menus.border.color": "#313244",
|
||||
"theme.bar.buttons.battery.text": "#f9e2af",
|
||||
"theme.bar.buttons.battery.icon": "#f9e2af",
|
||||
"theme.bar.transparent": true,
|
||||
"bar.launcher.autoDetectIcon": false,
|
||||
"theme.bar.buttons.dashboard.enableBorder": true,
|
||||
"bar.workspaces.monitorSpecific": false,
|
||||
"bar.workspaces.show_numbered": false,
|
||||
"bar.workspaces.ignored": "-[0-9]+",
|
||||
"theme.bar.buttons.windowtitle.enableBorder": true,
|
||||
"bar.windowtitle.custom_title": true,
|
||||
"theme.bar.buttons.notifications.enableBorder": true,
|
||||
"bar.notifications.show_total": true,
|
||||
"bar.notifications.hideCountWhenZero": true,
|
||||
"theme.bar.buttons.battery.enableBorder": true,
|
||||
"theme.bar.buttons.workspaces.enableBorder": true,
|
||||
"theme.bar.buttons.volume.enableBorder": true,
|
||||
"theme.bar.buttons.network.enableBorder": true,
|
||||
"theme.bar.buttons.bluetooth.enableBorder": true,
|
||||
"theme.bar.buttons.systray.enableBorder": true,
|
||||
"theme.bar.buttons.clock.enableBorder": true,
|
||||
"theme.bar.buttons.media.enableBorder": true,
|
||||
"theme.bar.buttons.modules.microphone.enableBorder": true,
|
||||
"theme.bar.buttons.modules.ram.enableBorder": true,
|
||||
"theme.bar.buttons.modules.cpu.enableBorder": true,
|
||||
"theme.bar.buttons.modules.cpuTemp.enableBorder": true,
|
||||
"theme.bar.buttons.modules.storage.enableBorder": true,
|
||||
"theme.bar.buttons.modules.netstat.enableBorder": true,
|
||||
"theme.bar.buttons.modules.kbLayout.enableBorder": true,
|
||||
"theme.bar.buttons.modules.updates.enableBorder": true,
|
||||
"theme.bar.buttons.modules.submap.enableBorder": true,
|
||||
"theme.bar.buttons.modules.weather.enableBorder": true,
|
||||
"theme.bar.buttons.modules.hypridle.enableBorder": true,
|
||||
"theme.bar.buttons.modules.cava.enableBorder": true,
|
||||
"theme.bar.buttons.modules.power.enableBorder": true,
|
||||
"bar.customModules.cava.rightClick": "menu:audio",
|
||||
"bar.volume.rightClick": "menu:media",
|
||||
"bar.customModules.cava.scrollDown": "hyprpanel vol -5",
|
||||
"bar.customModules.cava.scrollUp": "hyprpanel vol +5",
|
||||
"bar.clock.icon": "",
|
||||
"bar.clock.format": "%A, %Y-%m-%d %H:%M:%S",
|
||||
"bar.customModules.worldclock.formatDiffDate": "",
|
||||
"bar.windowtitle.leftClick": "hyprctl dispatch \"hl.dsp.window.close()\"",
|
||||
"bar.workspaces.show_icons": false,
|
||||
"bar.workspaces.workspaces": 5,
|
||||
"bar.workspaces.icons.available": "",
|
||||
"bar.workspaces.showWsIcons": true,
|
||||
"bar.workspaces.showApplicationIcons": true,
|
||||
"bar.workspaces.applicationIconEmptyWorkspace": "",
|
||||
"theme.bar.buttons.workspaces.smartHighlight": true,
|
||||
"bar.workspaces.applicationIconOncePerWorkspace": false,
|
||||
"bar.workspaces.numbered_active_indicator": "highlight",
|
||||
"theme.bar.buttons.workspaces.numbered_inactive_padding": "0em",
|
||||
"theme.bar.buttons.workspaces.fontSize": "1.2em",
|
||||
"theme.bar.buttons.workspaces.pill.radius": "1.9rem * 0.6",
|
||||
"bar.windowtitle.class_name": true,
|
||||
"bar.windowtitle.truncation_size": 1,
|
||||
"bar.windowtitle.icon": true,
|
||||
"bar.customModules.microphone.label": false,
|
||||
"menus.media.noMediaText": "Cicho tutaj...",
|
||||
"bar.volume.label": true,
|
||||
"bar.network.label": true,
|
||||
"bar.network.showWifiInfo": true,
|
||||
"bar.bluetooth.label": false,
|
||||
"theme.bar.buttons.monochrome": true,
|
||||
"theme.bar.buttons.borderColor": "#e6ff10",
|
||||
"theme.bar.buttons.text": "#e6ff10",
|
||||
"theme.bar.buttons.icon": "#e6ff10",
|
||||
"theme.bar.buttons.icon_background": "#242438",
|
||||
"theme.bar.buttons.background": "#000000",
|
||||
"theme.bar.buttons.workspaces.active": "#e6ff10",
|
||||
"theme.bar.buttons.workspaces.numbered_active_highlighted_text_color": "#000000",
|
||||
"theme.bar.buttons.workspaces.background": "#000000",
|
||||
"theme.bar.buttons.workspaces.occupied": "#62a0ea",
|
||||
"theme.bar.buttons.workspaces.available": "#77767b",
|
||||
"theme.bar.buttons.workspaces.hover": "#62a0ea",
|
||||
"menus.transition": "crossfade",
|
||||
"theme.bar.border.width": "0.15em",
|
||||
"theme.bar.layer": "top",
|
||||
"theme.bar.margin_sides": "0.5em",
|
||||
"theme.bar.buttons.enableBorders": false,
|
||||
"theme.bar.border_radius": "0.4em",
|
||||
"theme.bar.outer_spacing": "0.2em",
|
||||
"theme.bar.buttons.y_margins": "0.33em",
|
||||
"theme.bar.buttons.spacing": "0.19em",
|
||||
"theme.bar.buttons.padding_x": "0.7rem",
|
||||
"theme.bar.buttons.padding_y": "0.2rem",
|
||||
"theme.bar.buttons.background_hover_opacity": 100
|
||||
}
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
{
|
||||
"custom/keyboard": {
|
||||
"icon": "\udb80\udf0c",
|
||||
"tooltip": "Przełącz klawiaturę.",
|
||||
"actions": {
|
||||
"onLeftClick": "$HOME/.config/hypr/scripts/keyboard.sh"
|
||||
}
|
||||
},
|
||||
"custom/menu": {
|
||||
"icon": "\udb83\ude6f",
|
||||
"tooltip": "Menu główne.",
|
||||
"actions": {
|
||||
"onLeftClick": "$HOME/.config/hypr/scripts/toggle_hyprshell.sh -k"
|
||||
}
|
||||
},
|
||||
"custom/rotate": {
|
||||
"icon": "\udb82\udc86",
|
||||
"tooltip": "Obróć ekran.",
|
||||
"actions": {
|
||||
"onLeftClick": "$HOME/.config/hypr/scripts/rotate.sh"
|
||||
}
|
||||
},
|
||||
"custom/clipboard": {
|
||||
"icon": "\ued7b",
|
||||
"tooltip": "Schowek",
|
||||
"actions": {
|
||||
"onLeftClick": "vicinae vicinae://extensions/vicinae/clipboard/history"
|
||||
}
|
||||
},
|
||||
"custom/screenshot": {
|
||||
"icon": "\uf030",
|
||||
"tooltip": "Screenshot",
|
||||
"actions": {
|
||||
"onLeftClick": "$HOME/.config/hypr/scripts/screenshot.sh --button",
|
||||
"onRightClick": "$HOME/.config/hypr/scripts/screenshot.sh --button --full"
|
||||
}
|
||||
},
|
||||
"custom/desktop": {
|
||||
"icon": "\uebf6",
|
||||
"tooltip": "Pokaż pulpit",
|
||||
"actions": {
|
||||
"onLeftClick": "$HOME/.config/hypr/scripts/hide.sh"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
/* ##################################
|
||||
* # Custom Volume Module Styling #
|
||||
* ################################## */
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-keyboard',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-menu',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-rotate',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-clipboard',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-screenshot',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
||||
@include styleModule(
|
||||
// class name
|
||||
'cmodule-desktop',
|
||||
// styling properties
|
||||
(
|
||||
'text-color': #E6FF10,
|
||||
'icon-color': #E6FF10,
|
||||
'icon-background': #000000,
|
||||
'label-background': #000000,
|
||||
'inner-spacing': 0em,
|
||||
'border-enabled': true,
|
||||
'border-color': #E6FF10,
|
||||
'icon-size': 1.2em
|
||||
)
|
||||
);
|
||||
|
|
@ -1,57 +0,0 @@
|
|||
:root {
|
||||
--border-color: #E6FF1030;
|
||||
--border-color-active: #E6FF10;
|
||||
|
||||
--bg-color: rgba(20, 20, 20, 0.7);
|
||||
--bg-color-hover: rgba(40, 40, 50, 1);
|
||||
|
||||
--border-radius: 12px;
|
||||
--border-size: 3px;
|
||||
--border-style: solid;
|
||||
|
||||
--text-color: rgba(245, 245, 245, 1);
|
||||
|
||||
--window-padding: 2px;
|
||||
}
|
||||
|
||||
.window {
|
||||
}
|
||||
|
||||
|
||||
.monitor {
|
||||
}
|
||||
|
||||
.workspace {
|
||||
font-size: x-small;
|
||||
}
|
||||
|
||||
.client {
|
||||
}
|
||||
|
||||
.client-image {
|
||||
}
|
||||
|
||||
|
||||
.launcher {
|
||||
}
|
||||
|
||||
.launcher-input {
|
||||
}
|
||||
|
||||
.launcher-results {
|
||||
}
|
||||
|
||||
.launcher-item {
|
||||
}
|
||||
|
||||
.launcher-exec {
|
||||
}
|
||||
|
||||
.launcher-key {
|
||||
}
|
||||
|
||||
.launcher-plugins {
|
||||
}
|
||||
|
||||
.launcher-plugin {
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
// Edit with `hyprshell config edit`
|
||||
(
|
||||
version: 4,
|
||||
windows: (
|
||||
scale: 5.0,
|
||||
items_per_row: 6,
|
||||
overview: (
|
||||
launcher: (
|
||||
default_terminal: "konsole",
|
||||
launch_modifier: "ctrl",
|
||||
width: 650,
|
||||
max_items: 5,
|
||||
show_when_empty: true,
|
||||
plugins: (
|
||||
applications: (
|
||||
run_cache_weeks: 8,
|
||||
show_execs: true,
|
||||
show_actions_submenu: true,
|
||||
),
|
||||
terminal: (),
|
||||
shell: (),
|
||||
websearch: (
|
||||
engines: [
|
||||
(
|
||||
url: "https://www.startpage.com/sp/search?query={}",
|
||||
name: "Startpage",
|
||||
key: 's',
|
||||
),
|
||||
(
|
||||
url: "https://www.youtube.com/results?search_query={}",
|
||||
name: "YouTube",
|
||||
key: 'y',
|
||||
),
|
||||
],
|
||||
),
|
||||
calc: (),
|
||||
path: (),
|
||||
actions: (
|
||||
actions: [
|
||||
logout,
|
||||
reboot,
|
||||
shutdown,
|
||||
custom(
|
||||
names: [
|
||||
"Reload",
|
||||
],
|
||||
details: "Reloads Hyprshell",
|
||||
command: "sleep 1; hyprshell socat \'\"Restart\"\'",
|
||||
icon: "system-restart",
|
||||
),
|
||||
custom(
|
||||
names: [
|
||||
"Clipboard",
|
||||
],
|
||||
details: "Shows clipboard history",
|
||||
command: "`",
|
||||
icon: "system-clipboard",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
key: "insert",
|
||||
top_offset: 430,
|
||||
modifier: "super",
|
||||
filter_by: [],
|
||||
exclude_workspaces: "",
|
||||
),
|
||||
switch: (
|
||||
modifier: "super",
|
||||
key: "Tab",
|
||||
filter_by: [],
|
||||
switch_workspaces: false,
|
||||
exclude_workspaces: "special:*",
|
||||
kill_key: 'q',
|
||||
),
|
||||
switch_2: None,
|
||||
),
|
||||
)
|
||||
427
mhyprland.conf
427
mhyprland.conf
|
|
@ -1,427 +0,0 @@
|
|||
# NOTE: Observation - all EXECs are relative to $HOME - do $scriptsdir/<NAME>.sh to EXEC scripts
|
||||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPRLAND CONFIG.
|
||||
# EDIT THIS CONFIG ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
#autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hypr.land/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/$hyprdir/myColors.conf
|
||||
|
||||
# ADDED: convenience variables
|
||||
$hyprdir = .config/hypr
|
||||
$scriptsdir = $hyprdir/scripts
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
# ADDED: upped my 2nd monitor by 700 pixels to align with main; fixed main's position (it somehow becomes 3200x0 after changing 2nd monitor's position - I reset it back to 0x0)
|
||||
monitor = eDP-1,preferred,0x0,1,transform,0
|
||||
monitor = desc:Acer Technologies Acer XF240H 0x0160F332,preferred,1925x-900,1
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
# CHANGED: From kitty to konsole; from Rofi to Hyprshell
|
||||
$terminal = $scriptsdir/terminal.sh
|
||||
#$fileManager = dolphin
|
||||
$menu = $scriptsdir/toggle_hyprshell.sh
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# CHANGED: Enabled
|
||||
exec-once = $terminal
|
||||
# exec-once = nm-applet &flatpak run app.zen_browser.zen
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
# ADDED: Hyprshell, Vicinae; virtual keyboard, Hyprpanel; browser, Discord, Element, Obsidian; virtual keyboard state reset; volumekey daemon; Waydroid
|
||||
exec-once = hyprshell -c $hyprdir/hyprshell.ron -s $hyprdir/hyprshell.css run
|
||||
exec-once = vicinae server
|
||||
exec-once = wvkbd-deskintl --hidden -o
|
||||
exec-once = hyprpanel
|
||||
exec-once = flatpak run app.zen_browser.zen
|
||||
exec-once = flatpak run com.discordapp.Discord
|
||||
exec-once = flatpak run im.riot.Riot
|
||||
exec-once = flatpak run md.obsidian.Obsidian
|
||||
exec-once = $scriptsdir/keyboard.sh reset
|
||||
exec-once = $scriptsdir/volume-core.sh --start-daemon
|
||||
exec-once = $scriptsdir/waydroid.sh
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
# CHANGED: enabled defaults (grim, xdg-desktop-portal-hyprland, plugins and enforce_permissions)
|
||||
|
||||
ecosystem {
|
||||
enforce_permissions = 1
|
||||
}
|
||||
|
||||
permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
# ADDED: Hyprshell's plugin
|
||||
permission = /usr/bin/hyprshell, plugin, allow
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hypr.land/Configuring/Variables/
|
||||
|
||||
# ADDED: dark mode
|
||||
exec-once = gsettings set org.gnome.desktop.interface gtk-theme "Breeze-Dark" # for GTK3 apps
|
||||
exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
|
||||
# NOTE: a dark theme must be set in qt6ct
|
||||
env = QT_QPA_PLATFORMTHEME,qt6ct # for Qt apps
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 4
|
||||
gaps_out = 0, 8, 8, 8
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
|
||||
# CHANGED: My colors :)
|
||||
col.active_border = rgb(FFE610) rgb(E6FF10) 240deg
|
||||
col.inactive_border = rgba(FFE61020) rgba(E6FF10E0) 240deg
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true
|
||||
|
||||
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 15
|
||||
rounding_power = 3
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||
blur {
|
||||
# NOTE: Occasionally (when terminal breaks), this needs to be disabled (until I figure out how to get blur only on the background ALWAYS, without making all terminal text glow SOMETIMES)
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes#, please :)
|
||||
|
||||
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
|
||||
# NAME, X0, Y0, X1, Y1
|
||||
bezier = easeOutQuint, 0.23, 1, 0.32, 1
|
||||
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
|
||||
bezier = linear, 0, 0, 1, 1
|
||||
bezier = almostLinear, 0.5, 0.5, 0.75, 1
|
||||
bezier = quick, 0.15, 0, 0.1, 1
|
||||
|
||||
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
|
||||
# NAME, ONOFF, SPEED, CURVE, [STYLE]
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
animation = zoomFactor, 1, 7, quick
|
||||
# ADDED: make special workspaces slide in from the top (thx, https://github.com/hyprwm/Hyprland/discussions/1757#discussioncomment-8921961)
|
||||
animation = specialWorkspaceIn, 1, 2, easeInOutCubic, slidefadevert -50%
|
||||
animation = specialWorkspaceOut, 1, 2, easeInOutCubic, slidefadevert -50%
|
||||
}
|
||||
|
||||
# ADDED: My color palette for GTK apps
|
||||
exec-once = gsettings set org.gnome.desktop.interface gtk-color-palette "'black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90'"
|
||||
|
||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:w[tv1]
|
||||
# windowrule = bordersize 0, floating:0, onworkspace:f[1]
|
||||
# windowrule = rounding 0, floating:0, onworkspace:f[1]
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||
#dwindle {
|
||||
# pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
# preserve_split = true # You probably want this
|
||||
#}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#misc
|
||||
misc {
|
||||
#CHANGED: preferred wallpaper; Waydroid fix
|
||||
force_default_wallpaper = 2 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
size_limits_tiled = true #Waydroid needs this
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = pl
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options = fkeys:basic_13-24
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
}
|
||||
|
||||
# ADDED: Fix touch&pen mapping
|
||||
tablet {
|
||||
output = eDP-1
|
||||
transform = 0
|
||||
}
|
||||
touchdevice {
|
||||
output = eDP-1
|
||||
transform = 0
|
||||
}
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Gestures
|
||||
#gesture = 3, horizontal, workspace
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||
#device {
|
||||
# name = epic-mouse-v1
|
||||
# sensitivity = -0.5
|
||||
#}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||
bind = $mainMod, T, exec, $terminal # CHANGED: From Q to T
|
||||
# NOTE: This just means "close window"; no actual pkill involved
|
||||
bind = $mainMod, Q, killactive, # CHANGED: From C to Q
|
||||
bind = $mainMod, M, exit,
|
||||
#bind = $mainMod, E, exec, $fileManager
|
||||
#bind = $mainMod, V, togglefloating,
|
||||
# CHANGED: From R to SUPER_L
|
||||
bind = $mainMod, SUPER_L, exec, $menu
|
||||
#bind = $mainMod, P, pseudo, # dwindle
|
||||
#bind = $mainMod, J, togglesplit, # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
#bind = $mainMod, left, movefocus, l
|
||||
#bind = $mainMod, right, movefocus, r
|
||||
#bind = $mainMod, up, movefocus, u
|
||||
#bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
#bind = $mainMod, 1, workspace, 1
|
||||
#bind = $mainMod, 2, workspace, 2
|
||||
#bind = $mainMod, 3, workspace, 3
|
||||
#bind = $mainMod, 4, workspace, 4
|
||||
#bind = $mainMod, 5, workspace, 5
|
||||
#bind = $mainMod, 6, workspace, 6
|
||||
#bind = $mainMod, 7, workspace, 7
|
||||
#bind = $mainMod, 8, workspace, 8
|
||||
#bind = $mainMod, 9, workspace, 9
|
||||
#bind = $mainMod, 0, workspace, 10
|
||||
# ADDED: blank-screen workspace;
|
||||
bind = $mainMod, Z, exec, "$scriptsdir/hide.sh"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
#bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
#bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
#bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
#bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
#bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
#bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
#bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
#bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
#bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
#bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# CHANGED: Made my own special workspaces
|
||||
bind = $mainMod, X, togglespecialworkspace, terminal
|
||||
bind = $mainMod, A, togglespecialworkspace, browser
|
||||
bind = $mainMod, D, togglespecialworkspace, discord
|
||||
bind = $mainMod, C, togglespecialworkspace, element
|
||||
bind = $mainMod, S, togglespecialworkspace, obsidian
|
||||
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
# NOTE: This - for whatever reason - didn't work when the keyboard was detached. Also, it would suddenly jump by like... 50 presses if I presses the volume key in quick succession. So instead, I have a custom script for this now.
|
||||
#bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 1%+
|
||||
#bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 1%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
# ADDED: screenshots
|
||||
bind = , PRINT, exec, $scriptsdir/screenshot.sh --full
|
||||
bind = $mainMod, PRINT, exec, $scriptsdir/screenshot.sh
|
||||
bind = , F10, exec, $scriptsdir/screenshot.sh --full
|
||||
bind = $mainMod, F10, exec, $scriptsdir/screenshot.sh
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrule
|
||||
# windowrule = float,class:^(kitty)$,title:^(kitty)$
|
||||
|
||||
# Ignore maximize requests from apps. You'll probably like this.
|
||||
#windowrule = suppressevent maximize, class:.*
|
||||
|
||||
# Fix some dragging issues with XWayland
|
||||
#windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
|
||||
|
||||
# ADDED: Every new window (*also requires special treatment for MC windows) is a workspace of its own, except for special workspaces
|
||||
windowrule = match:class .*, match:float false, workspace emptym
|
||||
windowrule = match:class org.kde.konsole, workspace special:terminal silent
|
||||
windowrule = match:class app.zen_browser.zen, workspace special:browser silent
|
||||
windowrule = match:class discord, workspace special:discord silent
|
||||
windowrule = match:class im.riot.Riot, workspace special:element silent
|
||||
windowrule = match:class obsidian, workspace special:obsidian silent
|
||||
# ADDED: Minecraft (incl. modpacks having custom names - only Melatonin discovered so far) windows require special treatment to avoid being treated as floating
|
||||
windowrule = match:class Melatonin, workspace emptym, maximize on
|
||||
windowrule = match:class Minecraft.*, workspace emptym, maximize on
|
||||
|
||||
# ADDED: Lock Waydroid size (Android throws a hissy fit and explodes if you try to resize its „monitor” at runtime) - DISABLED, instead I just decided to make it fullscreen
|
||||
#windowrule = match:class Waydroid, max_size 1900 1221, min_size 1900 1221, tile on
|
||||
windowrule = match:class Waydroid, fullscreen on
|
||||
|
||||
# ADDED: window rules recommended by Vicinae
|
||||
#layerrule = blur,vicinae
|
||||
#layerrule = ignorealpha 0, vicinae
|
||||
#layerrule = noanim, vicinae
|
||||
|
||||
|
||||
#######################
|
||||
### ADDED: XWAYLAND ###
|
||||
#######################
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
|
||||
####################
|
||||
### ADDED: TOUCH ###
|
||||
####################
|
||||
|
||||
exec = hyprpm reload
|
||||
|
||||
plugin {
|
||||
touch_gestures {
|
||||
sensitivity = 4.0
|
||||
edge_margin = 50
|
||||
|
||||
hyprgrass-bind = , edge:d:u, exec, $scriptsdir/keyboard.sh --no-rotate
|
||||
hyprgrass-bind = , tap:3, exec, $menu -k
|
||||
}
|
||||
}
|
||||
|
||||
debug {
|
||||
#disable_logs = false
|
||||
}
|
||||
412
myhyprland.lua
412
myhyprland.lua
|
|
@ -1,412 +0,0 @@
|
|||
-------------------
|
||||
---- VARIABLES ----
|
||||
-------------------
|
||||
local hyprdir = ".config/hypr"
|
||||
local scripts = hyprdir.."/scripts"
|
||||
|
||||
-- Set programs that I use
|
||||
local terminal = scripts.."terminal.sh"
|
||||
local fileManager = "dolphin"
|
||||
local menu = scripts.."toggle-hyprshell.sh"
|
||||
|
||||
|
||||
------------------
|
||||
---- MONITORS ----
|
||||
------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||
|
||||
-- defaults
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = 1,
|
||||
mirror = "eDP-1",
|
||||
})
|
||||
|
||||
-- Main tablet screen
|
||||
hl.monitor({
|
||||
output = "eDP-1",
|
||||
mode = "preferred",
|
||||
position = "0x0",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
-- My monitor at home
|
||||
hl.monitor({
|
||||
output = "desc:Acer Technologies Acer XF240H 0x0160F332",
|
||||
mode = "preferred",
|
||||
position = "1925x-900",
|
||||
scale = 1,
|
||||
})
|
||||
|
||||
|
||||
-------------------
|
||||
---- AUTOSTART ----
|
||||
-------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||
|
||||
hl.on("hyprland.start", function ()
|
||||
-- Load plugins
|
||||
--hl.exec_cmd("hyprpm reload")
|
||||
|
||||
-- Special workspaces
|
||||
hl.exec_cmd(terminal)
|
||||
hl.exec_cmd("flatpak run app.zen_browser.zen")
|
||||
hl.exec_cmd("flatpak run com.discordapp.Discord")
|
||||
hl.exec_cmd("flatpak run im.riot.Riot")
|
||||
hl.exec_cmd("flatpak run md.obsidian.Obsidian")
|
||||
|
||||
-- Core daemons
|
||||
hl.exec_cmd("hyprshell -c "..hyprdir.."/hyprshell.ron -s "..hyprdir.."/hyprshell.css run")
|
||||
hl.exec_cmd("vicinae server")
|
||||
hl.exec_cmd("wvkbd-deskintl --hidden -o")
|
||||
hl.exec_cmd("hyprpanel")
|
||||
hl.exec_cmd(scripts.."keyboard.sh reset")
|
||||
hl.exec_cmd(scripts.."volume-core.sh --start-daemon")
|
||||
|
||||
-- Waydroid (note: this also launches rootedinit.sh under-the-hood)
|
||||
hl.exec_cmd(scripts.."waydroid.sh")
|
||||
|
||||
-- Dark theme
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface gtk-theme Breeze-Dark"); -- for GTK3 apps
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface color-scheme prefer-dark"); -- for GTK4 apps
|
||||
hl.exec_cmd("gsettings set org.gnome.desktop.interface gtk-color-palette \"'black:white:gray50:red:purple:blue:light blue:green:yellow:orange:lavender:brown:goldenrod4:dodger blue:pink:light green:gray10:gray30:gray75:gray90'\""); --Unrelated to Dark Theme (just my color palette), but there was no better place for it.
|
||||
end)
|
||||
|
||||
|
||||
-------------------------------
|
||||
---- ENVIRONMENT VARIABLES ----
|
||||
-------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||
|
||||
-- Were the defaults; no reason to fuck around
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
|
||||
-- Dark theme, again (*must set manually)
|
||||
hl.env("QT_QPA_PLATFORMTHEME", "qt6ct")
|
||||
|
||||
|
||||
-----------------------
|
||||
----- PERMISSIONS -----
|
||||
-----------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
||||
|
||||
hl.config({
|
||||
ecosystem = {
|
||||
enforce_permissions = true,
|
||||
},
|
||||
})
|
||||
|
||||
hl.permission({binary="/usr/(bin|local/bin)/grim", type="screencopy", mode="allow"})
|
||||
hl.permission({binary="/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", type="screencopy", mode="allow"})
|
||||
|
||||
hl.permission({binary="/usr/(bin|local/bin)/hyprpm", type="plugin", mode="allow"})
|
||||
hl.permission({binary="/usr/(bin|local/bin)/hyprshell", type="plugin", mode="allow"})
|
||||
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 4,
|
||||
gaps_out = {top=0, right=8, bottom=8, left=8},
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = {"rgb(FFE610)", "rgb(E6FF10)"}, angle = 240 },
|
||||
inactive_border = { colors = {"rgba(FFE61020)", "rgba(E6FF10E0)"}, angle = 240 },
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = true,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
|
||||
allow_tearing = false,
|
||||
|
||||
layout = "dwindle",
|
||||
},
|
||||
|
||||
decoration = {
|
||||
rounding = 15,
|
||||
rounding_power = 3,
|
||||
|
||||
-- Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true, --During the Lua migration, I noticed the following note attached in the previous config: „NOTE: Occasionally (when terminal breaks), this needs to be disabled (until I figure out how to get blur only on the background ALWAYS, without making all terminal text glow SOMETIMES)”. However, I don't think I experienced any „terminal glowing” problems in a long time (tho transparency still breaks on it from time to time), so ig this is no longer needed? Leaving the note in, just in case it does end up happening again.
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} }})
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} }})
|
||||
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} }})
|
||||
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} }})
|
||||
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} }})
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||
|
||||
-- Special workspaces slide-in from the top (thx, https://github.com/hyprwm/Hyprland/discussions/1757#discussioncomment-8921961)
|
||||
hl.animation({ leaf = "specialWorkspaceIn", enabled=true, speed=2, bezier="easeInOutCubic", style="slidefadevert -50%" })
|
||||
hl.animation({ leaf = "specialWorkspaceOut", enabled=true, speed=2, bezier="easeInOutCubic", style="slidefadevert -50%" })
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
|
||||
hl.config({
|
||||
dwindle = {
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
|
||||
hl.config({
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
|
||||
hl.config({
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = true,
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
--------------
|
||||
---- MISC ----
|
||||
--------------
|
||||
|
||||
hl.config({
|
||||
misc = {
|
||||
force_default_wallpaper = 2, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "pl",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "fkeys:basic_13-24",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = true,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
---------------------
|
||||
---- KEYBINDINGS ----
|
||||
---------------------
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + T", hl.dsp.exec_cmd(terminal))
|
||||
local closeWindowBind = hl.bind(mainMod .. " + Q", hl.dsp.window.close())
|
||||
-- closeWindowBind:set_enabled(false)
|
||||
hl.bind(mainMod .. " + M", hl.dsp.exit())
|
||||
hl.bind(mainMod, hl.dsp.exec_cmd(menu))
|
||||
|
||||
-- Quick-pad: Special workspaces + boss-key
|
||||
hl.bind(mainMod .. " + X", hl.dsp.workspace.toggle_special("terminal"))
|
||||
hl.bind(mainMod .. " + A", hl.dsp.workspace.toggle_special("browser"))
|
||||
hl.bind(mainMod .. " + D", hl.dsp.workspace.toggle_special("discord"))
|
||||
hl.bind(mainMod .. " + C", hl.dsp.workspace.toggle_special("element"))
|
||||
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("obsidian"))
|
||||
hl.bind(mainMod .. " + Z", hl.dsp.exec_cmd(scripts.."hide.sh"))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
-- Screenshots
|
||||
hl.bind("PRINT", hl.dsp.exec_cmd(scripts.."screenshot.sh"))
|
||||
hl.bind(mainMod.." + PRINT", hl.dsp.exec_cmd(scripts.."screenshot.sh --full"))
|
||||
|
||||
|
||||
--------------------------------
|
||||
---- WINDOWS AND WORKSPACES ----
|
||||
--------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
|
||||
-- Example window rules that are useful
|
||||
|
||||
local suppressMaximizeRule = hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
suppressMaximizeRule:set_enabled(false) -- ...No, I won't. I run everything as exclusive-window-per-workspace anyway, so I'm not worried about „Windows deciding to take up all my space” (I literally do that). All this will do is cause de-syncs (especially in client-side decorated apps, like all the crapware made in GTK) for exactly 0 benefit.
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
-- Hyprland-run windowrule
|
||||
hl.window_rule({
|
||||
name = "move-hyprland-run",
|
||||
match = { class = "hyprland-run" },
|
||||
move = "20 monitor_h-120",
|
||||
float = true,
|
||||
})
|
||||
|
||||
-- My rules
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-default",
|
||||
match = {
|
||||
class = ".*",
|
||||
float = false
|
||||
},
|
||||
workspace = "emptym"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-terminal",
|
||||
match = { class = "org.kde.konsole" },
|
||||
workspace = "special:terminal"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-browser",
|
||||
match = { class = "app.zen_browser.zen" },
|
||||
workspace = "special:browser silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-discord",
|
||||
match = { class = "discord" },
|
||||
workspace = "special:discord silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-element",
|
||||
match = { class = "im.riot.Riot" },
|
||||
workspace = "special:element silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-special-obsidian",
|
||||
match = { class = "obsidian" },
|
||||
workspace = "special:obsidian silent"
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-minecraft-default",
|
||||
match = { class = "Minecraft.*" },
|
||||
workspace = "emptym",
|
||||
maximize = true
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-minecraft-modpack-melatonin",
|
||||
match = { class = "Melatonin" },
|
||||
workspace = "emptym",
|
||||
maximize = true
|
||||
})
|
||||
|
||||
hl.window_rule({
|
||||
name = "onwinopen-override-waydroid",
|
||||
match = { class = "Waydroid" },
|
||||
fullscreen = true
|
||||
})
|
||||
|
||||
|
||||
-------------------
|
||||
---- HYPRGRASS ----
|
||||
-------------------
|
||||
|
||||
--hl.plugin.touch_gestures = {
|
||||
-- sensitivity = 4.0,
|
||||
-- edge_margin = 50,
|
||||
-- ["hyprgrass-bind"] = ", edge:d:u, exec, $scriptsdir/keyboard.sh --no-rotate",
|
||||
-- ["hyprgrass-bind"] = ", tap:3, exec, $menu -k"
|
||||
--}
|
||||
340
ohyprland.conf
340
ohyprland.conf
|
|
@ -1,340 +0,0 @@
|
|||
# This is an example Hyprland config file.
|
||||
# Refer to the wiki for more information.
|
||||
# https://wiki.hypr.land/Configuring/
|
||||
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
|
||||
# You can split this configuration into multiple files
|
||||
# Create your files separately and then link them to this file like this:
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
|
||||
################
|
||||
### MONITORS ###
|
||||
################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Monitors/
|
||||
monitor=,preferred,auto,auto
|
||||
|
||||
|
||||
###################
|
||||
### MY PROGRAMS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = hyprlauncher
|
||||
|
||||
|
||||
#################
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
# exec-once = $terminal
|
||||
# exec-once = nm-applet &
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
|
||||
|
||||
#############################
|
||||
### ENVIRONMENT VARIABLES ###
|
||||
#############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Environment-variables/
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Permissions/
|
||||
# Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
# for security reasons
|
||||
|
||||
# ecosystem {
|
||||
# enforce_permissions = 1
|
||||
# }
|
||||
|
||||
# permission = /usr/(bin|local/bin)/grim, screencopy, allow
|
||||
# permission = /usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland, screencopy, allow
|
||||
# permission = /usr/(bin|local/bin)/hyprpm, plugin, allow
|
||||
|
||||
|
||||
#####################
|
||||
### LOOK AND FEEL ###
|
||||
#####################
|
||||
|
||||
# Refer to https://wiki.hypr.land/Configuring/Variables/
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#general
|
||||
general {
|
||||
gaps_in = 5
|
||||
gaps_out = 20
|
||||
|
||||
border_size = 2
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
|
||||
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
|
||||
col.inactive_border = rgba(595959aa)
|
||||
|
||||
# Set to true enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false
|
||||
|
||||
# Please see https://wiki.hypr.land/Configuring/Tearing/ before you turn this on
|
||||
allow_tearing = false
|
||||
|
||||
layout = dwindle
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#decoration
|
||||
decoration {
|
||||
rounding = 10
|
||||
rounding_power = 2
|
||||
|
||||
# Change transparency of focused and unfocused windows
|
||||
active_opacity = 1.0
|
||||
inactive_opacity = 1.0
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#blur
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
|
||||
vibrancy = 0.1696
|
||||
}
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#animations
|
||||
animations {
|
||||
enabled = yes, please :)
|
||||
|
||||
# Default curves, see https://wiki.hypr.land/Configuring/Animations/#curves
|
||||
# NAME, X0, Y0, X1, Y1
|
||||
bezier = easeOutQuint, 0.23, 1, 0.32, 1
|
||||
bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1
|
||||
bezier = linear, 0, 0, 1, 1
|
||||
bezier = almostLinear, 0.5, 0.5, 0.75, 1
|
||||
bezier = quick, 0.15, 0, 0.1, 1
|
||||
|
||||
# Default animations, see https://wiki.hypr.land/Configuring/Animations/
|
||||
# NAME, ONOFF, SPEED, CURVE, [STYLE]
|
||||
animation = global, 1, 10, default
|
||||
animation = border, 1, 5.39, easeOutQuint
|
||||
animation = windows, 1, 4.79, easeOutQuint
|
||||
animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
|
||||
animation = windowsOut, 1, 1.49, linear, popin 87%
|
||||
animation = fadeIn, 1, 1.73, almostLinear
|
||||
animation = fadeOut, 1, 1.46, almostLinear
|
||||
animation = fade, 1, 3.03, quick
|
||||
animation = layers, 1, 3.81, easeOutQuint
|
||||
animation = layersIn, 1, 4, easeOutQuint, fade
|
||||
animation = layersOut, 1, 1.5, linear, fade
|
||||
animation = fadeLayersIn, 1, 1.79, almostLinear
|
||||
animation = fadeLayersOut, 1, 1.39, almostLinear
|
||||
animation = workspaces, 1, 1.94, almostLinear, fade
|
||||
animation = workspacesIn, 1, 1.21, almostLinear, fade
|
||||
animation = workspacesOut, 1, 1.94, almostLinear, fade
|
||||
animation = zoomFactor, 1, 7, quick
|
||||
}
|
||||
|
||||
# Ref https://wiki.hypr.land/Configuring/Workspace-Rules/
|
||||
# "Smart gaps" / "No gaps when only"
|
||||
# uncomment all if you wish to use that.
|
||||
# workspace = w[tv1], gapsout:0, gapsin:0
|
||||
# workspace = f[1], gapsout:0, gapsin:0
|
||||
# windowrule {
|
||||
# name = no-gaps-wtv1
|
||||
# match:float = false
|
||||
# match:workspace = w[tv1]
|
||||
#
|
||||
# border_size = 0
|
||||
# rounding = 0
|
||||
# }
|
||||
#
|
||||
# windowrule {
|
||||
# name = no-gaps-f1
|
||||
# match:float = false
|
||||
# match:workspace = f[1]
|
||||
#
|
||||
# border_size = 0
|
||||
# rounding = 0
|
||||
# }
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Dwindle-Layout/ for more
|
||||
dwindle {
|
||||
preserve_split = true # You probably want this
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Master-Layout/ for more
|
||||
master {
|
||||
new_status = master
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#misc
|
||||
misc {
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
|
||||
}
|
||||
|
||||
|
||||
#############
|
||||
### INPUT ###
|
||||
#############
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#input
|
||||
input {
|
||||
kb_layout = us
|
||||
kb_variant =
|
||||
kb_model =
|
||||
kb_options =
|
||||
kb_rules =
|
||||
|
||||
follow_mouse = 1
|
||||
|
||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad {
|
||||
natural_scroll = false
|
||||
}
|
||||
}
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Gestures
|
||||
gesture = 3, horizontal, workspace
|
||||
|
||||
# Example per-device config
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/#per-device-input-configs for more
|
||||
device {
|
||||
name = epic-mouse-v1
|
||||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
|
||||
###################
|
||||
### KEYBINDINGS ###
|
||||
###################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Keywords/
|
||||
$mainMod = SUPER # Sets "Windows" key as main modifier
|
||||
|
||||
# Example binds, see https://wiki.hypr.land/Configuring/Binds/ for more
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, J, layoutmsg, togglesplit # dwindle
|
||||
|
||||
# Move focus with mainMod + arrow keys
|
||||
bind = $mainMod, left, movefocus, l
|
||||
bind = $mainMod, right, movefocus, r
|
||||
bind = $mainMod, up, movefocus, u
|
||||
bind = $mainMod, down, movefocus, d
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
bind = $mainMod, 7, workspace, 7
|
||||
bind = $mainMod, 8, workspace, 8
|
||||
bind = $mainMod, 9, workspace, 9
|
||||
bind = $mainMod, 0, workspace, 10
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
bind = $mainMod, S, togglespecialworkspace, magic
|
||||
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
bind = $mainMod, mouse_up, workspace, e-1
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Laptop multimedia keys for volume and LCD brightness
|
||||
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
bindl = , XF86AudioPause, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bindl = , XF86AudioPrev, exec, playerctl previous
|
||||
|
||||
##############################
|
||||
### WINDOWS AND WORKSPACES ###
|
||||
##############################
|
||||
|
||||
# See https://wiki.hypr.land/Configuring/Window-Rules/ for more
|
||||
# See https://wiki.hypr.land/Configuring/Workspace-Rules/ for workspace rules
|
||||
|
||||
# Example windowrules that are useful
|
||||
|
||||
windowrule {
|
||||
# Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = suppress-maximize-events
|
||||
match:class = .*
|
||||
|
||||
suppress_event = maximize
|
||||
}
|
||||
|
||||
windowrule {
|
||||
# Fix some dragging issues with XWayland
|
||||
name = fix-xwayland-drags
|
||||
match:class = ^$
|
||||
match:title = ^$
|
||||
match:xwayland = true
|
||||
match:float = true
|
||||
match:fullscreen = false
|
||||
match:pin = false
|
||||
|
||||
no_focus = true
|
||||
}
|
||||
|
||||
# Hyprland-run windowrule
|
||||
windowrule {
|
||||
name = move-hyprland-run
|
||||
|
||||
match:class = hyprland-run
|
||||
|
||||
move = 20 monitor_h-120
|
||||
float = yes
|
||||
}
|
||||
356
ohyprland.lua
356
ohyprland.lua
|
|
@ -1,356 +0,0 @@
|
|||
-- This is an example Hyprland Lua config file.
|
||||
-- Refer to the wiki for more information.
|
||||
-- https://wiki.hypr.land/Configuring/Start/
|
||||
|
||||
-- Please note not all available settings / options are set here.
|
||||
-- For a full list, see the wiki
|
||||
|
||||
-- You can (and should!!) split this configuration into multiple files
|
||||
-- Create your files separately and then require them like this:
|
||||
-- require("myColors")
|
||||
|
||||
|
||||
------------------
|
||||
---- MONITORS ----
|
||||
------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
|
||||
hl.monitor({
|
||||
output = "",
|
||||
mode = "preferred",
|
||||
position = "auto",
|
||||
scale = "auto",
|
||||
})
|
||||
|
||||
|
||||
---------------------
|
||||
---- MY PROGRAMS ----
|
||||
---------------------
|
||||
|
||||
-- Set programs that you use
|
||||
local terminal = "konsole"
|
||||
local fileManager = "dolphin"
|
||||
local menu = "hyprlauncher"
|
||||
|
||||
|
||||
-------------------
|
||||
---- AUTOSTART ----
|
||||
-------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
|
||||
|
||||
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
-- Or execute your favorite apps at launch like this:
|
||||
--
|
||||
-- hl.on("hyprland.start", function ()
|
||||
-- hl.exec_cmd(terminal)
|
||||
-- hl.exec_cmd("nm-applet")
|
||||
-- hl.exec_cmd("waybar & hyprpaper & firefox")
|
||||
-- end)
|
||||
|
||||
|
||||
-------------------------------
|
||||
---- ENVIRONMENT VARIABLES ----
|
||||
-------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
|
||||
|
||||
hl.env("XCURSOR_SIZE", "24")
|
||||
hl.env("HYPRCURSOR_SIZE", "24")
|
||||
|
||||
|
||||
-----------------------
|
||||
----- PERMISSIONS -----
|
||||
-----------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
|
||||
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
|
||||
-- for security reasons
|
||||
|
||||
-- hl.config({
|
||||
-- ecosystem = {
|
||||
-- enforce_permissions = true,
|
||||
-- },
|
||||
-- })
|
||||
|
||||
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
|
||||
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
|
||||
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
|
||||
|
||||
|
||||
-----------------------
|
||||
---- LOOK AND FEEL ----
|
||||
-----------------------
|
||||
|
||||
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
|
||||
hl.config({
|
||||
general = {
|
||||
gaps_in = 5,
|
||||
gaps_out = 20,
|
||||
|
||||
border_size = 2,
|
||||
|
||||
col = {
|
||||
active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
|
||||
inactive_border = "rgba(595959aa)",
|
||||
},
|
||||
|
||||
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
|
||||
resize_on_border = false,
|
||||
|
||||
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/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.0,
|
||||
inactive_opacity = 1.0,
|
||||
|
||||
shadow = {
|
||||
enabled = true,
|
||||
range = 4,
|
||||
render_power = 3,
|
||||
color = 0xee1a1a1a,
|
||||
},
|
||||
|
||||
blur = {
|
||||
enabled = true,
|
||||
size = 3,
|
||||
passes = 1,
|
||||
vibrancy = 0.1696,
|
||||
},
|
||||
},
|
||||
|
||||
animations = {
|
||||
enabled = true,
|
||||
},
|
||||
})
|
||||
|
||||
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
|
||||
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
|
||||
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
|
||||
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
|
||||
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
|
||||
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
|
||||
|
||||
-- Default springs
|
||||
hl.curve("easy", { type = "spring", mass = 1, stiffness = 71.2633, dampening = 15.8273644 })
|
||||
|
||||
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
|
||||
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
|
||||
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
|
||||
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
|
||||
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
|
||||
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
|
||||
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
|
||||
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
|
||||
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
|
||||
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
|
||||
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
|
||||
|
||||
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
-- "Smart gaps" / "No gaps when only"
|
||||
-- uncomment all if you wish to use that.
|
||||
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
|
||||
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
|
||||
-- hl.window_rule({
|
||||
-- name = "no-gaps-wtv1",
|
||||
-- match = { float = false, workspace = "w[tv1]" },
|
||||
-- border_size = 0,
|
||||
-- rounding = 0,
|
||||
-- })
|
||||
-- hl.window_rule({
|
||||
-- name = "no-gaps-f1",
|
||||
-- match = { float = false, workspace = "f[1]" },
|
||||
-- border_size = 0,
|
||||
-- rounding = 0,
|
||||
-- })
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
|
||||
hl.config({
|
||||
dwindle = {
|
||||
preserve_split = true, -- You probably want this
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
|
||||
hl.config({
|
||||
master = {
|
||||
new_status = "master",
|
||||
},
|
||||
})
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
|
||||
hl.config({
|
||||
scrolling = {
|
||||
fullscreen_on_one_column = true,
|
||||
},
|
||||
})
|
||||
|
||||
----------------
|
||||
---- MISC ----
|
||||
----------------
|
||||
|
||||
hl.config({
|
||||
misc = {
|
||||
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
---------------
|
||||
---- INPUT ----
|
||||
---------------
|
||||
|
||||
hl.config({
|
||||
input = {
|
||||
kb_layout = "us",
|
||||
kb_variant = "",
|
||||
kb_model = "",
|
||||
kb_options = "",
|
||||
kb_rules = "",
|
||||
|
||||
follow_mouse = 1,
|
||||
|
||||
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
|
||||
|
||||
touchpad = {
|
||||
natural_scroll = false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
hl.gesture({
|
||||
fingers = 3,
|
||||
direction = "horizontal",
|
||||
action = "workspace"
|
||||
})
|
||||
|
||||
-- Example per-device config
|
||||
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
|
||||
hl.device({
|
||||
name = "epic-mouse-v1",
|
||||
sensitivity = -0.5,
|
||||
})
|
||||
|
||||
|
||||
---------------------
|
||||
---- KEYBINDINGS ----
|
||||
---------------------
|
||||
|
||||
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
|
||||
|
||||
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
|
||||
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
|
||||
local closeWindowBind = hl.bind(mainMod .. " + C", hl.dsp.window.close())
|
||||
-- closeWindowBind:set_enabled(false)
|
||||
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
|
||||
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
|
||||
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
|
||||
hl.bind(mainMod .. " + R", hl.dsp.exec_cmd(menu))
|
||||
hl.bind(mainMod .. " + P", hl.dsp.window.pseudo())
|
||||
hl.bind(mainMod .. " + J", hl.dsp.layout("togglesplit")) -- dwindle only
|
||||
|
||||
-- Move focus with mainMod + arrow keys
|
||||
hl.bind(mainMod .. " + left", hl.dsp.focus({ direction = "left" }))
|
||||
hl.bind(mainMod .. " + right", hl.dsp.focus({ direction = "right" }))
|
||||
hl.bind(mainMod .. " + up", hl.dsp.focus({ direction = "up" }))
|
||||
hl.bind(mainMod .. " + down", hl.dsp.focus({ direction = "down" }))
|
||||
|
||||
-- Switch workspaces with mainMod + [0-9]
|
||||
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
|
||||
for i = 1, 10 do
|
||||
local key = i % 10 -- 10 maps to key 0
|
||||
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
|
||||
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
|
||||
end
|
||||
|
||||
-- Example special workspace (scratchpad)
|
||||
hl.bind(mainMod .. " + S", hl.dsp.workspace.toggle_special("magic"))
|
||||
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
|
||||
|
||||
-- Scroll through existing workspaces with mainMod + scroll
|
||||
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
|
||||
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
|
||||
|
||||
-- Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
|
||||
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
|
||||
|
||||
-- Laptop multimedia keys for volume and LCD brightness
|
||||
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
|
||||
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
|
||||
|
||||
-- Requires playerctl
|
||||
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
|
||||
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
|
||||
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
|
||||
|
||||
|
||||
--------------------------------
|
||||
---- WINDOWS AND WORKSPACES ----
|
||||
--------------------------------
|
||||
|
||||
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
|
||||
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
|
||||
|
||||
-- Example window rules that are useful
|
||||
|
||||
local suppressMaximizeRule = hl.window_rule({
|
||||
-- Ignore maximize requests from all apps. You'll probably like this.
|
||||
name = "suppress-maximize-events",
|
||||
match = { class = ".*" },
|
||||
|
||||
suppress_event = "maximize",
|
||||
})
|
||||
-- suppressMaximizeRule:set_enabled(false)
|
||||
|
||||
hl.window_rule({
|
||||
-- Fix some dragging issues with XWayland
|
||||
name = "fix-xwayland-drags",
|
||||
match = {
|
||||
class = "^$",
|
||||
title = "^$",
|
||||
xwayland = true,
|
||||
float = true,
|
||||
fullscreen = false,
|
||||
pin = false,
|
||||
},
|
||||
|
||||
no_focus = true,
|
||||
})
|
||||
|
||||
-- Layer rules also return a handle.
|
||||
-- local overlayLayerRule = hl.layer_rule({
|
||||
-- name = "no-anim-overlay",
|
||||
-- match = { namespace = "^my-overlay$" },
|
||||
-- no_anim = true,
|
||||
-- })
|
||||
-- overlayLayerRule:set_enabled(false)
|
||||
|
||||
-- Hyprland-run windowrule
|
||||
hl.window_rule({
|
||||
name = "move-hyprland-run",
|
||||
match = { class = "hyprland-run" },
|
||||
|
||||
move = "20 monitor_h-120",
|
||||
float = true,
|
||||
})
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ "$(hyprctl activewindow)" = "Invalid" ]; then
|
||||
echo "empty";
|
||||
else
|
||||
hyprctl activewindow -j | jq -r .workspace.name | grep special >> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "special";
|
||||
else
|
||||
echo "normal"
|
||||
fi
|
||||
fi
|
||||
|
||||
exit 0;
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
#!/bin/sh
|
||||
SCRIPT_THIS="$(realpath "$0")"
|
||||
SCRIPT_GETTER="$(dirname "$SCRIPT_THIS")/get_active_workspace.sh"
|
||||
|
||||
RESTORE_TARGET="2"
|
||||
RESTORE_TARGET_SPECIAL="DO_NOT_RESTORE_ANY_SPECIAL_WORKSPACES"
|
||||
|
||||
ACTIVE_WORKSPACE="$("$SCRIPT_GETTER")"
|
||||
if [ "$ACTIVE_WORKSPACE" = "empty" ]; then
|
||||
hyprctl dispatch "hl.dsp.focus({workspace=\"$RESTORE_TARGET\"})"
|
||||
#hyprctl notify 3 6000 000 "hl.dsp.focus({workspace=\"$RESTORE_TARGET\"})"
|
||||
if [ "$RESTORE_TARGET_SPECIAL" != "DO_NOT_RESTORE_ANY_SPECIAL_WORKSPACES" ]; then
|
||||
hyprctl dispatch "hl.dsp.workspace.toggle_special(\"$RESTORE_TARGET_SPECIAL\")"
|
||||
#hyprctl notify 3 6000 000 "hl.dsp.workspace.toggle_special(\"$RESTORE_TARGET_SPECIAL\")"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$ACTIVE_WORKSPACE" = "special" ]; then
|
||||
SPECIAL_WS_NAME="$(hyprctl activewindow -j | jq -r .workspace.name)"
|
||||
SPECIAL_WS_NAME="${SPECIAL_WS_NAME#"special:"}"
|
||||
UNDERLYING_WS_ID="$(hyprctl -j monitors | jq --argjson monitorid "$(hyprctl activewindow -j | jq -r .monitor)" ".[] | select(.id == \$monitorid) | .activeWorkspace.id")"
|
||||
|
||||
sed -i "s/RESTORE_TARGET=\"$RESTORE_TARGET\"/RESTORE_TARGET=\"$UNDERLYING_WS_ID\"/" "$SCRIPT_THIS"
|
||||
sed -i "s/RESTORE_TARGET_SPECIAL=\"$RESTORE_TARGET_SPECIAL\"/RESTORE_TARGET_SPECIAL=\"$SPECIAL_WS_NAME\"/" "$SCRIPT_THIS"
|
||||
|
||||
hyprctl dispatch "hl.dsp.workspace.toggle_special(\"$SPECIAL_WS_NAME\")"
|
||||
#hyprctl notify 3 6000 000 "hl.dsp.workspace.toggle_special(\"$SPECIAL_WS_NAME\")"
|
||||
hyprctl dispatch "hl.dsp.focus({workspace=\"emptynm\"})"
|
||||
#hyprctl notify 3 6000 000 "hl.dsp.focus({workspace=\"emptynm\"})"
|
||||
|
||||
|
||||
elif [ "$ACTIVE_WORKSPACE" = "normal" ]; then
|
||||
sed -i "s/RESTORE_TARGET=\"$RESTORE_TARGET\"/RESTORE_TARGET=\"$(hyprctl activewindow -j | jq -r .workspace.name)\"/" "$SCRIPT_THIS"
|
||||
sed -i "s/RESTORE_TARGET_SPECIAL=\"$RESTORE_TARGET_SPECIAL\"/RESTORE_TARGET_SPECIAL=\"DO_NOT_RESTORE_ANY_SPECIAL_WORKSPACES\"/" "$SCRIPT_THIS"
|
||||
hyprctl dispatch "hl.dsp.focus({workspace=\"emptynm\"})"
|
||||
#hyprctl notify 3 6000 000 "hl.dsp.focus({workspace=\"emptynm\"})"
|
||||
|
||||
else
|
||||
hyprctl notify 3 1000 000 "Error: Unknown workspace state \"$ACTIVE_WORKSPACE\".";
|
||||
exit 1;
|
||||
fi
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Bluetooth Settings
|
||||
Comment=Open Hyprpanel's Bluetooth menu
|
||||
Exec=hyprpanel t bluetoothmenu
|
||||
Terminal=false
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Hyprpanel Settings
|
||||
Comment=Open Hyprpanel's Settings menu
|
||||
Exec=hyprpanel t settings-dialog
|
||||
Terminal=false
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=WiFi Settings
|
||||
Comment=Open Hyprpanel's WiFi menu
|
||||
Exec=hyprpanel t networkmenu
|
||||
Terminal=false
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
PERMS="555"
|
||||
elif [ "$1" = "--editable" ] || [ "$1" = "-e" ]; then
|
||||
PERMS="777"
|
||||
else
|
||||
echo "Usage: $0 [--editable|-e]";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ -z "$HOME" ]; then
|
||||
echo "Script unusable by homeless users. ;-P";
|
||||
echo "Set your \$HOME envar (or have your shell do it for you, like on every normal distro) and try again.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
DIR="$HOME/.config/hypr/scripts"
|
||||
|
||||
if [ "$(realpath "$DIR/$(basename "$0")")" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
echo "Installing...";
|
||||
ln -vrs "$DIR"/*.desktop "$HOME/.local/share/applications/"
|
||||
ln -vrs "$HOME/.config/hypr/hyprpanel" "$HOME/.config/"
|
||||
chmod --verbose $PERMS "$DIR"/*.sh
|
||||
xdg-mime default open_folder.desktop inode/directory
|
||||
echo "Done!";
|
||||
exit 0;
|
||||
|
|
@ -1,94 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
IS_ACTIVE="false"
|
||||
SCRIPT_LOCATION="$(realpath "$0")"
|
||||
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
if [ $IS_ACTIVE = "true" ]; then
|
||||
"$SCRIPT_LOCATION" hide;
|
||||
else
|
||||
"$SCRIPT_LOCATION" show;
|
||||
fi
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
|
||||
if [ "$1" == "--no-rotate" ]; then
|
||||
if [ $IS_ACTIVE = "true" ]; then
|
||||
"$SCRIPT_LOCATION" hide --no-rotate;
|
||||
else
|
||||
"$SCRIPT_LOCATION" show --no-rotate;
|
||||
fi
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
if [ "$1" == "hide" ]; then
|
||||
killall -s SIGUSR1 wvkbd-deskintl;
|
||||
"$SCRIPT_LOCATION" reset;
|
||||
if [ -z "$2" ]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,0
|
||||
hyprctl keyword input:tablet:transform 0
|
||||
hyprctl keyword input:touchdevice:transform 0
|
||||
exit 0;
|
||||
elif [ "$2" == "--no-rotate" ]; then
|
||||
exit 0;
|
||||
else
|
||||
echo "Unknown flag: $2";
|
||||
fi
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ "$1" == "show" ]; then
|
||||
killall -s SIGUSR2 wvkbd-deskintl;
|
||||
sed -i "s/IS_ACTIVE=\"false\"/IS_ACTIVE=\"true\"/" "$SCRIPT_LOCATION";
|
||||
if [ -z "$2" ]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,1
|
||||
hyprctl keyword input:tablet:transform 1
|
||||
hyprctl keyword input:touchdevice:transform 1
|
||||
exit 0;
|
||||
elif [ "$2" == "--no-rotate" ]; then
|
||||
exit 0;
|
||||
else
|
||||
echo "Unknown flag: $2";
|
||||
fi
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ "$1" == "json" ]; then
|
||||
if [ $IS_ACTIVE = "true" ]; then
|
||||
STATE="active"
|
||||
ACTION="Hide"
|
||||
ACTION_PL="Ukryj"
|
||||
else
|
||||
STATE="hidden"
|
||||
ACTION="Show"
|
||||
ACTION_PL="Pokaż"
|
||||
fi
|
||||
echo "{\"state\":\"${STATE}\",\"alt\":\"${ACTION}\",\"action\":{\"en\":\"${ACTION}\",\"pl\":\"${ACTION_PL}\"}}";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
if [ "$1" == "status" ]; then
|
||||
if [ $IS_ACTIVE = "true" ]; then
|
||||
echo "active";
|
||||
else
|
||||
echo "hidden";
|
||||
fi
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
if [ "$1" == "reset" ]; then
|
||||
sed -i "s/IS_ACTIVE=\"true\"/IS_ACTIVE=\"false\"/" "$SCRIPT_LOCATION";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
|
||||
if [ "$1" == "help" ]; then
|
||||
echo "params: --no-rotate|hide [--no-rotate]|show [--no-rotate]|json|status|reset|help";
|
||||
echo "no param: toggle";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
echo "Unknown command \"${SCRIPT_LOCATION} $1\", use \"${SCRIPT_LOCATION} help\" for help.";
|
||||
exit 1;
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Terminal Folder Opener
|
||||
Comment=Open a terminal in the selected folder
|
||||
Exec=/home/guzio/.config/hypr/scripts/terminal.sh %f
|
||||
MimeType=inode/directory
|
||||
Terminal=false
|
||||
|
||||
# Please replace /home/guzio/ with your actual $HOME path!!!
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
#!/bin/sh
|
||||
# from volume-root.sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
DIR="$HOME/.config/hypr/scripts"
|
||||
SELF="$(realpath "$DIR/$(basename "$0")")"
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
else
|
||||
if [ "root" != "$USER" ]; then
|
||||
echo "Only root are allowed to arbitrarily specify the directory.";
|
||||
exit 1;
|
||||
fi
|
||||
DIR=$1
|
||||
SELF="Something went horribly wrong! You were assumed to be root in one check, but non-root by the next one.";
|
||||
fi
|
||||
|
||||
if [ "root" != "$USER" ]; then
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
exec sudo "$SELF" "$DIR";
|
||||
echo "NOTE: You should never see this message!"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# custom logic for rootedinit.sh
|
||||
USRDIR="$DIR/../../.."
|
||||
iptables -P FORWARD ACCEPT #Or Waydroid won't have internet access; iptables-save didn't work for some reason
|
||||
mount -Bv "$USRDIR/Obrazy" "$USRDIR/.local/share/waydroid/data/media/0/Pictures"
|
||||
mount -Bv "$USRDIR/Obrazy" "$USRDIR/.local/share/waydroid/data/media/0/DCIM"
|
||||
mount -Bv "$USRDIR/Dokumenty" "$USRDIR/.local/share/waydroid/data/media/0/Documents"
|
||||
mount -Bv "$USRDIR/Pobrane" "$USRDIR/.local/share/waydroid/data/media/0/Download"
|
||||
mount -Bv "$USRDIR/.config" "$USRDIR/.local/share/waydroid/data/media/0/Source OS/conf"
|
||||
mount -Bv "$USRDIR/.var/app" "$USRDIR/.local/share/waydroid/data/media/0/Source OS/flatpak"
|
||||
swapon /dev/nvme0n1p3 #Unrelated to Waydroid, but this is probably the least awkward place to lazily put it
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
ORIENTATION="$(head -n1 <(monitor-sensor --accel | grep --line-buffered -Eo "normal|left-up|bottom-up|right-up"))"
|
||||
|
||||
hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
"$(dirname "$(realpath "$0")")/waydroid-root.sh" "rotate-$ORIENTATION"
|
||||
ORIENTATION="normal"
|
||||
fi
|
||||
|
||||
if [[ "$ORIENTATION" == "normal" ]]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,0
|
||||
hyprctl keyword input:tablet:transform 0
|
||||
hyprctl keyword input:touchdevice:transform 0
|
||||
elif [[ "$ORIENTATION" == "left-up" ]]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,1
|
||||
hyprctl keyword input:tablet:transform 1
|
||||
hyprctl keyword input:touchdevice:transform 1
|
||||
elif [[ "$ORIENTATION" == "bottom-up" ]]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,2
|
||||
hyprctl keyword input:tablet:transform 2
|
||||
hyprctl keyword input:touchdevice:transform 2
|
||||
elif [[ "$ORIENTATION" == "right-up" ]]; then
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,3
|
||||
hyprctl keyword input:tablet:transform 3
|
||||
hyprctl keyword input:touchdevice:transform 3
|
||||
else
|
||||
hyprctl notify 3 1000 000 "Unknown orientation: $ORIENTATION. Resetting to normal."
|
||||
hyprctl keyword monitor eDP-1,preferred,0x0,1,transform,0
|
||||
hyprctl keyword input:tablet:transform 0
|
||||
hyprctl keyword input:touchdevice:transform 0
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
killall monitor-sensor
|
||||
|
||||
exit 0;
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
KILLED=false
|
||||
if pgrep satty; then
|
||||
killall satty
|
||||
KILLED=true
|
||||
fi
|
||||
|
||||
if [ -z $1 ]; then
|
||||
:
|
||||
elif [ $1 = "--button" ]; then
|
||||
if [ $KILLED = "true" ]; then
|
||||
exit 0;
|
||||
else
|
||||
set -- "$2";
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
grim -w "$(hyprctl activewindow -j | jq -r .address)" - | satty --filename -
|
||||
elif [ "$1" = "--full" ]; then
|
||||
grim - | satty --filename -
|
||||
else
|
||||
echo "Usage: $0 [--button] [--full]";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
exit 0;
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Kill WayDroid Session
|
||||
Comment=Kills a WayDroid Session
|
||||
Exec=waydroid session stop
|
||||
Terminal=true
|
||||
|
||||
# Please replace /home/guzio/ with your actual $HOME path!!!
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
konsole --new-tab --workdir $HOME
|
||||
exit 0;
|
||||
fi
|
||||
konsole --new-tab --workdir $1
|
||||
hyprctl dispatch "hl.dsp.workspace.toggle_special(\"terminal\")"
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
SCRIPTDIR="$(dirname "$(realpath "$0")")"
|
||||
|
||||
if hyprctl layers|grep hyprshell; then
|
||||
wtype -k escape
|
||||
else
|
||||
hyprshell socat '"OpenOverview"'
|
||||
|
||||
hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
hyprctl dispatch "hl.dsp.workspace.toggle_special(\"waydroid\")"
|
||||
fi
|
||||
|
||||
if [ "$1" = "-k" ] && [ "$("$SCRIPTDIR"/keyboard.sh status)" != "active" ]; then
|
||||
"$SCRIPTDIR"/keyboard.sh show --no-rotate
|
||||
while hyprctl layers|grep hyprshell; do
|
||||
sleep 0.1;
|
||||
done
|
||||
"$SCRIPTDIR"/keyboard.sh hide --no-rotate
|
||||
fi
|
||||
fi
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
SCRIPT_THIS="$(realpath "$0")"
|
||||
SCRIPT_ROOT="$(dirname "$SCRIPT_THIS")/volume-root.sh"
|
||||
SCRIPT_ROOT_WD="$(dirname "$SCRIPT_THIS")/waydroid-root.sh"
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
:
|
||||
elif [ "$1" = "115" ]; then
|
||||
# „Always control volume on the Linux side” flow commented out and waiting for a better day, because waydroid-root.sh reset-volume is broken (see waydroid-root.sh for details)
|
||||
#hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
#if [ $? -eq 0 ]; then
|
||||
# "$SCRIPT_ROOT_WD" reset-volume
|
||||
#fi
|
||||
#hyprpanel vol +5
|
||||
|
||||
# Shitty „hand controls to Android when Waydroid is in focus” flow that I wish I could forgo
|
||||
hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ 100%
|
||||
else
|
||||
wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
|
||||
fi
|
||||
elif [ "$1" = "114" ]; then
|
||||
# „Always control volume on the Linux side” flow commented out and waiting for a better day, because waydroid-root.sh reset-volume is broken (see waydroid-root.sh for details)
|
||||
#hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
#if [ $? -eq 0 ]; then
|
||||
# "$SCRIPT_ROOT_WD" reset-volume
|
||||
#fi
|
||||
#hyprpanel vol -5
|
||||
|
||||
# Shitty „hand controls to Android when Waydroid is in focus” flow that I wish I could forgo
|
||||
hyprctl activewindow|grep Waydroid >> /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ 100%
|
||||
else
|
||||
wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
fi
|
||||
elif [ "$1" = "--start-daemon" ]; then
|
||||
while true; do
|
||||
"$SCRIPT_ROOT"|xargs "$SCRIPT_THIS"
|
||||
done
|
||||
elif [ "$1" = "--quit-daemon" ]; then
|
||||
killall "$(basename "$SCRIPT_THIS")";
|
||||
else
|
||||
echo "Unknown flag: $1";
|
||||
exit 1;
|
||||
fi
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
#!/bin/sh
|
||||
# I forgot that dirname exists while writing this.
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
DIR="$HOME/.config/hypr/scripts"
|
||||
SELF="$(realpath "$DIR/$(basename "$0")")"
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
else
|
||||
if [ "root" != "$USER" ]; then
|
||||
echo "Only root are allowed to arbitrarily specify the directory.";
|
||||
exit 1;
|
||||
fi
|
||||
DIR=$1
|
||||
SELF="Something went horribly wrong! You were assumed to be root in one check, but non-root by the next one.";
|
||||
fi
|
||||
|
||||
if [ "root" != "$USER" ]; then
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
exec sudo "$SELF" "$DIR";
|
||||
echo "NOTE: You should never see this message!"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
"$DIR/volume-bin" | grep -Eo "115 press|114 press"
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# custom logic for waydroid-root.sh [PART 1]
|
||||
if [ -z "$1" ]; then
|
||||
echo "Subcommand needed, use \"${SCRIPT_LOCATION} help\" for help.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
if [ "$1" == "help" ]; then
|
||||
echo "params: rotate-normal|rotate-left-up|rotate-right-up|rotate-bottom-up|reset-volume|help";
|
||||
exit 0;
|
||||
fi
|
||||
|
||||
|
||||
# from volume-root.sh (modified to allow an extra param from the user)
|
||||
if [ -z "$2" ]; then
|
||||
DIR="$HOME/.config/hypr/scripts"
|
||||
SELF="$(realpath "$DIR/$(basename "$0")")"
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
else
|
||||
if [ "root" != "$USER" ]; then
|
||||
echo "Only root are allowed to arbitrarily specify the directory.";
|
||||
exit 1;
|
||||
fi
|
||||
DIR=$2
|
||||
SELF="Something went horribly wrong! You were assumed to be root in one check, but non-root by the next one.";
|
||||
fi
|
||||
|
||||
if [ "root" != "$USER" ]; then
|
||||
|
||||
if [ "$SELF" != "$(realpath "$0")" ]; then
|
||||
echo "This script must exist inside of $DIR";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
exec sudo "$SELF" "$1" "$DIR";
|
||||
echo "NOTE: You should never see this message!"
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
# custom logic for waydroid-root.sh [PART 2]
|
||||
|
||||
if [ "$1" == "rotate-normal" ]; then
|
||||
waydroid shell settings put system user_rotation 0
|
||||
exit;
|
||||
fi
|
||||
|
||||
if [ "$1" == "rotate-right-up" ]; then
|
||||
waydroid shell settings put system user_rotation 1
|
||||
exit;
|
||||
fi
|
||||
|
||||
if [ "$1" == "rotate-bottom-up" ]; then
|
||||
waydroid shell settings put system user_rotation 2
|
||||
exit;
|
||||
fi
|
||||
|
||||
if [ "$1" == "rotate-left-up" ]; then
|
||||
waydroid shell settings put system user_rotation 3
|
||||
exit;
|
||||
fi
|
||||
|
||||
# Commented-out because it doesn't work. I can QUERY those values just fine, and the returned numbers correspond to what I put in my setting on the Android side - but when I try to SET them, nothing happens. I have no idea why, but it is what it is.
|
||||
#if [ "$1" == "reset-volume" ]; then
|
||||
# # These are the „everything is maxed out” values. Don't ask me why are they so random; I didn't make Android.
|
||||
# waydroid shell settings put system volume_alarm 6
|
||||
# waydroid shell settings put system volume_alarm_speaker 7
|
||||
# waydroid shell settings put system volume_bluetooth_sco 7
|
||||
# waydroid shell settings put system volume_music 5
|
||||
# waydroid shell settings put system volume_music_speaker 15
|
||||
# waydroid shell settings put system volume_music_usb_headset 3
|
||||
# waydroid shell settings put system volume_notification 5
|
||||
# waydroid shell settings put system volume_notification_speaker 7
|
||||
# waydroid shell settings put system volume_ring 5
|
||||
# waydroid shell settings put system volume_ring_speaker 7
|
||||
# waydroid shell settings put system volume_system 7
|
||||
# waydroid shell settings put system volume_voice 4
|
||||
# waydroid shell settings put system volume_voice_speaker 15
|
||||
# exit 0;
|
||||
#fi
|
||||
|
||||
echo "Unknown command \"${SCRIPT_LOCATION} $1\", use \"${SCRIPT_LOCATION} help\" for help.";
|
||||
exit 1;
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
#!/bin/bash
|
||||
SCRIPTDIR="$(dirname "$(realpath "$0")")"
|
||||
|
||||
/usr/bin/sshd -f "$HOME/.ssh/wd-local/sshd_config"
|
||||
|
||||
waydroid show-full-ui & sleep 60;"$SCRIPTDIR/rootedinit.sh"
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 110 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 48 KiB |
|
|
@ -1 +0,0 @@
|
|||
# Wayle configuration file
|
||||
|
|
@ -1,191 +0,0 @@
|
|||
[bar]
|
||||
bg = "transparent"
|
||||
button-variant = "basic"
|
||||
button-label-weight = "bold"
|
||||
button-rounding = "full"
|
||||
button-border-width = 2
|
||||
dropdown-freeze-label = false
|
||||
|
||||
[styling]
|
||||
scale = 1.0
|
||||
rounding = "full"
|
||||
|
||||
[styling.palette]
|
||||
bg = "#000000"
|
||||
surface = "#000000"
|
||||
elevated = "#000000"
|
||||
fg = "#e6ff10"
|
||||
fg-muted = "#c6bb05"
|
||||
primary = "#e6ff10"
|
||||
red = "#ff0000"
|
||||
yellow = "#e6ff10"
|
||||
green = "#00ff00"
|
||||
blue = "#00ffff"
|
||||
|
||||
[modules.battery]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.bluetooth]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.cava]
|
||||
button-bg-color = "bg-base"
|
||||
border-show = true
|
||||
|
||||
[modules.clock]
|
||||
border-show = true
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.cpu]
|
||||
border-show = true
|
||||
border-color = "fg-default"
|
||||
icon-bg-color = "fg-default"
|
||||
label-color = "fg-default"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.dashboard]
|
||||
border-show = true
|
||||
|
||||
[modules.hyprland-workspaces]
|
||||
container-bg-color = "bg-base"
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
|
||||
[modules.hyprsunset]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.idle-inhibit]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.keybind-mode]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.keyboard-input]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.media]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.microphone]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.network]
|
||||
border-show = true
|
||||
icon-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.netstat]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.notification]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.power]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "bg-base"
|
||||
icon-bg-color = "accent"
|
||||
|
||||
[modules.ram]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.storage]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
label-max-length = 435
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.systray]
|
||||
border-show = true
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.volume]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.weather]
|
||||
border-show = true
|
||||
icon-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.window-title]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[modules.world-clock]
|
||||
border-show = true
|
||||
border-color = "accent"
|
||||
icon-color = "accent"
|
||||
icon-bg-color = "accent"
|
||||
label-color = "accent"
|
||||
button-bg-color = "bg-base"
|
||||
|
||||
[wallpaper]
|
||||
engine-enabled = false
|
||||
transition-type = "fade"
|
||||
cycling-mode = "shuffle"
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Palette","description":"Ten-color palette for CSS generation.","type":"object","properties":{"bg":{"description":"Base background color (darkest).","type":"string"},"surface":{"description":"Card and sidebar background.","type":"string"},"elevated":{"description":"Raised element background.","type":"string"},"fg":{"description":"Primary text color.","type":"string"},"fg_muted":{"description":"Secondary text color.","type":"string"},"primary":{"description":"Accent color for interactive elements.","type":"string"},"red":{"description":"Red palette color.","type":"string"},"yellow":{"description":"Yellow palette color.","type":"string"},"green":{"description":"Green palette color.","type":"string"},"blue":{"description":"Blue palette color.","type":"string"}},"required":["bg","surface","elevated","fg","fg_muted","primary","red","yellow","green","blue"],"$id":"wayle-theme-0.2.3"}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
[schema]
|
||||
enabled = true
|
||||
|
||||
[[schemas]]
|
||||
path = "./schema.json"
|
||||
include = ["config.toml", "runtime.toml"]
|
||||
|
||||
[[schemas]]
|
||||
path = "./themes/schema.json"
|
||||
include = ["themes/*.toml"]
|
||||
Loading…
Add table
Add a link
Reference in a new issue