Compare commits

...

5 Commits

Author SHA1 Message Date
d4bcd95d52 add syncthing 2025-11-01 21:00:46 -05:00
f1e9914ea1 add syncthing 2025-11-01 20:33:29 -05:00
419d86342d add tofi 2025-11-01 19:13:08 -05:00
b5b9633c3c add tofi 2025-11-01 19:09:58 -05:00
93e1150a56 add tofi 2025-11-01 19:09:24 -05:00
22 changed files with 310 additions and 139 deletions

View File

@@ -20,6 +20,7 @@
sops.enable = true;
yubikey.enable = true;
tailscale.enable = true;
syncthing.enable = true;
};
# fix power buttons

View File

@@ -1,21 +1,73 @@
{ pkgs, config, lib, ... }:
let
cfg = config.system.syncthing;
in
{
options.system.syncthing = {
pkgs,
config,
lib,
...
}: let
service = "syncthing";
cfg = config.system.${service};
sec = config.sops.secrets;
in {
options.system.${service} = {
enable = lib.mkEnableOption "enables syncthing";
host = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = config.networking.hostName;
};
};
config = lib.mkIf cfg.enable {
services.syncthing = {
enable = true;
# user = "blake";
# group = "blake";
# dataDir = "/var/lib/syncthing";
user = "blake";
group = "blake";
guiAddress = "0.0.0.0:2222";
# openDefaultPorts = true;
openDefaultPorts = true;
dataDir = "/home/blake/.config/syncthing";
#extraFlags = ["--no-default-folder"];
overrideFolders = false;
overrideDevices = false;
#key = sec."${service}/${cfg.host}/key".path;
#cert = sec."${service}/${cfg.host}/cert".path;
settings = {
devices = {
"snowbelle" = {id = "6WQ6ATA-5AT4RUM-NW67PAL-N62CPNV-ALRFG3P-5BDRO22-HWFC2Q4-5S5BDA5";};
"lugia" = {id = "BKKSFPH-YEOVVAB-DTT7KK3-UDKAEJ2-PC6ECG7-Y76ZIVP-JRYMMXS-RTZYVQ3";};
"zygarde" = {id = "UYLTF52-VVKUR7F-JN33HQZ-RFNWGL3-JER52LA-GZD2LPJ-QIFEE7K-MNMZRQ5";};
"CEN-IT-07" = {id = "DPYKA4Z-3PX7JB2-FBEOXXX-SC7TLT2-QC5P2IR-SXOPJGX-QO3DMII-5B7UCA4";};
};
folders = {
"holocron" = {
path = "/home/blake/holocron";
devices = ["lugia" "zygarde" "CEN-IT-07"];
id = "5voxg-c3he2";
versioning = {
type = "staggered";
fsPath = "/home/blake/holocron/.stversions";
params = {
cleanInterval = "3600";
maxAge = "0";
};
};
};
};
options = {
urAccepted = -1;
};
};
};
sops.secrets = {
"${service}/${cfg.host}/key" = {
owner = "blake";
group = "blake";
};
"${service}/${cfg.host}/cert" = {
owner = "blake";
group = "blake";
};
};
};
}

View File

@@ -0,0 +1,21 @@
{ pkgs, config, lib, ... }:
let
cfg = config.system.syncthing;
in
{
options.system.syncthing = {
enable = lib.mkEnableOption "enables syncthing";
};
config = lib.mkIf cfg.enable {
services.syncthing = {
enable = true;
# user = "blake";
# group = "blake";
# dataDir = "/var/lib/syncthing";
guiAddress = "0.0.0.0:2222";
# openDefaultPorts = true;
};
};
}

View File

