feat: make AGS colorshell configuration fully declarative

- Add complete colorshell v2.0.3 configuration to home/ags-config/
- Disable runner plugin and NightLight tile (incompatible with NixOS)
- Customize SCSS with full opacity (no transparency)
- Add dark pale blue color scheme in home/pywal-colors/
- Configure Papirus-Dark icon theme via home-manager
- Make ~/.config/ags/ immutable and managed by Nix store
- Auto-deploy pywal colors to ~/.cache/wal/colors.json

All AGS configuration is now reproducible and version controlled.
This commit is contained in:
2025-11-04 21:36:38 +00:00
parent 593735370a
commit b2ae32a078
240 changed files with 1024921 additions and 3 deletions

View File

@@ -0,0 +1,7 @@
[Desktop Entry]
Name=colorshell
Type=Application
Comment=A Desktop Shell for Hyprland that has colors from your wallpaper!
Exec=colorshell
NoDisplay=true
StartupWMClass=io.github.retrozinndev.colorshell

View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
height="16"
viewBox="0 0 16 16"
width="16"
version="1.1"
id="svg4"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<path
d="M 2.133333,0 C 0.970833,0 0,0.9708331 0,2.1333333 v 3.2 c 0,1.1625003 0.970833,2.1333334 2.133333,2.1333334 h 3.2 c 1.162501,0 2.133334,-0.9708331 2.133334,-2.1333334 v -3.2 C 7.466667,0.9708331 6.495834,0 5.333333,0 Z m 8.533334,0 C 9.504166,0 8.533333,0.9708331 8.533333,2.1333333 v 3.2 c 0,1.1625003 0.970833,2.1333334 2.133334,2.1333334 h 3.2 C 15.029167,7.4666667 16,6.4958336 16,5.3333333 v -3.2 C 16,0.9708331 15.029167,0 13.866667,0 Z M 2.133333,2.1333333 h 3.2 v 3.2 h -3.2 z m 8.533334,0 h 3.2 v 3.2 h -3.2 z m -8.533334,6.4 C 0.970833,8.5333333 0,9.5041664 0,10.666667 v 3.2 C 0,15.029167 0.970833,16 2.133333,16 h 3.2 c 1.162501,0 2.133334,-0.970833 2.133334,-2.133333 v -3.2 c 0,-1.1625006 -0.970833,-2.1333337 -2.133334,-2.1333337 z m 8.533334,0 c -1.162501,0 -2.133334,0.9708331 -2.133334,2.1333337 v 3.2 C 8.533333,15.029167 9.504166,16 10.666667,16 h 3.2 C 15.029167,16 16,15.029167 16,13.866667 v -3.2 C 16,9.5041664 15.029167,8.5333333 13.866667,8.5333333 Z M 2.133333,10.666667 h 3.2 v 3.2 h -3.2 z m 8.533334,0 h 3.2 v 3.2 h -3.2 z m 0,0"
fill="#2e3436"
id="path1"
style="fill:#000000;stroke-width:1.06667" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 7.40625 1 c -0.613281 0.007812 -1.234375 0.089844 -1.847656 0.253906 c -3.273438 0.878906 -5.558594 3.855469 -5.558594 7.246094 s 2.285156 6.367188 5.558594 7.242188 c 3.273437 0.878906 6.742187 -0.558594 8.4375 -3.492188 c 0.273437 -0.480469 0.109375 -1.089844 -0.367188 -1.367188 c -0.476562 -0.273437 -1.089844 -0.109374 -1.367187 0.367188 c -1.246094 2.160156 -3.777344 3.207031 -6.1875 2.5625 c -2.40625 -0.644531 -4.074219 -2.820312 -4.074219 -5.3125 c 0 -2.496094 1.667969 -4.667969 4.074219 -5.3125 c 2.410156 -0.644531 4.941406 0.402344 6.1875 2.5625 c 0.058593 0.085938 0.125 0.164062 0.203125 0.226562 l -0.019532 0.015626 l -0.007812 0.007812 h -1.4375 c -0.550781 0 -1 0.449219 -1 1 c 0 0 0 1 1 1 h 5 v -5 s 0.003906 -1 -1 -1 c -0.550781 0 -1 0.449219 -1 1 v 1.6875 l -0.015625 0.011719 l -0.011719 0.011719 c -1.277344 -2.179688 -3.53125 -3.519532 -5.953125 -3.691407 c -0.203125 -0.015625 -0.40625 -0.019531 -0.613281 -0.019531 z m 0 0" fill="#222222"/></svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 1 c -3.855469 0 -7 3.144531 -7 7 s 3.144531 7 7 7 s 7 -3.144531 7 -7 s -3.144531 -7 -7 -7 z m 0 0" fill="#222222"/></svg>

