Compare commits

..

No commits in common. "2d014546bd82083e5ee9820edc9625328be2a420" and "a1490e90b7028ab003a5bc5f33c2ecc99a0948f3" have entirely different histories.

49 changed files with 570 additions and 1004 deletions

View File

@ -320,11 +320,11 @@
"pre-commit-hooks": "pre-commit-hooks" "pre-commit-hooks": "pre-commit-hooks"
}, },
"locked": { "locked": {
"lastModified": 1664882193, "lastModified": 1663678795,
"narHash": "sha256-uiAYOxN/M4dpaB6ieY3xOvOH6XgHP9NVXDTzSRa3pMc=", "narHash": "sha256-SkROcpe7lb46fpBnwMYooExP6WqttsRPeao1d9ykHho=",
"owner": "nix-community", "owner": "nix-community",
"repo": "dream2nix", "repo": "dream2nix",
"rev": "785b76894263fd76a0e69955e4cd990b7b735bdf", "rev": "0f3b6c5dd1630d601ae6f456421b4dfed178f260",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -381,11 +381,11 @@
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
"locked": { "locked": {
"lastModified": 1664638652, "lastModified": 1664455278,
"narHash": "sha256-3mPHAFecDyP1Rgjshjyn1u5EsdjZun9DofnVbtlfRJk=", "narHash": "sha256-RxeLR9NQnWW2VsROMIrPhiqQ7qHXmDqyKlxNs23B45E=",
"owner": "elkowar", "owner": "elkowar",
"repo": "eww", "repo": "eww",
"rev": "0cccd9d74f0bda19f8409549588db274eba0d393", "rev": "91d55cb3051b007b480aa3cf1bc4ac63f09eff75",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -586,11 +586,11 @@
"rust-overlay": "rust-overlay_3" "rust-overlay": "rust-overlay_3"
}, },
"locked": { "locked": {
"lastModified": 1666357885, "lastModified": 1664475105,
"narHash": "sha256-DemaXcgFATQmft2PsoY6SewraST/Y5V8CuGjDD8vs9g=", "narHash": "sha256-+Q7jyAMgXcCba6Z+2oA1ahXWKkmMqn0dPgz9t3DyEiQ=",
"owner": "helix-editor", "owner": "helix-editor",
"repo": "helix", "repo": "helix",
"rev": "79ef39ab3a41c32fcdcb660df6ee60aeb1eb80e6", "rev": "8a7a6e4cff1db3ef65a2c20e0e90c60b44516e27",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -607,11 +607,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1666253070, "lastModified": 1664449551,
"narHash": "sha256-MtaNgghmfp+ywh5mv9FcspFT4ACaYINSN+D98PCkrP0=", "narHash": "sha256-iTStJtZB1+MppkT+95Ckqy2NDaISb+QcUkOAa0DS0io=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "c485669ca529e01c1505429fa9017c9a93f15559", "rev": "864ff685fe6443101a0a8f3950d21bcb4330e56a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -629,11 +629,11 @@
"wlroots": "wlroots" "wlroots": "wlroots"
}, },
"locked": { "locked": {
"lastModified": 1666345512, "lastModified": 1664477193,
"narHash": "sha256-/45v91bYl9hbEJSgYu51ep9ZyoEHlZDE44gotGZfO4M=", "narHash": "sha256-W8pe+3wrAUjtexyd6ve4qZGLOWzfqqXKyieY3Q3ntsY=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "b71d7c9007d77f78a403075b99adf8e9d43bf125", "rev": "da40bf823f2f307e439f4bd85c405d9e612c2df5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -649,11 +649,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1666104453, "lastModified": 1664384946,
"narHash": "sha256-gMH11FNZtnU7d+pIkwg9NmumJ6YvxyUP9Do43YKrd/E=", "narHash": "sha256-zqpXujNioqibBBkVT2BQSa/l3GQRGZRZbcY69vpRpVU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "5b21c74a3200ffdd48ed7764c7041d43c3cd5588", "rev": "63ebc34d0c2398e33bc97d065e3790abc5e1f070",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -737,11 +737,11 @@
"rust-overlay": "rust-overlay_4" "rust-overlay": "rust-overlay_4"
}, },
"locked": { "locked": {
"lastModified": 1664831215, "lastModified": 1664360253,
"narHash": "sha256-Oo0y/333YyeW9zeYQyiUUay7q7GK/Uu/FdEa6+5c4Pk=", "narHash": "sha256-QXXzd6SYgpuFGcr6D8gtALC2V23kPIT4IkSM0eU6MJI=",
"owner": "oxalica", "owner": "oxalica",
"repo": "nil", "repo": "nil",
"rev": "756be130c8cda1d02c3681299ce372c97cc7d0bd", "rev": "d2a22b8460279a001bf070bcd6da660bda9c8bd7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -776,11 +776,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1665496492, "lastModified": 1664206072,
"narHash": "sha256-CFR9423s2TalOHYEw+6r7v8FmtABKB4NVNQMjwXXt8g=", "narHash": "sha256-VPKsLlfSfsJ4GsvtrcFdXiR5VUcsl1jFyKSxB4qvcf8=",
"owner": "matthewcroughan", "owner": "matthewcroughan",
"repo": "nixinate", "repo": "nixinate",
"rev": "bc620b8f801f4d0dcb2a1fb6d061fff0d585d4a5", "rev": "efa632418053bbbaf5b8cf8215c14b699830e3e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -791,11 +791,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1665987993, "lastModified": 1664452918,
"narHash": "sha256-MvlaIYTRiqefG4dzI5p6vVCfl+9V8A1cPniUjcn6Ngc=", "narHash": "sha256-SfnQ2t5b9RTSIqO3PQBDlwrWn4l3t0F65sZtCKTl8eA=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "0e6593630071440eb89cd97a52921497482b22c6", "rev": "12f905b731494bc59010f05a7467df8abdcf8d63",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -850,11 +850,11 @@
"nixpkgs-wayland": { "nixpkgs-wayland": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1665858291, "lastModified": 1664477139,
"narHash": "sha256-aqazSjyKXnHu0PF7K1Y4i6E4UK/w+BTC5NTu+FvPg/c=", "narHash": "sha256-YYb3KDl7JWrQNjGQX9rBlpLl7bsAvDxooKHMiim28YA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-wayland", "repo": "nixpkgs-wayland",
"rev": "1e4635a232db95976217590c77f5d76a91a87f61", "rev": "494999730de678ee83c3caadfee8e0b77719060d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -881,11 +881,11 @@
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1666282307, "lastModified": 1664370076,
"narHash": "sha256-O1T2HGLARLKDLfdOmjPBfn3eC4cSIaQD71wUN4I/6/s=", "narHash": "sha256-NDnIo0nxJozLwEw0VPM+RApMA90uTfbvaNNtC5eB7Os=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b7d8c687782c8f9a1d425a7e486eb989654f6468", "rev": "854fdc68881791812eddd33b2fed94b954979a8e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -897,11 +897,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1666358658, "lastModified": 1664475443,
"narHash": "sha256-xNszm7yHrsF7hLzvHYUIrvM69U1uNNK3vddGjFAgk0w=", "narHash": "sha256-l3Re7eo0vOwTQTcJPrXQStG4i4of2eKkdDdDG96z1ZA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "6c1a3c3e533118ef6466718dd389896c47cf588d", "rev": "05e2f3d002a53eeb192d5e8521c6d38f24609681",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1063,11 +1063,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1664734860, "lastModified": 1663815552,
"narHash": "sha256-Agin7U5+AhlVqPCZAhlAMlRnoV7rGIZXtDsPspF/DRg=", "narHash": "sha256-J4j/d69SGKx1qripBCINe7T3SUtMM1sdj5PoHRThV5Q=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "5db6b63124ccedd61e896ec98def85fb4e6668f4", "rev": "f45f856ae5a9fe2c48d756fa17bb9c5b3b8070c5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1124,11 +1124,11 @@
"webcord": "webcord_2" "webcord": "webcord_2"
}, },
"locked": { "locked": {
"lastModified": 1666097086, "lastModified": 1664817607,
"narHash": "sha256-6WKh4NwItcz9IGY5rGkkeWCtGOmpU3nf85dX29suDjE=", "narHash": "sha256-1c9doRBUy61lrkA5MTRF4xIE9VcnBxfWUGzXMnMm0CM=",
"owner": "fufexan", "owner": "fufexan",
"repo": "webcord-flake", "repo": "webcord-flake",
"rev": "9098504f2a08ac848ea43de40496925c450e7111", "rev": "6fdcb79b9aa692acf95c2c9e05b7cd7fa426a385",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1140,11 +1140,11 @@
"webcord_2": { "webcord_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1664742535, "lastModified": 1663533822,
"narHash": "sha256-QoXBlhCM97haNlkbU4O2oXITnzrkiM9hYAiNpduVjIQ=", "narHash": "sha256-TvlaaWu40La+CRD2+zXXRmyAF6LEU63eH/BuEQgUiQ4=",
"owner": "SpacingBat3", "owner": "SpacingBat3",
"repo": "WebCord", "repo": "WebCord",
"rev": "cb6938bde4f57b252b167b23fc0c2d6120326fff", "rev": "2df618b4669eaca06b2f635145d1293a612fa24c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1157,11 +1157,11 @@
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.freedesktop.org", "host": "gitlab.freedesktop.org",
"lastModified": 1665405587, "lastModified": 1663507239,
"narHash": "sha256-lVL48azhjGA/oEIcUSZQNwomNs0EzPxCcjgzyDST0PM=", "narHash": "sha256-LISZtkPVe8lQ2N8YwVe+KxCkXWLP9mdw6Q2kG93wE8A=",
"owner": "wlroots", "owner": "wlroots",
"repo": "wlroots", "repo": "wlroots",
"rev": "221ee83d440fb7dcbfd141ef3a459a5a973331b6", "rev": "2ad25b1460400e66ea26bd6489b04072be7d9dbb",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {

View File

@ -0,0 +1,3 @@
{
services.joycond.enable = true;
}

View File

@ -1,6 +0,0 @@
{
programs.weylus = {
enable = true;
openFirewall = true;
};
}

View File

@ -1,26 +1,18 @@
{ {lib, ...}: {
pkgs,
lib,
...
}: {
services.gnome = { services.gnome = {
gnome-keyring.enable = true; gnome-keyring.enable = true;
core-shell.enable = true; core-shell.enable = true;
core-os-services.enable = true; core-os-services.enable = true;
at-spi2-core.enable = true; at-spi2-core.enable = true;
gnome-browser-connector.enable = true; chrome-gnome-shell.enable = false;
gnome-online-accounts.enable = true; gnome-online-accounts.enable = false;
gnome-online-miners.enable = true; gnome-online-miners.enable = lib.mkForce false;
tracker-miners.enable = true;
tracker.enable = true;
sushi.enable = true;
gnome-remote-desktop.enable = false; gnome-remote-desktop.enable = false;
}; core-utilities.enable = false;
services.tumbler.enable = true; tracker-miners.enable = false;
programs = { tracker.enable = false;
geary.enable = lib.mkForce false; gnome-settings-daemon.enable = lib.mkForce false;
gnome-terminal.enable = true; sushi.enable = false;
evince.enable = true;
}; };
services.xserver = { services.xserver = {
enable = true; enable = true;
@ -45,6 +37,4 @@
"autovt@tty1".enable = false; "autovt@tty1".enable = false;
}; };
services.power-profiles-daemon.enable = false; services.power-profiles-daemon.enable = false;
environment.systemPackages = with pkgs; [gnome.gnome-tweaks ffmpegthumbnailer webp-pixbuf-loader];
environment.gnome.excludePackages = with pkgs; [gnome-console gnome-tour gnome.gnome-maps];
} }

View File

@ -1,16 +0,0 @@
{pkgs, ...}: {
services.greetd = {
enable = true;
settings = {
terminal.vt = 1;
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --issue --time --cmd 'apply-hm-env Hyprland'";
user = "greeter";
};
};
};
systemd.services = {
"getty@tty1".enable = false;
"autovt@tty1".enable = false;
};
}

View File

@ -15,7 +15,7 @@ in {
]; ];
home.packages = let home.packages = let
pkg = inputs.webcord.packages.${pkgs.system}.webcord.override { pkg = inputs.webcord.packages.${pkgs.system}.webcord.override {
flags = ["--add-css-theme=${theme}"]; flags = "--add-css-theme=${theme}";
}; };
in [pkg]; in [pkg];
} }

View File

@ -14,7 +14,7 @@ in {
alignment = "center"; alignment = "center";
corner_radius = 16; corner_radius = 16;
follow = "mouse"; follow = "mouse";
font = config.settings.font.regular.fullName; font = config.settings.font.fullName;
format = "<b>%s</b>\\n%b"; format = "<b>%s</b>\\n%b";
frame_width = 1; frame_width = 1;
offset = "5x5"; offset = "5x5";

View File

@ -1,7 +1,8 @@
.calendar-win { .calendar-window {
@include window; @include wshadow;
background-color: $bg; background-color: $bg;
border: 1px solid $border; border: 1px solid $border;
border-radius: 16px;
color: $fg; color: $fg;
padding: .2em; padding: .2em;
} }
@ -11,6 +12,7 @@ calendar {
:selected { :selected {
color: $mauve; color: $mauve;
font-weight: bold;
} }
.header { .header {
@ -21,12 +23,4 @@ calendar {
color: $maroon; color: $maroon;
font-weight: bold; font-weight: bold;
} }
.button {
color: $sapphire;
}
:indeterminate {
color: $overlay0;
}
} }

View File

@ -32,4 +32,4 @@ $fg: $text;
$bg: $base; $bg: $base;
$bg1: $surface0; $bg1: $surface0;
$border: #28283d; $border: #28283d;
$shadow: $crust; $shadow: $surface1;

View File

@ -1,16 +1,17 @@
.song-cover-art { .song-cover-art {
@include rounding;
background-position: center; background-position: center;
background-size: cover; background-size: cover;
border-radius: 16px;
margin: 4px 5px 4px 0; margin: 4px 5px 4px 0;
min-height: 24px; min-height: 24px;
min-width: 24px; min-width: 24px;
} }
.music-window { .music-window {
@include window; @include wshadow;
background-color: $bg; background-color: $bg;
border: 1px solid $border; border: 1px solid $border;
border-radius: 16px;
color: $fg; color: $fg;
} }
@ -29,11 +30,11 @@
.music-title { .music-title {
font-weight: bold; font-weight: bold;
font-size: 1.1rem;
} }
.music-artist { .music-artist {
color: $subtext1; color: $subtext1;
font-size: 1.2rem;
} }
.music-button label { .music-button label {
@ -43,6 +44,7 @@
.music-time { .music-time {
color: $subtext1; color: $subtext1;
font-size: 1rem;
margin: 0 1rem; margin: 0 1rem;
} }

View File

@ -1,59 +1,42 @@
.notifications-box { .side {
@include window; padding: 1em;
background: $bg; background: $bg;
padding: 1rem; border-radius: 16px;
@include wshadow;
} }
.notification { .notification {
background-color: $surface0; background-color: $crust;
border-bottom: 1px solid $bg; padding: 1rem;
padding: .5rem; border-radius: 8px;
:hover {
box { margin-bottom: .5rem; }
label { font-size: 1rem; }
&:hover {
border: 1px solid $border; border: 1px solid $border;
} }
.appname { .appname {
color: $peach; font-size: 0.9rem;
font-weight: bold; font-weight: bold;
color: $peach;
} }
.summary { .summary {
color: $text; font-size: 1.1rem;
font-weight: bold; font-weight: bold;
color: $text;
} }
.body { color: $text; } .body {
color: $text;
} }
.container {
&:first-child { border-radius: 8px 8px 0 0; };
&:last-child { border-radius: 0 0 8px 8px; };
}
.notification-header {
margin-bottom: 1rem;
} }
.notification-label { .notification-label {
color: $blue;
font-size: 1.5rem; font-size: 1.5rem;
color: $blue;
} }
.notification-action { .notification-action {
border-radius: 50%; font-size: 2rem;
padding: .3rem;
label {
color: $text; color: $text;
font-size: 1.2rem; margin-left: 1rem;
}
&:hover {
background: $surface0;
}
} }

View File

@ -1,109 +0,0 @@
.system-menu-box {
@include window;
background-color: $bg;
border: 1px solid $border;
color: $text;
}
.separator {
font-size: 1rem;
}
.top-row {
margin: 1rem 1.5rem 0;
}
.system-row {
margin: .5rem .7rem;
.airplane-box button {
padding: 1rem 3rem;
}
label {
font-size: 1rem;
margin: 0 .1rem;
}
}
.element {
@include rounding;
background: $surface0;
margin: .3rem;
button {
@include rounding;
padding: 1rem;
label {
font-size: 1.5rem;
}
&:hover {
background: $overlay0;
}
}
}
.sliders {
@include rounding;
background-color: $surface0;
margin: .5rem 1rem;
padding: .6rem 1rem;
scale {
margin-right: -1rem;
min-width: 21.5rem;
}
box { margin: .2rem 0; }
label { font-size: 1.2rem; }
}
.volume-bar highlight {
@include rounding;
background-image: linear-gradient(to right, $teal 30%, $sky 100%);
}
.brightness-slider-box scale highlight {
@include rounding;
background-image: linear-gradient(to right, $yellow 30%, $peach 100%);
}
.time { font-size: 2rem; }
.date-box {
margin: 0 1rem;
label { font-size: 1.1rem; }
.date {
background: unset;
margin: 0 .5rem 0 0;
padding: 0;
}
}
.battery-box { margin: .5rem 1rem; }
.battery-icon { font-size: 2rem; }
.battery-wattage { color: $mauve; }
.battery-status {
color: $subtext0;
margin: 0 .5rem;
}
.bottom-row button {
background-color: $surface0;
border-radius: 50%;
padding: .5rem;
margin: .5rem 1rem;
label {
font-size: 1.5rem;
}
&:hover {
background: $overlay0;
}
}

View File

@ -20,6 +20,10 @@
color: $peach; color: $peach;
} }
.iconbat {
color: $green;
}
.iconcpu { .iconcpu {
color: $blue; color: $blue;
} }
@ -31,30 +35,35 @@
.sys-text-sub { .sys-text-sub {
color: $text; color: $text;
font-size: 1.2rem;
margin-left: 2rem;
} }
.sys-text-mem, .sys-text-mem,
.sys-text-cpu { .sys-text-cpu,
font-size: 1rem; .sys-text-bat {
font-weight: bold; font-weight: bold;
margin-left: 2rem;
} }
.sys-icon-mem, .sys-icon-mem,
.sys-icon-cpu { .sys-icon-cpu,
font-size: 1.5rem; .sys-icon-bat {
margin: 1.5rem; font-size: 30px;
margin: 25px;
} }
.system-info-box { .sys-win {
@include rounding; @include wshadow;
background-color: $surface0; background-color: $bg;
margin: .5rem 1rem; border: 1px solid $border;
padding: .5rem; border-radius: 16px;
} }
.sys-mem, .sys-mem,
.sys-cpu { .sys-cpu,
background-color: $bg; .sys-bat {
background-color: $bg1;
} }
.sys-icon-mem, .sys-icon-mem,
@ -69,8 +78,14 @@
color: $blue; color: $blue;
} }
.sys-box { .sys-icon-bat,
margin: .3em; .sys-text-bat,
.sys-bat {
box { margin-left: 1rem; } color: $green;
} }
.sys-box {
margin: 1em;
}

View File

@ -3,3 +3,37 @@
background-image: linear-gradient(to right, $teal 30%, $sky 100%); background-image: linear-gradient(to right, $teal 30%, $sky 100%);
border-radius: 10px; border-radius: 10px;
} }
.volume-window {
@include wshadow;
background-color: $bg;
border-radius: 16px;
padding-right: 1rem;
}
.volume-text {
color: $teal;
font-size: 1.5rem;
font-weight: bold;
}
.volume-icon {
color: $teal;
font-size: 5rem;
margin: 1rem;
}
.volume-info {
margin: 1rem 0;
}
.volume-bar {
trough {
min-width: 120px;
}
highlight {
background-image: linear-gradient(to right, $teal 30%, $sky 100%);
border-radius: 16px;
}
}

