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); } }