chore: init

This commit is contained in:
Nick 2025-10-01 19:51:55 -05:00
commit 1b2c1ea359
891 changed files with 37053 additions and 0 deletions

View file

@ -0,0 +1,11 @@
let
importList =
let
content = builtins.readDir ./.;
dirContent = builtins.filter (n: content.${n} == "directory") (builtins.attrNames content);
in
map (name: ./. + "/${name}") dirContent;
in
{
imports = importList;
}

View file

@ -0,0 +1,51 @@
{
flake,
config,
...
}:
let
inherit (flake.config.aesthetics.themes)
currentTheme
palettes
fonts
;
inherit (flake.config.people) user0;
user = config.home.username;
themeLogic = if user == user0 then currentTheme else currentTheme;
el = palettes.${themeLogic}.colours;
makeColor = c: "#" + c;
in
{
global = {
font = "${fonts.name} ${builtins.toString fonts.sizes.popups}";
background = makeColor el.base01;
frame_color = makeColor el.base0E;
foreground = makeColor el.base05;
corner_radius = 10;
fade_in_duration = 1000;
frame = 10000;
frame_width = 1;
icon_corner_radius = 10;
monitor = 1;
offset = "20x20";
origin = "bottom-right";
progress_bar_corner_radius = 4;
timeout = 10;
transparecncy = true;
};
urgency_critical = {
frame_color = makeColor el.base09;
timeout = 0;
};
skip-rule = {
appname = "flameshot";
skip_display = true;
};
}

View file

@ -0,0 +1,15 @@
{
config,
flake,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
in
{
services.dunst = {
enable = true;
settings = settingsPath;
};
}

View file

@ -0,0 +1,57 @@
{
config,
flake,
pkgs,
...
}:
let
inherit (flake.config.aesthetics.themes) currentTheme palettes fonts;
inherit (flake.config.people) user0;
user = config.home.username;
themeLogic = if user == user0 then currentTheme else currentTheme;
el = palettes.${themeLogic}.colours;
in
{
programs.fuzzel = {
enable = true;
settings = {
main = {
prompt = "Summon: ";
show-actions = "yes";
dpi-aware = "no";
icon-theme = "Papirus-Dark";
width = 25;
font = "${fonts.name}:weight=bold:size=${toString fonts.sizes.popups}";
terminal = "${pkgs.ghostty}/bin/ghostty";
layer = "overlay";
fields = "name";
};
border = {
radius = 10;
width = 2;
};
colors = {
background = "${el.base00}dd";
text = "${el.base05}ff";
match = "${el.base0E}ff";
selection = "${el.base04}ff";
selection-text = "${el.base05}ff";
selection-match = "${el.base0E}ff";
border = "${el.base0E}ff";
prompt = "${el.base07}ff";
input = "${el.base05}ff";
placeholder = "${el.base04}ff";
counter = "${el.base04}ff";
};
dmenu = {
exit-immediately-if-empty = "yes";
};
};
};
}

View file

@ -0,0 +1,13 @@
{
services.gammastep = {
enable = true;
tray = true;
provider = "geoclue2";
temperature = {
day = 6500;
night = 3500;
};
dawnTime = "8:00-8:30";
duskTime = "20:30-21:00";
};
}

View file

@ -0,0 +1,12 @@
{
pkgs,
...
}:
{
services.network-manager-applet.enable = true;
home.packages = builtins.attrValues {
inherit (pkgs)
networkmanagerapplet
;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
nwg-look
;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
pavucontrol
;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs.kdePackages)
plasma-nm
;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs.kdePackages)
print-manager
;
};
}

View file

@ -0,0 +1,61 @@
{
config,
flake,
...
}:
let
inherit (flake.config.aesthetics.themes)
currentTheme
palettes
fonts
;
inherit (flake.config.people) user0;
user = config.home.username;
themeLogic = if user == user0 then currentTheme else currentTheme;
el = palettes.${themeLogic}.colours;
in
{
font = fonts.name;
font-size = fonts.sizes.popups;
indicator-idle-visible = true;
indicator-radius = 100;
indicator-thickness = 20;
show-failed-attempts = true;
bs-hl-color = el.base08;
color = el.base01;
key-hl-color = el.base0E;
caps-lock-bs-hl-color = el.base08;
caps-lock-key-hl-color = el.base0E;
inside-color = el.base01;
inside-clear-color = el.base01;
inside-caps-lock-color = el.base01;
inside-ver-color = el.base01;
inside-wrong-color = el.base01;
line-color = el.base01;
line-clear-color = el.base01;
line-caps-lock-color = el.base01;
line-ver-color = el.base01;
line-wrong-color = el.base01;
ring-color = el.base00;
ring-clear-color = el.base00;
ring-caps-lock-color = el.base00;
ring-ver-color = el.base00;
ring-wrong-color = el.base00;
separator-color = "00000000";
text-color = el.base05;
text-clear-color = el.base05;
text-caps-lock-color = el.base05;
text-ver-color = el.base05;
text-wrong-color = el.base05;
}