View File

@ -5,46 +5,38 @@
lib, lib,
... ...
}: let }: let
dependencies = with pkgs; [ dependencies =
config.home.packages
++ (with pkgs; [
config.wayland.windowManager.hyprland.package config.wayland.windowManager.hyprland.package
config.programs.eww.package config.programs.eww.package
# notifs bash
dunst bc
# utils bluez
coreutils coreutils
dbus
dunst
findutils findutils
gawk gawk
gnused gnused
jq jq
bash light
bc networkmanager
playerctl
procps
pulseaudio
ripgrep ripgrep
socat socat
procps
util-linux
wget
# brightness
light
# network
networkmanager
config.programs.rofi-nm.package
# volume
wireplumber
playerctl
pulseaudio
# session management
wlogout
# bluetooth
blueberry
bluez
# misc
dbus
udev udev
upower upower
]; wget
wireplumber
]);
in { in {
imports = [../rofi-nm]; imports = [../rofi-nm];
# home.packages = [inputs.eww.packages.${pkgs.system}.eww-wayland];
# home.file.".config/eww".source = config.lib.file.mkOutOfStoreSymlink ./.;
programs.eww = { programs.eww = {
enable = true; enable = true;
package = inputs.eww.packages.${pkgs.system}.eww-wayland; package = inputs.eww.packages.${pkgs.system}.eww-wayland;

View File

@ -1,71 +1,54 @@
@import 'css/colors'; @import 'css/colors';
@mixin rounding { @mixin wshadow {
border-radius: 16px; box-shadow: 0 5px 10px $shadow;
} margin: 15px 20px 25px;
@mixin window {
border: 1px solid $border;
box-shadow: 0 2px 3px $shadow;
margin: 5px 5px 10px;
@include rounding;
} }
* { * {
all: unset; all: unset;
transition: 200ms ease; font-size: 1.2rem;
} }
@import 'css/calendar'; @import 'css/calendar';
@import 'css/music'; @import 'css/music';
@import 'css/notification'; @import 'css/notification';
@import 'css/sidebar';
@import 'css/system'; @import 'css/system';
@import 'css/volume'; @import 'css/volume';
.bar { .bar {
background-color: $bg; background-color: $bg;
color: $fg; color: $fg;
label {
font-size: 1.2rem;
}
}
tooltip {
background: $bg;
border: 1px solid $border;
border-radius: 8px;
label {
font-size: 1rem;
}
} }
.module { margin: 0 5px; } .module { margin: 0 5px; }
.clock { font-size: 1.4rem; }
.hour { font-weight: bold; } .hour { font-weight: bold; }
.date { .date {
label {
font-size: 1.4rem;
}
background: $bg; background: $bg;
color: $flamingo; color: $flamingo;
margin-left: -1.15rem; margin-left: -1rem;
padding: 0 1rem; padding: 0 1rem;
label {
font-size: 1.2rem;
}
} }
.bright-icon { color: $yellow; } .bright-icon { color: $yellow; }
.brightbar trough highlight {
background-image: linear-gradient(to right, $yellow 30%, $peach 100%);
border-radius: 10px;
}
.module-ssid, .module-ssid,
.module-net { color: $lavender; } .module-net { color: $lavender; }
.module-bt { font-size: 1.2rem; } .module-bt { font-size: 1.2rem; }
.separ { .separ {
color: $surface0; color: $surface0;
font-size: 1.5rem;
padding-bottom: 2px; padding-bottom: 2px;
font-size: 1.5rem;
} }
scale trough { scale trough {

View File

@ -10,9 +10,10 @@
(include "./modules/volume.yuck") (include "./modules/volume.yuck")
(include "./windows/calendar.yuck") (include "./windows/calendar.yuck")
(include "./windows/music.yuck") (include "./windows/music_win.yuck")
(include "./windows/notifications.yuck") (include "./windows/notifications.yuck")
(include "./windows/sidebar.yuck") (include "./windows/system.yuck")
(include "./windows/volume_win.yuck")
(defwidget sep [] (defwidget sep []
(label :class "separ module" :text "|")) (label :class "separ module" :text "|"))
@ -20,7 +21,7 @@
(defwidget notif-toggle [] (defwidget notif-toggle []
(button (button
:class "notif-toggle module" :class "notif-toggle module"
:onclick "${EWW_CMD} open --toggle notifications"; :onclick "scripts/reveal_toggle notification_rev ${EWW_CMD}";
{notif_icons.icon})) {notif_icons.icon}))
; clipboard 󰅌 󰅍 󰄷 ; clipboard 󰅌 󰅍 󰄷
@ -39,7 +40,7 @@
:space-evenly false :space-evenly false
:halign "end" :halign "end"
(bright) (bright)
(volume-module) (volume)
(net) (net)
(bluetooth) (bluetooth)
(sep) (sep)
@ -54,7 +55,7 @@
(box (box
:space-evenly false :space-evenly false
:halign "center" :halign "center"
(music-module))) (music)))
(defwidget bar [] (defwidget bar []
(centerbox (centerbox

View File

@ -6,5 +6,5 @@
:thickness 3 :thickness 3
(button (button
:tooltip "battery on ${EWW_BATTERY["BAT0"].capacity}%" :tooltip "battery on ${EWW_BATTERY["BAT0"].capacity}%"
:onclick "${EWW_CMD} open --toggle system-menu" :onclick "./scripts/pop system"
(label :class "icon-text" :text "")))) (label :class "icon-text" :text ""))))

View File

@ -1,7 +1,19 @@
(defwidget bluetooth [] (defwidget bluetooth []
(eventbox
:onhover "${EWW_CMD} update bt_rev=true"
:onhoverlost "${EWW_CMD} update bt_rev=false"
(box
:space-evenly "false"
(revealer
:transition "slideright"
:reveal bt_rev
:duration "350ms"
(label
:class "module-bt module"
:style "color: ${bluetooth.color};"
:text {bluetooth.text}))
(button (button
:class "module-bt module" :class "module-bt module"
:onclick "blueberry" :onclick "rofi-bluetooth"
:tooltip "${bluetooth.text} ${bluetooth.batt_icon}"
:style "color: ${bluetooth.color};" :style "color: ${bluetooth.color};"
{bluetooth.icon})) {bluetooth.icon}))))

View File

@ -1,9 +1,21 @@
(defwidget bright [] (defwidget bright []
(eventbox
:onhover "${EWW_CMD} update bright_reveal=true"
:onhoverlost "${EWW_CMD} update bright_reveal=false"
(box (box
:class "module" :class "module"
(eventbox :space-evenly "false"
:onscroll "echo {} | sed -e 's/up/-U 1/g' -e 's/down/-A 1/g' | xargs light" :spacing "3"
(revealer
:transition "slideleft"
:reveal bright_reveal
:duration "350ms"
(scale
:class "brightbar"
:value {brightness.level}
:tooltip "${brightness.level}%"
:onchange "light -S {}"))
(label (label
:text {brightness.icon} :text {brightness.icon}
:class "bright-icon" :class "bright-icon"
:tooltip "brightness ${round(brightness.level, 0)}%")))) :tooltip "brightness ${brightness.level}%"))))

View File

@ -2,8 +2,8 @@
(defwidget clock_module [] (defwidget clock_module []
(eventbox (eventbox
:onhover "${EWW_CMD} update date_rev=true" :onhover "${EWW_CMD} update time_rev=false; ${EWW_CMD} update date_rev=true"
:onhoverlost "${EWW_CMD} update date_rev=false" :onhoverlost "${EWW_CMD} update time_rev=false; ${EWW_CMD} update date_rev=false"
(overlay (overlay
:class "module" :class "module"
(box (box
@ -21,5 +21,5 @@
:reveal date_rev :reveal date_rev
(button (button
:class "date clock" :class "date clock"
:onclick "${EWW_CMD} open --toggle calendar" :onclick "./scripts/pop calendar"
{time.date}))))) {time.date})))))

View File

@ -5,5 +5,5 @@
:thickness 3 :thickness 3
(button (button
:tooltip "using ${round(EWW_CPU.avg,0)}% cpu" :tooltip "using ${round(EWW_CPU.avg,0)}% cpu"
:onclick "${EWW_CMD} open --toggle system-menu" :onclick "./scripts/pop system"
(label :class "icon-text" :text "")))) (label :class "icon-text" :text ""))))