@@ -12,6 +12,9 @@ syncthing:
snowbelle:
key: ENC[AES256_GCM,data:MrAc4RXi6h4WOboZgBRjggPNGUrQwM1Vu5N5aPYBxeBZPi2ut8OApWcA9apWzYZNQTFF5QCtCpG9W+1CLJRG701PRK1Wf01r5SDI8aIXkgc2MjXuzS/y/WIqWoPK1nmtjxTYqaDR68II2tc/P7hgtf2EwYPV2JP6v6cCihADOKvXW1pBxi9kMjZGcbY54IyUrOdNauDvaZRgCSP7xtg8aWf1FlmJbiQgMW2lK/f+8rc/3OGS+ieFt35h29Khl4rhuYGB6rgTwvDaWa9g60rPzVcg6tKw+Unef99pA+CQnhVJJIejKlC07pCdqdjCUc+w0oQ69cVoucWeHqlq3xA7IvYIGi9K+OFCLmsoqjMe/wUSC/r2s/nnqbXsgVx9j8j0,iv:2FoZwwzKUky02Z34KRVP/jPhOMXnLZh841+4lybsbCY=,tag:ZL5qh3OcFjiWgqtmTCUFkw==,type:str]
cert: ENC[AES256_GCM,data:tvJX88ounzIzKmKcvEe0UtHrq51DMAIHGVZE2StqfNkn2QP+Er/geEh0wwmP9Q8+XBBjDT6oSAlWLjq6Tc1yYWSKju6Ig8GEJNDHL2UMVniBFzroSlO9hqZzbbNe1896WiwhhypvBoves7STTE7tJ2+Hzyss1BCYjcI+evGliJslq2nqxroMxIwBXfuDtxcTAeJ+SiKonY7W29NA05P1zYm6o6Td09VUS0cYWx2VUoP/8PMpeWLNciaHz8TjUeZ2Qob3pcNielu/VDqbunLvbFapqdV0hkl8gxgho+MmkC3+DXp/JDnG+vRm603wxqDECh6CNYc0CEXvM0/8gSXt6AkjATv6tBV98VeLknZkqVjBahtxrZuwquMuQbh1jD53RgsvnwB39FyFHZw29DGcUD0A7hIGnqSYVc2TXW+sgRxzXVFYsVrt1sWrYa2DpZT5zaFbps0dd194/j0SHOdf3p/4HF0GncWfTWLT89F/oAyJLio4X7yjES/DljgvmsrX0LdHnAYYAKDCWhZml3wSHBJ7Uvj1KiH2asxXkdiTPf8wulmwT+01hhBoX3QCkVYkdJpDbVddjLkwpLNyJATHctyuqzOdEMR4w5usTv9vKcgkMtbmxfWajb4lhjCpuaavkDUoI5h6eB8veXbZqAuX24bCvsLBWOVkg4qt1GGRqHx7+lfFanzMGyYYC/ufAXWD6eOOVsCjHJbHJoI16zq0HkfNpr30w+gO8hOyKgBP64anElzT3NB1sDi2GWxhSUKTDZ3rLsagPhZb3l3/u5SMf6lLWsY6IyFgPcVgY1snSOtd+PO9z9ipfyQZn4kKCtkNPPof8T58Qi7CP4KmVvbJsF67BH26SFclQLaJv5RO7e936vNwLrVhbyaclM0Vz6Y8wJvG4vW1Z4qPt6kP80NEATdrfwAr9nvZkb5rHqRWdxqIWSD5as+HPFzM/Mv0sBZ+B+CnsSv1btdB/iLacd032PGKXfZLxqGGOL1HIjM+QjSjaBTqrYcMke3GvnVfIujfdtcn9tOqGK+QYPS1CTYxWznmHloL2/WYwBY=,iv:qlIfrPxz7NvjkIXSkumfKvN0O1qq1S0T5j+37L8aReU=,tag:Qg8CYcDY/MaLWwNY566wBQ==,type:str]
yveltal:
key: ENC[AES256_GCM,data:28Y2zCvp,iv:tIYGFmQrvAbMnX3OxwtellQAmHQCD5NctpkP6xXJkgA=,tag:bM1tNmP9aoffi4VCaH5RXw==,type:str]
cert: ENC[AES256_GCM,data:LAa1z4Ab,iv:7Rbr+JmcpefGrLwJdyfhOmDrvfIsVoyFpyrSGgHBlGw=,tag:k66OKfEeBBTSTm+b7qJo5g==,type:str]
#ENC[AES256_GCM,data:A0ITyGOGMIoyVOcn5JOi1RAtqUM=,iv:+wWpmFbeLiX/Ae53pj0QmnYY3MEzOMib4cqbePUKtGI=,tag:JHXvrN4bOH+oD3Q70pUuew==,type:comment]
pia_auth: ENC[AES256_GCM,data:rwAu4f5XVS4v4FCLj2zXAegIZeRPLIzUVv6TCrdfg9RGSDJYHgVAX0aFXCBQsDQju9RDycXmc9Id8IuyYN8=,iv:kEA4ADQyUI+zlQoZOKi81dw5BLE1oesqhVf6bfiLgB4=,tag:VHT2uPNW27F3KRM7ZhWdCw==,type:str]
#ENC[AES256_GCM,data:mbIgMJBhL8nWJzl8q2dFL8XtO1Xa1Q==,iv:caYHYp1boK9wRgCcQe40HTWT/HxAIvYe+HyaruI53Vc=,tag:S6wowhAHObEcs7z8FimZ1g==,type:comment]
@@ -54,7 +57,7 @@ sops:
U0tmdFBuZnJES3piOTZNV0VKQmQ0eVUKCWRQ/flLzmpC64WyLoipklZBmrkpYiUg
PRu+itNolpPTHm96pe+P93g2iP0wgekG0cX21wkiU2xaLF3dY2FEIA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-24T02:40:54Z"
mac: ENC[AES256_GCM,data:1x21LVoE1T/0+cKPiTpfsExWFzCpTQN3BTL2I5LmCX1qlH6s/2zW7LxVrqnVFYcoM+MNjJ/2e0Srp13HDCwxpnjuOYYsEL6fpaZJVOta9IFQYZc5UyZ8fgblt8+F3e6o4fu4ZrweqtFanAknQ0yqFXg7yEwAm+yoRRJOnSc7LI4=,iv:/vZ6DZ7qWqifuZaIFF454oNb4KO7s5AZ4O2hez3aJcA=,tag:WVtfBO6wpKEcCe5VhY2CRw==,type:str]
lastmodified: "2025-11-02T01:48:56Z"
mac: ENC[AES256_GCM,data:FsXxn2qXhaKntkeg1J8we43U3Fj1/5HFaVndZP+i57t9UR9ZpRH1irYZ0XHozWSmqc3p9Cjjb/ZGa2nu1b7thwbOiWav2RpeTGnnec0aYqfg5bP4DGmJSoZayXMHCT9qOzbxjc68nLSjstesNw0fSy8Cm2bgkFnCM8rg9mlps0o=,iv:khulkfwYvK7vl8EevC7g1iS1Di6JR+MbNqyV5CN21+o=,tag:VFz7qfsfpUo9XOAwZWYGEA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0

View File

@@ -1,8 +1,20 @@
{
pkgs,
lib,
config,
...
}: {
}: let
program = "<placeholder>";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
programs.${program} = {
enable = true;
};
};
}