View file

@ -0,0 +1,15 @@
{
config,
flake,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
in
{
programs.swaylock = {
enable = true;
settings = settingsPath;
};
}

View file

@ -0,0 +1,7 @@
{
services.udiskie = {
enable = true;
automount = true;
tray = "always";
};
}

View file

@ -0,0 +1,18 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs.kdePackages)
kwallet-pam
# kwalletmanager
;
};
programs.gpg = {
enable = true;
};
}
# use this to make annoying shit go away:
# gpg --pinentry-mode loopback --full-generate-key

View file

@ -0,0 +1,214 @@
{ config, flake, ... }:
let
user = config.home.username;
inherit (flake.config.aesthetics.themes) windowManager;
isNiriEnabled = config.programs.niri.enable or false;
workspaceModule = if isNiriEnabled then "niri/workspaces" else "hyprland/workspaces";
in
{
mainBar = {
position = "bottom";
layer = "top";
height = 5;
margin-top = 0;
margin-bottom = windowManager.gaps;
margin-left = windowManager.gaps;
margin-right = windowManager.gaps;
modules-left = [
"custom/launcher"
workspaceModule
];
modules-center = [
"custom/weather"
];
modules-right = [
"tray"
"privacy"
"cpu"
"memory"
"disk"
"pulseaudio"
# "network"
"battery"
"clock"
];
clock = {
calendar = {
format = {
today = "<span color='#ff6699'><b><u>{}</u></b></span>";
};
};
format = " {:%H:%M}";
tooltip = true;
tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>";
format-alt = " {:%d/%m}";
};
}
// (
if isNiriEnabled then
{
"niri/workspaces" = {
format = "{icon}";
format-icons = {
"chat" = "";
"code" = "";
"browser" = "";
"media" = "";
"terminal" = "";
"active" = "";
"default" = "";
};
};
}
else
{
"hyprland/workspaces" = {
active-only = false;
disable-scroll = true;
format = "{icon}";
on-click = "activate";
format-icons = {
"1" = "";
"2" = "";
"3" = "";
"4" = "";
"5" = "";
"6" = "";
"7" = "";
"8" = "";
"9" = "";
"10" = "";
};
persistent-workspaces = {
"1" = [ ];
"2" = [ ];
"3" = [ ];
"4" = [ ];
"5" = [ ];
"6" = [ ];
"7" = [ ];
"8" = [ ];
"9" = [ ];
"10" = [ ];
};
};
}
)
// {
memory = {
format = " {}%";
format-alt = " {used} GiB"; # 
interval = 2;
};
cpu = {
format = " {usage}%";
format-alt = " {avg_frequency} GHz";
interval = 2;
};
disk = {
# path = "/";
format = "󰋊 {percentage_used}%";
interval = 60;
};
network = {
format-wifi = " {signalStrength}%";
format-ethernet = "󰀂 ";
tooltip-format = "Connected to {essid} {ifname} via {gwaddr}";
format-linked = "{ifname} (No IP)";
format-disconnected = "󰖪 ";
};
tray = {
icon-size = 12;
spacing = 8;
};
pulseaudio = {
format = "{icon} {volume}%";
tooltip = false;
format-muted = " Muted";
on-click = "pavucontrol";
on-scroll-up = "pactl set-sink-volume @DEFAULT_SINK@ +5%";
on-scroll-down = "pactl set-sink-volume @DEFAULT_SINK@ -5%";
scroll-step = 5;
format-icons = {
headphone = "";
hands-free = "";
headset = "";
phone = "";
portable = "";
car = "";
default = [
""
""
""
];
};
};
"custom/launcher" = {
format = "";
on-click = "fuzzel";
tooltip = false;
};
privacy = {
icon-spacing = 8;
icon-size = 12;
transition-duration = 250;
modules = {
screenshare = {
type = "screenshare";
tooltip = true;
tooltip-icon-size = 12;
};
audio-out = {
type = "audio-out";
tooltip = true;
tooltip-icon-size = 12;
};
audio-in = {
type = "audio-in";
tooltip = true;
tooltip-icon-size = 12;
};
};
};
"custom/weather" = {
exec = "/home/${user}/.config/scripts/get_weather.sh Winnipeg";
return-type = "json";
format = "{}";
tooltip = true;
interval = 3600;
};
battery = {
format = "{icon} {capacity}%";
format-alt = "{icon} {time}";
format-charging = " {capacity}%";
format-icons = [
""
""
""
""
""
];
format-plugged = " {capacity}%";
states = {
critical = 15;
warning = 30;
};
};
};
}
# https://unicodes.jessetane.com/