After

Width:  |  Height:  |  Size: 261 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 5.019531 -0.00390625 c -0.96875 0 -2 1.05078125 -2 2.00000025 v 2.988281 c 0 0.429687 0.222657 0.675781 0.554688 1.007813 l 2.023437 2.003906 l -2.007812 1.992187 c -0.367188 0.363281 -0.570313 0.6875 -0.570313 1 v 3.007813 c 0 1.011718 0.988281 2 2 2 h 6 c 1.007813 0 2 -1.011719 2 -2.003906 v -3.003907 c 0 -0.3125 -0.222656 -0.628906 -0.570312 -0.976562 l -2.015625 -2.015625 l 1.988281 -1.988282 c 0.261719 -0.261718 0.585937 -0.6875 0.597656 -1.015624 v -2.996094 c 0 -1.003906 -1.007812 -2.00000025 -2 -2.00000025 z m 6 5.00000025 h -6 v -3 h 6 m -3.589843 7 h 1.175781 l 2.414062 2.414062 v 1.585938 l -3 -2 l -3 2 v -1.613282 z m 0 0" fill="#222222"/></svg>

After

Width:  |  Height:  |  Size: 803 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#222222"><path d="m 4 3 c -2.199219 0 -4 1.800781 -4 4 v 2 c 0 2.199219 1.800781 4 4 4 c 0.550781 0 1 -0.449219 1 -1 s -0.449219 -1 -1 -1 c -1.125 0 -2 -0.875 -2 -2 v -2 c 0 -1.125 0.875 -2 2 -2 h 8 c 1.125 0 2 0.875 2 2 v 2 c 0 1.125 -0.875 2 -2 2 h -4 c -0.550781 0 -1 0.449219 -1 1 s 0.449219 1 1 1 h 4 c 2.199219 0 4 -1.800781 4 -4 v -2 c 0 -2.199219 -1.800781 -4 -4 -4 z m 0 0"/><path d="m 10 10.996094 v -2.003906 h -1 v 0.007812 c -0.265625 0 -0.519531 0.105469 -0.707031 0.289062 l -2 2 c -0.390625 0.390626 -0.390625 1.023438 0 1.414063 l 2 2 c 0.1875 0.183594 0.441406 0.289063 0.707031 0.285156 v 0.011719 h 1 v -1.992188"/></g></svg>

After

Width:  |  Height:  |  Size: 781 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 8 1.03125 c -3.871094 0 -7 3.128906 -7 7 s 3.128906 7 7 7 s 7 -3.128906 7 -7 s -3.128906 -7 -7 -7 z m -4 6 h 8 v 2 h -8 z m 0 0" fill="#222222"/></svg>

After

Width:  |  Height:  |  Size: 289 B

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#222222"><path d="m 0 2.316406 v 5.507813 c 0 2.214843 1.1875 4.257812 3.109375 5.355469 l 4.890625 2.796874 l 4.890625 -2.796874 c 1.921875 -1.097657 3.109375 -3.140626 3.109375 -5.355469 v -5.507813 l -8 -2.285156 z m 14.726562 1.71875 l -0.726562 -0.964844 v 4.753907 c 0 1.496093 -0.800781 2.875 -2.101562 3.617187 l -4.394532 2.511719 h 0.992188 l -4.394532 -2.511719 c -1.300781 -0.742187 -2.101562 -2.121094 -2.101562 -3.617187 v -4.753907 l -0.726562 0.964844 l 7 -2 h -0.546876 z m 0 0"/><path d="m 5.941406 6.957031 l 3.058594 3.058594 c 0.292969 0.292969 0.765625 0.292969 1.058594 0 c 0.292968 -0.292969 0.292968 -0.765625 0 -1.058594 l -3.058594 -3.058593 c -0.292969 -0.292969 -0.765625 -0.292969 -1.058594 0 c -0.292968 0.292968 -0.292968 0.765624 0 1.058593 z m 0 0"/><path d="m 9 5.898438 l -3.058594 3.058593 c -0.292968 0.292969 -0.292968 0.765625 0 1.058594 c 0.292969 0.292969 0.765625 0.292969 1.058594 0 l 3.058594 -3.058594 c 0.292968 -0.292969 0.292968 -0.765625 0 -1.058593 c -0.292969 -0.292969 -0.765625 -0.292969 -1.058594 0 z m 0 0"/></g></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><g fill="#222222"><path d="m 0 2.316406 v 5.507813 c 0 2.214843 1.1875 4.257812 3.109375 5.355469 l 4.890625 2.796874 l 4.890625 -2.796874 c 1.921875 -1.097657 3.109375 -3.140626 3.109375 -5.355469 v -5.507813 l -8 -2.285156 z m 14.726562 1.71875 l -0.726562 -0.964844 v 4.753907 c 0 1.496093 -0.800781 2.875 -2.101562 3.617187 l -4.394532 2.511719 h 0.992188 l -4.394532 -2.511719 c -1.300781 -0.742187 -2.101562 -2.121094 -2.101562 -3.617187 v -4.753907 l -0.726562 0.964844 l 7 -2 h -0.546876 z m 0 0"/><path d="m 5.46875 7.78125 l 2 2 c 0.292969 0.292969 0.769531 0.292969 1.0625 0 l 3 -3 c 0.292969 -0.292969 0.292969 -0.769531 0 -1.0625 s -0.769531 -0.292969 -1.0625 0 l -3 3 h 1.0625 l -2 -2 c -0.292969 -0.292969 -0.769531 -0.292969 -1.0625 0 s -0.292969 0.769531 0 1.0625 z m 0 0"/></g></svg>

After

Width:  |  Height:  |  Size: 928 B

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
<g fill="#2e3436">
<path d="m 1 3 h 14 c 0.550781 0 1 0.449219 1 1 s -0.449219 1 -1 1 h -14 c -0.550781 0 -1 -0.449219 -1 -1 s 0.449219 -1 1 -1 z m 0 0"/>
<path d="m 4 4 v -1.5 c 0 -1.386719 1.113281 -2.5 2.5 -2.5 h 2.980469 c 1.382812 0 2.5 1.113281 2.5 2.5 v 1.5 h -2 v -1.5 c 0 -0.269531 -0.230469 -0.5 -0.5 -0.5 h -2.980469 c -0.269531 0 -0.5 0.230469 -0.5 0.5 v 1.5 z m 0 0"/>
<path d="m 4 4 v 9 c 0 0.546875 0.453125 1 1 1 h 6 c 0.546875 0 1 -0.453125 1 -1 v -9 h 2 v 9 c 0 1.660156 -1.339844 3 -3 3 h -6 c -1.660156 0 -3 -1.339844 -3 -3 v -9 z m 0 0"/>
<path d="m 7 7 v 5 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -5 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 s 0.5 0.222656 0.5 0.5 z m 0 0"/>
<path d="m 10 7 v 5 c 0 0.277344 -0.222656 0.5 -0.5 0.5 s -0.5 -0.222656 -0.5 -0.5 v -5 c 0 -0.277344 0.222656 -0.5 0.5 -0.5 s 0.5 0.222656 0.5 0.5 z m 0 0"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,50 @@
@use "sass:color";
@use "./colors";
.apps-window .popup-window-container {
$radius: 48px;
padding: 28px;
background: colors.$bg-translucent;
border-radius: $radius $radius 0 0;
& entry {
background: transparent;
margin-bottom: 32px;
min-width: 450px;
padding: 14px;
border-radius: 18px;
&:focus-within {
box-shadow: inset 0 0 0 2px colors.$bg-tertiary;
background: rgba(colors.$bg-primary, .2);
}
}
& flowbox {
padding: 16px 24px;
& > flowboxchild {
& > button {
padding: 10px;
border-radius: 24px;
& image {
-gtk-icon-size: 64px;
}
& label {
margin-top: 24px;
text-shadow: 1px 1px 1px rgba(colors.$bg-primary, .2);
font-weight: 500;
}
}
&:focus > button,
&:selected > button,
& > button:hover {
background-color: rgba($color: colors.$bg-secondary, $alpha: .5);
}
}
}
}

