mirror of
https://github.com/flickowoa/dotfiles.git
synced 2026-04-06 00:32:09 +02:00
woa
This commit is contained in:
13
binds.conf
13
binds.conf
@@ -1,13 +0,0 @@
|
||||
$MOD1=SUPER
|
||||
$MOD2=ALT
|
||||
|
||||
bind=$MOD1,1,exec,$THEME/scripts/workspace_switch 1
|
||||
bind=$MOD1,2,exec,$THEME/scripts/workspace_switch 2
|
||||
bind=$MOD1,3,exec,$THEME/scripts/workspace_switch 3
|
||||
bind=$MOD1,4,exec,$THEME/scripts/workspace_switch 4
|
||||
bind=$MOD1,5,exec,$THEME/scripts/workspace_switch 5
|
||||
bind=$MOD1,6,exec,$THEME/scripts/workspace_switch 6
|
||||
bind=$MOD1,7,exec,$THEME/scripts/workspace_switch 7
|
||||
bind=$MOD1,8,exec,$THEME/scripts/workspace_switch 8
|
||||
bind=$MOD1,9,exec,$THEME/scripts/workspace_switch 9
|
||||
bind=$MOD1,0,exec,$THEME/scripts/workspace_switch 10
|
||||
38
colors
38
colors
@@ -1,19 +1,19 @@
|
||||
0: #1b3c46
|
||||
1: #9DBAD8
|
||||
2: #DABAC8
|
||||
3: #B2C2DE
|
||||
4: #B4C6E3
|
||||
5: #D5C7DA
|
||||
6: #E6C9D5
|
||||
7: #dedde8
|
||||
8: #9b9aa2
|
||||
9: #9DBAD8
|
||||
10: #DABAC8
|
||||
11: #B2C2DE
|
||||
12: #B4C6E3
|
||||
13: #D5C7DA
|
||||
14: #E6C9D5
|
||||
15: #dedde8
|
||||
background: #1b3c46
|
||||
foreground: #dedde8
|
||||
cursor: #dedde8
|
||||
0: #181716
|
||||
8: #93918b
|
||||
1: #b57e72
|
||||
9: #b57e72
|
||||
2: #8cb97a
|
||||
10: #8cb97a
|
||||
3: #c9c384
|
||||
11: #c9c384
|
||||
4: #9c96bc
|
||||
12: #9c96bc
|
||||
5: #dba3c7
|
||||
13: #dba3c7
|
||||
6: #afddce
|
||||
14: #afddce
|
||||
7: #edeae1
|
||||
15: #edeae1
|
||||
background: #1e1d1c
|
||||
foreground: #e8e5da
|
||||
cursor: #e8e5da
|
||||
|
||||
@@ -20,10 +20,14 @@ import {
|
||||
|
||||
import { css, scss } from "./util.js";
|
||||
import { Workspaces } from "./widgets/workspace.js";
|
||||
import { Info } from "./widgets/info.js";
|
||||
|
||||
Utils.exec(`sassc ${scss} ${css}`);
|
||||
const { exec, subprocess } = Utils;
|
||||
const { Box, Window, Label } = Widget;
|
||||
|
||||
Utils.subprocess(
|
||||
exec(`sassc ${scss} ${css}`);
|
||||
|
||||
subprocess(
|
||||
[
|
||||
"inotifywait",
|
||||
"--recursive",
|
||||
@@ -33,59 +37,42 @@ Utils.subprocess(
|
||||
App.configDir + "/style",
|
||||
],
|
||||
() => {
|
||||
Utils.exec(`sassc ${scss} ${css}`);
|
||||
exec(`sassc ${scss} ${css}`);
|
||||
App.resetCss();
|
||||
App.applyCss(css);
|
||||
}
|
||||
);
|
||||
|
||||
// const Workspaces = () =>
|
||||
// Widget.Box({
|
||||
// className: "workspaces",
|
||||
|
||||
// children: Array.from({ length: 10 }, (_, i) => i + 1).map((i) =>
|
||||
// Widget.EventBox({
|
||||
// className: [`${i}`],
|
||||
// child: NierToggle({
|
||||
// name: `workspace-${i}`,
|
||||
// className: [`${i}`],
|
||||
// label: `${i}`,
|
||||
// size: 80,
|
||||
// }),
|
||||
// onPrimaryClick: (self) => {
|
||||
// Utils.execAsync(`hyprctl dispatch workspace ${i}`);
|
||||
// },
|
||||
// })
|
||||
// ),
|
||||
// connections: [
|
||||
// [
|
||||
// Hyprland,
|
||||
// (box) => {
|
||||
// //loop through children
|
||||
// for (const element of box.children) {
|
||||
// console.log(element.className, Hyprland.active.workspace.id);
|
||||
// if (element.className.includes(`${Hyprland.active.workspace.id}`)) {
|
||||
// element.child.className = ["nier-toggle-on", "workspace"];
|
||||
// } else {
|
||||
// element.child.className = ["nier-toggle-off"];
|
||||
// }
|
||||
// }
|
||||
// },
|
||||
// ],
|
||||
// ],
|
||||
// });
|
||||
const top = () =>
|
||||
Box({
|
||||
vertical: true,
|
||||
className: ["top"],
|
||||
children: [
|
||||
Box({
|
||||
children: [Workspaces(), Info()],
|
||||
}),
|
||||
Box({
|
||||
className: ["under-workspaces"],
|
||||
style: `background: url("${
|
||||
App.configDir + "/assets/nier-border.svg"
|
||||
}") repeat-x;min-width: ${SCREEN_WIDTH}px;background-size: 80px 20px;min-height: 80px;`,
|
||||
child: Label(""),
|
||||
}),
|
||||
],
|
||||
});
|
||||
|
||||
const Bar = ({ monitor } = {}) => {
|
||||
return Widget.Window({
|
||||
return Window({
|
||||
name: `bar-${monitor}`, // name has to be unique
|
||||
className: "bar",
|
||||
monitor,
|
||||
margin: [50, 50],
|
||||
margin: [0, 0],
|
||||
anchor: ["top", "left", "right"],
|
||||
exclusive: true,
|
||||
layer: "top",
|
||||
child: Widget.Box({
|
||||
children: [Workspaces()],
|
||||
child: Box({
|
||||
style: "margin-top: 10px;",
|
||||
children: [top()],
|
||||
}),
|
||||
});
|
||||
};
|
||||
|
||||
@@ -61,7 +61,7 @@ export const NierLongButton = ({
|
||||
children: [
|
||||
Icon({
|
||||
icon: App.configDir + "/assets/nier-pointer.svg",
|
||||
size: 37,
|
||||
size: 35,
|
||||
className: [
|
||||
"nier-long-button-hover-icon",
|
||||
"nier-long-button-hover-icon-hidden",
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
$tan: rgba(194, 189, 166, 1);
|
||||
$brown: rgba(72, 70, 61, 1);
|
||||
$brown25: rgba(72, 70, 61, .25);
|
||||
$brown15: rgba(72, 70, 61, .15);
|
||||
$brown025: rgba(72, 70, 61, .025);
|
||||
$darkBrown: rgba(69, 67, 58, 1);
|
||||
$tan: #c2bda6;
|
||||
$brown: #48463d;
|
||||
|
||||
$darkBrown: #45433a;
|
||||
|
||||
@@ -23,11 +23,7 @@ $button_spacing_horizontal: 5px;
|
||||
border: none;
|
||||
border-top: transparent $accent_border solid;
|
||||
border-bottom: transparent $accent_border solid;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.nier-toggle {
|
||||
// border: blue 2px solid;
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
.nier-toggle-on {
|
||||
@@ -42,11 +38,11 @@ $button_spacing_horizontal: 5px;
|
||||
|
||||
// the actual button looking thing ( is actuaally a label :0 )
|
||||
.nier-long-button label {
|
||||
font-size: 2rem;
|
||||
font-size: 1.5rem;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
$brown25 0%,
|
||||
$brown25 50%,
|
||||
rgba($brown, 0.25) 0%,
|
||||
rgba($brown, 0.25) 50%,
|
||||
$brown 50%,
|
||||
$brown 100%
|
||||
);
|
||||
@@ -89,10 +85,10 @@ $button_spacing_horizontal: 5px;
|
||||
margin-top: 5px;
|
||||
background: linear-gradient(
|
||||
90deg,
|
||||
$brown25 7px,
|
||||
rgba($brown, 0.25) 7px,
|
||||
transparent 0px,
|
||||
transparent 13px,
|
||||
$brown25 13px,
|
||||
rgba($brown, 0.25) 13px,
|
||||
transparent 18px
|
||||
);
|
||||
min-width: 20px;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
* {
|
||||
all: unset; }
|
||||
|
||||
label {
|
||||
font-family: Arial, sans-serif; }
|
||||
|
||||
.nier-toggle-on {
|
||||
opacity: 1;
|
||||
transition: opacity 0.3s ease-in-out; }
|
||||
@@ -10,7 +13,7 @@
|
||||
transition: opacity 0.3s ease-in-out; }
|
||||
|
||||
.nier-long-button label {
|
||||
font-size: 2rem;
|
||||
font-size: 1.5rem;
|
||||
background: linear-gradient(90deg, rgba(72, 70, 61, 0.25) 0%, rgba(72, 70, 61, 0.25) 50%, #48463d 50%, #48463d 100%);
|
||||
background-size: 200%;
|
||||
color: #48463d;
|
||||
@@ -31,7 +34,7 @@
|
||||
border: none;
|
||||
border-top: transparent 3px solid;
|
||||
border-bottom: transparent 3px solid;
|
||||
min-width: 200px;
|
||||
min-width: 150px;
|
||||
transition: border 0.3s ease-in-out; }
|
||||
|
||||
.nier-long-button-hover {
|
||||
@@ -73,7 +76,7 @@
|
||||
transition: opacity 0.3s ease-in-out; }
|
||||
|
||||
.nier-long-button label {
|
||||
font-size: 2rem;
|
||||
font-size: 1.5rem;
|
||||
background: linear-gradient(90deg, rgba(72, 70, 61, 0.25) 0%, rgba(72, 70, 61, 0.25) 50%, #48463d 50%, #48463d 100%);
|
||||
background-size: 200%;
|
||||
color: #48463d;
|
||||
@@ -94,7 +97,7 @@
|
||||
border: none;
|
||||
border-top: transparent 3px solid;
|
||||
border-bottom: transparent 3px solid;
|
||||
min-width: 200px;
|
||||
min-width: 150px;
|
||||
transition: border 0.3s ease-in-out; }
|
||||
|
||||
.nier-long-button-hover {
|
||||
@@ -154,16 +157,12 @@
|
||||
.active-no-hover-on-hold .nier-long-button-hover-icon {
|
||||
opacity: 1; }
|
||||
|
||||
.under-workspaces {
|
||||
margin-top: -8px;
|
||||
margin-right: 120px; }
|
||||
|
||||
.workspace-button {
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 10px;
|
||||
transition: border 0.3s cubic-bezier(0.15, 0.79, 0, 1); }
|
||||
|
||||
.workspace-button-container .nier-long-button-hover-icon {
|
||||
margin-bottom: 20px; }
|
||||
margin-bottom: 10px; }
|
||||
|
||||
.workspace-button-container .nier-long-button {
|
||||
transition: margin 0.1s cubic-bezier(0.15, 0.79, 0, 1); }
|
||||
@@ -180,11 +179,18 @@
|
||||
|
||||
@keyframes active {
|
||||
0% {
|
||||
margin-bottom: 20px;
|
||||
border: transparent 0px; }
|
||||
margin-bottom: 10px;
|
||||
border: #48463d; }
|
||||
50% {
|
||||
padding-bottom: 0px; }
|
||||
100% {
|
||||
margin-bottom: 0px;
|
||||
border: none;
|
||||
border-top: transparent 3px solid;
|
||||
border-bottom: transparent 3px solid;
|
||||
min-width: 200px; } }
|
||||
padding-bottom: 0px;
|
||||
border-top: 0px;
|
||||
border-bottom: 0px; } }
|
||||
|
||||
.top {
|
||||
margin-bottom: -60px; }
|
||||
|
||||
.under-workspaces {
|
||||
margin-top: -1px; }
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
all: unset;
|
||||
}
|
||||
|
||||
label {
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
@import "nier";
|
||||
|
||||
@import "widgets/workspace.scss";
|
||||
@import "widgets/top.scss";
|
||||
|
||||
6
components/ags/style/widgets/top.scss
Normal file
6
components/ags/style/widgets/top.scss
Normal file
@@ -0,0 +1,6 @@
|
||||
.top {
|
||||
margin-bottom: -60px;
|
||||
}
|
||||
.under-workspaces {
|
||||
margin-top: -1px;
|
||||
}
|
||||
@@ -4,6 +4,7 @@
|
||||
.workspace-button-container.active-no-hover {
|
||||
.nier-long-button {
|
||||
@include long-button-hover;
|
||||
// padding-bottom: 0px;
|
||||
label {
|
||||
transition: background 0.3s cubic-bezier(0.15, 0.79, 0, 1);
|
||||
animation: active-label 0.5s cubic-bezier(0.15, 0.79, 0, 1) forwards;
|
||||
@@ -16,6 +17,7 @@
|
||||
|
||||
.workspace-button-container.active {
|
||||
.nier-long-button {
|
||||
// padding-bottom: 0px;
|
||||
label {
|
||||
transition: background 0.3s cubic-bezier(0.15, 0.79, 0, 1);
|
||||
animation: active-label 0.5s cubic-bezier(0.15, 0.79, 0, 1) forwards;
|
||||
@@ -31,19 +33,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
.under-workspaces {
|
||||
margin-top: -8px;
|
||||
margin-right: 120px;
|
||||
}
|
||||
// .under-workspaces {
|
||||
// margin-top: -8px;
|
||||
// margin-right: 120px;
|
||||
// }
|
||||
|
||||
.workspace-button {
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 10px;
|
||||
transition: border 0.3s cubic-bezier(0.15, 0.79, 0, 1);
|
||||
}
|
||||
|
||||
.workspace-button-container {
|
||||
.nier-long-button-hover-icon {
|
||||
margin-bottom: 20px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.nier-long-button {
|
||||
transition: margin 0.1s cubic-bezier(0.15, 0.79, 0, 1);
|
||||
@@ -68,11 +70,17 @@
|
||||
|
||||
@keyframes active {
|
||||
0% {
|
||||
margin-bottom: 20px;
|
||||
border: transparent 0px;
|
||||
margin-bottom: 10px;
|
||||
border: $brown;
|
||||
// @include long-button;
|
||||
}
|
||||
50% {
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
100% {
|
||||
margin-bottom: 0px;
|
||||
@include long-button;
|
||||
padding-bottom: 0px;
|
||||
border-top: 0px;
|
||||
border-bottom: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,5 +44,4 @@ export {
|
||||
css,
|
||||
SCREEN_HEIGHT,
|
||||
SCREEN_WIDTH,
|
||||
zoom_out,
|
||||
};
|
||||
|
||||
30
components/ags/widgets/info.js
Normal file
30
components/ags/widgets/info.js
Normal file
@@ -0,0 +1,30 @@
|
||||
// importing
|
||||
import {
|
||||
Hyprland,
|
||||
Notifications,
|
||||
Mpris,
|
||||
Audio,
|
||||
Battery,
|
||||
SystemTray,
|
||||
App,
|
||||
Widget,
|
||||
Utils,
|
||||
Variable,
|
||||
} from "../imports.js";
|
||||
import {
|
||||
NierLongButton,
|
||||
NierLongButtonGroup,
|
||||
NierToggle,
|
||||
} from "../nier/buttons.js";
|
||||
|
||||
import { SCREEN_HEIGHT, SCREEN_WIDTH, arradd, arrremove } from "../util.js";
|
||||
|
||||
const { Box, Label } = Widget;
|
||||
const { execAsync } = Utils;
|
||||
|
||||
let HOVERING = false;
|
||||
let REALLY_HOVERING = false;
|
||||
export const Info = () =>
|
||||
Box({
|
||||
child: Label("hlo"),
|
||||
});
|
||||
@@ -22,146 +22,147 @@ import { SCREEN_HEIGHT, SCREEN_WIDTH, arradd, arrremove } from "../util.js";
|
||||
const { Box, Label } = Widget;
|
||||
const { execAsync } = Utils;
|
||||
|
||||
const int_to_string = (i) => {
|
||||
switch (i) {
|
||||
case 1:
|
||||
return "one";
|
||||
case 2:
|
||||
return "two";
|
||||
case 3:
|
||||
return "three";
|
||||
case 4:
|
||||
return "four";
|
||||
case 5:
|
||||
return "five";
|
||||
case 6:
|
||||
return "six";
|
||||
case 7:
|
||||
return "seven";
|
||||
case 8:
|
||||
return "eight";
|
||||
case 9:
|
||||
return "nine";
|
||||
case 10:
|
||||
return "ten";
|
||||
}
|
||||
};
|
||||
|
||||
let HOVERING = false;
|
||||
let REALLY_HOVERING = false;
|
||||
export const Workspaces = () =>
|
||||
Box({
|
||||
vertical: true,
|
||||
children: [
|
||||
NierLongButtonGroup({
|
||||
horizontal: true,
|
||||
min_scale: SCREEN_WIDTH,
|
||||
className: ["workspaces"],
|
||||
buttons: Array.from({ length: 10 }, (_, i) => i + 1).map((i) => {
|
||||
return NierLongButton({
|
||||
className: ["workspace-button"],
|
||||
containerClassName: [
|
||||
"workspace-button-container",
|
||||
`workspace-button-${i}`,
|
||||
],
|
||||
label: `${i}`,
|
||||
onClicked: () => {
|
||||
execAsync(`hyprctl dispatch workspace ${i}`);
|
||||
},
|
||||
passedOnHover: async (self) => {
|
||||
NierLongButtonGroup({
|
||||
horizontal: true,
|
||||
min_scale: SCREEN_WIDTH,
|
||||
className: ["workspaces"],
|
||||
buttons: Array.from({ length: 10 }, (_, i) => i + 1).map((i) => {
|
||||
return NierLongButton({
|
||||
className: ["workspace-button"],
|
||||
containerClassName: [
|
||||
"workspace-button-container",
|
||||
`workspace-button-${i}`,
|
||||
],
|
||||
label: `${int_to_string(i).toUpperCase()}`,
|
||||
onClicked: () => {
|
||||
execAsync(`hyprctl dispatch workspace ${i}`);
|
||||
},
|
||||
passedOnHover: async (self) => {
|
||||
if (
|
||||
!(
|
||||
self.parent.className.includes("active") ||
|
||||
self.parent.className.includes("active-no-hover")
|
||||
)
|
||||
) {
|
||||
HOVERING = true;
|
||||
REALLY_HOVERING = true;
|
||||
}
|
||||
if (HOVERING) {
|
||||
for (let button of self.parent.parent.children) {
|
||||
if (
|
||||
!(
|
||||
self.parent.className.includes("active") ||
|
||||
self.parent.className.includes("active-no-hover")
|
||||
button.className.includes("active") ||
|
||||
button.className.includes("active-no-hover")
|
||||
) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-no-hover"
|
||||
);
|
||||
button.className = arrremove(button.className, "active");
|
||||
button.className = arradd(
|
||||
button.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
passedOnHoverLost: async (self) => {
|
||||
if (!self.className.includes("active")) {
|
||||
HOVERING = false;
|
||||
await new Promise((r) => setTimeout(r, 300));
|
||||
if (!HOVERING && REALLY_HOVERING) {
|
||||
REALLY_HOVERING = false;
|
||||
}
|
||||
}
|
||||
if (!HOVERING) {
|
||||
for (let button of self.parent.parent.children) {
|
||||
if (button.className.includes("active-on-hold")) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-on-hold"
|
||||
);
|
||||
button.className = arradd(button.className, "active");
|
||||
}
|
||||
if (button.className.includes("active-no-hover-on-hold")) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
button.className = arradd(button.className, "active-no-hover");
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
containerConnections: [
|
||||
[
|
||||
Hyprland.active.workspace,
|
||||
|
||||
async (self) => {
|
||||
console.log(
|
||||
"workspacec changed to :: ",
|
||||
Hyprland.active.workspace.id
|
||||
);
|
||||
if (
|
||||
!self.className.includes(
|
||||
`workspace-button-${Hyprland.active.workspace.id}`
|
||||
)
|
||||
) {
|
||||
HOVERING = true;
|
||||
REALLY_HOVERING = true;
|
||||
}
|
||||
if (HOVERING) {
|
||||
for (let button of self.parent.parent.children) {
|
||||
if (
|
||||
button.className.includes("active") ||
|
||||
button.className.includes("active-no-hover")
|
||||
) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-no-hover"
|
||||
);
|
||||
button.className = arrremove(button.className, "active");
|
||||
button.className = arradd(
|
||||
button.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
passedOnHoverLost: async (self) => {
|
||||
if (!self.className.includes("active")) {
|
||||
HOVERING = false;
|
||||
await new Promise((r) => setTimeout(r, 300));
|
||||
if (!HOVERING && REALLY_HOVERING) {
|
||||
REALLY_HOVERING = false;
|
||||
}
|
||||
}
|
||||
if (!HOVERING) {
|
||||
for (let button of self.parent.parent.children) {
|
||||
if (button.className.includes("active-on-hold")) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-on-hold"
|
||||
);
|
||||
button.className = arradd(button.className, "active");
|
||||
}
|
||||
if (button.className.includes("active-no-hover-on-hold")) {
|
||||
button.className = arrremove(
|
||||
button.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
button.className = arradd(
|
||||
button.className,
|
||||
"active-no-hover"
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
containerConnections: [
|
||||
[
|
||||
Hyprland.active.workspace,
|
||||
|
||||
async (self) => {
|
||||
console.log(
|
||||
"workspacec changed to :: ",
|
||||
Hyprland.active.workspace.id
|
||||
self.className = arrremove(self.className, "active-on-hold");
|
||||
self.className = arrremove(
|
||||
self.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
self.className = arrremove(self.className, "active");
|
||||
self.className = arrremove(self.className, "active-no-hover");
|
||||
self.children[0].icon =
|
||||
App.configDir + "/assets/nier-pointer.svg";
|
||||
} else {
|
||||
if (
|
||||
!self.children[1].className.includes("nier-long-button-hover")
|
||||
) {
|
||||
self.className = arradd(self.className, "active-no-hover");
|
||||
} else {
|
||||
self.children[1].className = arrremove(
|
||||
self.children[1].className,
|
||||
"nier-long-button-hover"
|
||||
);
|
||||
if (
|
||||
!self.className.includes(
|
||||
`workspace-button-${Hyprland.active.workspace.id}`
|
||||
)
|
||||
) {
|
||||
self.className = arrremove(
|
||||
self.className,
|
||||
"active-on-hold"
|
||||
);
|
||||
self.className = arrremove(
|
||||
self.className,
|
||||
"active-no-hover-on-hold"
|
||||
);
|
||||
self.className = arrremove(self.className, "active");
|
||||
self.className = arrremove(
|
||||
self.className,
|
||||
"active-no-hover"
|
||||
);
|
||||
self.children[0].icon =
|
||||
App.configDir + "/assets/nier-pointer.svg";
|
||||
} else {
|
||||
if (
|
||||
!self.children[1].className.includes(
|
||||
"nier-long-button-hover"
|
||||
)
|
||||
) {
|
||||
self.className = arradd(
|
||||
self.className,
|
||||
"active-no-hover"
|
||||
);
|
||||
} else {
|
||||
self.children[1].className = arrremove(
|
||||
self.children[1].className,
|
||||
"nier-long-button-hover"
|
||||
);
|
||||
self.className = arradd(self.className, "active");
|
||||
}
|
||||
await new Promise((r) => setTimeout(r, 300));
|
||||
self.children[0].icon =
|
||||
App.configDir + "/assets/nier-pointer-white.svg";
|
||||
}
|
||||
},
|
||||
],
|
||||
],
|
||||
});
|
||||
}),
|
||||
}),
|
||||
Box({
|
||||
className: ["under-workspaces"],
|
||||
style: `background: url("${App.configDir}/assets/nier-border.svg") repeat-x;`,
|
||||
child: Label(""),
|
||||
}),
|
||||
],
|
||||
self.className = arradd(self.className, "active");
|
||||
}
|
||||
await new Promise((r) => setTimeout(r, 300));
|
||||
self.children[0].icon =
|
||||
App.configDir + "/assets/nier-pointer-white.svg";
|
||||
}
|
||||
},
|
||||
],
|
||||
],
|
||||
});
|
||||
}),
|
||||
});
|
||||
|
||||
204
components/foot.ini
Normal file
204
components/foot.ini
Normal file
@@ -0,0 +1,204 @@
|
||||
# -*- conf -*-
|
||||
|
||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
||||
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
|
||||
# login-shell=no
|
||||
|
||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
||||
# title=foot
|
||||
# locked-title=no
|
||||
|
||||
font=BlexMono Nerd Font:size=16
|
||||
# font-bold=<bold variant of regular font>
|
||||
# font-italic=<italic variant of regular font>
|
||||
# font-bold-italic=<bold+italic variant of regular font>
|
||||
# font-size-adjustment=0.5
|
||||
# line-height=<font metrics>
|
||||
# letter-spacing=0
|
||||
# horizontal-letter-offset=0
|
||||
# vertical-letter-offset=0
|
||||
# underline-offset=<font metrics>
|
||||
# underline-thickness=<font underline thickness>
|
||||
# box-drawings-uses-font-glyphs=no
|
||||
# dpi-aware=no
|
||||
|
||||
# initial-window-size-pixels=700x500 # Or,
|
||||
# initial-window-size-chars=<COLSxROWS>
|
||||
# initial-window-mode=windowed
|
||||
pad=7x7 # optionally append 'center'
|
||||
# resize-delay-ms=100
|
||||
|
||||
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
||||
|
||||
# bold-text-in-bright=no
|
||||
# word-delimiters=,│`|:"'()[]{}<>
|
||||
# selection-target=primary
|
||||
# workers=<number of logical CPUs>
|
||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
||||
|
||||
[environment]
|
||||
# name=value
|
||||
|
||||
[bell]
|
||||
# urgent=no
|
||||
# notify=no
|
||||
# command=
|
||||
# command-focused=no
|
||||
|
||||
[scrollback]
|
||||
# lines=1000
|
||||
# multiplier=3.0
|
||||
# indicator-position=relative
|
||||
# indicator-format=""
|
||||
|
||||
[url]
|
||||
# launch=xdg-open ${url}
|
||||
# label-letters=sadfjklewcmpgh
|
||||
# osc8-underline=url-mode
|
||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
||||
|
||||
[cursor]
|
||||
# style=block
|
||||
# color=<inverse foreground/background>
|
||||
# blink=no
|
||||
# beam-thickness=1.5
|
||||
# underline-thickness=<font underline thickness>
|
||||
|
||||
[mouse]
|
||||
# hide-when-typing=no
|
||||
# alternate-scroll-mode=yes
|
||||
|
||||
[touch]
|
||||
# long-press-delay=400
|
||||
|
||||
[colors]
|
||||
alpha=1
|
||||
# background=242424
|
||||
# foreground=ffffff
|
||||
|
||||
## Normal/regular colors (color palette 0-7)
|
||||
# regular0=242424 # black
|
||||
# regular1=f62b5a # red
|
||||
# regular2=47b413 # green
|
||||
# regular3=e3c401 # yellow
|
||||
# regular4=24acd4 # blue
|
||||
# regular5=f2affd # magenta
|
||||
# regular6=13c299 # cyan
|
||||
# regular7=e6e6e6 # white
|
||||
|
||||
## Bright colors (color palette 8-15)
|
||||
# bright0=616161 # bright black
|
||||
# bright1=ff4d51 # bright red
|
||||
# bright2=35d450 # bright green
|
||||
# bright3=e9e836 # bright yellow
|
||||
# bright4=5dc5f8 # bright blue
|
||||
# bright5=feabf2 # bright magenta
|
||||
# bright6=24dfc4 # bright cyan
|
||||
# bright7=ffffff # bright white
|
||||
|
||||
## dimmed colors (see foot.ini(5) man page)
|
||||
# dim0=<not set>
|
||||
# ...
|
||||
# dim7=<not-set>
|
||||
|
||||
## The remaining 256-color palette
|
||||
# 16 = <256-color palette #16>
|
||||
# ...
|
||||
# 255 = <256-color palette #255>
|
||||
|
||||
## Misc colors
|
||||
# selection-foreground=<inverse foreground/background>
|
||||
# selection-background=<inverse foreground/background>
|
||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
||||
# urls=<regular3>
|
||||
|
||||
[csd]
|
||||
# preferred=server
|
||||
# size=26
|
||||
# font=<primary font>
|
||||
# color=<foreground color>
|
||||
# hide-when-maximized=no
|
||||
# double-click-to-maximize=yes
|
||||
# border-width=0
|
||||
# border-color=<csd.color>
|
||||
# button-width=26
|
||||
# button-color=<background color>
|
||||
# button-minimize-color=<regular4>
|
||||
# button-maximize-color=<regular2>
|
||||
# button-close-color=<regular1>
|
||||
|
||||
[key-bindings]
|
||||
# scrollback-up-page=Shift+Page_Up
|
||||
# scrollback-up-half-page=none
|
||||
# scrollback-up-line=none
|
||||
# scrollback-down-page=Shift+Page_Down
|
||||
# scrollback-down-half-page=none
|
||||
# scrollback-down-line=none
|
||||
# clipboard-copy=Control+Shift+c XF86Copy
|
||||
# clipboard-paste=Control+Shift+v XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# search-start=Control+Shift+r
|
||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
||||
# font-decrease=Control+minus Control+KP_Subtract
|
||||
# font-reset=Control+0 Control+KP_0
|
||||
# spawn-terminal=Control+Shift+n
|
||||
# minimize=none
|
||||
# maximize=none
|
||||
# fullscreen=none
|
||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
||||
# pipe-selected=[xargs -r firefox] none
|
||||
# show-urls-launch=Control+Shift+o
|
||||
# show-urls-copy=none
|
||||
# show-urls-persistent=none
|
||||
# prompt-prev=Control+Shift+z
|
||||
# prompt-next=Control+Shift+x
|
||||
# unicode-input=Control+Shift+u
|
||||
# noop=none
|
||||
|
||||
[search-bindings]
|
||||
# cancel=Control+g Control+c Escape
|
||||
# commit=Return
|
||||
# find-prev=Control+r
|
||||
# find-next=Control+s
|
||||
# cursor-left=Left Control+b
|
||||
# cursor-left-word=Control+Left Mod1+b
|
||||
# cursor-right=Right Control+f
|
||||
# cursor-right-word=Control+Right Mod1+f
|
||||
# cursor-home=Home Control+a
|
||||
# cursor-end=End Control+e
|
||||
# delete-prev=BackSpace
|
||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
||||
# delete-next=Delete
|
||||
# delete-next-word=Mod1+d Control+Delete
|
||||
# extend-to-word-boundary=Control+w
|
||||
# extend-to-next-whitespace=Control+Shift+w
|
||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
||||
# primary-paste=Shift+Insert
|
||||
# unicode-input=none
|
||||
|
||||
[url-bindings]
|
||||
# cancel=Control+g Control+c Control+d Escape
|
||||
# toggle-url-visible=t
|
||||
|
||||
[text-bindings]
|
||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
||||
|
||||
[mouse-bindings]
|
||||
# selection-override-modifiers=Shift
|
||||
# primary-paste=BTN_MIDDLE
|
||||
# select-begin=BTN_LEFT
|
||||
# select-begin-block=Control+BTN_LEFT
|
||||
# select-extend=BTN_RIGHT
|
||||
# select-extend-character-wise=Control+BTN_RIGHT
|
||||
# select-word=BTN_LEFT-2
|
||||
# select-word-whitespace=Control+BTN_LEFT-2
|
||||
# select-row=BTN_LEFT-3
|
||||
|
||||
# vim: ft=dosini
|
||||
|
||||
@@ -1,19 +1,23 @@
|
||||
#!/usr/bin/env fish
|
||||
|
||||
echo $argv[1]
|
||||
set -Ux STARSHIP_CONFIG $argv[1]/starship.toml
|
||||
set -Ux HYPRLAND_THEME $argv[1]
|
||||
set color ~/.config/hypr/scripts/color
|
||||
|
||||
pkill foot
|
||||
foot -s -c $argv[1]/components/foot.ini &
|
||||
|
||||
pkill dunst &
|
||||
pkill -USR2 fish &
|
||||
|
||||
swww init &
|
||||
sleep 0.5
|
||||
swww clear c2bda6 &
|
||||
|
||||
#TODO: add a check for asusctl
|
||||
asusctl led-mode static -c "$($color cursor -n)" &
|
||||
asusctl led-mode static -c "c2bda6" &
|
||||
|
||||
python $argv[1]/scripts/pywal_set.py 1 &
|
||||
|
||||
ags -c ~/rice/themes/aurora/components/ags/config.js &
|
||||
ags -c ~/rice/themes/nier/components/ags/config.js &
|
||||
|
||||
|
||||
|
||||
@@ -1,132 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
import subprocess
|
||||
import os
|
||||
import pywal
|
||||
import numpy as np
|
||||
import matplotlib as mpl
|
||||
import time
|
||||
|
||||
|
||||
def colormix(c1, c2, mix=0):
|
||||
# get np arrays c1 and c2 from hex
|
||||
c1 = np.array(mpl.colors.to_rgb(c1))
|
||||
c2 = np.array(mpl.colors.to_rgb(c2))
|
||||
return mpl.colors.to_hex((1 - mix) * c1 + mix * c2)
|
||||
|
||||
|
||||
def alpha(c1, a):
|
||||
c1 = np.array(mpl.colors.to_rgb(c1))
|
||||
return mpl.colors.to_hex(c1 + (1 - c1) * a)
|
||||
|
||||
|
||||
def apply(pre=None, wallpaper=None):
|
||||
if not pre:
|
||||
colors = pywal.colors.get(wallpaper, backend="wal")
|
||||
else:
|
||||
colors = pre
|
||||
print(wallpaper)
|
||||
print("colors::::: ", colors)
|
||||
|
||||
cmd = f"swww img '{wallpaper}' --transition-type grow --transition-step 1 --transition-duration 1 --transition-pos 0.5,1.0"
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/colors_base"), "r") as cr:
|
||||
raw = cr.read()
|
||||
new_colors = {}
|
||||
|
||||
for line in raw.split("\n"):
|
||||
if line and not line.startswith("#"):
|
||||
color, value = line.split(":")
|
||||
if color.isnumeric():
|
||||
new_colors[color.strip()] = colormix(
|
||||
value.strip(),
|
||||
colors["colors"]["color" + color.strip()],
|
||||
mix=0.8,
|
||||
)
|
||||
|
||||
for color, value in colors["special"].items():
|
||||
new_colors[color] = value
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/colors"), "w") as f:
|
||||
for color, value in new_colors.items():
|
||||
f.write(f"{color}: {value}\n")
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/uicolors"), "w") as f:
|
||||
for color, value in colors["colors"].items():
|
||||
f.write(f"{color[5:]}: {value}\n")
|
||||
for color, value in colors["special"].items():
|
||||
f.write(f"{color}: {value}\n")
|
||||
|
||||
subprocess.run("touch ~/.config/hypr/themes/uicolors", shell=True)
|
||||
|
||||
# active borders
|
||||
gradient = ""
|
||||
for color, value in colors["colors"].items():
|
||||
gradient += f"rgba({value[1:]}ff) "
|
||||
gradient += " 45deg"
|
||||
cmd = f"hyprctl keyword general:col.active_border '{gradient}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# inactive borders
|
||||
gradient = ""
|
||||
for color, value in colors["colors"].items():
|
||||
gradient += f"rgba({value[1:]}44) "
|
||||
gradient += " 0deg"
|
||||
cmd = f"hyprctl keyword general:col.inactive_border '{gradient}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
cmd = (
|
||||
f"hyprctl keyword decoration:col.shadow '0x33{colors['colors']['color5'][1:]}'"
|
||||
)
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
cmd = f"hyprctl keyword decoration:col.shadow_inactive '0x22{colors['special']['background'][1:]}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# keyboard
|
||||
cmd = f"asusctl led-mode static -c '{colors['colors']['color0'][1:]}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# cava
|
||||
with open(os.path.expanduser("~/.config/cava/config"), "r") as f:
|
||||
conf = f.read()
|
||||
|
||||
conf = conf.split("#--- cover2bg.py ---")[0]
|
||||
|
||||
conf += (
|
||||
"\n#--- cover2bg.py ---\n"
|
||||
+ f"""
|
||||
[color]
|
||||
background = '{colors["special"]["background"]}'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '{colors["colors"]["color0"]}'
|
||||
gradient_color_2 = '{colors["colors"]["color1"]}'
|
||||
gradient_color_3 = '{colors["colors"]["color2"]}'
|
||||
gradient_color_4 = '{colors["colors"]["color3"]}'
|
||||
gradient_color_5 = '{colors["colors"]["color4"]}'
|
||||
gradient_color_6 = '{colors["colors"]["color5"]}'
|
||||
gradient_color_7 = '{colors["colors"]["color6"]}'
|
||||
gradient_color_8 = '{colors["colors"]["color7"]}'
|
||||
"""
|
||||
)
|
||||
with open(os.path.expanduser("~/.config/cava/config"), "w") as f:
|
||||
f.write(conf)
|
||||
|
||||
time.sleep(0.5)
|
||||
subprocess.run("pkill -USR2 cava", shell=True)
|
||||
subprocess.run("pkill -USR2 fish", shell=True)
|
||||
|
||||
|
||||
def main():
|
||||
apply(wallpaper="/tmp/bg.png")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,68 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
HQ=0
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Please provide an image"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -f "$1" ]; then
|
||||
echo "Image does not exist"
|
||||
exit 1
|
||||
fi
|
||||
if ! file "$1" | grep -qE 'image|bitmap'; then
|
||||
echo "Image is not a valid image"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get json from hyprctl
|
||||
json=$(hyprctl monitors -j)
|
||||
json=$(echo $json | jq '.[0]')
|
||||
width=$(echo $json | jq '.width')
|
||||
height=$(echo $json | jq '.height')
|
||||
|
||||
if [ -f /tmp/prev_bg.png ]; then
|
||||
if cmp -s "$1" /tmp/prev_bg.png; then
|
||||
echo "Image is the same"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
|
||||
cp "$1" /tmp/prev_bg.png
|
||||
|
||||
echo "Image is different"
|
||||
|
||||
cp "$1" /tmp/bg.png
|
||||
|
||||
magick mogrify -fuzz 4% -trim +repage -shave 7x7 -format png /tmp/bg.png
|
||||
|
||||
#if HQ == 1
|
||||
if [ $HQ -eq 1 ]; then
|
||||
convert /tmp/bg.png -resize $((width))x$((height))^ -gravity center -extent $((width))x$((height)) /tmp/bg.png
|
||||
else
|
||||
convert /tmp/bg.png -resize $((width / 2))x$((height / 2))^ -gravity center -extent $((width / 2))x$((height / 2)) /tmp/bg.png
|
||||
fi
|
||||
|
||||
img_width=$(identify -format "%w" /tmp/bg.png)
|
||||
img_height=$(identify -format "%h" /tmp/bg.png)
|
||||
|
||||
convert /tmp/bg.png -blur 0x40 /tmp/bg.png
|
||||
|
||||
color=$(convert /tmp/bg.png -gravity center -crop 1x1+0+0 +repage txt:- | grep -m 1 -o '#[0-9A-F]\{6\}')
|
||||
convert -size ${width}x$((height / 3)) gradient:$color-transparent /tmp/gradient.png
|
||||
convert /tmp/bg.png /tmp/gradient.png -gravity north -composite /tmp/bg.png
|
||||
|
||||
# if /tmp/texture.png is not a file
|
||||
if [ ! -f /tmp/texture.png ]; then
|
||||
echo "texture not found"
|
||||
convert -size ${img_width}x${img_height} xc:gray +noise Random -channel A -threshold 90% /tmp/texture.png
|
||||
fi
|
||||
# convert -size ${img_width}x${img_height} xc:gray +noise Random -channel A -threshold 90% /tmp/texture.png
|
||||
convert /tmp/texture.png -alpha set -channel A -evaluate set 5% /tmp/texture.png
|
||||
convert /tmp/bg.png /tmp/texture.png -gravity center -compose overlay -composite /tmp/bg.png
|
||||
|
||||
ags -r "dominant_color.value = '$color';"
|
||||
|
||||
$HYPRLAND_THEME/scripts/apply_wall /tmp/bg.png
|
||||
|
||||
|
||||
@@ -1,171 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import pywal
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
import numpy as np
|
||||
import matplotlib as mpl
|
||||
import time
|
||||
|
||||
THEME_DIR = os.environ.get("HYPRLAND_THEME")
|
||||
print(THEME_DIR)
|
||||
|
||||
|
||||
def colormix(c1, c2, mix=0):
|
||||
# get np arrays c1 and c2 from hex
|
||||
c1 = np.array(mpl.colors.to_rgb(c1))
|
||||
c2 = np.array(mpl.colors.to_rgb(c2))
|
||||
return mpl.colors.to_hex((1 - mix) * c1 + mix * c2)
|
||||
|
||||
|
||||
def alpha(c1, a):
|
||||
c1 = np.array(mpl.colors.to_rgb(c1))
|
||||
return mpl.colors.to_hex(c1 + (1 - c1) * a)
|
||||
|
||||
|
||||
def apply(pre=None, wallpaper=None):
|
||||
if not pre:
|
||||
colors = pywal.colors.get(wallpaper, backend="wal")
|
||||
else:
|
||||
colors = pre
|
||||
print(wallpaper)
|
||||
print("colors::::: ", colors)
|
||||
|
||||
cmd = f"swww img '{wallpaper}' --transition-type outer --transition-step 1 --transition-duration 1 --transition-pos 0.5,1.0"
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/colors_base"), "r") as cr:
|
||||
raw = cr.read()
|
||||
new_colors = {}
|
||||
|
||||
for line in raw.split("\n"):
|
||||
if line and not line.startswith("#"):
|
||||
color, value = line.split(":")
|
||||
if color.isnumeric():
|
||||
new_colors[color.strip()] = colormix(
|
||||
value.strip(),
|
||||
colors["colors"]["color" + color.strip()],
|
||||
mix=0.75,
|
||||
)
|
||||
|
||||
for color, value in colors["special"].items():
|
||||
new_colors[color] = value
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/colors"), "w") as f:
|
||||
for color, value in new_colors.items():
|
||||
f.write(f"{color}: {value}\n")
|
||||
|
||||
with open(os.path.expanduser("~/.config/hypr/themes/uicolors"), "w") as f:
|
||||
for color, value in colors["colors"].items():
|
||||
f.write(f"{color[5:]}: {value}\n")
|
||||
for color, value in colors["special"].items():
|
||||
f.write(f"{color}: {value}\n")
|
||||
|
||||
subprocess.run("touch ~/.config/hypr/themes/uicolors", shell=True)
|
||||
|
||||
# active borders
|
||||
gradient = ""
|
||||
for color, value in colors["colors"].items():
|
||||
gradient += f"rgba({value[1:]}ff) "
|
||||
gradient += " 45deg"
|
||||
cmd = f"hyprctl keyword general:col.active_border '{gradient}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# inactive borders
|
||||
gradient = ""
|
||||
for color, value in colors["colors"].items():
|
||||
gradient += f"rgba({value[1:]}44) "
|
||||
gradient += " 0deg"
|
||||
cmd = f"hyprctl keyword general:col.inactive_border '{gradient}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
cmd = (
|
||||
f"hyprctl keyword decoration:col.shadow '0x33{colors['colors']['color5'][1:]}'"
|
||||
)
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
cmd = f"hyprctl keyword decoration:col.shadow_inactive '0x22{colors['special']['background'][1:]}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# keyboard
|
||||
cmd = f"asusctl led-mode static -c '{colors['colors']['color0'][1:]}'"
|
||||
print(cmd)
|
||||
subprocess.run(cmd, shell=True)
|
||||
|
||||
# cava
|
||||
with open(os.path.expanduser("~/.config/cava/config"), "r") as f:
|
||||
conf = f.read()
|
||||
|
||||
conf = conf.split("#--- cover2bg.py ---")[0]
|
||||
|
||||
conf += (
|
||||
"\n#--- cover2bg.py ---\n"
|
||||
+ f"""
|
||||
[color]
|
||||
background = '{colors["special"]["background"]}'
|
||||
|
||||
gradient = 1
|
||||
|
||||
gradient_color_1 = '{colors["colors"]["color0"]}'
|
||||
gradient_color_2 = '{colors["colors"]["color1"]}'
|
||||
gradient_color_3 = '{colors["colors"]["color2"]}'
|
||||
gradient_color_4 = '{colors["colors"]["color3"]}'
|
||||
gradient_color_5 = '{colors["colors"]["color4"]}'
|
||||
gradient_color_6 = '{colors["colors"]["color5"]}'
|
||||
gradient_color_7 = '{colors["colors"]["color6"]}'
|
||||
gradient_color_8 = '{colors["colors"]["color7"]}'
|
||||
"""
|
||||
)
|
||||
with open(os.path.expanduser("~/.config/cava/config"), "w") as f:
|
||||
f.write(conf)
|
||||
|
||||
time.sleep(0.5)
|
||||
subprocess.run("pkill -USR2 cava", shell=True)
|
||||
subprocess.run("pkill -USR2 fish", shell=True)
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("--index", help="wallpaper index")
|
||||
parser.add_argument(
|
||||
"--nosave",
|
||||
help="to save wallpaper to `currentwall` or not",
|
||||
action="store_true",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--reset", help="to set wallpaper in `currentwall`", action="store_true"
|
||||
)
|
||||
# parser.add_argument("cycle", help="cycle wall", required=False)
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.reset:
|
||||
with open(os.path.join(THEME_DIR, "currentwall"), "r") as f:
|
||||
index = f.read()
|
||||
args.index = index
|
||||
|
||||
if args.index and args.index.isdigit():
|
||||
index = int(args.index)
|
||||
wallpaper = os.listdir(os.path.join(THEME_DIR, "wallpapers"))[index - 1]
|
||||
wallpaper = os.path.join(os.path.join(THEME_DIR, "wallpapers"), wallpaper)
|
||||
else:
|
||||
wallpaper = os.path.expanduser(args.index)
|
||||
|
||||
if not args.nosave:
|
||||
with open(os.path.join(THEME_DIR, "currentwall"), "w") as f:
|
||||
f.write(str(args.index))
|
||||
|
||||
try:
|
||||
apply(wallpaper=wallpaper)
|
||||
except Exception:
|
||||
wallpaper = os.listdir(os.path.join(THEME_DIR, "wallpapers"))[0]
|
||||
wallpaper = os.path.join(os.path.join(THEME_DIR, "wallpapers"), wallpaper)
|
||||
apply(wallpaper=wallpaper)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
23
theme.conf
23
theme.conf
@@ -2,28 +2,25 @@ exec=cp $THEME/colors $HOME/.config/hypr/themes/colors
|
||||
exec=$THEME/scripts/apply.sh $THEME
|
||||
|
||||
decoration {
|
||||
drop_shadow = true
|
||||
shadow_range=100
|
||||
shadow_render_power=2
|
||||
col.shadow= 0x33D5C7DA
|
||||
col.shadow_inactive=0x221b3c46
|
||||
rounding=15
|
||||
rounding=0
|
||||
blur {
|
||||
enabled=0
|
||||
}
|
||||
}
|
||||
|
||||
general {
|
||||
col.active_border=rgba(cba6f7ff) rgba(89b4faff) rgba(94e2d5ff) 10deg
|
||||
col.inactive_border=0xff45475a
|
||||
col.active_border=0xff48463d
|
||||
col.inactive_border=0x5548463d
|
||||
border_size=5
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled=1
|
||||
# bezier=overshot,0.05,0.9,0.1,1.1
|
||||
bezier=overshot,0.13,0.99,0.29,1.1
|
||||
bezier = linear, 0.0, 0.0, 1.0, 1.0
|
||||
animation=windows,1,4,overshot,slide
|
||||
bezier = in-out,.65,-0.01,0,.95
|
||||
bezier = woa,0,0,0,1
|
||||
animation=windows,1,2,woa,popin
|
||||
animation=border,1,10,default
|
||||
animation=fade,1,10,default
|
||||
animation=workspaces,1,6,overshot,slide
|
||||
animation = borderangle, 1, 100, linear, loop
|
||||
animation=workspaces,1,5,in-out,slide
|
||||
}
|
||||
Reference in New Issue
Block a user