View File

@@ -6,11 +6,11 @@
}: {
imports = [
./librewolf
./syncthing
./kitty
./waybar
./hypr
./tofi
./nvf
./lf
./zsh

View File

@@ -0,0 +1,15 @@
{
pkgs,
lib,
config,
...
}: let
program = "dunst";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
config = lib.mkIf cfg.enable {
programs.${program} = {
};
};
}

View File

@@ -4,20 +4,16 @@
lib,
inputs,
...
}:
let
}: let
program = "git";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# configure git
programs.${program} = {
enable = true;

View File

@@ -3,19 +3,16 @@
lib,
config,
...
}:
let
}: let
program = "gpg";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
programs.${program} = {
enable = true;
};

View File

@@ -3,20 +3,16 @@
lib,
config,
...
}:
let
}: let
program = "hypr";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
nwg-displays
posy-cursors
@@ -221,8 +217,8 @@ in {
services.hyprpaper = {
enable = true;
settings = {
preload = [ "~/.nix/users/blake/assets/wallpapers/antartica.png" ];
wallpaper = [ ",~/.nix/users/blake/assets/wallpapers/antartica.png" ];
preload = ["~/.nix/users/blake/assets/wallpapers/antartica.png"];
wallpaper = [",~/.nix/users/blake/assets/wallpapers/antartica.png"];
ipc = "off";
splash = false;
};
@@ -306,8 +302,7 @@ in {
inner_color = "$surface0";
font_color = "$text";
fade_on_empty = false;
placeholder_text =
"# <span foreground=\"##$textAlpha\"><i>󰌾 Logged in as </i><span foreground=\"##$accentAlpha\">$USER</span></span>";
placeholder_text = "# <span foreground=\"##$textAlpha\"><i>󰌾 Logged in as </i><span foreground=\"##$accentAlpha\">$USER</span></span>";
hide_input = false;
check_color = "rgb(0047ab)";
fail_color = "rgb(ff0000)";
@@ -322,43 +317,42 @@ in {
};
};
# idle daemon
services.hypridle = {
enable = true;
settings = {
# --- general settings ---
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid multiple instances
before_sleep_cmd = "loginctl lock-session"; # lock before suspend
after_sleep_cmd = "hyprctl dispatch dpms on"; # wake display properly
lock_cmd = "pidof hyprlock || hyprlock"; # avoid multiple instances
before_sleep_cmd = "loginctl lock-session"; # lock before suspend
after_sleep_cmd = "hyprctl dispatch dpms on"; # wake display properly
};
# --- dim screen ---
listener = [
{
timeout = 150; # 2.5 min
on-timeout = "brightnessctl -s set 1"; # dim monitor (avoid 0 on OLED)
on-resume = "brightnessctl -r"; # restore brightness
timeout = 150; # 2.5 min
on-timeout = "brightnessctl -s set 1"; # dim monitor (avoid 0 on OLED)
on-resume = "brightnessctl -r"; # restore brightness
}
# --- blank screen ---
{
timeout = 330; # 5.5 min
on-timeout = "hyprctl dispatch dpms off"; # turn off screen
on-resume = "hyprctl dispatch dpms on"; # restore screen
timeout = 330; # 5.5 min
on-timeout = "hyprctl dispatch dpms off"; # turn off screen
on-resume = "hyprctl dispatch dpms on"; # restore screen
}
# --- lock screen ---
{
timeout = 900; # 15 min
on-timeout = "loginctl lock-session"; # lock screen
timeout = 900; # 15 min
on-timeout = "loginctl lock-session"; # lock screen
}
# --- suspend timeout ---
{
timeout = 1800; # 30 min
on-timeout = "systemctl suspend"; # suspend computer
timeout = 1800; # 30 min
on-timeout = "systemctl suspend"; # suspend computer
}
# --- keyboard backlight (optional) ---

View File

@@ -3,19 +3,17 @@
lib,
config,
...
}:
let
}: let
program = "lf";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# just using the normal lfrc
# just using the normal lfrc
programs.${program} = {
enable = false;
};

View File

@@ -3,13 +3,11 @@
lib,
config,
...
}:
let
}: let
program = "librewolf";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};