View file

@ -0,0 +1,123 @@
{
config,
flake,
...
}:
let
inherit (flake.config.aesthetics.themes)
currentTheme
palettes
fonts
windowManager
;
inherit (flake.config.people) user0;
user = config.home.username;
themeLogic = if user == user0 then currentTheme else currentTheme;
el = palettes.${themeLogic}.colours;
custom = {
font = fonts.name;
font_size = fonts.sizes.popups;
font_weight = "bold";
opacityBg = "0.90";
opacityBt = "1";
border = windowManager.borders;
rounding = windowManager.rounding;
text_color = el.base0E;
secondary_accent = el.base07;
tertiary_accent = el.base15;
button_color = el.base04;
background_1 = el.base01;
background_2 = el.base00;
background_3 = el.base04;
};
fontSizeMod = plus: builtins.toString (custom.font_size + plus);
in
''
* {
min-height: 34px;
border-radius: 0;
font-family: ${custom.font};
font-weight: ${custom.font_weight};
}
window#waybar {
background: #${custom.background_2};
color: #${custom.text_color};
border: ${builtins.toString custom.border}px solid;
border-radius: ${builtins.toString custom.rounding}px;
border-color: #${custom.text_color};
opacity: ${custom.opacityBg};
}
#workspaces {
font-size: ${fontSizeMod 6}px;
padding-left: 5px;
margin-bottom: 0px;
}
#workspaces button {
color: #${custom.button_color};
padding: 0px 5px 0px 5px;
opacity: ${custom.opacityBt};
}
#workspaces button.empty {
color: #${custom.background_3};
}
#workspaces button.active {
color: #${custom.text_color};
}
#tray, #pulseaudio, #privacy, #cpu, #memory, #disk, #clock {
font-size: ${builtins.toString custom.font_size}px;
color: #${custom.text_color};
padding-right: 10px;
}
#privacy {
}
#cpu {
}
#memory {
}
#disk {
}
#tray {
}
#pulseaudio {
}
#clock {
}
#battery {
font-size: ${builtins.toString custom.font_size}px;
color: #${custom.text_color};
padding-right: 10px;
}
#custom-launcher {
font-size: ${fontSizeMod 8}px;
color: #${custom.text_color};
font-weight: ${custom.font_weight};
padding-left: 10px;
padding-right: 10px;
}
#custom-weather {
font-size: ${fontSizeMod 2}px;
color: #${custom.text_color};
font-weight: ${custom.font_weight};
}
''

View file

@ -0,0 +1,19 @@
{
config,
flake,
pkgs,
...
}:
let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) { inherit config flake; };
stylePath = import (configPath + /style.nix) { inherit config flake; };
in
{
programs.waybar = {
enable = true;
package = flake.inputs.waybar.packages.${pkgs.system}.default;
settings = settingsPath;
style = stylePath;
};
}

View file

@ -0,0 +1,11 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
wl-clipboard
;
};
}

View file

@ -0,0 +1,25 @@
{
flake,
osConfig,
pkgs,
...
}:
let
inherit (flake.config.machines.devices) deimos;
hostname = osConfig.networking.hostName;
in
{
services.wpaperd = {
enable = true;
package = flake.inputs.wpaperd.packages.${pkgs.system}.wpaperd;
settings = {
"default" = {
path = "~/.config/wallpaper";
apply-shadow = true;
duration = "1m";
sorting = "random";
}
// (if hostname == deimos.name then { mode = "center"; } else { });
};
};
}