View File

@@ -0,0 +1,210 @@
@use "sass:color";
@use "./mixins";
@use "./colors";
$radius: 18px;
$padding: 4px;
$color-hover: colors.$bg-primary;
@mixin button-reactivity {
&:active {
box-shadow: 0 0 0 2px $color-hover;
}
}
.bar-container {
padding: 6px;
padding-bottom: 0px;
label {
@include mixins.reset-props;
font-size: 12px;
font-weight: 600;
}
// Style widget groups
& > .bar-centerbox > * {
background: rgba(colors.$bg-translucent, 1.0);
border-radius: $radius;
padding: 0 $padding;
& > box:not(.workspaces-row):not(.tray):not(.focused-client):not(.media),
& > button {
@include button-reactivity;
border-radius: calc($radius - $padding);
margin: $padding 0;
padding: 0 8px;
&:hover {
background: $color-hover;
}
}
}
.workspaces-row {
padding: 4px;
& .workspace {
transition: 80ms linear;
margin: 3px 0;
border-radius: 16px;
min-width: 14px;
padding: 0 6px;
background: colors.$bg-tertiary;
&:active {
border-radius: 10px;
}
& label.id {
font-weight: 600;
margin-right: 4px;
opacity: 0;
}
&.focus {
background: colors.$fg-primary;
min-width: 32px;
& label.id {
opacity: 0;
color: colors.$fg-light;
margin-right: 0;
}
}
& icon {
font-size: 16px;
}
&.show label.id {
opacity: 1;
}
&:hover:not(.last-client-icon):not(.focus) {
background: color.scale($color: colors.$bg-tertiary, $lightness: 10%);
}
}
}
.focused-client {
padding: 0 6px;
& image {
margin-right: 6px;
-gtk-icon-size: 18px;
}
& .text-content {
& .class {
font-size: 9px;
font-family: monospace;
font-weight: 600;
color: colors.$fg-disabled;
margin-top: 0px;
}
& .title {
font-size: 12px;
font-weight: 500;
margin-top: -2px;
}
}
}
.clock.open {
background: colors.$bg-primary;
}
.media {
$spacing: 5px;
$hover-color: color.scale($color: colors.$bg-primary, $lightness: 15%);
background: colors.$bg-primary;
border-radius: calc($radius - $padding);
margin: $padding 0;
padding: 0 calc($padding + 3px);
& image.player-icon {
-gtk-icon-size: 14px;
margin-right: $spacing;
}
& .buttons {
margin-left: $spacing;
}
& .button-row {
border-top-right-radius: 12px;
border-bottom-right-radius: 12px;
padding: 4px 0;
& > button image {
margin: 0;
-gtk-icon-size: 10px;
}
}
&:hover {
background: $hover-color;
}
&:active {
box-shadow: 0 0 0 2px $hover-color;
}
}
.tray {
padding: 0 6px;
& .item {
all: unset;
}
}
.status {
@include mixins.reset-props;
&.open {
background: colors.$bg-primary;
}
& image {
-gtk-icon-size: 14px;
}
& revealer > box {
background: rgba($color: colors.$bg-tertiary, $alpha: 1.0);
border-radius: 12px;
margin: 4px 0;
margin-left: 5px;
padding: 2px 6px;
}
& .status-icons {
padding-left: 4px;
& image.notification-count {
-gtk-icon-size: 6px;
margin-top: -14px;
}
}
}
.apps {
min-width: 18px;
& image {
transition: 120ms linear;
-gtk-icon-size: 14px;
}
&.open {
background: colors.$bg-primary;
}
}
}

View File

