feat: added glance

This commit is contained in:
Nick 2025-05-24 02:45:00 -05:00
parent 93efd494ca
commit a0de2dba92
15 changed files with 268 additions and 64 deletions

View file

@ -0,0 +1,34 @@
{ instancesFunctions }:
let
inherit (instancesFunctions)
domain0
servicePath
sslPath
sopsPath
;
glanceLabel = "Glance";
glanceName = "glance";
glanceSubdomain = "dashboard";
in
{
label = glanceLabel;
name = glanceName;
email = {
address0 = "noreply@${domain0}";
};
sops = {
path0 = "${sopsPath}/${glanceName}";
};
subdomain = glanceSubdomain;
paths = {
path0 = "${servicePath}/${glanceLabel}";
};
ports = {
port0 = 3434;
};
ssl = {
cert = "${sslPath}/${glanceSubdomain}.${domain0}/fullchain.pem";
key = "${sslPath}/${glanceSubdomain}.${domain0}/key.pem";
};
}

View file

@ -71,6 +71,7 @@ in
theming
printManager
finamp
lingot
;
};
};

View file

@ -1,5 +1,5 @@
{
"Reddit" = {
"reddit" = {
definedAliases = [
"@re"
];
@ -8,7 +8,7 @@
{ template = "https://www.reddit.com/search/?q={searchTerms}"; }
];
};
"YouTube" = {
"youtube" = {
definedAliases = [
"@yo"
];

View file

@ -0,0 +1,12 @@
{
pkgs,
...
}:
{
home.packages = builtins.attrValues {
inherit (pkgs)
lingot
tonelib-gfx
;
};
}

View file

@ -21,17 +21,17 @@ let
"Z, exec, obsidian"
"H, exec, feishin"
"G, exec, scrcpy"
"L, exec, thunar"
"R, exec, thunar"
"S, exec, steam"
"R, exec, ghostty -e zellij a dotfiles"
"E, exec, ghostty -e y"
"N, exec, signal-desktop"
"T, exec, zeditor"
"B, exec, floorp"
"X, exec, freetube"
"Y, exec, freetube"
"V, exec, vesktop"
"M, exec, element-desktop"
"D, exec, ghostty"
"P, exec, bitwarden"
"W, exec, bitwarden"
# Workspaces
"1, workspace, 1"
"2, workspace, 2"
@ -39,55 +39,40 @@ let
"4, workspace, 4"
"5, workspace, 5"
# Windows
"Tab, killactive"
"X, killactive"
"F, togglefloating"
"Backspace, layoutmsg, togglesplit"
"Tab, fullscreen, 0"
# Window Focus
"C, movefocus, l"
"A, movefocus, u"
"E, movefocus, d"
"I, movefocus, r"
"F, splitratio, 0.33"
"O, splitratio, -0.33"
"Left, movefocus, l"
"Up, movefocus, u"
"Down, movefocus, d"
"Right, movefocus, r"
"bracketleft, splitratio, -0.33"
"bracketright, splitratio, 0.33"
# Audio
"Page_Up, exec, playerctl next"
"Page_Down, exec, playerctl previous"
"Home, exec, playerctl play-pause"
"Space, exec, fuzzel"
];
superShiftBinds = builtins.map (x: "SUPER SHIFT, " + x) [
# Super+shift binds
# Quick Action
"T, exec, ghostty"
"S, exec, flameshot gui"
"period, exec, emote"
"Tab, fullscreen, 0"
"Backspace, layoutmsg, togglesplit"
"P, pin, enable"
"F, togglefloating"
# "Print, exec, grim -g \"$(slurp)\""
# Utility
"End, exec, shutdown now"
"Insert, exec, systemctl reboot"
"Home, exec, swaylock"
];
superShiftBinds = builtins.map (x: "SUPER SHIFT, " + x) [
# Super+shift binds
"S, exec, flameshot gui"
"period, exec, emote"
# "Print, exec, grim -g \"$(slurp)\""
];
superCtrlBinds = builtins.map (x: "SUPER CTRL, " + x) [
# Super+shift binds
];
altBinds = builtins.map (x: "CTRL ALT, " + x) [
# Alt binds
"1, movetoworkspacesilent, 1"
"2, movetoworkspacesilent, 2"
"3, movetoworkspacesilent, 3"
"4, movetoworkspacesilent, 4"
"5, movetoworkspacesilent, 5"
# Window Move
"C, movewindow, l"
"A, movewindow, u"
"E, movewindow, d"
"I, movewindow, r"
];
shiftBinds = builtins.map (x: "SHIFT, " + x) [
@ -100,7 +85,17 @@ let
ctrlShiftBinds = builtins.map (x: "CTRL SHIFT, " + x) [
# Ctrl+shift binds
# "End, exec, shutdown now"
# Window
"1, movetoworkspacesilent, 1"
"2, movetoworkspacesilent, 2"
"3, movetoworkspacesilent, 3"
"4, movetoworkspacesilent, 4"
"5, movetoworkspacesilent, 5"
# Window Move
"Left, movewindow, l"
"Up, movewindow, u"
"Down, movewindow, d"
"Right, movewindow, r"
];
functionBinds = builtins.map (x: " , " + x) [

View file

@ -1,7 +1,7 @@
let
blueman = "(.blueman-manager-wrapped)";
calculator = "(org.gnome.Calculator)";
easyeffects = "(com.github.wwmm.easyeffects)";
pavucontrol = "(org.pulseaudio.pavucontrol)";
floorp = "(floorp)";
nomacs = "(org.nomacs.ImageLounge)";
mpv = "(mpv)";
@ -27,7 +27,6 @@ let
maxsizeWindows = [
"maxsize 720 400, class:^${blueman}$"
"maxsize 360 500, class:^${calculator}$"
"maxsize 720 400, class:^${easyeffects}$"
# "maxsize 720 400, class:^${scrcpy}$"
"maxsize 720 400, class:^${mpv}$"
"maxsize 720 400, class:^${vlc}$"
@ -40,13 +39,14 @@ let
"maxsize 1280 720, title:^${battle}$"
"minsize 1280 720, title:^${battle}$"
"maxsize 1280 720, title:^${upload}$"
"minsize 1280 720, class:^${pavucontrol}$"
"minsize 1280 720, title:^${upload}$"
];
floatWindows = builtins.map (x: "float, " + x) [
"class:^${blueman}$"
"class:^${calculator}$"
"class:^${easyeffects}$"
"class:^${pavucontrol}$"
"class:^${emote}$"
"class:^${mpv}$"
"class:^${vlc}$"
@ -95,7 +95,7 @@ let
centerWindows = builtins.map (x: "center, " + x) [
"class:^${blueman}$"
"class:^${calculator}$"
"class:^${easyeffects}$"
"class:^${pavucontrol}$"
"class:^${emote}$"
"class:^${mpv}$"
"class:^${vlc}$"

View file

@ -29,26 +29,29 @@ in
"Super+l".action = niri.spawn "slack";
"Super+h".action = niri.spawn "feishin";
"Super+g".action = niri.spawn "scrcpy";
"Super+k".action = niri.spawn "ghostty -e nu -e y";
"Super+e".action = niri.spawn "ghostty -e nu -e y";
"Super+s".action = niri.spawn "steam";
"Super+r".action = niri.spawn "ghostty -e zellij a dotfiles";
"Super+n".action = niri.spawn "signal-desktop";
"Super+t".action = niri.spawn "zeditor";
"Super+r".action = niri.spawn "thunar";
"Super+b".action = niri.spawn "floorp";
"Super+x".action = niri.spawn "freetube";
"Super+y".action = niri.spawn "freetube";
"Super+v".action = niri.spawn "vesktop";
"Super+m".action = niri.spawn "element-desktop";
"Super+d".action = niri.spawn "ghostty";
"Super+p".action = niri.spawn "bitwarden";
"Super+w".action = niri.spawn "bitwarden";
"Super+Space".action = niri.spawn "fuzzel";
"Super+Tab".action = niri.close-window;
"Super+u".action = niri.maximize-column;
"Super+comma".action = niri.focus-workspace-down;
"Super+period".action = niri.focus-workspace-up;
"Super+f".action = niri.swap-window-left;
"Super+o".action = niri.swap-window-right;
"Super+w".action = niri.switch-preset-column-width;
"Super+left".action = niri.move-column-left;
"Super+right".action = niri.move-column-right;
"Super+f".action = niri.fullscreen-window;
"Super+q".action = niri.switch-preset-column-width;
"Super+minus".action = niri.set-column-width "-10%";
"Super+plus".action = niri.set-column-width "+10%";
# "Ctrl+Alt+1".action = niri.move-window-to-workspace workspaceStrings.workspace0
# "Ctrl+Alt+2".action = niri.move-window-to-workspace workspaceStrings.workspace1
@ -68,15 +71,8 @@ in
"Super+3".action = niri.focus-window-or-workspace-down;
"Super+4".action = niri.focus-column-or-monitor-right;
"Super+Shift+t".action = niri.spawn "ghostty";
"Super+Shift+s".action = niri.spawn "flameshot gui";
"Super+Shift+period".action = niri.spawn "emote";
"Super+Shift+Tab".action = niri.fullscreen-window;
"Ctrl+Alt+c".action = niri.move-column-left;
"Ctrl+Alt+i".action = niri.move-column-right;
"Ctrl+Alt+f".action = niri.set-column-width "-10%";
"Ctrl+Alt+o".action = niri.set-column-width "+10%";
"XF86MonBrightnessUp".action = niri.spawn "brightnessctl -d ${deviceLogic "amdgpu_bl1" ""} s +10%";
"XF86MonBrightnessDown".action =

View file

@ -1,3 +1,3 @@
{
services.easyeffects.enable = true;
services.easyeffects.enable = false;
}

View file

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

View file

@ -104,7 +104,7 @@ in
format = "{icon} {volume}%";
tooltip = false;
format-muted = " Muted";
on-click = "easyeffects";
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;

View file

@ -10,6 +10,7 @@ in
mullvad
syncthing
ollama
glance
plasma
sddm
hypr

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,154 @@
{ config, flake, ... }:
let
inherit (flake.config.people) user0;
inherit (flake.config.services.instances) glance web;
inherit (flake.config.machines.devices) ceres;
service = glance;
in
{
services = {
glance = {
enable = true;
settings = {
server = {
# assets-path = "/home/${user0}/Files/Projects/dotfiles/modules/nixos/services/glance/assets";
port = service.ports.port0;
};
# auth = {
# secret-key = config.sops.secrets."${service.name}-key".path;
# users.${user0}.password = config.sops.secrets."${service.name}-${user0}-pass".path;
# };
branding = {
hide-footer = true;
# logo-url = /assets/logo.png;
# favicon-url = /assets/logo.png;
# app-name = "My Dashboard";
# app-icon-url = "/assets/app-icon.png";
# app-background-color = "#151519";
};
theme = {
background-color = "232 23 18";
contrast-multiplier = 1.2;
primary-color = "220 83 75";
positive-color = "105 48 72";
negative-color = "351 74 73";
};
pages = [
{
columns = [
{
size = "full";
widgets = [
{
type = "rss";
title = "Podcasts";
style = "detailed-list";
collapse-after = 6;
feeds = [
{
url = "https://sigmanutrition.libsyn.com/rss/";
title = "Sigma Nutrition Radio";
}
{
url = "https://wakingup.libsyn.com/rss";
title = "Making Sense with Sam Harris";
}
{
url = "https://feeds.simplecast.com/uNKL_XD_";
title = "Docs Who Lift";
}
];
}
];
}
{
size = "small";
widgets = [
{
type = "calendar";
title = "Calendar";
style = "vertical-cards";
}
{
type = "weather";
title = "Weather";
units = "metric";
hour-format = "12h";
location = "Winnipeg, Manitoba, Canada";
}
{
type = "clock";
hour-format = "12h";
timezones = [
{
timezone = "America/Winnipeg";
label = "Winnipeg, MB";
}
{
timezone = "Europe/Berlin";
label = "Berlin, DE";
}
{
timezone = "Asia/Kolkata";
label = "Kolkata, IN";
}
{
timezone = "Asia/Tokyo";
label = "Tokyo, JP";
}
];
}
];
}
];
name = "Dashboard";
}
];
};
};
# sops =
# let
# sopsPath = secret: {
# path = "${service.sops.path0}/${service.name}-${secret}";
# owner = service.name;
# mode = "600";
# };
# in
# {
# secrets = builtins.listToAttrs (
# map
# (secret: {
# name = "${service.name}-${secret}";
# value = sopsPath secret;
# })
# [
# "key"
# "${user0}-pass"
# ]
# );
# };
# fileSystems."/var/lib/${service.name}" = {
# device = service.paths.path0;
# fsType = "none";
# options = [
# "bind"
# ];
# depends = [
# ceres.storage0.mount
# ];
# };
# systemd.tmpfiles.rules = [
# "Z ${service.paths.path0} 755 ${service.name} ${service.name} -"
# "Z ${service.sops.path0} 755 ${service.name} ${service.name} -"
# ];
};
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
];
};
};
}

View file

@ -67,11 +67,11 @@ in
in
{
"/" = {
device = "/dev/disk/by-uuid/6328deb2-075a-471e-8396-459921a82832";
device = "/dev/disk/by-uuid/cca4aaac-9f98-42a5-8bcc-81c7048aad84";
fsType = "ext4";
};
"/boot" = {
device = "/dev/disk/by-uuid/6152-9BBC";
device = "/dev/disk/by-uuid/7199-F75B";
fsType = "vfat";
options = mars.boot.options;
};
@ -83,7 +83,7 @@ in
));
swapDevices = [
{ device = "/dev/disk/by-uuid/c8839bac-980b-4b24-9c36-504965acc964"; }
{ device = "/dev/disk/by-uuid/d9c787ac-9f10-41a4-8702-242922f44056"; }
];
systemd.tmpfiles.rules = [

View file

@ -23,7 +23,7 @@ in
3131 # Deskreen
1234 # Elm-land server
5037 # ADB Server
32929
39724
];
};
};