add matugen support for hyprland

This commit is contained in:
Sem
2026-03-30 20:56:59 +02:00
parent 029cd7ae55
commit ddd9a93679
6 changed files with 204 additions and 101 deletions

150
hypr/colors.conf Normal file
View File

@@ -0,0 +1,150 @@
$image = /home/sem/Pictures/wallpapers/171022.jpg
$background = rgba(0f1511ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$error = rgba(ffece9ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$error_container = rgba(ffaea4ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$inverse_on_surface = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$inverse_primary = rgba(065334ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$inverse_surface = rgba(dfe4ddff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_background = rgba(dfe4ddff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_error = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_error_container = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_primary = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_primary_container = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_primary_fixed = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_primary_fixed_variant = rgba(00150aff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_secondary = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_secondary_container = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_secondary_fixed = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_secondary_fixed_variant = rgba(02150bff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_surface = rgba(ffffffff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_surface_variant = rgba(ffffffff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_tertiary = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_tertiary_container = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_tertiary_fixed = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$on_tertiary_fixed_variant = rgba(00141aff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$outline = rgba(e9f2e9ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$outline_variant = rgba(bcc5bdff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$primary = rgba(bcffd5ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$primary_container = rgba(8dd1a9ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$primary_fixed = rgba(adf2c7ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$primary_fixed_dim = rgba(91d5acff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$scrim = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$secondary = rgba(def6e4ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$secondary_container = rgba(b1c8b7ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$secondary_fixed = rgba(d0e8d6ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$secondary_fixed_dim = rgba(b5ccbbff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$shadow = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$source_color = rgba(323c35ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface = rgba(0f1511ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_bright = rgba(4c514dff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_container = rgba(2c322dff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_container_high = rgba(373d38ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_container_highest = rgba(424843ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_container_low = rgba(1b211dff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_container_lowest = rgba(000000ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_dim = rgba(0f1511ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_tint = rgba(91d5acff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$surface_variant = rgba(404942ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$tertiary = rgba(daf4ffff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$tertiary_container = rgba(a0c9d8ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$tertiary_fixed = rgba(bfe9f9ff)
$image = /home/sem/Pictures/wallpapers/171022.jpg
$tertiary_fixed_dim = rgba(a4cddcff)

View File

@@ -17,6 +17,7 @@
# source = ~/.config/hypr/myColors.conf # source = ~/.config/hypr/myColors.conf
source = ~/linux-dotfiles/hypr/monitors.conf source = ~/linux-dotfiles/hypr/monitors.conf
source = colors.conf
################### ###################
### MY PROGRAMS ### ### MY PROGRAMS ###
@@ -86,8 +87,8 @@ general {
border_size = 2 border_size = 2
# https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors
col.active_border = rgba(d2519cee) rgba(dd94ffee) 45deg col.active_border = $primary_fixed_dim
col.inactive_border = rgba(d2519caa) col.inactive_border = $inverse_primary
# Set to true enable resizing windows by clicking and dragging on borders and gaps # Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false resize_on_border = false

View File

@@ -43,82 +43,14 @@ block_postfix = "*>"
contrast = 1.0 contrast = 1.0
[config.wallpaper] [config.wallpaper]
# Whether to set the wallpaper or not
set = true
# The base command to run for applying the wallpaper. # The base command to run for applying the wallpaper.
# Keywords like {{ image }} or anything that works inside of hooks works here. # Keywords like {{ image }} or anything that works inside of hooks works here.
# You could also set a static color if you use the color keywords and the wallpaper setter supports it. # You could also set a static color if you use the color keywords and the wallpaper setter supports it.
command = "swww img --transition-type center {{ image }}" command = "awww img {{ image }} --transition-type grow --transition-fps 60 --transition-duration 0.6"
# Whether to set the wallpaper or not
set = true
# For example, killing the wallpaper daemon. Usage is like a normal hook. [templates.hyprland]
# pre_hook = "" input_path = '~/linux-dotfiles/matugen/templates/hyprland-colors.conf'
output_path = '~/linux-dotfiles/hypr/colors.conf'
# If you don't want to use the other colors that are automatically generated (on_color, on_color_container) you can just import a custom json with the colors instead. post_hook = "hyprctl reload && echo 'done'"
# For an example of importing json see: https://iniox.github.io/#matugen/usage/importing-json
[config.custom_colors]
red = "#ff0000"
blue = "#0000ff"
green = "#00ff00"
[templates.includeme]
input_path = "./include.txt"
# The output path is optional if you just want to import the template anyways.
# output_path = "./a/include.txt"
[templates.name1]
# Relative paths will be resolved from the path `config.toml` is in.
input_path = "./colors.whatever-extension"
output_path = "./a/colors-generated.whatever-extension"
# Defaults to a value of 0 if unspecified, determines the order that each template is processed.
# You can use index = n to force a particular template hook to run after everything else, and index = -n for before everything else
index = 1
# Defaults to the type from CLI if unspecified.
# One of `SchemeContent`, `SchemeExpressive`, `SchemeFidelity`, `SchemeFruitSalad`, `SchemeMonochrome`, `SchemeNeutral`, `SchemeRainbow`, `SchemeTonalSpot`, `SchemeVibrant`
type = "SchemeExpressive"
# For testing of the `--continue-on-error` flag
# [templates.ishoulderror]
# Relative paths will be resolved from the path `config.toml` is in.
# input_path = "./error-testing.txt"
# output_path = "./a/error-testing.txt"
# This will use a different input path depending on what mode you use.
# input_path_modes = { dark = "./colors.whatever-extension", light = "./colors.whatever-extension" }
# This will compare all of the colors inside the array with the color you set as `compare_to`, and returns the closest color to it.
# You can then use `{{closest_color}}` inside hooks.
colors_to_compare = [
{ name = "black", color = "#000000" },
{ name = "red", color = "#ff0000" },
{ name = "maroon", color = "#800000" },
{ name = "yellow", color = "#ffff00" },
{ name = "olive", color = "#808000" },
{ name = "lime", color = "#00ff00" },
{ name = "green", color = "#008000" },
{ name = "aqua", color = "#00ffff" },
{ name = "teal", color = "#008080" },
{ name = "blue", color = "#0000ff" },
{ name = "navy", color = "#000080" },
{ name = "fuchsia", color = "#ff00ff" },
{ name = "purple", color = "#800080" },
]
compare_to = "{{colors.primary.default.hex}}"
# Runs before the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
pre_hook = 'echo "source color {{colors.source_color.default.hex}}, source image {{image}}, closest color {{closest_color}}"'
# Runs after the template is exported. You can use keywords here.
# If you want the command to be async, add an & symbol to the end of the command on unix.
post_hook = 'echo "after gen"'
# For overriding the prefix for a specific template only
expr_prefix = "{{"
expr_postfix = "}}"
# Only hex values
# https://m3.material.io/styles/color/advanced/adjust-existing-colors#1cc12e43-237b-45b9-8fe0-9a3549c1f61e
# If you want to use the original color without any harmonization, add `_source` after the name like: `{{ color_source }}`
# Example: To use the original red color you would use `{{ red_source }}` instead of `{{ red }}`

View File

@@ -0,0 +1,4 @@
<* for name, value in colors *>
$image = {{image}}
${{name}} = rgba({{value.default.hex_stripped}}ff)
<* endfor *>

View File

@@ -1,4 +1,3 @@
import Quickshell
import Quickshell.Io import Quickshell.Io
import QtQuick import QtQuick
@@ -36,15 +35,14 @@ Item {
var index = Math.floor(Math.random() * wallpapers.length); var index = Math.floor(Math.random() * wallpapers.length);
var path = wallpapers[index]; var path = wallpapers[index];
// console.log("wallpaper set to " + path); wallpaperProcess.command = ["matugen", "image", path]
console.log("Running command: " + wallpaperProcess.command);
wallpaperProcess.command = ["awww", "img", path, "--transition-type", "grow", "--transition-fps", "60", "--transition-duration", "0.6"];
wallpaperProcess.running = true; wallpaperProcess.running = true;
} }
Timer { Timer {
interval: 60000 interval: 60000 * 15 // every 15 minutes
running: true running: true
repeat: true repeat: true
onTriggered: wallpaperHolder.setRandomWallpaper() onTriggered: wallpaperHolder.setRandomWallpaper()

View File

@@ -1,19 +1,33 @@
pragma ComponentBehavior: Bound
import Quickshell import Quickshell
import Quickshell.Wayland
import Quickshell.Hyprland
import Quickshell.Io
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Window
import "." import "."
import "constants" import "constants"
import "ui" import "ui"
import "services" import "services"
// qmllint disable uncreatable-type ShellRoot {
PanelWindow {
id: root id: root
// put RandomWallpaper and SystemStats here so they only get instantiated once
RandomWallpaper {}
SystemStats {
id: stats
}
Variants {
model: Quickshell.screens
// qmllint disable uncreatable-type
PanelWindow {
id: rootPanel
required property ShellScreen modelData
screen: modelData
// ===================== // =====================
// Layout // Layout
// ===================== // =====================
@@ -23,15 +37,19 @@ PanelWindow {
implicitHeight: 25 implicitHeight: 25
color: Constants.colBg color: Constants.colBg
RandomWallpaper {} Loader {
id: wallpaperLoader
SystemStats { sourceComponent: RandomWallpaper {}
id: stats active: false
} }
TopBar { TopBar {
anchors.fill: parent anchors.fill: parent
cpuUsage: stats.cpuUsage cpuUsage: stats.cpuUsage
memUsage: stats.memUsage memUsage: stats.memUsage
} }
}
}
} }