diff --git a/hypr/colors.conf b/hypr/colors.conf new file mode 100644 index 0000000..9e670c4 --- /dev/null +++ b/hypr/colors.conf @@ -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) diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index 4736064..42a5892 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -17,6 +17,7 @@ # source = ~/.config/hypr/myColors.conf source = ~/linux-dotfiles/hypr/monitors.conf +source = colors.conf ################### ### MY PROGRAMS ### @@ -86,8 +87,8 @@ general { border_size = 2 # https://wiki.hypr.land/Configuring/Variables/#variable-types for info about colors - col.active_border = rgba(d2519cee) rgba(dd94ffee) 45deg - col.inactive_border = rgba(d2519caa) + col.active_border = $primary_fixed_dim + col.inactive_border = $inverse_primary # Set to true enable resizing windows by clicking and dragging on borders and gaps resize_on_border = false diff --git a/matugen/config.toml b/matugen/config.toml index fb20384..954f877 100644 --- a/matugen/config.toml +++ b/matugen/config.toml @@ -43,82 +43,14 @@ block_postfix = "*>" contrast = 1.0 [config.wallpaper] -# Whether to set the wallpaper or not -set = true - # The base command to run for applying the wallpaper. # 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. -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. -# pre_hook = "" - -# 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. -# 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 }}` +[templates.hyprland] +input_path = '~/linux-dotfiles/matugen/templates/hyprland-colors.conf' +output_path = '~/linux-dotfiles/hypr/colors.conf' +post_hook = "hyprctl reload && echo 'done'" diff --git a/matugen/templates/hyprland-colors.conf b/matugen/templates/hyprland-colors.conf new file mode 100644 index 0000000..b457136 --- /dev/null +++ b/matugen/templates/hyprland-colors.conf @@ -0,0 +1,4 @@ +<* for name, value in colors *> +$image = {{image}} +${{name}} = rgba({{value.default.hex_stripped}}ff) +<* endfor *> \ No newline at end of file diff --git a/quickshell/services/RandomWallpaper.qml b/quickshell/services/RandomWallpaper.qml index 2d54a6f..5510474 100644 --- a/quickshell/services/RandomWallpaper.qml +++ b/quickshell/services/RandomWallpaper.qml @@ -1,4 +1,3 @@ -import Quickshell import Quickshell.Io import QtQuick @@ -36,15 +35,14 @@ Item { var index = Math.floor(Math.random() * wallpapers.length); var path = wallpapers[index]; - // console.log("wallpaper set to " + path); - - wallpaperProcess.command = ["awww", "img", path, "--transition-type", "grow", "--transition-fps", "60", "--transition-duration", "0.6"]; + wallpaperProcess.command = ["matugen", "image", path] + console.log("Running command: " + wallpaperProcess.command); wallpaperProcess.running = true; } Timer { - interval: 60000 + interval: 60000 * 15 // every 15 minutes running: true repeat: true onTriggered: wallpaperHolder.setRandomWallpaper() diff --git a/quickshell/shell.qml b/quickshell/shell.qml index 423ff00..9975221 100644 --- a/quickshell/shell.qml +++ b/quickshell/shell.qml @@ -1,37 +1,55 @@ +pragma ComponentBehavior: Bound import Quickshell -import Quickshell.Wayland -import Quickshell.Hyprland -import Quickshell.Io import QtQuick -import QtQuick.Layouts +import QtQuick.Window import "." import "constants" import "ui" import "services" -// qmllint disable uncreatable-type -PanelWindow { +ShellRoot { id: root - // ===================== - // Layout - // ===================== - anchors.top: true - anchors.left: true - anchors.right: true - implicitHeight: 25 - color: Constants.colBg - + // put RandomWallpaper and SystemStats here so they only get instantiated once RandomWallpaper {} SystemStats { id: stats } - TopBar { - anchors.fill: parent - cpuUsage: stats.cpuUsage - memUsage: stats.memUsage + Variants { + model: Quickshell.screens + + // qmllint disable uncreatable-type + PanelWindow { + id: rootPanel + + required property ShellScreen modelData + screen: modelData + + // ===================== + // Layout + // ===================== + anchors.top: true + anchors.left: true + anchors.right: true + implicitHeight: 25 + color: Constants.colBg + + Loader { + id: wallpaperLoader + sourceComponent: RandomWallpaper {} + active: false + } + + TopBar { + anchors.fill: parent + + cpuUsage: stats.cpuUsage + memUsage: stats.memUsage + } + } } } +