diff --git a/.github/README.md b/.github/README.md
index e74e09295..256888616 100644
--- a/.github/README.md
+++ b/.github/README.md
@@ -17,6 +17,10 @@
+> [!WARNING]
+> Hyprland 0.55 update:
+> If your distro has not shipped Hyprland 0.55 and/or you're not ready for it, you should switch to the Pre-Hyprland Luaification release (or not update yet, if you're going to do that). See the wiki for more info: [Install](https://ii.clsty.link/en/ii-qs/01setup/#automated-installation) | [Update](https://ii.clsty.link/en/ii-qs/01setup/#updating)
+
What this is/isn't
@@ -39,7 +43,7 @@
Installation
- - _If you're new to Linux and decide to use Hyprland, you're in for a tough ride._
+ - **IMPORTANT: Hyprland 0.55 Update**: If your distro has not shipped Hyprland 0.55 and/or you're not ready for it, you should switch to the Pre-Hyprland Luaification release. See [the wiki](https://ii.clsty.link/en/ii-qs/01setup/) for more info
- Just run `bash <(curl -s https://ii.clsty.link/get)`
- Or, clone this repo and run `./setup install`
- See [the wiki](https://ii.clsty.link/en/ii-qs/01setup/) for more details
diff --git a/dots/.config/hypr/hyprland/env.lua b/dots/.config/hypr/hyprland/env.lua
index aa41c815b..f3df2e630 100644
--- a/dots/.config/hypr/hyprland/env.lua
+++ b/dots/.config/hypr/hyprland/env.lua
@@ -1,8 +1,10 @@
+local home_dir = os.getenv("HOME")
+
-- Wayland
hl.env("ELECTRON_OZONE_PLATFORM_HINT", "auto")
-- Applications
-hl.env("XDG_DATA_DIRS", "$HOME/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share")
+hl.env("XDG_DATA_DIRS", home_dir .. "/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share:$XDG_DATA_DIRS")
-- Themes
hl.env("QT_QPA_PLATFORM", "wayland;xcb")
@@ -10,4 +12,4 @@ hl.env("QT_QPA_PLATFORMTHEME", "kde")
hl.env("XDG_MENU_PREFIX", "plasma-")
-- Virtual environment
-hl.env("ILLOGICAL_IMPULSE_VIRTUAL_ENV", "$HOME/.local/state/quickshell/.venv")
+hl.env("ILLOGICAL_IMPULSE_VIRTUAL_ENV", home_dir .. "/.local/state/quickshell/.venv")
diff --git a/dots/.config/hypr/hyprland/keybinds.lua b/dots/.config/hypr/hyprland/keybinds.lua
index c98becd0f..b0aff6858 100644
--- a/dots/.config/hypr/hyprland/keybinds.lua
+++ b/dots/.config/hypr/hyprland/keybinds.lua
@@ -13,6 +13,8 @@ hl.bind("SUPER + SUPER_R", hl.dsp.exec_cmd(qsIsAlive.." || pkill fuzzel || fuzze
hl.bind("SUPER_L", hl.dsp.global("quickshell:workspaceNumber"), {ignore_mods = true, transparent = true} )
hl.bind("SUPER_R", hl.dsp.global("quickshell:workspaceNumber"), {ignore_mods = true, transparent = true} )
+hl.bind("SUPER_L", hl.dsp.global("quickshell:workspaceNumber"), {ignore_mods = true, transparent = true, release = true} )
+hl.bind("SUPER_R", hl.dsp.global("quickshell:workspaceNumber"), {ignore_mods = true, transparent = true, release = true} )
hl.bind("SUPER + Tab", hl.dsp.global("quickshell:overviewWorkspacesToggle"), {description = "Toggle overview"} )
hl.bind("SUPER + V", hl.dsp.global("quickshell:overviewClipboardToggle"), {description = "Clipboard history >> clipboard"} )
hl.bind("SUPER + Period", hl.dsp.global("quickshell:overviewEmojiToggle"), {description = "Emoji >> clipboard"} )
@@ -111,9 +113,9 @@ hl.bind("SUPER + Semicolon", hl.dsp.layout("splitratio -0.1"), {repeating = true
hl.bind("SUPER + Apostrophe", hl.dsp.layout("splitratio +0.1"), {repeating = true} )
--# Positioning mode
hl.bind("SUPER + ALT + Space", hl.dsp.window.float({action = "toggle"}), {description = "Float/Tile"} )
-hl.bind("SUPER + D", hl.dsp.window.fullscreen({"maximized"}, {description = "Maximize"}) )
-hl.bind("SUPER + F", hl.dsp.window.fullscreen({"fullscreen"}, {description = "Fullscreen"}) )
-hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen_state({internal = 0, client = 3}, {description = "Fullscreen spoof"}) )
+hl.bind("SUPER + D", hl.dsp.window.fullscreen({mode = "maximized", action = "toggle"}), {description = "Maximize"} )
+hl.bind("SUPER + F", hl.dsp.window.fullscreen({mode = "fullscreen", action = "toggle"}), {description = "Fullscreen"} )
+hl.bind("SUPER + ALT + F", hl.dsp.window.fullscreen_state({internal = 0, client = 3, action = "toggle"}), {description = "Fullscreen spoof"} )
hl.bind("SUPER + P", hl.dsp.window.pin(), {description = "Pin"} )
--#/# bind = SUPER+ALT, Hash,, -- Send to workspace -- (1, 2, 3,...)
diff --git a/dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh b/dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh
index 7a1b9e1b4..c7cbc4067 100755
--- a/dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh
+++ b/dots/.config/hypr/hyprland/scripts/fuzzel-emoji.sh
@@ -1885,4 +1885,69 @@ AH↗️HA↘️HA↗️HA↘️ pekora arrows hahaha rabbit
↵ enter key return
𝕏 twitter x logo
👉👈 etou ughhhhhhh shy
-👉👌 put it in imagination perv
\ No newline at end of file
+👉👌 put it in imagination perv
+🫨 shaking face tremble shake shocked
+🩷 pink heart love
+🩵 light blue heart love cyan
+🩶 grey heart gray love
+🫷 leftwards pushing hand stop halt left
+🫸 rightwards pushing hand stop halt right
+🫎 moose animal antlers
+🫏 donkey animal mule ass
+🪽 wing bird feather fly
+🐦⬛ black bird crow raven rook
+🪿 goose bird honk
+🪼 jellyfish sea ocean sting
+🪻 hyacinth flower spring
+🫚 ginger root spice food
+🫛 pea pod peas vegetable food
+🪭 folding hand fan fan cool
+🪮 hair pick afro comb
+🪇 maracas instrument music shake
+🪈 flute instrument music
+🪯 khanda sikh religion symbol
+🛜 wireless wifi wi-fi internet network
+🙂↔️ head shaking horizontally no shake
+🙂↕️ head shaking vertically yes nod
+🚶➡️ person walking facing right walk
+🚶♀️➡️ woman walking facing right walk
+🚶♂️➡️ man walking facing right walk
+🧎➡️ person kneeling facing right kneel
+🧎♀️➡️ woman kneeling facing right kneel
+🧎♂️➡️ man kneeling facing right kneel
+🧑🦯➡️ person with white cane facing right accessibility blind
+👨🦯➡️ man with white cane facing right accessibility blind
+👩🦯➡️ woman with white cane facing right accessibility blind
+🧑🦼➡️ person in motorized wheelchair facing right accessibility
+👨🦼➡️ man in motorized wheelchair facing right accessibility
+👩🦼➡️ woman in motorized wheelchair facing right accessibility
+🧑🦽➡️ person in manual wheelchair facing right accessibility
+👨🦽➡️ man in manual wheelchair facing right accessibility
+👩🦽➡️ woman in manual wheelchair facing right accessibility
+🏃➡️ person running facing right run
+🏃♀️➡️ woman running facing right run
+🏃♂️➡️ man running facing right run
+🧑🧑🧒 family adult adult child parents
+🧑🧑🧒🧒 family adult adult child child parents
+🧑🧒 family adult child parent
+🧑🧒🧒 family adult child child parent
+🐦🔥 phoenix fire bird rebirth
+🍋🟩 lime fruit citrus green
+🍄🟫 brown mushroom fungi
+⛓️💥 broken chain snap shatter
+ face with bags under eyes tired sleepy exhausted
+ fingerprint id biometric
+ leafless tree barren dead winter
+ root vegetable food turnip radish
+ harp instrument music
+ shovel dig tool
+ splatter splash stain mess
+🇨🇶 flag sark
+ distorted face anxiety shocked panic
+ fight cloud comic brawl dust
+ hairy creature sasquatch bigfoot
+🧑🩰 ballet dancer dance ballerina
+ orca killer whale
+ landslide rockfall disaster
+ trombone instrument music
+ treasure chest gold loot pirate
diff --git a/dots/.config/quickshell/ii/modules/common/Config.qml b/dots/.config/quickshell/ii/modules/common/Config.qml
index d331575a5..be00d1b9c 100644
--- a/dots/.config/quickshell/ii/modules/common/Config.qml
+++ b/dots/.config/quickshell/ii/modules/common/Config.qml
@@ -410,6 +410,10 @@ Singleton {
property JsonObject notifications: JsonObject {
property int timeout: 7000
+ property JsonObject monitor: JsonObject {
+ property bool enable: false
+ property string name: "" // Name of the monitor to show notifications on, like "eDP-1". Find out with 'hyprctl monitors' command
+ }
}
property JsonObject osd: JsonObject {
diff --git a/dots/.config/quickshell/ii/modules/ii/notificationPopup/NotificationPopup.qml b/dots/.config/quickshell/ii/modules/ii/notificationPopup/NotificationPopup.qml
index 6ce998146..669e3971e 100644
--- a/dots/.config/quickshell/ii/modules/ii/notificationPopup/NotificationPopup.qml
+++ b/dots/.config/quickshell/ii/modules/ii/notificationPopup/NotificationPopup.qml
@@ -14,7 +14,7 @@ Scope {
PanelWindow {
id: root
visible: (Notifications.popupList.length > 0) && !GlobalStates.screenLocked
- screen: Quickshell.screens.find(s => s.name === Hyprland.focusedMonitor?.name) ?? null
+ screen: Quickshell.screens.find(s => Config.options.notifications.forceMonitor.enable ? s.name === Config.options.notifications.forceMonitor.name : s.name === Hyprland.focusedMonitor?.name) ?? null
WlrLayershell.namespace: "quickshell:notificationPopup"
WlrLayershell.layer: WlrLayer.Overlay
diff --git a/dots/.config/quickshell/ii/modules/settings/InterfaceConfig.qml b/dots/.config/quickshell/ii/modules/settings/InterfaceConfig.qml
index f94f1e811..de544ed82 100644
--- a/dots/.config/quickshell/ii/modules/settings/InterfaceConfig.qml
+++ b/dots/.config/quickshell/ii/modules/settings/InterfaceConfig.qml
@@ -265,6 +265,31 @@ ContentPage {
Config.options.notifications.timeout = value;
}
}
+
+ ConfigSwitch {
+ buttonIcon: "monitor"
+ text: Translation.tr("Force specific monitor")
+ checked: Config.options.notifications.forceMonitor.enable
+ onCheckedChanged: {
+ Config.options.notifications.forceMonitor.enable = checked;
+ }
+ StyledToolTip {
+ text: Translation.tr("If you have multiple monitors and want notifications to only show on one of them, enable this and enter the monitor name below (e.g., eDP-1)")
+ }
+ }
+
+ ConfigRow {
+ enabled: Config.options.notifications.forceMonitor.enable
+ MaterialTextArea {
+ Layout.fillWidth: true
+ placeholderText: Translation.tr("Monitor name to show notifications on (e.g., eDP-1)")
+ text: Config.options.notifications.forceMonitor.name
+ wrapMode: TextEdit.Wrap
+ onTextChanged: {
+ Config.options.notifications.forceMonitor.name = text;
+ }
+ }
+ }
}
ContentSection {
diff --git a/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf b/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf
index 9712a58d6..658d88186 100644
--- a/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf
+++ b/dots/.config/quickshell/ii/scripts/colors/terminal/kitty-theme.conf
@@ -42,7 +42,8 @@ color236 #$onTertiary #
color237 #$onTertiaryContainer #
color238 #$onError #
color239 #$onErrorContainer #
-color240 #$onPrimary # // Somehow 232 doesn't work so i gotta use another number
+color240 #$onPrimary #
+# Somehow 232 doesn't work so i gotta use another number
# Some stuff should specifically use the colors in the middle so they look acceptable in both unthemed light/dark
color243 #$primary #
diff --git a/dots/.config/quickshell/ii/services/Hyprsunset.qml b/dots/.config/quickshell/ii/services/Hyprsunset.qml
index 9a1e4c4f2..8531b991d 100644
--- a/dots/.config/quickshell/ii/services/Hyprsunset.qml
+++ b/dots/.config/quickshell/ii/services/Hyprsunset.qml
@@ -21,6 +21,7 @@ Singleton {
property string to: Config.options?.light?.night?.to ?? "06:30"
property bool automatic: Config.options?.light?.night?.automatic && (Config?.ready ?? true)
property int colorTemperature: Config.options?.light?.night?.colorTemperature ?? 5000
+ property int defaultColorTemperature: 6000
property int gamma: 100
property bool shouldBeOn
property bool firstEvaluation: true
@@ -112,7 +113,7 @@ Singleton {
function disableTemperature() {
root.temperatureActive = false;
// console.log("[Hyprsunset] Disabling");
- Quickshell.execDetached(["hyprctl", "hyprsunset", "identity"]);
+ Quickshell.execDetached(["bash", "-c", `hyprctl hyprsunset temperature ${root.defaultColorTemperature}`]);
}
function setGamma(gamma) {
@@ -139,7 +140,7 @@ Singleton {
if (output.length == 0 || output.startsWith("Couldn't"))
root.temperatureActive = false;
else
- root.temperatureActive = (output != "6500"); // 6500 is the default when off
+ root.temperatureActive = (output != root.defaultColorTemperature); // 6000 is the default when off
// console.log("[Hyprsunset] Fetched state:", output, "->", root.temperatureActive);
}
}