refactor: complete rewrite

This commit is contained in:
ooks-io 2024-10-23 23:46:25 +13:00
parent 19a4bbda3c
commit 8e81943cf9
399 changed files with 3396 additions and 8042 deletions

View file

@ -0,0 +1,13 @@
{
imports = [
./rofi.nix
./mako.nix
./tools.nix
./waybar.nix
./hypridle.nix
./hyprlock.nix
./hyprpaper.nix
./gammastep.nix
./polkit.nix
];
}

View file

@ -0,0 +1,25 @@
{
lib,
osConfig,
...
}: let
inherit (lib) mkIf;
inherit (osConfig.ooknet.workstation) environment;
in {
config = mkIf (environment == "hyprland") {
services.gammastep = {
enable = true;
enableVerboseLogging = true;
provider = "manual";
latitude = -30.0;
longitude = 150.0;
temperature = {
day = 6000;
night = 4000;
};
settings.general.adjustment-method = "wayland";
};
};
}

View file

@ -0,0 +1,31 @@
{
inputs',
osConfig,
lib,
config,
...
}: let
inherit (lib) getExe mkIf;
inherit (osConfig.ooknet.workstation) environment;
hyprlock = getExe config.programs.hyprlock.package;
in {
config = mkIf (environment == "hyprland") {
services.hypridle = {
enable = true;
package = inputs'.hypridle.packages.hypridle;
settings = {
general = {
lock_cmd = hyprlock;
ignore_dbus_inhibit = false;
};
listener = [
{
timout = 300;
on-timeout = hyprlock;
}
];
};
};
};
}

View file

@ -0,0 +1,79 @@
{
lib,
osConfig,
inputs',
...
}: let
inherit (osConfig.ooknet.appearance) colorscheme fonts;
inherit (colorscheme) palette;
inherit (osConfig.ooknet.workstation) environment;
inherit (lib) mkIf;
in {
config = mkIf (environment == "hyprland") {
ooknet.binds.lock = "hyprlock";
programs.hyprlock = {
enable = true;
package = inputs'.hyprlock.packages.hyprlock;
settings = {
enable = true;
general = {
disable_loading_bar = true;
hide_cursor = true;
no_fade_in = true;
};
backgrounds = [
{
monitor = "";
path = "";
color = "0xff${palette.base01}";
}
];
input-fields = [
{
size = {
width = 300;
height = 40;
};
position = {
x = 0;
y = 0;
};
outline_thickness = 2;
dots_spacing = 0.2;
fade_on_empty = false;
placeholder_text = "";
outer_color = "0xff${palette.base02}";
inner_color = "0xff${palette.base00}";
font_color = "0xff${palette.base05}";
}
];
labels = [
{
monitor = "";
text = " ";
position = {
x = 0;
y = 80;
};
color = "0xff${palette.base08}";
font_size = 30;
font_family = "${fonts.monospace.family}";
}
{
monitor = "";
text = "$TIME";
position = {
x = 0;
y = -80;
};
color = "0xff${palette.base0B}";
font_size = 20;
font_family = "${fonts.monospace.family}";
}
];
};
};
};
}

View file

@ -0,0 +1,21 @@
{
lib,
osConfig,
...
}: let
inherit (lib) mkIf;
inherit (osConfig.ooknet.workstation) environment;
wallpaperPath = osConfig.ooknet.appearance.wallpaper.path;
in {
config = mkIf (environment == "hyprland") {
services.hyprpaper = {
enable = true;
};
xdg.configFile."hypr/hyprpaper.conf".text = ''
preload = ${wallpaperPath}
wallpaper = , ${wallpaperPath}
splash = false
ipc = off
'';
};
}

View file

@ -0,0 +1,38 @@
{
osConfig,
lib,
...
}: let
inherit (osConfig.ooknet.appearance) colorscheme fonts;
inherit (colorscheme) palette;
inherit (osConfig.ooknet.workstation) environment;
inherit (lib) mkIf;
in {
config = mkIf (environment == "hyprland") {
services.mako = {
enable = true;
font = "${fonts.regular.family} 12";
padding = "10,10";
anchor = "top-right";
width = 300;
height = 100;
borderSize = 2;
defaultTimeout = 3000;
backgroundColor = "#${palette.base00}dd";
borderColor = "#${palette.base05}dd";
textColor = "#${palette.base05}dd";
extraConfig = ''
[app-name="system-notify"]
padding=3,3
width=100
height=100
[urgency=critical]
padding=3,3
width=100
height=100
anchor=top-center
border-color=#${palette.base08}dd
'';
};
};
}

View file

@ -0,0 +1,31 @@
{
lib,
osConfig,
pkgs,
...
}: let
inherit (lib) mkIf;
inherit (osConfig.ooknet.workstation) environment;
in {
config = mkIf (environment == "hyprland") {
systemd.user.services = {
polkit-pantheon-authentication-agent-1 = {
Unit.Description = "polkit-pantheon-authentication-agent-1";
Install = {
WantedBy = ["graphical-session.target"];
Wants = ["graphical-session.target"];
After = ["graphical-session.target"];
};
Service = {
Type = "simple";
ExecStart = "${pkgs.pantheon.pantheon-agent-polkit}/libexec/policykit-1-pantheon/io.elementary.desktop.agent-polkit";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
};
}

View file

@ -0,0 +1,82 @@
{
lib,
config,
osConfig,
pkgs,
...
}: let
inherit (lib) mkIf;
inherit (osConfig.ooknet.appearance) colorscheme fonts;
inherit (colorscheme) palette;
inherit (osConfig.ooknet.workstation) environment;
inherit (config.lib.formats.rasi) mkLiteral;
in {
config = mkIf (environment == "hyprland") {
programs.rofi = {
enable = true;
font = "${fonts.monospace.family}";
package = pkgs.rofi-wayland;
terminal = "${config.home.sessionVariables.TERMINAL}";
theme = {
"*" = {
background = mkLiteral "#${palette.base00}";
foreground = mkLiteral "#${palette.base05}";
selected = mkLiteral "#${palette.base0B}";
message = mkLiteral "#${palette.base0D}";
background-color = mkLiteral "@background";
border-color = mkLiteral "@foreground";
text-color = mkLiteral "@foreground";
font = mkLiteral "'${fonts.monospace.family} 14'";
};
"window" = {
width = mkLiteral "15%";
border = mkLiteral "2";
padding = mkLiteral "10";
children = mkLiteral "[message,listview,inputbar]";
};
"message" = {
children = mkLiteral "[textbox]";
};
"textbox" = {
text-color = mkLiteral "@message";
horizontal-align = mkLiteral "0.50";
};
"inputbar" = {
cursor = mkLiteral "pointer";
border = mkLiteral "2";
children = mkLiteral "[textbox-prompt-colon,entry]";
};
"entry" = {
cursor = mkLiteral "false";
};
"textbox-prompt-colon" = {
text-color = mkLiteral "@selected";
expand = mkLiteral "false";
margin = mkLiteral "0 0.3em 0em 0em";
str = mkLiteral "' '";
};
"listview" = {
scrollbar = mkLiteral "true";
fixed-height = mkLiteral "false";
dynamic = mkLiteral "true";
};
"element-text" = {
horizontal-align = mkLiteral "0.50";
};
"element-text selected" = {
text-color = mkLiteral "@selected";
};
};
};
};
}

View file

@ -0,0 +1,33 @@
{
lib,
pkgs,
osConfig,
...
}: let
inherit (lib) mkIf;
inherit (builtins) attrValues;
inherit (osConfig.ooknet.workstation) environment;
in {
config = mkIf (environment == "hyprland") {
home = {
packages = attrValues {
inherit
(pkgs)
grim
slurp
libnotify
wl-screenrec
wf-recorder
wl-clipboard
;
};
};
systemd.user.targets.tray = {
Unit = {
Description = "Home Manager System Tray";
Requires = ["graphical-session-pre.target"];
};
};
};
}

View file

@ -0,0 +1,162 @@
{
config,
lib,
pkgs,
osConfig,
...
}: let
inherit (osConfig.ooknet.appearance) colorscheme fonts;
inherit (colorscheme) palette;
inherit (osConfig.ooknet.hardware) monitors;
inherit (osConfig.ooknet.workstation) environment;
inherit (lib) mkIf head;
monitorWidth = (head monitors).width - 20;
in {
config = mkIf (environment == "hyprland") {
programs.waybar = {
enable = true;
systemd.enable = true;
package = pkgs.waybar;
settings.mainBar = {
layer = "top";
position = "top";
height = 30;
width = monitorWidth;
exclusive = true;
margin-top = 10;
margin-bottom = -12;
modules-left = ["clock" "battery" "hyprland/workspaces"];
modules-center = [];
modules-right = ["custom/hyprrecord" "tray"];
"hyprland/workspaces" = let
hyprctl = config.wayland.windowManager.hyprland.package + "/bin/hyprctl";
in {
on-click = "activate";
on-scroll-up = "${hyprctl} dispatch workspace m+1";
on-scroll-down = "${hyprctl} dispatch workspace m-1";
format = "{icon}";
active-only = false;
persistent-workspaces = {
"*" = 5;
};
format-icons = {
active = "";
default = "";
urgent = "";
};
all-outputs = false;
};
clock = {
format = "{:%I:%M %p}";
format-alt = "{:%Y-%m-%d}";
};
battery = {
states = {
good = 100;
warning = 35;
critical = 15;
};
bat = "BAT0";
interval = 10;
format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"];
format = "{icon} {capacity}%";
format-charging = "󱐋{icon} {capacity}%";
tooltip-format = "{timeTo} {power}W";
};
tray = {
icon-size = 21;
spacing = 5;
};
"custom/hyprrecord" = {
format = "{}";
interval = "once";
exec = "echo ";
tooltip = "false";
exec-if = "pgrep wl-screenrec";
on-click = "exec hyprrecord -a --waybar screen copysave video";
signal = 12;
};
};
style =
/*
css
*/
''
* {
font-family: "${fonts.monospace.family}";
font-size: 19px;
border: solid #${palette.base05};
}
window#waybar {
background-color: transparent;
margin: 10px;
}
#clock,
#battery,
#workspaces {
background-color: #${palette.base00};
padding-right: 10px;
}
#clock {
padding-left: 10px;
border: 2px solid #${palette.base05};
border-right: 0px;
border-top-left-radius: 10px;
}
#battery {
padding-left: 10px;
border-top: 2px solid #${palette.base05};
border-bottom: 2px solid #${palette.base05};
border-left: 0px;
}
#battery.good {
color: #${palette.base0B};
}
#battery.warning {
color: #${palette.base0A};
}
#battery.critical {
color: #${palette.base08};
}
#tray {
padding-right: 10px;
padding-left: 10px;
background-color: transparent;
border: 0;
}
#workspaces {
border: 2px solid #${palette.base05};
border-left: 0;
border-top-right-radius: 10px;
}
#workspace button,
#workspaces button.active,
#workspaces button.visible {
color: #${palette.base0B};
}
#workspaces button.urgent {
color: #${palette.base08};
}
#custom-hyprrecord {
color: #${palette.base08};
padding-right: 20px;
}
'';
};
};
}