mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-06-15 09:35:12 -05:00
feat: added glance
This commit is contained in:
parent
93efd494ca
commit
a0de2dba92
15 changed files with 268 additions and 64 deletions
34
modules/config/instances/config/glance.nix
Normal file
34
modules/config/instances/config/glance.nix
Normal 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";
|
||||
};
|
||||
}
|
|
@ -71,6 +71,7 @@ in
|
|||
theming
|
||||
printManager
|
||||
finamp
|
||||
lingot
|
||||
;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"Reddit" = {
|
||||
"reddit" = {
|
||||
definedAliases = [
|
||||
"@re"
|
||||
];
|
||||
|
@ -8,7 +8,7 @@
|
|||
{ template = "https://www.reddit.com/search/?q={searchTerms}"; }
|
||||
];
|
||||
};
|
||||
"YouTube" = {
|
||||
"youtube" = {
|
||||
definedAliases = [
|
||||
"@yo"
|
||||
];
|
||||
|
|
12
modules/home/gui/apps/tools/lingot/default.nix
Normal file
12
modules/home/gui/apps/tools/lingot/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
lingot
|
||||
tonelib-gfx
|
||||
;
|
||||
};
|
||||
}
|
|
@ -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) [
|
||||
|
|
|
@ -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}$"
|
||||
|
|
|
@ -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 =
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
{
|
||||
services.easyeffects.enable = true;
|
||||
services.easyeffects.enable = false;
|
||||
}
|
||||
|
|
11
modules/home/gui/desktop/wayland/pavucontrol/default.nix
Normal file
11
modules/home/gui/desktop/wayland/pavucontrol/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
pavucontrol
|
||||
;
|
||||
};
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -10,6 +10,7 @@ in
|
|||
mullvad
|
||||
syncthing
|
||||
ollama
|
||||
glance
|
||||
plasma
|
||||
sddm
|
||||
hypr
|
||||
|
|
BIN
modules/nixos/services/glance/assets/logo.png
Executable file
BIN
modules/nixos/services/glance/assets/logo.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
154
modules/nixos/services/glance/default.nix
Normal file
154
modules/nixos/services/glance/default.nix
Normal 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
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -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 = [
|
||||
|
|
|
@ -23,7 +23,7 @@ in
|
|||
3131 # Deskreen
|
||||
1234 # Elm-land server
|
||||
5037 # ADB Server
|
||||
32929
|
||||
39724
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue