diff --git a/base/base-nogui/default.nix b/base/base-nogui/default.nix
index ba1fcaa..d2f2256 100644
--- a/base/base-nogui/default.nix
+++ b/base/base-nogui/default.nix
@@ -17,6 +17,8 @@ in
# Bluetooth
bluetooth.enable = lib.mkDefault true;
+ i2c.enable = true;
+
# Enable all firmware
enableAllFirmware = lib.mkForce true;
};
diff --git a/hosts/desktop/configuration.nix b/hosts/desktop/configuration.nix
index ce14a4c..a971db1 100755
--- a/hosts/desktop/configuration.nix
+++ b/hosts/desktop/configuration.nix
@@ -135,7 +135,7 @@ in
environment = {
systemPackages = systemPackages;
- etc."lact/config.yaml".text = lactConfig;
+ # etc."lact/config.yaml".text = lactConfig;
variables = environmentVariables;
};
diff --git a/modules/desktop-environments/hyprland/config/hypr/default.nix b/modules/desktop-environments/hyprland/config/hypr/default.nix
index d4c1ca0..2252a10 100755
--- a/modules/desktop-environments/hyprland/config/hypr/default.nix
+++ b/modules/desktop-environments/hyprland/config/hypr/default.nix
@@ -33,7 +33,7 @@ in
# https://wiki.hyprland.org/Configuring/Binds/#mouse-buttons
bind = [
- "$mod, Return, exec, kitty"
+ "$mod, Return, exec, ${theme.defaultApps.terminal.pname}"
"$mod, SPACE, exec, wofi --show drun"
"$mod, Q, killactive, "
"$mod, M, exec, wlogout --protocol layer-shell"
@@ -91,7 +91,7 @@ in
"$mod SHIFT, k, movewindow, u"
"$mod SHIFT, j, movewindow, d"
- "$mod, b, exec, firefox"
+ "$mod, b, exec, ${theme.defaultApps.browser.pname}"
];
bindm = [
@@ -198,6 +198,7 @@ in
"float, title:(.*branchdialog.*)"
"float, class:(.*pavucontrol.*)"
"move onscreen cursor 0% 0%, class:(.*pavucontrol.*)"
+ "float, class:(.*[Oo]verskride.*)"
"float, class:(.*FileRoller.*)"
"float, class:(.*wlogout.*)"
"idleinhibit stayfocused, title:(.*mpv.*)"
@@ -214,6 +215,9 @@ in
"float, class:(.*vesktop),title:(.*Discord Popout.*)"
"pin, class:(.*vesktop),title:(.*Discord Popout.*)"
+ # Music
+ "workspace: name:discord, class:(Apple Music.*)"
+
# Steam
"float, class:(.*[Ss]team), title:(.*[Ss]team.*)$"
"workspace name:steam silent, class:(.*[Ss]team), title:(.*[Ss]team.*)$"
@@ -276,11 +280,9 @@ in
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = xhost +SI:localuser:root
- exec-once = bing-wallpaper
exec-once = nwg-look -a
exec-once = nwg-dock-hyprland -d
exec-once = nm-applet
- exec-once = blueberry-tray
exec-once = [silent] firefox
exec-once = [silent] vesktop
exec-once = [silent] chromium --app="https://music.apple.com"
diff --git a/modules/desktop-environments/hyprland/config/waybar/default.nix b/modules/desktop-environments/hyprland/config/waybar/default.nix
index c16fe54..c3586a1 100755
--- a/modules/desktop-environments/hyprland/config/waybar/default.nix
+++ b/modules/desktop-environments/hyprland/config/waybar/default.nix
@@ -22,6 +22,9 @@ let
'';
in
{
+ imports = [
+ ./scripts/weather.nix
+ ];
# https://github.com/Alexays/Waybar/wiki/Module:-Hyprland
# https://www.nerdfonts.com/cheat-sheet
@@ -53,6 +56,7 @@ in
"keyboard-state#numlock"
"pulseaudio"
"pulseaudio#microphone"
+ "bluetooth"
"clock"
"custom/weather"
];
@@ -175,6 +179,22 @@ in
};
};
+ "bluetooth" = {
+ on-click = "overskride";
+ tooltip = true;
+ format = "{format-off}";
+ format-disabled = "";
+ format-off = "";
+ format-on = "";
+ format-connected = "";
+ tooltip-format = "{status}";
+ tooltip-format-disabled = "{status}";
+ tooltip-format-off = "{status}";
+ tooltip-format-on = "{status}";
+ tooltip-format-connected = "{status}";
+ tooltip-format-enumerate-connected = { };
+ };
+
"pulseaudio#microphone" = {
format = "{format_source}";
format-source = "";
@@ -286,11 +306,19 @@ in
/* ------------- */
+ #bluetooth {
+ color: ${theme.nord.frost.nord9};
+ background-color: ${theme.nord.polarNight.nord0};
+ ${defaultOpacity}
+ ${borderRight}
+ }
+
#pulseaudio.microphone {
color: ${theme.nord.frost.nord8};
background-color: ${theme.nord.polarNight.nord0};
${defaultOpacity}
- ${borderRight}
+ ${defaultCenterOptions}
+ border-radius: 0;
}
#pulseaudio {
diff --git a/modules/desktop-environments/hyprland/config/waybar/scripts/waybar-wttr.py b/modules/desktop-environments/hyprland/config/waybar/scripts/waybar-wttr.py
deleted file mode 100755
index f1eaf83..0000000
--- a/modules/desktop-environments/hyprland/config/waybar/scripts/waybar-wttr.py
+++ /dev/null
@@ -1,379 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i python3 --pure
-#! nix-shell -p python3 python3Packages.requests
-
-import json
-from datetime import datetime
-
-import requests
-
-WWO_CODE = {
- "113": "Sunny",
- "116": "PartlyCloudy",
- "119": "Cloudy",
- "122": "VeryCloudy",
- "143": "Fog",
- "176": "LightShowers",
- "179": "LightSleetShowers",
- "182": "LightSleet",
- "185": "LightSleet",
- "200": "ThunderyShowers",
- "227": "LightSnow",
- "230": "HeavySnow",
- "248": "Fog",
- "260": "Fog",
- "263": "LightShowers",
- "266": "LightRain",
- "281": "LightSleet",
- "284": "LightSleet",
- "293": "LightRain",
- "296": "LightRain",
- "299": "HeavyShowers",
- "302": "HeavyRain",
- "305": "HeavyShowers",
- "308": "HeavyRain",
- "311": "LightSleet",
- "314": "LightSleet",
- "317": "LightSleet",
- "320": "LightSnow",
- "323": "LightSnowShowers",
- "326": "LightSnowShowers",
- "329": "HeavySnow",
- "332": "HeavySnow",
- "335": "HeavySnowShowers",
- "338": "HeavySnow",
- "350": "LightSleet",
- "353": "LightShowers",
- "356": "HeavyShowers",
- "359": "HeavyRain",
- "362": "LightSleetShowers",
- "365": "LightSleetShowers",
- "368": "LightSnowShowers",
- "371": "HeavySnowShowers",
- "374": "LightSleetShowers",
- "377": "LightSleet",
- "386": "ThunderyShowers",
- "389": "ThunderyHeavyRain",
- "392": "ThunderySnowShowers",
- "395": "HeavySnowShowers",
-}
-
-WEATHER_SYMBOL_EMOJI = {
- "Unknown": "✨",
- "Cloudy": "☁️",
- "Fog": "🌫",
- "HeavyRain": "🌧",
- "HeavyShowers": "🌧",
- "HeavySnow": "❄️",
- "HeavySnowShowers": "❄️",
- "LightRain": "🌦",
- "LightShowers": "🌦",
- "LightSleet": "🌧",
- "LightSleetShowers": "🌧",
- "LightSnow": "🌨",
- "LightSnowShowers": "🌨",
- "PartlyCloudy": "⛅️",
- "Sunny": "☀️",
- "ThunderyHeavyRain": "🌩",
- "ThunderyShowers": "⛈",
- "ThunderySnowShowers": "⛈",
- "VeryCloudy": "☁️",
-}
-
-WEATHER_SYMBOL = {
- "Unknown": "✨",
- "Cloudy": "☁️",
- "Fog": "🌫",
- "HeavyRain": "🌧",
- "HeavyShowers": "🌧",
- "HeavySnow": "❄️",
- "HeavySnowShowers": "❄️",
- "LightRain": "🌦",
- "LightShowers": "🌦",
- "LightSleet": "🌧",
- "LightSleetShowers": "🌧",
- "LightSnow": "🌨",
- "LightSnowShowers": "🌨",
- "PartlyCloudy": "⛅️",
- "Sunny": "☀️",
- "ThunderyHeavyRain": "🌩",
- "ThunderyShowers": "⛈",
- "ThunderySnowShowers": "⛈",
- "VeryCloudy": "☁️",
-}
-
-WEATHER_CODES = {key: WEATHER_SYMBOL[value] for key, value in WWO_CODE.items()}
-
-WIND_DIRECTION = [
- "↓", "↙", "←", "↖", "↑", "↗", "→", "↘",
-]
-
-MOON_PHASES = (
- "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘"
-)
-
-WEATHER_SYMBOL_WI_DAY = {
- "Unknown": "",
- "Cloudy": "",
- "Fog": "",
- "HeavyRain": "",
- "HeavyShowers": "",
- "HeavySnow": "",
- "HeavySnowShowers": "",
- "LightRain": "",
- "LightShowers": "",
- "LightSleet": "",
- "LightSleetShowers": "",
- "LightSnow": "",
- "LightSnowShowers": "",
- "PartlyCloudy": "",
- "Sunny": "",
- "ThunderyHeavyRain": "",
- "ThunderyShowers": "",
- "ThunderySnowShowers": "",
- "VeryCloudy": "",
-}
-
-WEATHER_CODES_WI_DAY = {key: WEATHER_SYMBOL_WI_DAY[value] for key, value in WWO_CODE.items()}
-
-WEATHER_SYMBOL_WI_NIGHT = {
- "Unknown": "",
- "Cloudy": "",
- "Fog": "",
- "HeavyRain": "",
- "HeavyShowers": "",
- "HeavySnow": "",
- "HeavySnowShowers": "",
- "LightRain": "",
- "LightShowers": "",
- "LightSleet": "",
- "LightSleetShowers": "",
- "LightSnow": "",
- "LightSnowShowers": "",
- "PartlyCloudy": "",
- "Sunny": "",
- "ThunderyHeavyRain": "",
- "ThunderyShowers": "",
- "ThunderySnowShowers": "",
- "VeryCloudy": "",
-}
-
-WEATHER_CODES_WI_NIGHT = {key: WEATHER_SYMBOL_WI_NIGHT[value] for key, value in WWO_CODE.items()}
-
-WIND_DIRECTION_WI = [
- "", "", "", "", "", "", "", "",
-]
-
-WIND_SCALE_WI = [
- "", "", "", "", "", "", "", "", "", "", "", "", "",
-]
-
-MOON_PHASES_WI = (
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
- "", "", "", "", "", "", "",
-)
-
-WEATHER_SYMBOL_WEGO = {
- "Unknown": [
- " .-. ",
- " __) ",
- " ( ",
- " `-’ ",
- " • "],
- "Sunny": [
- "\033[38;5;226m \\ / \033[0m",
- "\033[38;5;226m .-. \033[0m",
- "\033[38;5;226m ― ( ) ― \033[0m",
- "\033[38;5;226m `-’ \033[0m",
- "\033[38;5;226m / \\ \033[0m"],
- "PartlyCloudy": [
- "\033[38;5;226m \\ /\033[0m ",
- "\033[38;5;226m _ /\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m \\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- " "],
- "Cloudy": [
- " ",
- "\033[38;5;250m .--. \033[0m",
- "\033[38;5;250m .-( ). \033[0m",
- "\033[38;5;250m (___.__)__) \033[0m",
- " "],
- "VeryCloudy": [
- " ",
- "\033[38;5;240;1m .--. \033[0m",
- "\033[38;5;240;1m .-( ). \033[0m",
- "\033[38;5;240;1m (___.__)__) \033[0m",
- " "],
- "LightShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m",
- "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
- "HeavyShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m",
- "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m",
- "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"],
- "LightSnowShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- "\033[38;5;255m * * * \033[0m",
- "\033[38;5;255m * * * \033[0m"],
- "HeavySnowShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m",
- "\033[38;5;255;1m * * * * \033[0m",
- "\033[38;5;255;1m * * * * \033[0m"],
- "LightSleetShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m",
- "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"],
- "ThunderyShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- "\033[38;5;228;5m ⚡\033[38;5;111;25m‘ ‘\033[38;5;228;5m⚡\033[38;5;111;25m‘ ‘ \033[0m",
- "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
- "ThunderyHeavyRain": [
- "\033[38;5;240;1m .-. \033[0m",
- "\033[38;5;240;1m ( ). \033[0m",
- "\033[38;5;240;1m (___(__) \033[0m",
- "\033[38;5;21;1m ‚‘\033[38;5;228;5m⚡\033[38;5;21;25m‘‚\033[38;5;228;5m⚡\033[38;5;21;25m‚‘ \033[0m",
- "\033[38;5;21;1m ‚’‚’\033[38;5;228;5m⚡\033[38;5;21;25m’‚’ \033[0m"],
- "ThunderySnowShowers": [
- "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
- "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
- "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
- "\033[38;5;255m *\033[38;5;228;5m⚡\033[38;5;255;25m*\033[38;5;228;5m⚡\033[38;5;255;25m* \033[0m",
- "\033[38;5;255m * * * \033[0m"],
- "LightRain": [
- "\033[38;5;250m .-. \033[0m",
- "\033[38;5;250m ( ). \033[0m",
- "\033[38;5;250m (___(__) \033[0m",
- "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m",
- "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
- "HeavyRain": [
- "\033[38;5;240;1m .-. \033[0m",
- "\033[38;5;240;1m ( ). \033[0m",
- "\033[38;5;240;1m (___(__) \033[0m",
- "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m",
- "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"],
- "LightSnow": [
- "\033[38;5;250m .-. \033[0m",
- "\033[38;5;250m ( ). \033[0m",
- "\033[38;5;250m (___(__) \033[0m",
- "\033[38;5;255m * * * \033[0m",
- "\033[38;5;255m * * * \033[0m"],
- "HeavySnow": [
- "\033[38;5;240;1m .-. \033[0m",
- "\033[38;5;240;1m ( ). \033[0m",
- "\033[38;5;240;1m (___(__) \033[0m",
- "\033[38;5;255;1m * * * * \033[0m",
- "\033[38;5;255;1m * * * * \033[0m"],
- "LightSleet": [
- "\033[38;5;250m .-. \033[0m",
- "\033[38;5;250m ( ). \033[0m",
- "\033[38;5;250m (___(__) \033[0m",
- "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m",
- "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"],
- "Fog": [
- " ",
- "\033[38;5;251m _ - _ - _ - \033[0m",
- "\033[38;5;251m _ - _ - _ \033[0m",
- "\033[38;5;251m _ - _ - _ - \033[0m",
- " "],
-}
-
-data = {}
-
-
-weather = requests.get("https://wttr.in/?u&format=j1").json()
-moon = requests.get("https://wttr.in/?format=%m").text
-
-
-def format_time(time):
- return datetime.strptime(format_24_time(time), "%H").strftime("%I %p")
-
-def format_24_time(time):
- return time.replace("00", "").zfill(2)
-
-
-def format_temp(temp):
- return (hour["FeelsLikeF"] + "°").ljust(3)
-
-
-def format_chances(hour):
- chances = {
- "chanceoffog": "Fog",
- "chanceoffrost": "Frost",
- "chanceofovercast": "Overcast",
- "chanceofrain": "Rain",
- "chanceofsnow": "Snow",
- "chanceofsunshine": "Sunshine",
- "chanceofthunder": "Thunder",
- "chanceofwindy": "Wind",
- }
-
- conditions = []
- for event in chances.keys():
- if int(hour[event]) > 0:
- conditions.append(chances[event] + " " + hour[event] + "%")
- return ", ".join(conditions)
-
-
-tempint = int(weather["current_condition"][0]["FeelsLikeF"])
-extrachar = ""
-if tempint > 0 and tempint < 10:
- extrachar = "+"
-
-
-data["text"] = (
- " "
- + WEATHER_CODES[weather["current_condition"][0]["weatherCode"]]
- + " "
- + extrachar
- + weather["current_condition"][0]["FeelsLikeF"]
- + "°F"
-)
-
-data["tooltip"] = (
- f"{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_F']}°\n"
-)
-data["tooltip"] += f"Feels like: {weather['current_condition'][0]['FeelsLikeF']}°\n"
-data["tooltip"] += f"Wind: {weather['current_condition'][0]['windspeedMiles']}mph\n"
-data["tooltip"] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n"
-data["tooltip"] += f"Moon phase: {weather["weather"][0]['astronomy'][0]['moon_phase']} " + moon + "\n"
-for i, day in enumerate(weather["weather"]):
- data["tooltip"] += f"\n"
- if i == 0:
- data["tooltip"] += "Today, "
- if i == 1:
- data["tooltip"] += "Tomorrow, "
- date = datetime.strptime(day['date'], "%Y-%m-%d").strftime("%a %b %d %Y")
- data["tooltip"] += f"{date}\n"
- data["tooltip"] += f" {day['maxtempF']}°F {day['mintempF']}°F"
- data[
- "tooltip"
- ] += f" {day['astronomy'][0]['sunrise']} {day['astronomy'][0]['sunset']}\n"
- for hour in day["hourly"]:
- if i == 0:
- if int(format_24_time(hour["time"])) < datetime.now().hour - 2:
- continue
- if int(format_24_time(hour["time"])) > datetime.strptime(day['astronomy'][0]['sunset'], "%I:%M %p").hour or int(format_24_time(hour["time"])) < datetime.strptime(day['astronomy'][0]['sunrise'], "%I:%M %p").hour:
- codes = WEATHER_CODES_WI_NIGHT
- else:
- codes = WEATHER_CODES_WI_DAY
- data[
- "tooltip"
- ] += f"{format_time(hour['time'])} {codes[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n"
-
-
-print(json.dumps(data))
diff --git a/modules/desktop-environments/hyprland/config/waybar/scripts/weather.nix b/modules/desktop-environments/hyprland/config/waybar/scripts/weather.nix
new file mode 100644
index 0000000..6dccd84
--- /dev/null
+++ b/modules/desktop-environments/hyprland/config/waybar/scripts/weather.nix
@@ -0,0 +1,387 @@
+{ pkgs, ... }:
+let
+ waybar-weather = pkgs.writeScriptBin "waybar-weather" ''
+ #!/usr/bin/env nix-shell
+ #! nix-shell -i python3 --pure
+ #! nix-shell -p python3 python3Packages.requests
+
+ import json
+ from datetime import datetime
+
+ import requests
+
+ WWO_CODE = {
+ "113": "Sunny",
+ "116": "PartlyCloudy",
+ "119": "Cloudy",
+ "122": "VeryCloudy",
+ "143": "Fog",
+ "176": "LightShowers",
+ "179": "LightSleetShowers",
+ "182": "LightSleet",
+ "185": "LightSleet",
+ "200": "ThunderyShowers",
+ "227": "LightSnow",
+ "230": "HeavySnow",
+ "248": "Fog",
+ "260": "Fog",
+ "263": "LightShowers",
+ "266": "LightRain",
+ "281": "LightSleet",
+ "284": "LightSleet",
+ "293": "LightRain",
+ "296": "LightRain",
+ "299": "HeavyShowers",
+ "302": "HeavyRain",
+ "305": "HeavyShowers",
+ "308": "HeavyRain",
+ "311": "LightSleet",
+ "314": "LightSleet",
+ "317": "LightSleet",
+ "320": "LightSnow",
+ "323": "LightSnowShowers",
+ "326": "LightSnowShowers",
+ "329": "HeavySnow",
+ "332": "HeavySnow",
+ "335": "HeavySnowShowers",
+ "338": "HeavySnow",
+ "350": "LightSleet",
+ "353": "LightShowers",
+ "356": "HeavyShowers",
+ "359": "HeavyRain",
+ "362": "LightSleetShowers",
+ "365": "LightSleetShowers",
+ "368": "LightSnowShowers",
+ "371": "HeavySnowShowers",
+ "374": "LightSleetShowers",
+ "377": "LightSleet",
+ "386": "ThunderyShowers",
+ "389": "ThunderyHeavyRain",
+ "392": "ThunderySnowShowers",
+ "395": "HeavySnowShowers",
+ }
+
+ WEATHER_SYMBOL_EMOJI = {
+ "Unknown": "✨",
+ "Cloudy": "☁️",
+ "Fog": "🌫",
+ "HeavyRain": "🌧",
+ "HeavyShowers": "🌧",
+ "HeavySnow": "❄️",
+ "HeavySnowShowers": "❄️",
+ "LightRain": "🌦",
+ "LightShowers": "🌦",
+ "LightSleet": "🌧",
+ "LightSleetShowers": "🌧",
+ "LightSnow": "🌨",
+ "LightSnowShowers": "🌨",
+ "PartlyCloudy": "⛅️",
+ "Sunny": "☀️",
+ "ThunderyHeavyRain": "🌩",
+ "ThunderyShowers": "⛈",
+ "ThunderySnowShowers": "⛈",
+ "VeryCloudy": "☁️",
+ }
+
+ WEATHER_SYMBOL = {
+ "Unknown": "✨",
+ "Cloudy": "☁️",
+ "Fog": "🌫",
+ "HeavyRain": "🌧",
+ "HeavyShowers": "🌧",
+ "HeavySnow": "❄️",
+ "HeavySnowShowers": "❄️",
+ "LightRain": "🌦",
+ "LightShowers": "🌦",
+ "LightSleet": "🌧",
+ "LightSleetShowers": "🌧",
+ "LightSnow": "🌨",
+ "LightSnowShowers": "🌨",
+ "PartlyCloudy": "⛅️",
+ "Sunny": "☀️",
+ "ThunderyHeavyRain": "🌩",
+ "ThunderyShowers": "⛈",
+ "ThunderySnowShowers": "⛈",
+ "VeryCloudy": "☁️",
+ }
+
+ WEATHER_CODES = {key: WEATHER_SYMBOL[value] for key, value in WWO_CODE.items()}
+
+ WIND_DIRECTION = [
+ "↓", "↙", "←", "↖", "↑", "↗", "→", "↘",
+ ]
+
+ MOON_PHASES = (
+ "🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘"
+ )
+
+ WEATHER_SYMBOL_WI_DAY = {
+ "Unknown": "",
+ "Cloudy": "",
+ "Fog": "",
+ "HeavyRain": "",
+ "HeavyShowers": "",
+ "HeavySnow": "",
+ "HeavySnowShowers": "",
+ "LightRain": "",
+ "LightShowers": "",
+ "LightSleet": "",
+ "LightSleetShowers": "",
+ "LightSnow": "",
+ "LightSnowShowers": "",
+ "PartlyCloudy": "",
+ "Sunny": "",
+ "ThunderyHeavyRain": "",
+ "ThunderyShowers": "",
+ "ThunderySnowShowers": "",
+ "VeryCloudy": "",
+ }
+
+ WEATHER_CODES_WI_DAY = {key: WEATHER_SYMBOL_WI_DAY[value] for key, value in WWO_CODE.items()}
+
+ WEATHER_SYMBOL_WI_NIGHT = {
+ "Unknown": "",
+ "Cloudy": "",
+ "Fog": "",
+ "HeavyRain": "",
+ "HeavyShowers": "",
+ "HeavySnow": "",
+ "HeavySnowShowers": "",
+ "LightRain": "",
+ "LightShowers": "",
+ "LightSleet": "",
+ "LightSleetShowers": "",
+ "LightSnow": "",
+ "LightSnowShowers": "",
+ "PartlyCloudy": "",
+ "Sunny": "",
+ "ThunderyHeavyRain": "",
+ "ThunderyShowers": "",
+ "ThunderySnowShowers": "",
+ "VeryCloudy": "",
+ }
+
+ WEATHER_CODES_WI_NIGHT = {key: WEATHER_SYMBOL_WI_NIGHT[value] for key, value in WWO_CODE.items()}
+
+ WIND_DIRECTION_WI = [
+ "", "", "", "", "", "", "", "",
+ ]
+
+ WIND_SCALE_WI = [
+ "", "", "", "", "", "", "", "", "", "", "", "", "",
+ ]
+
+ MOON_PHASES_WI = (
+ "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "",
+ "", "", "", "", "", "", "",
+ )
+
+ WEATHER_SYMBOL_WEGO = {
+ "Unknown": [
+ " .-. ",
+ " __) ",
+ " ( ",
+ " `-’ ",
+ " • "],
+ "Sunny": [
+ "\033[38;5;226m \\ / \033[0m",
+ "\033[38;5;226m .-. \033[0m",
+ "\033[38;5;226m ― ( ) ― \033[0m",
+ "\033[38;5;226m `-’ \033[0m",
+ "\033[38;5;226m / \\ \033[0m"],
+ "PartlyCloudy": [
+ "\033[38;5;226m \\ /\033[0m ",
+ "\033[38;5;226m _ /\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m \\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ " "],
+ "Cloudy": [
+ " ",
+ "\033[38;5;250m .--. \033[0m",
+ "\033[38;5;250m .-( ). \033[0m",
+ "\033[38;5;250m (___.__)__) \033[0m",
+ " "],
+ "VeryCloudy": [
+ " ",
+ "\033[38;5;240;1m .--. \033[0m",
+ "\033[38;5;240;1m .-( ). \033[0m",
+ "\033[38;5;240;1m (___.__)__) \033[0m",
+ " "],
+ "LightShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m",
+ "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
+ "HeavyShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m",
+ "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m",
+ "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"],
+ "LightSnowShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ "\033[38;5;255m * * * \033[0m",
+ "\033[38;5;255m * * * \033[0m"],
+ "HeavySnowShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;240;1m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;240;1m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;240;1m(___(__) \033[0m",
+ "\033[38;5;255;1m * * * * \033[0m",
+ "\033[38;5;255;1m * * * * \033[0m"],
+ "LightSleetShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m",
+ "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"],
+ "ThunderyShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ "\033[38;5;228;5m ⚡\033[38;5;111;25m‘ ‘\033[38;5;228;5m⚡\033[38;5;111;25m‘ ‘ \033[0m",
+ "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
+ "ThunderyHeavyRain": [
+ "\033[38;5;240;1m .-. \033[0m",
+ "\033[38;5;240;1m ( ). \033[0m",
+ "\033[38;5;240;1m (___(__) \033[0m",
+ "\033[38;5;21;1m ‚‘\033[38;5;228;5m⚡\033[38;5;21;25m‘‚\033[38;5;228;5m⚡\033[38;5;21;25m‚‘ \033[0m",
+ "\033[38;5;21;1m ‚’‚’\033[38;5;228;5m⚡\033[38;5;21;25m’‚’ \033[0m"],
+ "ThunderySnowShowers": [
+ "\033[38;5;226m _`/\"\"\033[38;5;250m.-. \033[0m",
+ "\033[38;5;226m ,\\_\033[38;5;250m( ). \033[0m",
+ "\033[38;5;226m /\033[38;5;250m(___(__) \033[0m",
+ "\033[38;5;255m *\033[38;5;228;5m⚡\033[38;5;255;25m*\033[38;5;228;5m⚡\033[38;5;255;25m* \033[0m",
+ "\033[38;5;255m * * * \033[0m"],
+ "LightRain": [
+ "\033[38;5;250m .-. \033[0m",
+ "\033[38;5;250m ( ). \033[0m",
+ "\033[38;5;250m (___(__) \033[0m",
+ "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m",
+ "\033[38;5;111m ‘ ‘ ‘ ‘ \033[0m"],
+ "HeavyRain": [
+ "\033[38;5;240;1m .-. \033[0m",
+ "\033[38;5;240;1m ( ). \033[0m",
+ "\033[38;5;240;1m (___(__) \033[0m",
+ "\033[38;5;21;1m ‚‘‚‘‚‘‚‘ \033[0m",
+ "\033[38;5;21;1m ‚’‚’‚’‚’ \033[0m"],
+ "LightSnow": [
+ "\033[38;5;250m .-. \033[0m",
+ "\033[38;5;250m ( ). \033[0m",
+ "\033[38;5;250m (___(__) \033[0m",
+ "\033[38;5;255m * * * \033[0m",
+ "\033[38;5;255m * * * \033[0m"],
+ "HeavySnow": [
+ "\033[38;5;240;1m .-. \033[0m",
+ "\033[38;5;240;1m ( ). \033[0m",
+ "\033[38;5;240;1m (___(__) \033[0m",
+ "\033[38;5;255;1m * * * * \033[0m",
+ "\033[38;5;255;1m * * * * \033[0m"],
+ "LightSleet": [
+ "\033[38;5;250m .-. \033[0m",
+ "\033[38;5;250m ( ). \033[0m",
+ "\033[38;5;250m (___(__) \033[0m",
+ "\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[38;5;255m* \033[0m",
+ "\033[38;5;255m *\033[38;5;111m ‘ \033[38;5;255m*\033[38;5;111m ‘ \033[0m"],
+ "Fog": [
+ " ",
+ "\033[38;5;251m _ - _ - _ - \033[0m",
+ "\033[38;5;251m _ - _ - _ \033[0m",
+ "\033[38;5;251m _ - _ - _ - \033[0m",
+ " "],
+ }
+
+ data = {}
+
+
+ weather = requests.get("https://wttr.in/?u&format=j1").json()
+ moon = requests.get("https://wttr.in/?format=%m").text
+
+
+ def format_time(time):
+ return datetime.strptime(format_24_time(time), "%H").strftime("%I %p")
+
+ def format_24_time(time):
+ return time.replace("00", "").zfill(2)
+
+
+ def format_temp(temp):
+ return (hour["FeelsLikeF"] + "°").ljust(3)
+
+
+ def format_chances(hour):
+ chances = {
+ "chanceoffog": "Fog",
+ "chanceoffrost": "Frost",
+ "chanceofovercast": "Overcast",
+ "chanceofrain": "Rain",
+ "chanceofsnow": "Snow",
+ "chanceofsunshine": "Sunshine",
+ "chanceofthunder": "Thunder",
+ "chanceofwindy": "Wind",
+ }
+
+ conditions = []
+ for event in chances.keys():
+ if int(hour[event]) > 0:
+ conditions.append(chances[event] + " " + hour[event] + "%")
+ return ", ".join(conditions)
+
+
+ tempint = int(weather["current_condition"][0]["FeelsLikeF"])
+ extrachar = ""
+ if tempint > 0 and tempint < 10:
+ extrachar = "+"
+
+
+ data["text"] = (
+ " "
+ + WEATHER_CODES[weather["current_condition"][0]["weatherCode"]]
+ + " "
+ + extrachar
+ + weather["current_condition"][0]["FeelsLikeF"]
+ + "°F"
+ )
+
+ data["tooltip"] = (
+ f"{weather['current_condition'][0]['weatherDesc'][0]['value']} {weather['current_condition'][0]['temp_F']}°\n"
+ )
+ data["tooltip"] += f"Feels like: {weather['current_condition'][0]['FeelsLikeF']}°\n"
+ data["tooltip"] += f"Wind: {weather['current_condition'][0]['windspeedMiles']}mph\n"
+ data["tooltip"] += f"Humidity: {weather['current_condition'][0]['humidity']}%\n"
+ data["tooltip"] += f"Moon phase: {weather["weather"][0]['astronomy'][0]['moon_phase']} " + moon + "\n"
+ for i, day in enumerate(weather["weather"]):
+ data["tooltip"] += f"\n"
+ if i == 0:
+ data["tooltip"] += "Today, "
+ if i == 1:
+ data["tooltip"] += "Tomorrow, "
+ date = datetime.strptime(day['date'], "%Y-%m-%d").strftime("%a %b %d %Y")
+ data["tooltip"] += f"{date}\n"
+ data["tooltip"] += f" {day['maxtempF']}°F {day['mintempF']}°F"
+ data[
+ "tooltip"
+ ] += f" {day['astronomy'][0]['sunrise']} {day['astronomy'][0]['sunset']}\n"
+ for hour in day["hourly"]:
+ if i == 0:
+ if int(format_24_time(hour["time"])) < datetime.now().hour - 2:
+ continue
+ if int(format_24_time(hour["time"])) > datetime.strptime(day['astronomy'][0]['sunset'], "%I:%M %p").hour or int(format_24_time(hour["time"])) < datetime.strptime(day['astronomy'][0]['sunrise'], "%I:%M %p").hour:
+ codes = WEATHER_CODES_WI_NIGHT
+ else:
+ codes = WEATHER_CODES_WI_DAY
+ data[
+ "tooltip"
+ ] += f"{format_time(hour['time'])} {codes[hour['weatherCode']]} {format_temp(hour['FeelsLikeF'])} {hour['weatherDesc'][0]['value']}, {format_chances(hour)}\n"
+
+
+ print(json.dumps(data))
+ '';
+in
+{
+ home.packages = [ waybar-weather ];
+}
diff --git a/modules/desktop-environments/hyprland/config/wlogout/default.nix b/modules/desktop-environments/hyprland/config/wlogout/default.nix
new file mode 100644
index 0000000..6d4d3a2
--- /dev/null
+++ b/modules/desktop-environments/hyprland/config/wlogout/default.nix
@@ -0,0 +1,99 @@
+{ pkgs, ... }:
+let
+ theme = import ../../theme.nix { inherit pkgs; };
+in
+{
+ programs.wlogout = {
+ enable = true;
+ layout = {
+ lock = {
+ label = "lock";
+ action = "hyprlock --immediate";
+ text = "Lock";
+ keybind = "l";
+ };
+ hibernate = {
+ label = "hibernate";
+ action = "systemctl hibernate";
+ text = "Hibernate";
+ keybind = "h";
+ };
+ logout = {
+ label = "logout";
+ action = "sleep 1; hyprctl dispatch exit";
+ text = "Logout";
+ keybind = "e";
+ };
+ shutdown = {
+ label = "shutdown";
+ action = "systemctl poweroff";
+ text = "Shutdown";
+ keybind = "s";
+ };
+ suspend = {
+ label = "suspend";
+ action = "systemctl suspend";
+ text = "Suspend";
+ keybind = "u";
+ };
+ reboot = {
+ label = "reboot";
+ action = "reboot";
+ text = "Reboot";
+ keybind = "r";
+ };
+ };
+ style = ''
+ * {
+ background-image: none;
+ }
+
+ window {
+ background-color: ${theme.nord.polarNight.nord0}f0
+ }
+
+ button {
+ margin: 8px;
+ color: ${theme.nord.frost.nord7};
+ background-color: ${theme.nord.polarNight.nord1};
+ border-style: solid;
+ border-width: 2px;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 25%;
+ }
+
+ button:active,
+ button:focus,
+ button:hover {
+ color: ${theme.nord.frost.nord8};
+ background-color: ${theme.nord.polarNight.nord2};
+ outline-style: none;
+ }
+
+ #lock {
+ background-image: image(url("icons/lock.png"));
+ }
+
+ #logout {
+ background-image: image(url("icons/logout.png"));
+ }
+
+ #suspend {
+ background-image: image(url("icons/suspend.png"));
+ }
+
+ #hibernate {
+ background-image: image(url("icons/hibernate.png"));
+ }
+
+ #shutdown {
+ background-image: image(url("icons/shutdown.png"));
+ }
+
+ #reboot {
+ background-image: image(url("icons/reboot.png"));
+ }
+ '';
+ };
+}
\ No newline at end of file
diff --git a/modules/desktop-environments/hyprland/config/wlogout/layout b/modules/desktop-environments/hyprland/config/wlogout/layout
deleted file mode 100755
index 6e546a1..0000000
--- a/modules/desktop-environments/hyprland/config/wlogout/layout
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "label" : "lock",
- "action" : "swaylock",
- "text" : "Lock",
- "keybind" : "l"
-}
-{
- "label" : "hibernate",
- "action" : "systemctl hibernate",
- "text" : "Hibernate",
- "keybind" : "h"
-}
-{
- "label" : "logout",
- "action" : "sleep 1; hyprctl dispatch exit",
- "text" : "Logout",
- "keybind" : "e"
-}
-{
- "label" : "shutdown",
- "action" : "systemctl poweroff",
- "text" : "Shutdown",
- "keybind" : "s"
-}
-{
- "label" : "suspend",
- "action" : "systemctl suspend",
- "text" : "Suspend",
- "keybind" : "u"
-}
-{
- "label" : "reboot",
- "action" : "systemctl reboot",
- "text" : "Reboot",
- "keybind" : "r"
-}
diff --git a/modules/desktop-environments/hyprland/config/wlogout/style.css b/modules/desktop-environments/hyprland/config/wlogout/style.css
deleted file mode 100755
index 5ba48fe..0000000
--- a/modules/desktop-environments/hyprland/config/wlogout/style.css
+++ /dev/null
@@ -1,50 +0,0 @@
-* {
- background-image: none;
-}
-
-window {
- background-color: rgba(36, 39, 58, 0.9);
-}
-
-button {
- margin: 8px;
- color: #cad3f5;
- background-color: #363a4f;
- border-style: solid;
- border-width: 2px;
- background-repeat: no-repeat;
- background-position: center;
- background-size: 25%;
-}
-
-button:active,
-button:focus,
-button:hover {
- color: #8bd5ca;
- background-color: #24273a;
- outline-style: none;
-}
-
-#lock {
- background-image: image(url("icons/lock.png"));
-}
-
-#logout {
- background-image: image(url("icons/logout.png"));
-}
-
-#suspend {
- background-image: image(url("icons/suspend.png"));
-}
-
-#hibernate {
- background-image: image(url("icons/hibernate.png"));
-}
-
-#shutdown {
- background-image: image(url("icons/shutdown.png"));
-}
-
-#reboot {
- background-image: image(url("icons/reboot.png"));
-}
diff --git a/modules/desktop-environments/hyprland/default.nix b/modules/desktop-environments/hyprland/default.nix
index 714d16d..080bc53 100755
--- a/modules/desktop-environments/hyprland/default.nix
+++ b/modules/desktop-environments/hyprland/default.nix
@@ -1,7 +1,17 @@
{ pkgs, lib, ... }:
let
-# sddmTheme = "catppuccin-mocha";
theme = import ./theme.nix { inherit pkgs; };
+
+ bing-wallpaper = pkgs.writeScriptBin "bing-wallpaper" ''
+ # Directory to store wallpapers
+ IMG_PATH="/tmp/wallpaper.jpg"
+
+ # Download if not already downloaded
+ URL=$(curl -s "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1" | \
+ jq -r '.images[0].url')
+ FULL_URL="https://www.bing.com$URL"
+ curl -s -o "$IMG_PATH" "$FULL_URL"
+ '';
in
{
imports = [
@@ -15,7 +25,8 @@ in
sddm = {
enable = true;
package = pkgs.kdePackages.sddm;
- theme = theme.sddmTheme;
+ extraPackages = [ theme.sddm.package ];
+ theme = theme.sddm.themeName;
wayland.enable = true;
};
# Disable gdm
@@ -47,6 +58,22 @@ in
};
systemd = {
+ services = {
+ preload-bing-wallpaper = {
+ wants = [ "network.target" ];
+ after = [ "network.target" ];
+ wantedBy = [ "graphical-session.target" ];
+ path = [
+ pkgs.bash
+ pkgs.jq
+ pkgs.curl
+ bing-wallpaper
+ ];
+ script = ''
+ bing-wallpaper
+ '';
+ };
+ };
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
@@ -92,6 +119,7 @@ in
xdgOpenUsePortal = false;
extraPortals = [
pkgs.xdg-desktop-portal-hyprland
+ pkgs.xdg-desktop-portal-gnome
pkgs.xdg-desktop-portal-gtk
];
};
diff --git a/modules/desktop-environments/hyprland/environment.nix b/modules/desktop-environments/hyprland/environment.nix
index fc846af..98631cd 100755
--- a/modules/desktop-environments/hyprland/environment.nix
+++ b/modules/desktop-environments/hyprland/environment.nix
@@ -1,28 +1,6 @@
{ pkgs, ... }:
-let
-
- waybarWeatherScript = pkgs.writeScriptBin "waybar-weather" ''
- /home/matt/.config/waybar/scripts/waybar-wttr.py
- '';
-
- waybarUpdatesScript = pkgs.writeScriptBin "waybar-updates" ''
- /home/matt/.config/waybar/scripts/waybar-updates.py
- '';
-
- bing-wallpaper = pkgs.writeScriptBin "bing-wallpaper" ''
- # Directory to store wallpapers
- IMG_PATH="/tmp/wallpaper.jpg"
-
- # Download if not already downloaded
- URL=$(curl -s "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1" | \
- jq -r '.images[0].url')
- FULL_URL="https://www.bing.com$URL"
- curl -s -o "$IMG_PATH" "$FULL_URL"
- '';
-in
{
environment.systemPackages = with pkgs; [
- bing-wallpaper
ddcutil
dunst
egl-wayland
@@ -42,6 +20,7 @@ in
hyprcursor
hyprland
hyprshot
+ kdePackages.qtmultimedia
libnotify
mako
meson
@@ -51,6 +30,7 @@ in
nwg-dock-hyprland
nwg-drawer
nwg-look
+ overskride
pamixer
pavucontrol
playerctl
@@ -60,8 +40,6 @@ in
qt6.qtwayland
rofi-wayland
waybar
- waybarUpdatesScript
- waybarWeatherScript
wayland-protocols
wayland-utils
waypaper
diff --git a/modules/desktop-environments/hyprland/home.nix b/modules/desktop-environments/hyprland/home.nix
index 9500310..77bffe3 100755
--- a/modules/desktop-environments/hyprland/home.nix
+++ b/modules/desktop-environments/hyprland/home.nix
@@ -1,7 +1,7 @@
{ lib, pkgs, ... }:
let
theme = import ./theme.nix { inherit pkgs; };
- wallpaper = "/home/matt/.config/wallpapers/wall.png";
+ wallpaper = "/tmp/wallpaper.jpg";
in
{
imports = [
@@ -93,8 +93,6 @@ in
};
services = {
- blueman-applet.enable = true;
-
hyprpaper = {
enable = true;
settings = {
diff --git a/modules/desktop-environments/hyprland/theme.nix b/modules/desktop-environments/hyprland/theme.nix
index c28444f..08b3e25 100644
--- a/modules/desktop-environments/hyprland/theme.nix
+++ b/modules/desktop-environments/hyprland/theme.nix
@@ -6,6 +6,13 @@ let
themeColor = "dark"; # [ "standard" "light" "dark" ]
iconThemeVariant = "all"; # [ "default" "purple" "pink" "red" "orange" "yellow" "green" "teal" "grey" "all" ]
iconScheme = "nord"; # [ "default" "nord" "dracula" "gruvbox" "everforest" "catppuccin" "all" ]
+
+ # customized_sddm_astronaut = pkgs.sddm-astronaut.override {
+ # embeddedTheme = "hyprland_kath";
+ # themeConfig = {
+ # Background = "path/to/background.jpg";
+ # };
+ # };
in
{
# Displays
@@ -52,7 +59,10 @@ in
fontSize = 12;
# SDDM/Locking
- sddmTheme = "sddm-astronaut";
+ sddm = {
+ themeName = "sddm-astronaut-theme";
+ package = pkgs.sddm-astronaut;
+ };
lockScreenTimer = 900; # 15 min
screenOffTimer = 930; # 15.5 min
suspendTimer = 3600; # 1hr