major refactor and reorg

This commit is contained in:
Matt Nish-Lapidus 2025-02-05 00:50:55 -05:00
parent 0a9342ea3e
commit 332b345753
11 changed files with 290 additions and 78 deletions

24
flake.lock generated
View file

@ -135,11 +135,11 @@
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1738686104,
"narHash": "sha256-PfG/bm33axdRPsi3nMB5ioOvq1xdJpdw+iptZVJVmE4=",
"lastModified": 1738721195,
"narHash": "sha256-fg7RyZh7lIXIemVIXNWqoBAXb2Ro5h6P9HJWDMuYi4U=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "52f13caa3c3570bc59582578593b8fafd40f8aaa",
"rev": "9af406ea66edc730a2c64cf82b74a03513b94f5e",
"type": "github"
},
"original": {
@ -508,11 +508,11 @@
]
},
"locked": {
"lastModified": 1738667255,
"narHash": "sha256-sMMQb9NydZqQ/MvvtPp+Ny0W9P0Jk0moU7SrTBlO5Vo=",
"lastModified": 1738709900,
"narHash": "sha256-8Bo5xFlCH5q72ExvAnH7TzStMlLZldKOSLMClRSfmTc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "7abcf59a365430b36f84eaa452a466b11e469e33",
"rev": "f2d32e46fac9d51da6912948ae1156044c71774b",
"type": "github"
},
"original": {
@ -1078,11 +1078,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1738546358,
"narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=",
"lastModified": 1738680400,
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c6e957d81b96751a3d5967a0fd73694f303cc914",
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
"type": "github"
},
"original": {
@ -1110,11 +1110,11 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1738546358,
"narHash": "sha256-nLivjIygCiqLp5QcL7l56Tca/elVqM9FG1hGd9ZSsrg=",
"lastModified": 1738680400,
"narHash": "sha256-ooLh+XW8jfa+91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c6e957d81b96751a3d5967a0fd73694f303cc914",
"rev": "799ba5bffed04ced7067a91798353d360788b30d",
"type": "github"
},
"original": {

View file

@ -8,6 +8,11 @@
++ [ inputs.emacs-overlay.overlays.default ];
};
imports = with nix-config.homeModules; [
mako
mpv
];
home = {
packages = lib.mkMerge [
[
@ -17,6 +22,7 @@
inputs.shikane.packages.x86_64-linux.default
inputs.isd.packages.x86_64-linux.default
inputs.hyprpicker.packages.x86_64-linux.default
inputs.hyprlock.packages.x86_64-linux.default
]
(with nix-config.packages.x86_64-linux; [
@ -87,7 +93,6 @@
gst_all_1.gstreamer
alsa-oss
powertop
hypridle
age
sops
@ -398,7 +403,6 @@
defaultSopsFile = ./secrets.yaml;
secrets = {
bw_client_id = {
path = "${config.sops.defaultSymlinkPath}/bw_client_id";
@ -415,37 +419,47 @@
};
};
programs = {
home-manager.enable = true;
mpv = {
enable = true;
package = (pkgs.mpv-unwrapped.wrapper {
scripts = with pkgs.mpvScripts; [
thumbfast
modernz
];
mpv = pkgs.mpv-unwrapped.override {
waylandSupport = true;
ffmpeg = pkgs.ffmpeg-full;
accounts.email = {
maildirBasePath = "/home/emenel/.maildir";
accounts = {
"matt@emenel.ca" = {
address = "matt@emenel.ca";
realName = "Matt Nish-Lapidus";
primary = true;
mu.enable = true;
mbsync = {
enable = true;
create = "maildir";
};
});
config = {
osc = "no";
profile = "high-quality";
ytdl-format = "bestvideo+bestaudio";
cache-default = 4000000;
msmtp.enable = true;
flavor = "fastmail.com";
passwordCommand = "rbw get mu4e-fastmail";
};
"admin@studyoftime.org" = {
address = "admin@studyoftime.org";
realName = "ISST Web Admin";
mu.enable = true;
mbsync = {
enable = true;
create = "maildir";
};
msmtp.enable = true;
passwordCommand = "rbw get admin@studyoftime";
imap.host = "imap.dreamhost.com";
smtp.host = "imap.dreamhost.com";
userName = "admin@studyoftime.org";
};
};
};
programs = {
home-manager.enable = true;
direnv = {
enable = true;
nix-direnv.enable = true;
};
yazi = {
enable = true;
enableFishIntegration = true;
package = inputs.yazi.packages.x86_64-linux.default;
};
fish = {
enable = true;
shellAliases = {
@ -476,7 +490,9 @@
enable = true;
};
mu.enable = true;
mbsync.enable = true;
mbsync = {
enable = true;
};
msmtp.enable = true;
emacs = {
enable = true;
@ -509,6 +525,7 @@
wezterm = {
enable = true;
package = inputs.wezterm.packages.${pkgs.system}.default;
extraConfig = lib.readFile ./dotfiles/dot_config/wezterm/wezterm.lua;
};
bat = {
enable = true;
@ -562,25 +579,12 @@
lfs.enable = true;
};
htop.enable = true;
nnn = {
enable = true;
};
pandoc.enable = true;
password-store.enable = true;
wlogout = {
enable = true;
};
hyprlock = {
enable = true;
};
waybar = {
enable = true;
package = pkgs.waybar;
# systemd = {
# enable = true;
# # target = "graphical-session.target";
# };
};
eww = {
enable = true;
@ -639,10 +643,8 @@
enable = true;
package = pkgs.playerctl;
};
mako = {
enable = true;
};
# flatpak.enable = true;
flatpak.enable = true;
syncthing = {
enable = true;
# tray.enable = true;
@ -717,17 +719,15 @@
};
# moving files!
xdg.configFile."mako".source = ./dotfiles/dot_config/mako;
xdg.configFile."hypr".source = ./dotfiles/dot_config/hypr;
xdg.configFile."halloy/config.toml".source = ./dotfiles/dot_config/halloy/config.toml;
xdg.configFile."waybar".source = ./dotfiles/dot_config/waybar;
xdg.configFile."just/justfile".source = ./dotfiles/dot_config/just/justfile;
xdg.configFile."starship.toml".source = ./dotfiles/dot_config/starship.toml;
xdg.configFile."ghostty".source = ./dotfiles/dot_config/ghostty;
xdg.configFile."wezterm".source = ./dotfiles/dot_config/wezterm;
xdg.configFile."niri/config.kdl".source = ./dotfiles/dot_config/niri/config.kdl;
xdg.configFile."just/justfile".source = ./dotfiles/dot_config/just/justfile;
xdg.configFile."git".source = ./dotfiles/dot_config/git;
xdg.configFile."rbw".source = ./dotfiles/dot_config/rbw;
xdg.configFile."niri/config.kdl".source = ./dotfiles/dot_config/niri/config.kdl;
xdg.configFile."shikane".source = ./dotfiles/dot_config/shikane;
home.file.".ssh/config".source = ./dotfiles/dot_ssh/config;
home.file.".npmrc".source = ./dotfiles/dot_npmrc;
@ -738,20 +738,17 @@
source = ./dotfiles/dot_config/fish/functions;
recursive = true;
};
home.file.".config/fish/completions" = {
source = ./dotfiles/dot_config/fish/completions;
recursive = true;
};
xdg.configFile."yazi" = {
source = ./dotfiles/dot_config/yazi;
recursive = true;
};
xdg.configFile."emacs".enable = false;
home.file.".msmtprc".source = ./dotfiles/dot_msmtprc;
home.file.".mbsyncrc".source = ./dotfiles/dot_mbsyncrc;
xdg.configFile."isyncrc".enable = false;
# home.file.".msmtprc".source = ./dotfiles/dot_msmtprc;
# home.file.".mbsyncrc".source = ./dotfiles/dot_mbsyncrc;
# xdg.configFile."isyncrc".enable = false;
home.file.".local/bin" = {
source = ./dotfiles/dot_local/bin;

View file

@ -1,5 +1,5 @@
general {
grace = 1
grace = 3
hide_cursor = true
}
@ -9,16 +9,14 @@ background {
input-field {
monitor =
# size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
dots_size = 0.15 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.25 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(0, 0, 0, 0)
inner_color = rgba(225, 225, 225, 0.25)
font_color = rgb(0,0,0)
fade_on_empty = false
rounding = -1
check_color = rgb(204, 136, 34)
placeholder_text = <i><span foreground="##cdd6f4">hm ...</span></i>
hide_input = false

View file

@ -1,7 +1,7 @@
* {
border: none;
font-size: 12pt;
font-family: "JetBrainsMono Nerd Font,JetBrainsMono NF" ;
font-family: "JetBrainsMono Nerd Font" ;
min-height: 25px;
}

View file

@ -6,10 +6,12 @@
{
imports =
imports = with nix-config.nixosModules;
[ # Include the results of the hardware scan.
./hardware-configuration.nix
./razer-speaker-fix.nix
niri
];
nixpkgs = {
@ -17,8 +19,7 @@
allowUnfree = true;
};
overlays = builtins.attrValues nix-config.overlays
++ [ inputs.emacs-overlay.overlays.default
inputs.niri.overlays.default ];
++ [ inputs.niri.overlays.default ];
};
# environment.etc."nix/inputs/nixpkgs".source = "${nixpkgs}";
@ -537,6 +538,7 @@
nerd-fonts.jetbrains-mono
nerd-fonts.fira-code
nerd-fonts._0xproto
nerd-fonts.symbols-only
];
};

62
modules/home/hypridle.nix Normal file
View file

@ -0,0 +1,62 @@
{ inputs, ... }:
{
services.hypridle = {
enable = true;
package = inputs.hypridle.packages.x86_64-linux.default;
settings = {
general = {
lock_cmd = "pidof hyprlock || hyprlock";
before_sleep_cmd = "loginctl lock-session";
};
# TODO: add monitor shut off timout
# battery timers
listener = [
{
timeout = 30;
on-timeout = "systemd-ac-power || light -S 0";
on-resume = "systemd-ac-power || light -I";
}
{
timeout = "30";
on-timeout = "systemd-ac-power || light -s razer/0003:1532:02B6.0004/backlight -S 0";
on-resume = "systemd-ac-power || light -s razer/0003:1532:02B6.0004/backlight -S 40";
}
{
timeout = "120";
on-timeout = "systemd-ac-power || systemd-ac-power && loginctl lock-session";
}
{
timeout = "600";
on-timeout = "systemd-ac-power || systemctl suspend";
}
# ac power timers
{
timeout = "60";
on-timeout = "systemd-ac-power && light -S 0";
on-resume = "systemd-ac-power && light -I";
}
{
timeout = "60";
on-timeout = "systemd-ac-power && light -s razer/0003:1532:02B6.0004/backlight -S 0";
on-resume = "systemd-ac-power && light -s razer/0003:1532:02B6.0004/backlight -S 40";
}
{
timeout = "300";
on-timeout = "systemd-ac-power && loginctl lock-session";
}
{
timeout = "1800";
on-timeout = "systemd-ac-power && systemctl suspend";
}
];
};
};
}

61
modules/home/hyprlock.nix Normal file
View file

@ -0,0 +1,61 @@
{ inputs, ... }:
{
programs.hyprlock = {
enable = true;
package = inputs.hyprlock.packages.x86_64-linux.default;
settings = {
general = {
grace = 3;
hide_cursor = true;
};
background = {
color = "rgb(0,0,0)";
};
input-field = {
outline_thickness = 2;
dots_size = 0.15; # Scale of input-field height, 0.2 - 0.8;
dots_spacing = 0.25; # Scale of dots' absolute size, 0.0 - 1.0;
dots_center = true;
outer_color = "rgba(0, 0, 0, 0)";
inner_color = "rgba(225, 225, 225, 0.25)";
font_color = "rgb(0,0,0)";
fade_on_empty = false;
check_color = "rgb(204, 136, 34)";
placeholder_text = "<i><span foreground="##cdd6f4">hm ...</span></i>";
hide_input = false;
position = "0, 0";
halign = "center";
valign = "center";
font_family = "JetBrains Mono";
};
# DATE
label = [
{
text = "cmd[update:1000] echo \"$(date +\"%A, %B %d\")\"";
color = "rgba(242, 243, 244, 0.75)";
font_size = 32;
font_family = "JetBrains Mono";
position = "0, 300";
halign = "center";
valign = "center";
}
# TIME
{
text = "cmd[update:1000] echo \"$(date +\"%-I:%M\")\"";
color = "rgba(242, 243, 244, 0.75)";
font_size = 32;
font_family = "JetBrains Mono";
position = "0, 200";
halign = center;
valign = center;
}
];
};
};
}

29
modules/home/mako.nix Normal file
View file

@ -0,0 +1,29 @@
{
services.mako = {
enable = true;
maxVisible=5;
sort="-time";
layer="top";
anchor="top-right";
font="JetbrainsMono-Light 12";
backgroundColor="#111111";
textColor="#eeeeee";
width=300;
height=100;
margin="24";
padding="16";
borderSize=2;
borderColor="#eeeeee";
borderRadius=6;
progressColor="over #5588AAFF";
icons=true;
maxIconSize=64;
markup=true;
actions=true;
format="<b>%s</b>\n%b";
defaultTimeout=5000;
ignoreTimeout=false;
};
}

23
modules/home/mpv.nix Normal file
View file

@ -0,0 +1,23 @@
{ pkgs, ... }:
{
programs.mpv = {
enable = true;
package = (pkgs.mpv-unwrapped.wrapper {
scripts = with pkgs.mpvScripts; [
thumbfast
modernz
];
mpv = pkgs.mpv-unwrapped.override {
waylandSupport = true;
ffmpeg = pkgs.ffmpeg-full;
};
});
config = {
osc = "no";
profile = "high-quality";
ytdl-format = "bestvideo+bestaudio";
cache-default = 4000000;
};
};
}

View file

@ -0,0 +1,17 @@
{ inputs, ... }:
{
yazi = {
enable = true;
enableFishIntegration = true;
package = inputs.yazi.packages.x86_64-linux.default;
initLua = ./init.lua;
keymap = {
input.prepend_keymap = [
{ on = "<C-d>"; run = "shell 'ripdrag \"$@\" -x 2>/dev/null &' --confirm"; }
{ on = "y"; run = ["shell 'for path in \"$@\"; do echo \"file://$path\"; done | wl-copy -t text/uri-list'\n" "yank"]; }
{ on = ["g" "r"]; run = "shell 'ya emit cd \"$(git rev-parse --show-toplevel)\"'\n"; }
];
};
};
}

View file

@ -0,0 +1,23 @@
-- adds user and group of hovered file/dir to status bar
Status:children_add(function(self)
local h = self._current.hovered
if h and h.link_to then
return " -> " .. tostring(h.link_to)
else
return ""
end
end, 3300, Status.LEFT)
Status:children_add(function()
local h = cx.active.current.hovered
if h == nil or ya.target_family() ~= "unix" then
return ""
end
return ui.Line {
ui.Span(ya.user_name(h.cha.uid) or tostring(h.cha.uid)):fg("magenta"),
":",
ui.Span(ya.group_name(h.cha.gid) or tostring(h.cha.gid)):fg("magenta"),
" ",
}
end, 500, Status.RIGHT)