@@ -0,0 +1,129 @@
@use "sass:color";
@use "./wal";
@use "./colors";
@use "./mixins";
.popup-window.center-window .center-window-container {
background: colors.$bg-translucent;
border-radius: 24px;
padding: 12px;
& .big-media {
margin-top: 9px;
& .image {
background-size: cover;
background-position: center center;
border-radius: 10px;
}
& .info {
padding: {
top: 4px;
bottom: 6px;
};
& .title {
font-size: 16px;
font-weight: 700;
}
& .artist {
font-size: 14px;
font-weight: 600;
color: colors.$fg-disabled;
}
}
& slider {
all: unset;
opacity: 0;
min-height: .6em;
}
& trough {
border-radius: 4px;
}
& trough highlight {
min-height: .65em;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
}
& .bottom {
& .button-row {
margin-top: 9px;
& button {
padding: 7px;
& label {
font-size: 9px;
}
}
}
& .elapsed,
& .length {
font-size: 12px;
color: colors.$fg-disabled;
}
}
}
& .left .datetime {
padding-bottom: 10px;
& .time {
font-size: 28px;
font-weight: 800;
}
& .date {
font-size: 14px;
font-weight: 500;
color: colors.$fg-disabled;
}
}
& calendar.view {
$border-radius: 14px;
font-weight: 600;
background: colors.$bg-primary;
border-radius: $border-radius;
& header {
background: colors.$bg-secondary;
padding: 6px;
border-top-left-radius: $border-radius;
border-top-right-radius: $border-radius;
}
& grid {
margin: 4px;
label.day-number {
$size: 24px;
min-height: $size;
min-width: $size;
}
}
& button {
transition: 80ms linear;
border-radius: 6px;
&:hover {
background-color: colors.$bg-tertiary;
}
}
& label:selected {
background: colors.$bg-secondary;
border-radius: 6px;
}
}
}

View File

@@ -0,0 +1,13 @@
@use "sass:color";
@use "./wal";
$bg-primary: color.adjust($color: wal.$color1, $lightness: -34%);
$bg-secondary: color.adjust($color: wal.$color1, $lightness: -16%);
$bg-tertiary: color.adjust($color: $bg-secondary, $lightness: 10%);
$bg-light: wal.$foreground;
$bg-translucent: color.change($color: $bg-primary, $alpha: 100%);
$bg-translucent-primary: $bg-translucent;
$bg-translucent-secondary: color.change($color: $bg-translucent, $alpha: 100%);
$fg-primary: wal.$foreground;
$fg-light: $bg-primary;
$fg-disabled: color.adjust($color: wal.$foreground, $lightness: -11%);

View File

@@ -0,0 +1,301 @@
@use "sass:color";
@use "./wal";
@use "./colors";
@use "./functions" as funs;
@use "./mixins";
.control-center-container {
@include mixins.reset-props;
background: colors.$bg-translucent;
border-radius: 28px;
padding: 20px;
& > * {
margin: 9px 0;
&:first-child {
margin-top: 0;
}
&:last-child {
margin-bottom: 0;
}
}
& button:focus-visible {
box-shadow: inset 0 0 0 1px colors.$fg-primary;
}
& .quickactions {
margin-bottom: .8em;
& .user-face {
background-position: center;
background-repeat: no-repeat;
background-size: cover;
min-height: 32px;
min-width: 34px;
margin-right: 6px;
border-radius: 50%;
}
& .user-host {
.user {
font-size: 15px;
font-weight: 600;
}
.host {
color: colors.$fg-disabled;
font-size: 10px;
font-weight: 500;
}
}
& > box:not(.button-row) image {
-gtk-icon-size: 12px;
color: colors.$fg-disabled;
margin-right: 3px;
}
& .uptime {
font-size: 10.1px;
font-family: "Symbols Nerd Font Mono";
color: colors.$fg-disabled;
}
& .button-row {
& button {
padding: 7px;
margin: {
top: 2px;
bottom: 2px;
};
}
}
}
& .sliders {
icon {
font-size: 16px;
}
button {
padding: 4px;
border-radius: 16px;
icon {
font-size: 14px;
}
&:hover {
background: rgba(colors.$fg-primary, .2);
}
}
& .page .content {
& label.name {
font-size: 14px;
font-weight: 500;
}
& trough {
margin-right: 10px;
}
& label.sub-header {
margin-top: 6px;
}
}
}
& #page {
transition: 120ms linear;
background: colors.$bg-secondary;
padding: 14px;
border-radius: 24px;
& .header {
margin-bottom: 12px;
& .top .title {
font-size: 20px;
font-weight: 600;
}
& .description {
font-size: 12px;
font-weight: 500;
color: colors.$fg-disabled;
}
}
& .sub-header {
font-size: 14px;
font-weight: 500;
margin-bottom: 4px;
}
& .page-button, .extra-buttons {
& button {
padding: 6px;
border-radius: 12px;
&.selected {
background: colors.$bg-tertiary;
}
&:hover {
background: rgba(colors.$fg-primary, .1);
}
&:active {
border-radius: 10px;
}
}
& label.title {
font-size: 14px;
}
& label.description {
font-size: 10px;
font-weight: 400;
color: colors.$fg-disabled;
}
& icon {
font-size: 16px;
}
}
& .bottom-buttons button {
& label.title {
font-size: 14px;
font-weight: 500;
}
& label.description {
font-size: 10px;
margin-top: -1px;
font-weight: 400;
color: colors.$fg-disabled;
}
}
& .extra-buttons {
margin-left: 2px;
button {
border-radius: 10px;
&:active {
border-radius: 8px;
}
}
}
}
}
.tiles-container {
@include mixins.reset-props;
& .tile {
$radius: 18px;
$padding: 4px;
background: color.scale($color: colors.$bg-primary, $lightness: -25%);
border-radius: $radius;
padding: $padding;
min-height: 40px;
& .icon {
transition: 120ms ease-in;
border-radius: calc($radius - $padding);
padding: 8px 12px;
margin-right: 6px;
background: color.scale($color: colors.$bg-primary, $lightness: 10%);
& image {
-gtk-icon-size: 18px;
}
&:hover {
background: color.scale($color: colors.$bg-primary, $lightness: 15%);
}
&:active {
border-radius: calc($radius - $padding - 2px);
}
}
& .content {
& .title {
font-weight: 600;
font-size: 15.1px;
}
& .description {
font-size: 12px;
color: colors.$fg-disabled;
font-weight: 400;
}
}
& .arrow {
-gtk-icon-size: 12px;
color: rgba(colors.$fg-disabled, .4);
}
&:hover {
background: color.scale($color: colors.$bg-primary, $lightness: 5%);
}
&.enabled .icon {
background: colors.$bg-secondary;
&:hover {
background: colors.$bg-tertiary;
}
}
&:active {
border-radius: calc($radius - 2px);
}
}
}
.tile-pages #page {
margin-top: 10px;
}
box.notif-history {
background: colors.$bg-translucent;
border-radius: 24px;
padding: 18px;
transition: 120ms linear;
&.hide {
opacity: 0;
}
& .notifications {
& .notification {
background: colors.$bg-translucent-primary;
padding: 3px;
}
}
& .button-row {
margin-top: 12px;
& button {
@include mixins.button-reactive-secondary;
padding: 7px;
& label {
font-size: 12px;
font-weight: 600;
}
}
}
}

View File

@@ -0,0 +1,18 @@
@use "./colors";
@use "./mixins";
.floating-notifications-container {
padding: 16px;
& .float-notification {
$radius: 18px;
box-shadow: 0 0 8px 1px colors.$bg-translucent;
border-radius: $radius;
& .notification {
padding: 4px;
border-radius: $radius;
}
}
}

View File

@@ -0,0 +1,52 @@
@use "./colors";
.logout-menu-container {
background: rgba($color: colors.$bg-translucent-primary, $alpha: .4);
.top {
.time {
font-size: 128px;
font-weight: 900;
color: colors.$fg-primary;
text-shadow: 1px 1px 2px colors.$bg-translucent;
}
.date {
font-size: 24px;
font-weight: 500;
text-shadow: 1px 1px 2px colors.$bg-translucent;
}
}
.button-row {
$radius: 32px;
all: unset;
margin: 0 150px;
& > button {
& image {
-gtk-icon-size: 128px;
}
&:focus-visible {
box-shadow: inset 0 0 0 5px colors.$fg-primary;
}
&:active {
border-radius: calc($radius - 6px);
}
margin: 0 4px;
border-radius: 6px;
&:first-child:not(:active) {
border-top-left-radius: $radius;
border-bottom-left-radius: $radius;
}
&:last-child:not(:active) {
border-top-right-radius: $radius;
border-bottom-right-radius: $radius;
}
}
}
}

