refactor3

This commit is contained in:
Lilith 2025-03-12 16:43:45 +01:00
parent b9e206af24
commit f012a7d409
Signed by: lilith
GPG key ID: 8712A0F317C37175
16661 changed files with 71 additions and 1480464 deletions

12
home/lilith/alacritty.nix Normal file
View file

@ -0,0 +1,12 @@
{lib, ...}: {
programs.alacritty = {
enable = true;
settings = {
env.TERM = "xterm-256color";
window = {
title = "Alacritty";
dynamic_title = false;
};
};
};
}

21
home/lilith/clipman.nix Normal file
View file

@ -0,0 +1,21 @@
{pkgs, ...}: {
home.packages = [pkgs.clipman];
# https://github.com/nix-community/home-manager/blob/master/modules/services/clipman.nix
systemd.user.services.clipman = {
Unit = {
Description = "Clipboard management daemon";
PartOf = ["graphical-session.target"];
After = ["graphical-session.target"];
};
Service = {
ExecStart = "${pkgs.wl-clipboard}/bin/wl-paste -t --watch ${pkgs.clipman}/bin/clipman store --max-items=500";
ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID";
Restart = "on-failure";
KillMode = "mixed";
};
Install.WantedBy = ["graphical-session.target"];
};
}

10
home/lilith/common.nix Normal file
View file

@ -0,0 +1,10 @@
{...}: {
home.sessionPath = ["$HOME/.local/bin" "$HOME/.cargo/bin"];
home.sessionVariables = {
EDITOR = "hx";
VISUAL = "hx";
};
home.stateVersion = "24.11";
}

31
home/lilith/default.nix Normal file
View file

@ -0,0 +1,31 @@
{ matshell, sops-nix, ...}: {
imports = [
# ags.homeManagerModules.default
matshell.homeManagerModules.default
sops-nix.homeManagerModules.sops
# ./ags # ToDo: get codin :3
./hyprland
./rofi.nix
./dunst.nix
./matshell.nix
./env.nix
./alacritty.nix
./clipman.nix
./common.nix
./direnv.nix
./firefox.nix
./fzf.nix
./git.nix
./gpg.nix
./helix.nix
./packages.nix
./playerctld.nix
./sops.nix
./ssh.nix
./thunderbird.nix
./zsh
];
}

6
home/lilith/direnv.nix Normal file
View file

@ -0,0 +1,6 @@
{...}: {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
}

6
home/lilith/dunst.nix Normal file
View file

@ -0,0 +1,6 @@
{...}: {
# services.dunst = {
# enable = true;
# settings = {};
# };
}

14
home/lilith/env.nix Normal file
View file

@ -0,0 +1,14 @@
{ config, pkgs, ...}: {
home = {
file.inbox.source = config.lib.file.mkOutOfStoreSymlink "/home/lilith/sync/inbox";
shellAliases = {
cat = "bat -p";
"." = "source";
ls = "${pkgs.eza}/bin/eza -g --git --group-directories-first";
ll = "${pkgs.eza}/bin/eza -l";
la = "${pkgs.eza}/bin/eza -la";
grep = "grep --color=auto";
};
};
}

113
home/lilith/firefox.nix Normal file
View file

@ -0,0 +1,113 @@
{ pkgs, ...}: {
# imports = [arkenfox.hmModules.arkenfox];
programs.firefox = {
enable = true;
nativeMessagingHosts = with pkgs; [
tridactyl-native
keepassxc
];
policies = {
Homepage = {
URL = "https://duckduckgo.com";
StartPage = "homepage";
};
DisablePocket = true;
DisableFirefoxAccounts = true;
DisableAccounts = true;
DisableFormHistory = true;
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
DisableSetDesktopBackground = true;
DisableTelemetry = true;
DisableFirefoxScreenshots = true;
OverrideFirstRunPage = "https://duckduckgo.com";
OverridePostUpdatePage = "https://duckduckgo.com";
NewTabPage = false;
DontCheckDefaultBrowser = true;
DisplayBookmarksToolbar = "never";
SearchBar = "unified";
SearchSuggestEnabled = false;
DownloadDirectory = "/home/lilith/sync/inbox";
Containers = {
"Default" = [
{
name = "Personal";
icon = "circle";
color = "pink";
}
{
name = "Work";
icon = "briefcase";
color = "green";
}
];
};
ExtensionSettings = {
# uBlock Origin:
"uBlock0@raymondhill.net" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi";
installation_mode = "force_installed";
};
"keepassxc-browser@keepassxc.org" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi";
installation_mode = "force_installed";
};
"sponsorBlocker@ajay.app" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4292214/sponsorblock-5.6.xpi";
installation_mode = "force_installed";
};
"tridactyl.vim@cmcaine.co.uk" = {
install_url = "https://addons.mozilla.org/firefox/downloads/file/4261352/tridactyl_vim-1.24.1.xpi";
installation_mode = "force_installed";
};
};
SearchEngines = {
Default = "DuckDuckGo";
};
Preferences = {
"browser.newtab.extensionControlled" = false;
"browser.translations.neverTranslateLanguages" = true;
};
};
# arkenfox.enable = true;
# arkenfox.version = "master";
# profiles.Default.arkenfox = {
# enable = true;
# "0000".enable = true;
# "0100".enable = true;
# "0200".enable = true;
# "0300".enable = true;
# "0400".enable = true;
# "0600".enable = true;
# "0700".enable = true;
# "0800".enable = true;
# "0900".enable = true;
# "1000".enable = true;
# "1200".enable = true;
# "1600".enable = true;
# "1700".enable = true;
# "2000".enable = true;
# "2400".enable = true;
# "2600".enable = true;
# "2700".enable = true;
# "2800".enable = true;
# };
};
}