View File

@ -5,5 +5,5 @@
:thickness 3 :thickness 3
(button (button
:tooltip "using ${round(memory.percentage,0)}% ram" :tooltip "using ${round(memory.percentage,0)}% ram"
:onclick "${EWW_CMD} open --toggle system-menu" :onclick "./scripts/pop system"
(label :class "icon-text" :text "")))) (label :class "icon-text" :text ""))))

View File

@ -1,4 +1,4 @@
(defwidget music-module [] (defwidget music []
(eventbox (eventbox
:onhover "${EWW_CMD} update music_reveal=true" :onhover "${EWW_CMD} update music_reveal=true"
:onhoverlost "${EWW_CMD} update music_reveal=false" :onhoverlost "${EWW_CMD} update music_reveal=false"
@ -10,7 +10,7 @@
:style "background-image: url(\"${music_cover}\");") :style "background-image: url(\"${music_cover}\");")
(button (button
:class "module" :class "module"
:onclick "${EWW_CMD} open --toggle music" :onclick "./scripts/pop music"
{music.title}) {music.title})
(revealer (revealer
:transition "slideright" :transition "slideright"

View File

@ -1,7 +1,19 @@
(defwidget net [] (defwidget net []
(eventbox
:onhover "${EWW_CMD} update net_rev=true"
:onhoverlost "${EWW_CMD} update net_rev=false"
(box
:space-evenly "false"
(revealer
:transition "slideright"
:reveal net_rev
:duration "350ms"
(label
:class "module-ssid module"
:style "color: ${net.color};"
:text {net.essid}))
(button (button
:class "module-net module" :class "module-net module"
:onclick "rofi-nm" :onclick "rofi-nm"
:tooltip {net.essid}
:style "color: ${net.color};" :style "color: ${net.color};"
{net.icon})) {net.icon}))))

View File

@ -1,14 +1,13 @@
(defvar bright_reveal false) (defvar bright_reveal false)
(defvar bt_rev false) (defvar bt_rev false)
(defvar music_reveal false) (defvar music_reveal false)
(defvar notif_rev false) (defvar notification_rev false)
(defvar net_rev false) (defvar net_rev false)
(defvar time_rev false) (defvar time_rev false)
(defvar vol_reveal false) (defvar vol_reveal false)
(defpoll time :interval "5s" `date +'{"date": "%d/%m", "hour": "%H", "minute": "%M", "day": "%A"}'`) (defpoll time :interval "5s" `date +'{"date": "%d/%m", "hour": "%H", "minute": "%M"}'`)
(deflisten airplane "scripts/airplane")
(deflisten battery "scripts/battery") (deflisten battery "scripts/battery")
(deflisten bluetooth "scripts/bluetooth") (deflisten bluetooth "scripts/bluetooth")
(deflisten brightness "scripts/brightness") (deflisten brightness "scripts/brightness")

View File

@ -1,11 +1,23 @@
(defwidget volume-module [] (defwidget volume []
(eventbox
:onhover "${EWW_CMD} update vol_reveal=true"
:onhoverlost "${EWW_CMD} update vol_reveal=false"
(box (box
:class "module" :class "module"
(eventbox :space-evenly "false"
:onscroll "echo {} | sed -e 's/up/-/g' -e 's/down/+/g' | xargs -I% wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.005%" :spacing "3"
:onclick "pavucontrol &" (revealer
:onrightclick "scripts/volume mute SINK" :transition "slideright"
(label :reveal vol_reveal
:duration "350ms"
(scale
:class "volbar"
:value {volume.percent}
:tooltip "${volume.percent}%"
:max 100
:min 0
:onchange "./scripts/volume setvol SINK {}"))
(button
:onclick "./scripts/pop volume"
:class "vol-icon" :class "vol-icon"
:tooltip "volume ${volume.percent}" {volume.icon}))))
:text {volume.icon}))))

View File

@ -1,29 +0,0 @@
#!/bin/sh
icon() {
if [[ $STATUS == "no" ]]; then
echo ""
else
echo ""
fi
}
toggle() {
if [[ $STATUS == "no" ]]; then
rfkill block all
notify-send --urgency=normal -i airplane-mode-symbolic "Airplane Mode" "Airplane mode has been turned on!"
else
rfkill unblock all
notify-send --urgency=normal -i airplane-mode-disabled-symbolic "Airplane Mode" "Airplane mode has been turned off!"
fi
}
if [[ $1 == "toggle" ]]; then
toggle
else
while true; do
STATUS="$(rfkill list | sed -n 2p | awk '{print $3}')"
icon
sleep 3;
done
fi

View File

@ -1,20 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
icons=("󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹")
icons_charging=("󰂆" "󰂇" "󰂈" "󰂉" "󰂅")
# declare -A baticon=([10]="󰁺" [20]="󰁻" [30]="󰁼" [40]="󰁽" [50]="󰁾" [60]="󰁿" [70]="󰂀" [80]="󰂁" [90]="󰂂" [100]="󰁹")
geticon() {
if [ "$STATE" = "Charging" ]; then
level=$(awk -v n="$CAPACITY" 'BEGIN{print int((n-1)/20)}')
echo "${icons_charging[$level]}"
else
level=$(awk -v n="$CAPACITY" 'BEGIN{print int((n-1)/10)}')
echo "${icons[$level]}"
fi
}
status() { status() {
if [ "$STATE" = "Charging" ]; then if [ "$STATE" = "Charging" ]; then
echo -n "charging" echo -n "charging"
@ -62,6 +47,6 @@ while true; do
CAPACITY=$(cat /sys/class/power_supply/BAT0/capacity) CAPACITY=$(cat /sys/class/power_supply/BAT0/capacity)
STATE=$(cat /sys/class/power_supply/BAT0/status) STATE=$(cat /sys/class/power_supply/BAT0/status)
echo '{ "icon": "'"$(geticon)"'", "percentage": '"$CAPACITY"', "wattage": "'"$(wattage)"'", "status": "'"$(status)"'", "color": "'"$(color)"'" }' echo '{ "percentage": '"$CAPACITY"', "wattage": "'"$(wattage)"'", "status": "'"$(status)"'", "color": "'"$(color)"'" }'
sleep 3 sleep 3
done done

View File

@ -1,36 +1,21 @@
#!/usr/bin/env bash #!/usr/bin/env bash
declare -A baticon=([10]="󰤾" [20]="󰤿" [30]="󰥀" [40]="󰥁" [50]="󰥂" [60]="󰥃" [70]="󰥄" [80]="󰥅" [90]="󰥆" [100]="󰥈") declare -A baticon=([10]="󰁺" [20]="󰁻" [30]="󰁼" [40]="󰁽" [50]="󰁾" [60]="󰁿" [70]="󰂀" [80]="󰂁" [90]="󰂂" [100]="󰁹")
toggle() {
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "bluetooth") | .soft' | head -1)
if [ "$status" = "unblocked" ]; then
rfkill block bluetooth
else
rfkill unblock bluetooth
fi
}
if [ "$1" = "toggle" ]; then
toggle
else
while true; do while true; do
powered=$(bluetoothctl show | rg Powered | cut -f 2- -d ' ') powered=$(bluetoothctl show | rg Powered | cut -f 2- -d ' ')
status=$(bluetoothctl info) status=$(bluetoothctl info)
battery=$(echo "$status" | tail -1 | awk '{print $4 }' | tr -d '()')
name=$(echo "$status" | rg Name | cut -f 2- -d ' ') name=$(echo "$status" | rg Name | cut -f 2- -d ' ')
mac=$(echo "$status" | head -1 | awk '{print $2}' | tr ':' '_')
if [[ "$(echo "$status" | rg Percentage)" != "" ]]; then
battery=$(upower -i /org/freedesktop/UPower/devices/headset_dev_"$mac" | rg percentage | awk '{print $2}' | cut -f 1 -d '%')
batt_icon=${baticon[$battery]}
else
batt_icon=""
fi
if [ "$powered" = "yes" ]; then if [ "$powered" = "yes" ]; then
if [ "$status" != "Missing device address argument" ]; then if [ "$status" != "Missing device address argument" ]; then
if [ "$battery" -le 100 ] && [ "$battery" -ge 0 ]; then
text="$name ${baticon[$battery]}"
else
text="$name" text="$name"
fi
icon="" icon=""
color="#b4befe" color="#b4befe"
else else
@ -44,8 +29,7 @@ else
color="#45475a" color="#45475a"
fi fi
echo '{ "icon": "'"$icon"'", "batt_icon": "'"$batt_icon"'", "text": "'"$text"'", "color": "'"$color"'" }' echo '{ "icon": "'"$icon"'", "text": "'"$text"'", "color": "'"$color"'" }'
sleep 3 sleep 3
done done
fi

View File

@ -66,7 +66,7 @@ get_cover() {
echo "$IMGPATH" echo "$IMGPATH"
elif [ "$COVER_URL" = "" ]; then elif [ "$COVER_URL" = "" ]; then
echo "" echo "images/music.png"
else else
echo "$COVER_URL" echo "$COVER_URL"
fi fi

View File

@ -1,21 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
toggle() {
status=$(rfkill -J | jq -r '.rfkilldevices[] | select(.type == "wlan") | .soft' | head -1)
if [ "$status" = "unblocked" ]; then
rfkill block wlan
else
rfkill unblock wlan
fi
}
if [ "$1" = "toggle" ]; then
toggle
else
while true; do while true; do
status=$(nmcli g | tail -n 1 | awk '{print $1}') status=$(nmcli g | tail -n 1 | awk '{print $1}')
signal=$(nmcli -f in-use,signal dev wifi | rg "\*" | awk '{ print $2 }') signal=$(nmcli dev wifi | rg "\*" | awk '{ print $8 }')
essid=$(nmcli -t -f NAME connection show --active | head -n1) essid=$(nmcli -t -f NAME connection show --active | head -n1)
icons=("󰤯" "󰤟" "󰤢" "󰤥" "󰤨") icons=("󰤯" "󰤟" "󰤢" "󰤥" "󰤨")
@ -24,7 +11,7 @@ else
icon="" icon=""
color="#988ba2" color="#988ba2"
else else
level=$(awk -v n="$signal" 'BEGIN{print int((n-1)/20)}') level=$(awk -v n="$signal" 'BEGIN{print int(n/20)}')
if [ "$level" -gt 4 ]; then if [ "$level" -gt 4 ]; then
level=4 level=4
fi fi
@ -37,4 +24,3 @@ else
sleep 3 sleep 3
done done
fi

View File

@ -1,11 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
tmp=$XDG_CACHE_HOME/dunst-history.json tmp=$XDG_CACHE_HOME/dunst-history.json
lock="$XDG_CACHE_HOME/dunst-toggle.lock"
lockinfo="$XDG_CACHE_HOME/dunst-lock-info"
touch $lockinfo
declare ids declare ids
export toggle_icon="" export toggle_icon=""
@ -14,23 +9,25 @@ get_ids() {
} }
get_notif() { get_notif() {
echo -n '(box :class "container" :orientation "v" :space-evenly false '
echo -n "(box :orientation \"v\" :space-evenly \"false\" :spacing \"10\" :halign \"start\" "
for id in "${ids[@]}"; do for id in "${ids[@]}"; do
mapfile -t n < <(jq -r ".data[] | .[] | select(.id.data == $id) | .appname.data, .summary.data, .body.data" "$tmp" | sed -r '/^\s*$/d' | sed -e 's/\%/ percent/g') mapfile -t n < <(jq -r ".data[] | .[] | select(.id.data == $id) | .appname.data, .summary.data, .body.data" "$tmp" | sed -r '/^\s*$/d' | sed -e 's/\%/ percent/g')
echo -n '(eventbox :onclick "dunstctl history-pop '"$id"' && dunstctl action 0 && dunstctl close" ' echo -n "(eventbox :onclick \"dunstctl history-pop $id && dunstctl action 0 && dunstctl close\" \
echo -n '(box :class "notification" :orientation "v" :width 300 :space-evenly false ' (box :class \"notification\" :orientation \"h\" :width 300 :space-evenly \"false\" \
echo -n '(box :space-evenly false :spacing 10 ' (box :orientation \"v\" :space-evenly \"false\" :valign \"start\" :width 300 :spacing 10 \
echo -n '(label :halign "start" :xalign 0 :wrap true :class "summary" :text "'"${n[1]}"'")' (box :orientation \"h\" :space-evenly \"false\" :width 300 :spacing 10 \
echo -n '(label :halign "end" :xalign 1 :wrap true :class "appname" :text "'"${n[0]}"'"))' (label :xalign 0 :wrap \"true\" :class \"summary\" :text \"${n[1]}\") \
echo -n '(label :halign "start" :wrap true :class "body" :text "'"${n[2]}"'")))' (label :xalign 1 :wrap \"true\" :class \"appname\" :text \"${n[0]}\")) \
(label :xalign 0 :wrap \"true\" :class \"body\" :text \"${n[2]}\"))))"
done done
echo ")"
echo ')'
} }
toggle() { toggle() {
dunstctl set-paused toggle dunstctl set-paused toggle
lock="$XDG_CACHE_HOME/dunst-toggle.lock"
if [ ! -f "$lock" ]; then if [ ! -f "$lock" ]; then
export toggle_icon="" export toggle_icon=""
@ -39,13 +36,14 @@ toggle() {
export toggle_icon="" export toggle_icon=""
rm "$lock" rm "$lock"
fi fi
echo "icon_change" > $lockinfo
} }
clear() { clear() {
systemctl --user restart dunst get_ids
echo "icon_change" > $lockinfo for id in "${ids[@]}"; do
dunstctl history-pop "$id"
done
get_ids
} }
get_icon() { get_icon() {
@ -66,7 +64,7 @@ elif [ "$1" == "icons" ]; then
dunstctl history > "$tmp" dunstctl history > "$tmp"
get_ids get_ids
echo '{"toggle_icon": "'"$toggle_icon"'", "icon": "'"$(get_icon)"'"}' echo '{"toggle_icon": "'"$toggle_icon"'", "icon": "'"$(get_icon)"'"}'
tail -f "$lockinfo" | while read -r; do tail -f "$tmp" 2>/dev/null | rg --line-buffered "aa\{sv\}" | while read -r; do
get_ids get_ids
echo '{"toggle_icon": "'"$toggle_icon"'", "icon": "'"$(get_icon)"'"}' echo '{"toggle_icon": "'"$toggle_icon"'", "icon": "'"$(get_icon)"'"}'
done done

View File

@ -1,9 +1,8 @@
(defwidget calendar-win [] (defwidget calendar-win []
(box (box
:class "calendar-win" :class "calendar-window"
(calendar))) (calendar)))
(defwindow calendar_win
(defwindow calendar
:monitor 0 :monitor 0
:geometry (geometry :geometry (geometry
:x "0%" :x "0%"

View File

@ -1,54 +0,0 @@
(defwidget music []
(box
:class "music-window"
:space-evenly false
(box
:class "music-cover-art"
:style "background-image: url(\"${music_cover}\");")
(box
:orientation "v"
:class "music-box"
(label
:class "music-title"
:wrap true
:limit-width 30
:text {music.title})
(label
:class "music-artist"
:wrap true
:limit-width 30
:text {music.artist})
(centerbox
:halign "center"
:class "music-button-box"
(button :class "music-button" :onclick "playerctl previous" "")
(button :class "music-button" :onclick "playerctl play-pause" {music.status})
(button :class "music-button" :onclick "playerctl next" ""))
(box
:orientation "v"
(box
(label
:xalign 0
:class "music-time"
:text {music.position_time})
(label
:xalign 1
:class "music-time"
:text {music.length}))
(box
:class "music-bar"
(scale
:onchange "playerctl position `bc <<< \"{} * $(playerctl metadata mpris:length) / 1000000 / 100\"`"
:value {music.position}))))))
(defwindow music
:stacking "fg"
:focusable "false"
:monitor 0
:geometry (geometry
:x "0%"
:y "0%"
:width "0%"
:height "0%"
:anchor "top center")
(music))

View File

@ -1,34 +1,42 @@
(defwindow notifications (defwindow notifications_win
:geometry :geometry
(geometry (geometry
:x "0px" :x "0px"
:y "0px" :y "0px"
:width "0px" :width "0px"
:height "0px" :height "0px"
:anchor "right top") :anchor "right center")
:stacking "fg" :stacking "fg"
:monitor "0" :monitor "0"
(notifications)) (rightside))
(defwidget notifications [] (defwidget rightside []
(revealer
:transition "slideleft"
:reveal notification_rev
:duration "350ms"
(box (box
:class "notifications-box" :class "side"
:orientation "v" :orientation "v"
:space-evenly "false" :space-evenly "false"
:spacing "10"
:halign "center"
(box (box
:class "notification-header" :class "notification-header"
:orientation "h"
:space-evenly "false"
(label (label
:class "notification-label" :class "notification-label"
:halign "start" :halign "start"
:text "Notifications") :text "Notifications")
(box (box
:halign "end" :orientation "h"
:space-evenly "false" :space-evenly "false"
:spacing 10 :halign "end"
(button (button
:class "notification-action" :class "notification-action"
:tooltip "Refresh" :tooltip "Refresh"
:onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json" "") :onclick "dunstctl history > $XDG_CACHE_HOME/dunst-history.json" "")
(button (button
:class "notification-action" :class "notification-action"
:tooltip "Pause/Resume Notifications" :tooltip "Pause/Resume Notifications"
@ -36,11 +44,12 @@
(button (button
:class "notification-action" :class "notification-action"
:tooltip "Clear Notifications" :tooltip "Clear Notifications"
:onclick "scripts/notifications clear" ""))) ; 󰅖 :onclick "scripts/notifications clear" "󰅙"))); 󰅖
(scroll (scroll
:vscroll "true" :vscroll "true"
:hscroll "false" :hscroll "false"
:height 500 :height 840
:width 300 :width 200
(literal (literal
:content notifications)))) :content notifications)
))))

View File

@ -1,215 +0,0 @@
(defwidget system-menu []
(box
:class "system-menu-box"
:space-evenly false
:orientation "v"
(box
:class "top-row"
:space-evenly false
(label
:class "time"
:text "${time.hour}:${time.minute}")
(box
:class "date-box"
:space-evenly false
(label
:class "date"
:text {time.date})
(label
:class "day"
:text {time.day})))
(centerbox
:class "system-row"
(box
:class "wifi-box"
:space-evenly false
:orientation "v"
(box
:class "element"
:space-evenly false
(button
:class "wifi-button"
:onclick "scripts/net toggle"
{net.icon})
(label
:class "separator"
:text "|")
(button
:class "wifi-arrow-btn"
:onclick "eww close system-menu && nm-connection-editor &"
""))
(label
:text {net.essid}
:xalign 0.5
:limit-width 15))
(box
:class "bluetooth-box"
:space-evenly false
:orientation "v"
(box
:class "element"
:space-evenly false
(button
:class "bluetooth-button"
:onclick "scripts/bluetooth toggle"
{bluetooth.icon})
(label
:class "separator"
:text "|")
(button
:class "bluetooth-arrow-btn"
:onclick "eww close system-menu && blueberry"
""))
(label
:text {bluetooth.text}
:xalign 0.5
:tooltip "${bluetooth.text} ${bluetooth.batt_icon}"
:limit-width 15))
(box
:class "airplane-box"
:space-evenly false
:orientation "v"
(box
:class "element"
(button
:class "airplane-button"
:onclick "scripts/airplane toggle"
airplane))
(label
:text "Airplane Mode"
:xalign 0.5
:limit-width 16)))
(box
:class "sliders"
:orientation "v"
(box
:class "volume-slider-box"
:space-evenly false
(button
:class "volume-icon"
:onclick "scripts/volume mute SINK"
{volume.icon})
(scale
:class "volume-bar"
:value {volume.percent}
:tooltip "volume on ${volume.percent}%"
:onchange "scripts/volume setvol SINK {}"))
(box
:class "volume-slider-box"
:space-evenly false
(button
:class "volume-icon"
:onclick "scripts/volume mute SOURCE"
"")
(scale
:class "volume-bar"
:value {volume.microphone}
:tooltip "mic on ${volume.microphone}%"
:onchange "scripts/volume setvol SOURCE {}"))
(box
:class "brightness-slider-box"
:space-evenly false
(button
:class "brightness-slider-icon"
{brightness.icon})
(scale
:class "brightness-slider"
:value {brightness.level}
:marks true
:onchange "light -S {}")))
(box
:class "system-info-box"
; cpu
(box
:class "sys-box"
:space-evenly false
:halign "start"
(circular-progress
:value "${EWW_CPU.avg}"
:class "sys-cpu"
:thickness 3
(label
:text ""
:class "sys-icon-cpu"))
(box
:orientation "v"
:vexpand "false"
(label
:text "cpu"
:halign "start"
:class "sys-text-cpu")
(label
:text "${round(EWW_CPU.avg,2)}%"
:halign "start"
:class "sys-text-sub")
(label
:text "${EWW_CPU.cores[0].freq} MHz"
:halign "start"
:class "sys-text-sub")))
; memory
(box
:class "sys-box"
:space-evenly false
:halign "end"
(circular-progress
:value {memory.percentage}
:class "sys-mem"
:thickness 3
(label
:text ""
:class "sys-icon-mem"))
(box
:orientation "v"
(label
:text "memory"
:halign "start"
:class "sys-text-mem")
(label
:text "${memory.used} | ${memory.total}"
:halign "start"
:class "sys-text-sub"))))
(box
:class "bottom-row"
(box
:class "battery-box"
:space-evenly false
:halign "start"
(label
:class "battery-icon"
:style "color: ${battery.color}"
:text {battery.icon})
(label
:class "battery-percentage"
:text {EWW_BATTERY["BAT0"].capacity})
(label
:class "battery-status"
:text {battery.status})
(label
:class "battery-wattage"
:text {battery.wattage}))
(button
:class "power-button"
:halign "end"
:onclick "wlogout -p layer-shell &" ""))))
;; windows
(defwindow system-menu
:stacking "fg"
:windowtype "dock"
:wm-ignore true
:monitor "0"
:geometry (geometry
:x "0"
:y "0"
:width "0%"
:height "0%"
:anchor "right top")
(system-menu))

View File

@ -5,7 +5,7 @@
server.enable = false; server.enable = false;
settings = { settings = {
main = { main = {
font = "${config.settings.font.monospace.name}:size=${toString config.settings.font.monospace.size}"; font = "${config.settings.font.name}:size=${toString config.settings.font.size}";
dpi-aware = "yes"; dpi-aware = "yes";
}; };
colors = { colors = {

View File

@ -1,3 +0,0 @@
{pkgs, ...}: {
home.packages = with pkgs; [godot godot-headless godot-server];
}

View File

@ -25,7 +25,7 @@ in {
exec-once=xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2 exec-once=xprop -root -f _XWAYLAND_GLOBAL_OUTPUT_SCALE 32c -set _XWAYLAND_GLOBAL_OUTPUT_SCALE 2
exec-once=swaybg -i ~/.config/wallpaper exec-once=swaybg -i ~/.config/wallpaper
exec-once=eww open bar exec-once=eww open-many bar notifications_win
input { input {
kb_layout=tr kb_layout=tr
@ -67,20 +67,17 @@ in {
} }
# window rules # window rules
windowrulev2=float,title:^(Media viewer)$ windowrule=float,title:^(Media viewer)$
windowrulev2=float,title:^(Picture-in-Picture)$ windowrule=float,title:^(Picture-in-Picture)$
windowrulev2=pin,title:^(Picture-in-Picture)$ windowrule=pin,title:^(Picture-in-Picture)$
windowrulev2=float,title:^(Firefox Sharing Indicator)$ windowrule=float,title:^(Firefox Sharing Indicator)$
windowrulev2=move 0 0,title:^(Firefox Sharing Indicator)$ windowrule=move 0 0,title:^(Firefox Sharing Indicator)$
# window rules for organization # window rules for organization
windowrulev2=workspace 1,title:^(Firefox)$ windowrule=workspace 1,title:^(Firefox)$
windowrulev2=workspace 2,title:^(Discord)$ windowrule=workspace 2,title:^(Discord)$
windowrulev2=workspace 2,title:^(WebCord)$ windowrule=workspace 2,title:^(WebCord)$
windowrulev2=workspace 3,title:^(foot)$ windowrule=workspace 3,title:^(foot)$
# make blueberry device-specific window proper size
windowrulev2 = tile, class:^(blueberry.py)$, title:^(?!Sound).+$
# mouse # mouse
bindm=SUPER,mouse:272,movewindow bindm=SUPER,mouse:272,movewindow

View File

@ -27,7 +27,6 @@
playerctl playerctl
wlogout wlogout
swaybg swaybg
mpvpaper
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {

View File

@ -6,7 +6,7 @@
programs.mako = { programs.mako = {
enable = true; enable = true;
anchor = "top-center"; anchor = "top-center";
font = config.settings.font.regular.fullName; font = config.settings.font.fullName;
borderRadius = 16; borderRadius = 16;
extraConfig = builtins.readFile ( extraConfig = builtins.readFile (
builtins.fetchurl { builtins.fetchurl {

View File

@ -1,27 +1,13 @@
{ {
config, config,
pkgs, pkgs,
lib,
... ...
}: let }: let
rofi-nm = pkgs.fetchurl { rofi-nm = pkgs.fetchurl {
url = "https://raw.githubusercontent.com/P3rf/rofi-network-manager/1daa69406c9b6539a4744eafb0d5bb8afdc80e9b/rofi-network-manager.sh"; url = "https://raw.githubusercontent.com/P3rf/rofi-network-manager/1daa69406c9b6539a4744eafb0d5bb8afdc80e9b/rofi-network-manager.sh";
hash = "sha256:1nlnjmk5b743j5826z2nzfvjwk0fmbf7gk38darby93kdr3nv5zx"; hash = "sha256:1nlnjmk5b743j5826z2nzfvjwk0fmbf7gk38darby93kdr3nv5zx";
}; };
package = pkgs.writeShellScriptBin "rofi-nm" ''
${config.home.homeDirectory}/.config/rofi-nm/rofi-nm.sh
'';
in { in {
options = {
programs.rofi-nm.package = lib.mkOption {
type = lib.types.package;
};
};
config = {
programs.rofi-nm.package = package;
home.packages = [package];
xdg.configFile = { xdg.configFile = {
"rofi-nm/rofi-nm.sh" = { "rofi-nm/rofi-nm.sh" = {
source = pkgs.runCommandLocal "rofi-nm" {} '' source = pkgs.runCommandLocal "rofi-nm" {} ''
@ -48,7 +34,7 @@ in {
} }
* { * {
font: "${config.settings.font.regular.fullName}"; font: "${config.settings.font.fullName}";
} }
@theme "catppuccin" @theme "catppuccin"
@ -139,5 +125,12 @@ in {
} }
''; '';
}; };
};
home.packages = [
(
pkgs.writeShellScriptBin "rofi-nm" ''
${config.home.homeDirectory}/.config/rofi-nm/rofi-nm.sh
''
)
];
} }

View File

@ -16,7 +16,7 @@
configuration{ configuration{
modi: "drun"; modi: "drun";
lines: 5; lines: 5;
font: "${config.settings.font.regular.fullName}"; font: "${config.settings.font.fullName}";
show-icons: true; show-icons: true;
terminal: "st"; terminal: "st";
drun-display-format: "{icon} {name}"; drun-display-format: "{icon} {name}";

View File

@ -6,21 +6,6 @@
l = lib // builtins; l = lib // builtins;
t = l.types; t = l.types;
cfg = config.settings; cfg = config.settings;
fontSettings = {
name = l.mkOption {
type = t.str;
};
package = l.mkOption {
type = t.package;
};
size = l.mkOption {
type = t.ints.unsigned;
};
fullName = l.mkOption {
type = t.str;
readOnly = true;
};
};
in { in {
options = { options = {
settings.iconTheme = { settings.iconTheme = {
@ -37,14 +22,28 @@ in {
}; };
}; };
settings.font = { settings.font = {
regular = fontSettings; enable = l.mkOption {
monospace = fontSettings; type = t.bool;
default = false;
};
name = l.mkOption {
type = t.str;
};
package = l.mkOption {
type = t.package;
};
size = l.mkOption {
type = t.ints.unsigned;
};
fullName = l.mkOption {
type = t.str;
readOnly = true;
};
}; };
}; };
config = { config = l.mkIf cfg.font.enable {
home.packages = [cfg.font.regular.package cfg.font.monospace.package]; home.packages = [cfg.font.package];
settings.font.regular.fullName = "${cfg.font.regular.name} ${toString cfg.font.regular.size}"; settings.font.fullName = "${cfg.font.name} ${toString cfg.font.size}";
settings.font.monospace.fullName = "${cfg.font.monospace.name} ${toString cfg.font.monospace.size}";
}; };
} }

View File

@ -2,12 +2,19 @@
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {
format = "$directory$character"; format = "$shell$shlvl@ $directory$character";
add_newline = false; add_newline = false;
character = { character = {
success_symbol = "[>](bold green)"; success_symbol = "[>](bold green)";
error_symbol = "[>](bold red)"; error_symbol = "[>](bold red)";
}; };
shell.disabled = false;
shlvl = {
disabled = false;
symbol = "shlvl ";
format = "on [$symbol$shlvl]($style) ";
};
nix_shell.format = "via [$name]($style) ";
directory = { directory = {
truncation_length = 2; truncation_length = 2;
truncate_to_repo = false; truncate_to_repo = false;

View File

@ -12,6 +12,6 @@
effect-scale = "0.5"; effect-scale = "0.5";
effect-greyscale = true; effect-greyscale = true;
effect-blur = "20x3"; effect-blur = "20x3";
font = config.settings.font.regular.name; font = config.settings.font.name;
}; };
} }

View File

@ -17,8 +17,8 @@
} }
return { return {
font = wezterm.font("${config.settings.font.regular.name}"), font = wezterm.font("${config.settings.font.name}"),
font_size = ${builtins.toJSON config.settings.font.regular.size}, font_size = ${builtins.toJSON config.settings.font.size},
default_cursor_style = "BlinkingBar", default_cursor_style = "BlinkingBar",
enable_wayland = true, enable_wayland = true,
enable_tab_bar = false, enable_tab_bar = false,

View File

@ -50,10 +50,10 @@ in {
fuse.userAllowOther = true; fuse.userAllowOther = true;
adb.enable = true; adb.enable = true;
steam.enable = true; steam.enable = true;
kdeconnect.enable = true;
# gnome stuffs # gnome stuffs
seahorse.enable = true; seahorse.enable = true;
dconf.enable = true; dconf.enable = true;
weylus.users = ["patriot"];
}; };
services = { services = {
syncthing.folders = { syncthing.folders = {
@ -97,7 +97,7 @@ in {
imports = let imports = let
modulesToEnable = l.flatten [ modulesToEnable = l.flatten [
# wm # wm
["hyprland" "foot"] ["hyprland"]
# desktop stuff # desktop stuff
["firefox" "discord"] ["firefox" "discord"]
# cli stuff # cli stuff
@ -121,6 +121,7 @@ in {
directories = directories =
l.flatten [ l.flatten [
"Downloads" "Downloads"
# "smos"
".wine" ".wine"
# ssh / gpg / keys # ssh / gpg / keys
".ssh" ".ssh"
@ -140,22 +141,18 @@ in {
] ]
++ mkPaths ".config" [ ++ mkPaths ".config" [
"lutris" "lutris"
"kdeconnect"
]; ];
files = l.flatten [ files = l.flatten [
".config/wallpaper" ".config/wallpaper"
".config/wallpaper.mp4"
(lib.removePrefix "~/" config.programs.ssh.userKnownHostsFile) (lib.removePrefix "~/" config.programs.ssh.userKnownHostsFile)
]; ];
allowOther = true; allowOther = true;
}; };
fonts.fontconfig.enable = l.mkForce true; fonts.fontconfig.enable = l.mkForce true;
settings.font.regular = { settings.font = {
name = "Comic Relief"; enable = true;
size = 13;
package = pkgs.comic-relief;
};
settings.font.monospace = {
name = "Comic Mono"; name = "Comic Mono";
size = 13; size = 13;
package = pkgs.comic-mono; package = pkgs.comic-mono;
@ -178,7 +175,7 @@ in {
enable = true; enable = true;
font = { font = {
inherit (config.settings.font.regular) name package; inherit (config.settings.font) name package;
}; };
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
@ -223,6 +220,7 @@ in {
'' ''
) )
obs-studio obs-studio
rofi-bluetooth-wayland
]; ];
}; };
programs = { programs = {