View File

@@ -0,0 +1,41 @@
@use "sass:color";
@use "./colors";
@mixin reset-props {
all: unset;
transition: 120ms linear;
font-family: "Adwaita Sans", "Cantarell", "Noto Sans",
"Noto Sans CJK JP", "Noto Sans CJK KR",
"Noto Sans CJK HK", "Noto Sans CJK SC",
"Noto Sans CJK TC", sans-serif,
"Symbols Nerd Font Mono";
color: colors.$fg-primary;
}
@mixin button-reactive-primary {
background: colors.$bg-primary;
border-radius: 14px;
padding: 6px;
&:hover {
background: colors.$bg-secondary;
}
&:active {
border-radius: 10px;
}
}
@mixin button-reactive-secondary {
background: colors.$bg-secondary;
border-radius: 12px;
padding: 6px;
&:hover {
background: colors.$bg-tertiary;
}
&:active {
border-radius: 9px;
}
}

View File

@@ -0,0 +1,34 @@
@use "sass:color";
@use "colors";
.osd {
background: rgba(colors.$bg-translucent-secondary, .6);
padding: 14px 14px;
border-radius: 24px;
min-width: 180px;
.icon {
margin-right: 10px;
-gtk-icon-size: 24px;
}
.level {
margin-top: -6px;
.text {
margin-bottom: 4px;
font-size: 14px;
font-weight: 600;
}
levelbar trough block {
border-radius: 4px;
background: colors.$bg-primary;
&.filled {
min-height: 10px;
background: colors.$bg-secondary;
}
}
}
}

View File

@@ -0,0 +1,73 @@
@use "./colors";
.runner .popup-window-container {
all: unset;
$radius: 24px;
background: rgba($color: colors.$bg-primary, $alpha: .8);
border-radius: $radius;
box-shadow: inset 0 0 0 1px colors.$bg-secondary,
0 0 8px 1px colors.$bg-translucent;
padding: 4px;
& entry {
transition: 80ms ease-in;
min-height: 1.6em;
padding: 14px;
border-radius: inherit;
background: none;
&:focus {
box-shadow: none;
}
& image {
margin-right: 6px;
-gtk-icon-size: 16px;
}
}
& scrolledwindow {
margin: 6px;
}
& list {
& .result {
padding: 10px;
background: colors.$bg-primary;
margin: 2px 0;
border-radius: 14px;
& image {
-gtk-icon-size: 28px;
margin-right: 6px;
}
& .title {
font-weight: 500;
font-size: 16px;
}
& .description {
font-size: 12px;
color: colors.$fg-disabled;
}
}
& > *:selected .result,
& > *:active .result,
& > *:hover .result {
background: colors.$bg-secondary;
}
& > *:first-child {
margin-top: 12px;
}
&:last-child {
margin-bottom: 0;
}
}
}

View File

@@ -0,0 +1,314 @@
@use "sass:color";
@use "./style/wal";
@use "./style/mixins";
@use "./style/functions";
@use "./style/colors";
@use "./style/bar";
@use "./style/osd";
@use "./style/control-center";
@use "./style/center-window";
@use "./style/float-notifications";
@use "./style/logout-menu";
@use "./style/apps-window";
@use "./style/runner";
* {
@include mixins.reset-props;
}
entry {
background: colors.$bg-primary;
padding: 10px 9px;
border-radius: 12px;
&:focus {
box-shadow: inset 0 0 0 2px colors.$bg-secondary;
}
& image.left {
margin-right: 6px;
}
}
.custom-dialog-container {
background: colors.$bg-translucent;
padding: 18px;
border-radius: 24px;
& .title {
font-size: 21px;
font-weight: 700;
margin-bottom: 10px;
}
& .text {
font-size: 16px;
font-weight: 400;
}
& .options {
& button {
@include mixins.button-reactive-primary;
background: colors.$bg-primary;
border-radius: 12px;
padding: 9px 6px;
& label {
font-size: 16px;
font-weight: 600;
}
margin: {
left: 4px;
right: 4px;
};
}
}
&.entry-popup-box entry {
margin-bottom: 10px;
&.password {
font-size: 14px;
font-family: "Adwaita Mono", "Cantarell Mono", "Noto Sans Mono", monospace;
font-weight: 400;
}
}
}
.notification {
background: colors.$bg-translucent-secondary;
border-radius: 16px;
& > .top {
padding: 8px;
padding-bottom: 0;
& .app-icon {
margin-right: 6px;
}
& .app-name {
font-size: 12px;
}
& label.time {
font-size: 11px;
font-weight: 500;
color: colors.$fg-disabled;
margin-right: 6px;
}
& button.close {
padding: 2px;
border-radius: 8px;
&:hover {
background: colors.$bg-secondary;
}
}
& icon.close {
font-size: 16px;
}
}
& .content {
padding: 6px;
padding-top: 0;
& .image {
$size: 78px;
min-width: $size;
min-height: $size;
background-size: cover;
background-position: center;
margin: 6px;
border-radius: 8px;
}
& .summary {
font-size: 17.3px;
font-weight: 700;
margin-bottom: 4px;
}
& .body {
font-size: 14.5px;
font-weight: 400;
}
}
& .actions {
padding: 6px;
& button.action {
border-radius: 4px;
background: colors.$bg-secondary;
padding: 6px;
& label {
font-size: 14px;
font-weight: 600;
}
&:hover {
background: colors.$bg-tertiary;
}
&:first-child {
border-top-left-radius: 12px;
border-bottom-left-radius: 12px;
}
&:last-child {
border-top-right-radius: 12px;
border-bottom-right-radius: 12px;
}
}
}
}
tooltip > box {
padding: 7px 8px;
margin: 12px;
margin-top: 0;
border-radius: 12px;
background: rgba(colors.$bg-primary, .98);
box-shadow: 0 5px 6px 1px colors.$bg-translucent-primary;
& label {
font-size: 13.1px;
font-weight: 500;
color: colors.$fg-primary;
}
}
popover.menu contents {
background: wal.$background;
border-radius: 14px;
padding: 4px;
& viewport > stack > * > * > * {
& > separator {
min-height: .5px;
margin: 3px 2px;
background: rgba(colors.$fg-disabled, .1);
}
& > *:not(separator) > * {
padding: 6px;
border-radius: 10px;
font-size: 12px;
font-weight: 600;
&:hover, &:focus {
background: wal.$color1;
}
}
}
}
.button-row {
& > button {
$active-radius: 8px;
$corner-radius: calc($active-radius + 2px);
background: colors.$bg-secondary;
margin: 0 1px;
padding: 4px 6px;
border-radius: 2px;
transition: 120ms linear;
&:hover {
background: colors.$bg-tertiary;
}
&:active {
border-radius: $active-radius;
}
&:first-child {
margin-left: 0;
&:not(:active) {
border-top-left-radius: $corner-radius;
border-bottom-left-radius: $corner-radius;
}
}
&:last-child {
margin-right: 0;
&:not(:active) {
border-top-right-radius: $corner-radius;
border-bottom-right-radius: $corner-radius;
}
}
}
}
selection {
background: colors.$bg-tertiary;
}
trough {
background: color.adjust($color: colors.$bg-primary, $lightness: -5%);
border-radius: 8px;
margin: 2px 0;
}
trough highlight {
background: wal.$color1;
min-height: .9em;
}
trough slider {
border-radius: 50%;
margin: -4px 0;
background: wal.$foreground;
min-width: 1.2em;
min-height: 1.2em;
}
scrollbar trough {
@include mixins.reset-props;
background: colors.$bg-translucent;
border-radius: 8px;
& slider {
@include mixins.reset-props;
min-width: .45em;
background: colors.$bg-tertiary;
border-radius: 12px;
&:hover, &:active, &:focus {
margin: 2px;
}
}
&:hover, &:active, &:focus {
padding: 2px;
}
}
scale {
& marks mark {
& indicator {
color: colors.$fg-disabled;
min-width: 1px;
min-height: 6px;
}
& label {
font-size: 11px;
font-weight: 400;
color: colors.$fg-disabled;
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 255 KiB