5
home/lilith/fzf.nix Normal file
View file

@ -0,0 +1,5 @@
{...}: {
programs.fzf = {
enable = true;
};
}

17
home/lilith/git.nix Normal file
View file

@ -0,0 +1,17 @@
{...}: {
programs.git = {
enable = true;
lfs.enable = true;
userName = "Lilith";
userEmail = "ole@benstem.de";
difftastic.enable = true;
signing = {
key = "3586D8D6689B9C9ECD598C588712A0F317C37175";
signByDefault = true;
};
extraConfig = {
diff.algorithm = "histogram";
diff.submodule = "log";
};
};
}

11
home/lilith/gpg.nix Normal file
View file

@ -0,0 +1,11 @@
{pkgs, ...}: {
programs.gpg = {
enable = true;
settings.trust-model = "tofu+pgp";
};
services.gpg-agent = {
enable = true;
pinentryPackage = pkgs.pinentry-gtk2;
};
}

52
home/lilith/helix.nix Normal file
View file

@ -0,0 +1,52 @@
{
pkgs,
...
}: {
programs.helix = {
enable = true;
settings = {
editor = {
line-number = "relative";
mouse = false;
cursorline = true;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
file-picker = {hidden = false;};
statusline = {
left = ["mode" "spinner"];
center = ["file-name" "read-only-indicator" "file-modification-indicator"];
right = [
"version-control"
"diagnostics"
"selections"
"register"
"position"
"position-percentage"
"file-encoding"
"file-line-ending"
"file-type"
];
separator = "|";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
};
indent-guides = {render = true;};
idle-timeout = 0;
bufferline = "always";
soft-wrap = {
enable = true;
};
};
keys = {
insert = {
"C-space" = "completion";
};
};
};
};
}

View file