View File

@@ -4,14 +4,11 @@
lib,
inputs,
...
}:
let
}: let
program = "nvf";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
@@ -21,8 +18,6 @@ in {
];
config = lib.mkIf cfg.enable {
programs.${program} = {
enable = true;
settings = {
@@ -44,13 +39,13 @@ in {
# visual line movement (insert mode)
{
key = "<Up>";
mode = [ "i" ];
mode = ["i"];
action = "<C-o>gk";
desc = "Visual Line Up (Insert)";
}
{
key = "<Down>";
mode = [ "i" ];
mode = ["i"];
action = "<C-o>gj";
desc = "Visual Line Down (Insert)";
}
@@ -82,7 +77,7 @@ in {
{
key = "gd";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.lsp.buf.definition()<CR>";
desc = "Go to definition";
@@ -90,7 +85,7 @@ in {
# Hover info
{
key = "K";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.lsp.buf.hover()<CR>";
desc = "Hover info";
@@ -98,7 +93,7 @@ in {
# Format buffer (Alejandra for Nix)
{
key = "<leader>F";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.lsp.buf.format({ async = true })<CR>";
desc = "Format buffer";
@@ -106,7 +101,7 @@ in {
# Code actions / quickfix
{
key = "<leader>a";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.lsp.buf.code_action()<CR>";
desc = "Code action";
@@ -114,7 +109,7 @@ in {
# Rename symbol
{
key = "<leader>r";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.lsp.buf.rename()<CR>";
desc = "Rename symbol";
@@ -122,21 +117,21 @@ in {
# Diagnostics
{
key = "<leader>e";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.diagnostic.open_float()<CR>";
desc = "Show diagnostic";
}
{
key = "[d";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_prev()<CR>";
desc = "Previous diagnostic";
}
{
key = "]d";
mode = [ "n" ];
mode = ["n"];
silent = true;
action = "<cmd>lua vim.diagnostic.goto_next()<CR>";
desc = "Next diagnostic";
@@ -193,7 +188,6 @@ in {
markdown.enable = true;
rust.enable = true;
lua.enable = true;
};
};
};

View File

@@ -3,13 +3,11 @@
lib,
config,
...
}:
let
}: let
program = "ssh";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
@@ -39,7 +37,6 @@ in {
#home.file.".ssh/id_snowbelle".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle;
#home.file.".ssh/id_snowbelle.pub".source = config.lib.file.mkOutOfStoreSymlink /home/blake/.nix/.keyring/ssh/id_snowbelle.pub;
# manage secrets with sops
sops.secrets = {
"id_snowbelle" = {

View File

@@ -4,21 +4,16 @@
lib,
inputs,
...
}:
let
}: let
program = "stylix";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
imports = [inputs.stylix.homeManagerModules.default];
};
}

View File

@@ -0,0 +1,67 @@
{
pkgs,
lib,
config,
...
}: let
program = "syncthing";
cfg = config.dots.${program};
sec = config.sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
host = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
};
};
config = lib.mkIf cfg.enable {
services.${program} = {
enable = true;
#dataDir = "/var/lib/syncthing";
guiAddress = "127.0.0.1:2222";
#openDefaultPorts = true;
overrideDevices = false;
overrideFolders = false;
extraOptions = ["--no-default-folder"];
#key = sec."${program}/${cfg.host}/key".path;
#cert = sec."${program}/${cfg.host}/cert".path;
settings = {
devices = {
"snowbelle" = {id = "6WQ6ATA-5AT4RUM-NW67PAL-N62CPNV-ALRFG3P-5BDRO22-HWFC2Q4-5S5BDA5";};
"lugia" = {id = "BKKSFPH-YEOVVAB-DTT7KK3-UDKAEJ2-PC6ECG7-Y76ZIVP-JRYMMXS-RTZYVQ3";};
"zygarde" = {id = "UYLTF52-VVKUR7F-JN33HQZ-RFNWGL3-JER52LA-GZD2LPJ-QIFEE7K-MNMZRQ5";};
"CEN-IT-07" = {id = "DPYKA4Z-3PX7JB2-FBEOXXX-SC7TLT2-QC5P2IR-SXOPJGX-QO3DMII-5B7UCA4";};
};
folders = {
"holocron" = {
path = "/home/blake/holocron";
devices = ["lugia" "zygarde" "CEN-IT-07" "snowbelle"];
id = "5voxg-c3he2";
versioning = {
type = "staggered";
fsPath = "/home/blake/holocron/.stversions";
params = {
cleanInterval = "3600";
maxAge = "0";
};
};
};
};
options = {
urAccepted = -1;
};
};
};
sops.secrets = {
"${program}/${cfg.host}/key" = {};
"${program}/${cfg.host}/cert" = {};
};
};
}

View File

@@ -0,0 +1,40 @@
{
pkgs,
lib,
config,
...
}: let
program = "tofi";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
programs.${program} = {
enable = true;
settings = {
anchor = "top";
width = "100%";
height = 25;
horizontal = true;
font-size = 12;
prompt-text = " select: ";
outline-width = 0;
border-width = 0;
corner-radius = 9;
background-color = "#2f1730";
selection-color = "#ffffff";
text-color = "#888888";
min-input-width = 120;
result-spacing = 15;
padding-top = 0;
padding-bottom = 0;
padding-left = 0;
padding-right = 0;
};
};
};
}

View File

@@ -3,20 +3,16 @@
lib,
config,
...
}:
let
}: let
program = "waybar";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# just using the normal lfrc
programs.${program} = {
enable = true;
@@ -29,8 +25,8 @@ in {
height = 25;
margin-top = 0;
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-left = ["hyprland/workspaces"];
modules-center = ["hyprland/window"];
modules-right = [
"tray"
"temperature"
@@ -92,12 +88,12 @@ in {
backlight = {
device = "intel_backlight";
format = "{icon} {percent}%";
"format-icons" = [ "" "" "" "" ];
"format-icons" = ["" "" "" ""];
interval = 60;
};
temperature = {
"hwmon-path" = [ "/sys/class/hwmon/hwmon3/temp1_input" ];
"hwmon-path" = ["/sys/class/hwmon/hwmon3/temp1_input"];
"critical-threshold" = 70;
format = "";
"format-critical" = " {temperatureC}°C";
@@ -114,7 +110,7 @@ in {
};
format = "{icon} {capacity}%";
"format-charging" = " {capacity}%";
"format-icons" = [ "" "" "" "" "" ];
"format-icons" = ["" "" "" "" ""];
interval = 30;
};
@@ -122,10 +118,8 @@ in {
"format-wifi" = "";
"format-ethernet" = "󰈀";
"format-disconnected" = "󰖪";
"tooltip-format-wifi" =
"{ifname} / {essid}\n\n {ipaddr}\n\n 󰘊 {signalStrength}% / 󰥛 {frequency}\n\n 󰕒 {bandwidthUpBits} / 󰇚 {bandwidthDownBits}";
"tooltip-format-ethernet" =
"{ifname} / {gwaddr}\n\n {ipaddr}\n\n 󰕒 {bandwidthUpBits} / 󰇚 {bandwidthDownBits}";
"tooltip-format-wifi" = "{ifname} / {essid}\n\n {ipaddr}\n\n 󰘊 {signalStrength}% / 󰥛 {frequency}\n\n 󰕒 {bandwidthUpBits} / 󰇚 {bandwidthDownBits}";
"tooltip-format-ethernet" = "{ifname} / {gwaddr}\n\n {ipaddr}\n\n 󰕒 {bandwidthUpBits} / 󰇚 {bandwidthDownBits}";
"tooltip-format-disconnected" = "Disconnected";
interval = 5;
"on-click" = "kitty nmtui";
@@ -147,17 +141,12 @@ in {
"format-connected" = "󰂯 {device_alias}";
"format-connected-battery" = "󰥉 {device_alias} ({device_battery_percentage}%)";
"tooltip-format-off" = "Controller Powered Off";
"tooltip-format" =
"{controller_alias}\t{controller_address}\n\n{num_connections} connected";
"tooltip-format-connected" =
"{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
"tooltip-format-enumerate-connected" =
"{device_alias}\t{device_address}";
"tooltip-format-enumerate-connected-battery" =
"{device_alias}\t{device_address}\t{device_battery_percentage}%";
"tooltip-format" = "{controller_alias}\t{controller_address}\n\n{num_connections} connected";
"tooltip-format-connected" = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}";
"tooltip-format-enumerate-connected" = "{device_alias}\t{device_address}";
"tooltip-format-enumerate-connected-battery" = "{device_alias}\t{device_address}\t{device_battery_percentage}%";
"on-click" = "kitty bluetuith --no-warning";
"on-click-right" =
"if bluetoothctl show|grep -q 'Powered: yes';then bluetoothctl power off;else bluetoothctl power on;fi";
"on-click-right" = "if bluetoothctl show|grep -q 'Powered: yes';then bluetoothctl power off;else bluetoothctl power on;fi";
};
idle_inhibitor = {

View File

@@ -3,47 +3,49 @@
lib,
config,
...
}:
let
}: let
program = "xdg";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [xdg-ninja];
xdg = if pkgs.system == "x86_64-darwin" then {} else {
enable = true;
configHome = "/home/blake/.config";
cacheHome = "/home/blake/.cache";
dataHome = "/home/blake/.local/share";
stateHome = "/home/blake/.local/state";
userDirs = {
xdg =
if pkgs.system == "x86_64-darwin"
then {}
else {
enable = true;
# writes ~/.config/user-dirs.dirs
desktop = "/home/blake/desktop";
download = "/home/blake/downloads";
documents = "/home/blake/documents";
pictures = "/home/blake/pictures";
videos = "/home/blake/videos";
music = "/home/blake/music";
publicShare = "/home/blake/public";
templates = "/home/blake/templates";
configHome = "/home/blake/.config";
cacheHome = "/home/blake/.cache";
dataHome = "/home/blake/.local/share";
stateHome = "/home/blake/.local/state";
userDirs = {
enable = true;
# writes ~/.config/user-dirs.dirs
desktop = "/home/blake/desktop";
download = "/home/blake/downloads";
documents = "/home/blake/documents";
pictures = "/home/blake/pictures";
videos = "/home/blake/videos";
music = "/home/blake/music";
publicShare = "/home/blake/public";
templates = "/home/blake/templates";
};
};
};
# misc env variables to get things out of ~ (<3 xdg-ninja)
home.sessionVariables = if pkgs.system == "x86_64-darwin" then {} else {
GOPATH="$XDG_DATA_HOME/go";
_JAVA_OPTIONS=''-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java'';
};
home.sessionVariables =
if pkgs.system == "x86_64-darwin"
then {}
else {
GOPATH = "$XDG_DATA_HOME/go";
_JAVA_OPTIONS = ''-Djava.util.prefs.userRoot="$XDG_CONFIG_HOME"/java'';
};
};
}

View File

@@ -3,19 +3,16 @@
lib,
config,
...
}:
let
}: let
program = "zsh";
cfg = config.dots.${program};
#sec = sops.secrets;
in {
options.dots.${program} = {
enable = lib.mkEnableOption "enables ${program}";
};
config = lib.mkIf cfg.enable {
# export some defaults
home.sessionVariables = {
EDITOR = "nvim";

View File

@@ -15,8 +15,11 @@
lf.enable = true;
kitty.enable = true;
librewolf.enable = true;
#syncthing.enable = true;
#syncthing.host = "yveltal";
waybar.enable = true;
hypr.enable = true;
tofi.enable = true;
nvf.enable = true;
zsh.enable = true;
ssh.enable = true;

View File

@@ -21,7 +21,7 @@ sops:
U0tmdFBuZnJES3piOTZNV0VKQmQ0eVUKCWRQ/flLzmpC64WyLoipklZBmrkpYiUg
PRu+itNolpPTHm96pe+P93g2iP0wgekG0cX21wkiU2xaLF3dY2FEIA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-17T07:41:50Z"
mac: ENC[AES256_GCM,data:WHuD9FaBmAGWpCaL3LxE55Fb2BHXyGwrk7N1aKwL5oIwQYbJX+3VdhW3jkMvWqDGNzaPE0/eVmpqQgEujOaY3cj0tQDLmmJ8SR5MAn5IytVJiW/ppgqL+5Nyko9kxjtyMfHFmPNQj6ehRA/D5NS3cvqvCrV6ENDdIwI/LcuGP3A=,iv:WZo3bt0LoK/U6dx9e68+JprhrDT0+dsceDt5dcJhI5A=,tag:PJRS3aNCjsTgvDJtr0gj9A==,type:str]
lastmodified: "2025-11-02T01:48:31Z"
mac: ENC[AES256_GCM,data:PqzsUJ/L0tc7iu6KrHz/bu/n+IM3tPl1vgJr4D2reCjHBHvIwpmgR64TeYn5OA71DeqoFjnYnf6PyKH+Ambf0uTuYCcGEesvqd9oQHMZGK2Bea9K/kJxeBbHxc3MEtJ4BD8pbFs1jK7KAGKfwRaEi/E9v2gGU0Mpp7PymJDtXBE=,iv:+kFswnPGRGmNVlyXtyfT2flGM+c4YySg9z7rzw5QZFo=,tag:rE+3IGwe24vztQvUB0uZLA==,type:str]
unencrypted_suffix: _unencrypted
version: 3.11.0