@ -0,0 +1,179 @@
{ lib, ...}: {
imports = [
./hyprpaper.nix
./hyprlock.nix
# ./hyprgrass.nix
# ./utils.nix
];
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = true;
settings = {
"$terminal" = "alacritty";
env = [
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
];
xwayland.force_zero_scaling = true;
monitor = [
",preferred,1"
];
exec-once = [
"hyprlock"
"ags"
"[workspace special:keepass silent] keepassxc"
];
windowrulev2 = [
"workspace special:keepass,class:org.keepassxc.KeePassXC,title:^(.*)(KeePassXC)(.*)$"
"workspace unset,class:org.keepassxc.KeePassXC,title:Unlock Database - KeePassXC"
"workspace special:chatgpt,class:firefox,title:ChatGPT Mozilla Firefox"
"float,class:firefox,title:ChatGPT Mozilla Firefox"
];
workspace = [
"special:keepass,gapsout:45"
"special:magic,gapsout:45"
"special:chatgpt,gapsout:45"
];
input = {
kb_layout = "de";
follow_mouse = 1;
touchpad.natural_scroll = true;
sensitivity = 0;
kb_options = "compose:caps";
};
general = {
gaps_in = 10;
gaps_out = 15;
border_size = 2;
layout = "dwindle";
allow_tearing = false;
};
decoration = {
rounding = 10;
blur = {
enabled = true;
size = 2;
passes = 1;
};
shadow = {
enabled = true;
range = 4;
render_power = 3;
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.0, 0.8, 0.2, 1.0";
animation = [
"windows, 1, 5, myBezier"
"windowsOut, 1, 5, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 5, myBezier"
"specialWorkspace, 1, 5, myBezier, slidefadevert"
];
};
dwindle = {
pseudotile = true;
preserve_split = true;
};
master = {
new_status = "master";
new_on_top = 1;
};
"$mainMod" = "SUPER";
bind = [
"$mainMod, Q, exec, $terminal"
"$mainMod, C, killactive,"
"$mainMod, backspace, exec, hyprlock"
"$mainMod, E, exec, $fileManager"
"$mainMod, A, togglefloating,"
"$mainMod, R, exec, ags -t launcher"
"$mainMod, D, pseudo,"
"$mainMod, S, togglesplit,"
"$mainMod, Tab, exec, ags -t overview"
"$mainMod, P, togglespecialworkspace, keepass"
"$mainMod, P, exec, if (( $(pgrep keepassxc -c) < 2 )); then keepassxc; fi"
"$mainMod, O, togglespecialworkspace, chatgpt"
", print, exec, hyprshot -m region -o /home/lilith/sync/screenshots -z"
"CTRL, print, exec, hyprshot -m output -o /home/lilith/sync/screenshots -z"
"$mainMod, H, movefocus, l"
"$mainMod, L, movefocus, r"
"$mainMod, K, movefocus, u"
"$mainMod, J, movefocus, d"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
"$mainMod, I, togglespecialworkspace, magic"
"$mainMod SHIFT, I, movetoworkspace, special:magic"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
binde = [
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86PowerOff, exec, ags -t powermenu"
];
};
};
}

View file

@ -0,0 +1,44 @@
{ config, lib, ...}:{
programs.hyprlock = {
enable = true;
settings = lib.mkForce {
general = {
disable_loading_bar = true;
ignore_empty_input = true;
hide_cursor = true;
};
background = [
{
path = "screenshot";
# color = "rgba(25, 20, 20, 1.0)";
blur_passes = 2;
blur_size = 7;
noise = 0.0117;
contrast = 0.8916;
brightness = 0.8172;
vibrancy = 0.1696;
vibrancy_darkness = 0.0;
}
];
input-field = [
{
size = "800, 80";
position = "0, 0";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(202, 211, 245)";
inner_color = "rgb(91, 96, 120)";
outer_color = "rgb(24, 25, 38)";
outline_thickness = 5;
placeholder_text = ''<span foreground="##cad3f5">Password...</span>'';
shadow_passes = 2;
}
];
};
};
}

View file

@ -0,0 +1,22 @@
{ ... }:
{
home.file.".config/hypr/wallpaper.png" = {
source = ../../wallpapers/default.png;
};
services.hyprpaper = let
default = "/home/lilith/.config/hypr/wallpaper.png";
in {
enable = true;
settings = {
splash = false;
preload = [ default ];
wallpaper = [
",${default}"
];
};
};
}

5
home/lilith/matshell.nix Normal file
View file

@ -0,0 +1,5 @@
{...} @ inputs: {
programs.ags = {
matshell.enable = true;
};
}

43
home/lilith/packages.nix Normal file
View file

@ -0,0 +1,43 @@
{
pkgs,
lib,
...
}: {
home.packages = let
common = with pkgs; [
gcc
gnumake
git
pulsemixer
pavucontrol
playerctl
blueman
nh
wl-clipboard
xdg-utils
hyprshot
# obsidian
vlc
obs-studio
keepassxc
ncspot
vesktop
btop
htop
ollama
# zoom-us
];
gaming = with pkgs; [
prismlauncher
lutris
steamtinkerlaunch
];
in
common; # ++ (lib.optionals system-config.gaming.enable gaming);
}

41
home/lilith/persist.nix Normal file
View file

@ -0,0 +1,41 @@
{lib, config}: {
data = {
directories = [
".config/syncthing"
".config/sops"
".config/keepassxc"
".config/obsidian"
".config/vesktop"
".gnupg"
".ssh"
".thunderbird"
".mozilla"
"nixos"
"sync"
"obsidian"
"code"
".keepass"
] ++ lib.optionals config.gaming.enable [
".local/share/PrismLauncher"
".local/share/Steam"
".local/share/lutris"
".local/share/games"
];
files = [];
};
cache = {
directories = [
".cache/nix"
".cache/spotify"
".cache/keepassxc"
".cargo"
".local/state/wireplumber"
"tmp"
] ++ lib.optionals config.gaming.enable [
];
files = [];
};
}

View file

@ -0,0 +1,5 @@
{...}: {
services.playerctld = {
enable = true;
};
}

114
home/lilith/rofi.nix Normal file
View file

@ -0,0 +1,114 @@
{pkgs, config, stylix, lib, ...}: {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
theme = let
inherit (config.lib.formats.rasi) mkLiteral;
in lib.mkForce {
"*" = with config.lib.stylix.colors; {
bg0 = mkLiteral "#${base00}";
bg1 = mkLiteral "#${base01}";
bg2 = mkLiteral "#${base02}";
bg3 = mkLiteral "#${base03}";
fg0 = mkLiteral "#${base08}";
fg1 = mkLiteral "#${base09}";
fg2 = mkLiteral "#${base0A}";
fg3 = mkLiteral "#${base0B}";
font = config.stylix.fonts.sansSerif.name;
background-color = mkLiteral "transparent";
text-color = mkLiteral "@fg0";
margin = mkLiteral "0px";
padding = mkLiteral "0px";
spacing = mkLiteral "0px";
};
window = {
location = mkLiteral "center";
width = mkLiteral "33%";
height = mkLiteral "33%";
border-radius = mkLiteral "24px";
background-color = mkLiteral "@bg0";
};
mainbox = {
padding = mkLiteral "12px";
};
inputbar = {
background-color = mkLiteral "@bg1";
border-color = mkLiteral "@bg3";
border = mkLiteral "2px";
border-radius = mkLiteral "16px";
padding = mkLiteral "8px 16px";
spacing = mkLiteral "8px";
children = map mkLiteral[ "prompt" "entry" ];
};
prompt = {
text-color = mkLiteral "@fg2";
};
entry = {
placeholder = "Search";
placeholder-color = mkLiteral "@fg3";
};
message = {
margin = mkLiteral "12px 0 0";
border-radius = mkLiteral "16px";
border-color = mkLiteral "@bg2";
background-color = mkLiteral "@bg2";
};
textbox = {
padding = mkLiteral "8px 24px";
};
listview = {
background-color = mkLiteral "transparent";
margin = mkLiteral "12px 0 0";
lines = mkLiteral "8";
columns = mkLiteral "1";
fixed-height = mkLiteral "false";
};
element = {
padding = mkLiteral "8px 16px";
spacing = mkLiteral "8px";
border-radius = mkLiteral "16px";
};
"element normal active" = {
text-color = mkLiteral "@bg3";
};
"element selected normal" = {
background-color = mkLiteral "@bg3";
text-color = mkLiteral "@bg1";
};
"element selected active" = {
background-color = mkLiteral "@bg3";
text-color = mkLiteral "@bg1";
};
"element-icon" = {
size = mkLiteral "1em";
vertical-align = mkLiteral "0.5";
};
"element-text" = {
text-color = mkLiteral "inherit";
};
};
};
}

7
home/lilith/sops.nix Normal file
View file

@ -0,0 +1,7 @@
{
...
}: {
sops = {
age.keyFile = /persist/data/home/lilith/.config/sops/age/keys.txt;
};
}

4
home/lilith/ssh.nix Normal file
View file

@ -0,0 +1,4 @@
{...}:{
services.ssh-agent.enable = true;
}

View file

@ -0,0 +1,11 @@
{...}:{
programs.thunderbird = {
enable = true;
settings = {
};
profiles."lilith" = {
isDefault = true;
};
};
}

View file

@ -0,0 +1,8 @@
{pkgs, ...}: {
home.packages = [pkgs.xournalpp];
home.file.xournalpp = {
source = ./settings;
target = ".config/xournalpp";
recursive = true;
};
}

View file

@ -0,0 +1,29 @@
{pkgs, ...}: {
programs.zsh = {
enable = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
defaultKeymap = "viins";
autocd = false;
history.share = false;
plugins = [
{
name = "powerlevel10k";
src = pkgs.zsh-powerlevel10k;
file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme";
}
];
initExtra = ''
# p10k instant prompt
P10K_INSTANT_PROMPT="$XDG_CACHE_HOME/p10k-instant-prompt-''${(%):-%n}.zsh"
[[ ! -r "$P10K_INSTANT_PROMPT" ]] || source "$P10K_INSTANT_PROMPT"
source ${./p10k.zsh}
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
bindkey '^ ' autosuggest-accept
zstyle ':completion:*' menu select
'';
};
}

1842
home/lilith/zsh/p10k.zsh Normal file

File diff suppressed because it is too large Load diff