initial commit

This commit is contained in:
2025-06-15 18:21:36 +02:00
commit fd4e2a19cc
23 changed files with 2290 additions and 0 deletions

16
home/lukas/brave.nix Normal file
View File

@@ -0,0 +1,16 @@
{
programs.brave = {
enable = true;
extensions = [
# Catppuccin for GitHub File Explorer Icons
{ id = "lnjaiaapbakfhlbjenjkhffcdpoompki"; }
# uBlock Origin
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; }
# Return YouTube dislike
{ id = "gebbhagfogifgggkldgodflihgfeippi"; }
# Sponsorblock for YouTube
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; }
];
};
}

14
home/lukas/catppuccin.nix Normal file
View File

@@ -0,0 +1,14 @@
{ inputs, ... }:
{
imports = [ inputs.catppuccin.homeModules.catppuccin ];
catppuccin = {
accent = "mauve";
flavor = "mocha";
enable = true;
bat.enable = true; # <- installs Catppuccin-Mocha.tmTheme
delta.enable = true; # <- colours delta with your mauve accent
};
}

19
home/lukas/default.nix Normal file
View File

@@ -0,0 +1,19 @@
{ config, pkgs, ... }:
{
imports = [
./packages.nix
./terminal.nix
./emacs.nix
./shell.nix
./catppuccin.nix
./brave.nix
./git.nix
./direnv.nix
];
home.username = "lukas";
home.homeDirectory = "/home/lukas";
home.stateVersion = "25.05";
}

9
home/lukas/direnv.nix Normal file
View File

@@ -0,0 +1,9 @@
{ pkgs, ... }:
{
programs.direnv = {
enable = true;
nix-direnv.enable = true; # provides `use flake`
};
}

18
home/lukas/emacs.nix Normal file
View File

@@ -0,0 +1,18 @@
{ pkgs, ... }:
let
grammars = pkgs.emacsPackages.treesit-grammars.with-all-grammars;
in
{
programs.emacs = {
enable = true;
package = pkgs.emacs30; # or emacs29-pgtk / emacs30
extraPackages = epkgs: [
grammars # <-- the real derivation
];
};
# Make sure Emacs can find the .so files
home.sessionVariables.TREE_SITTER_LIBDIR = "${grammars}/lib";
}

22
home/lukas/git.nix Normal file
View File

@@ -0,0 +1,22 @@
{ config, lib, pkgs, ... }:
let
userPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII1DsMfyMUK0snbTeVWMmdzLP9NIvPoQ4tjqyREUMHwZ mail@lukas.contact";
in {
home.file.".ssh/allowed_signers".text = "* ${userPubKey}";
programs.git = {
enable = true;
userName = "Lukas";
userEmail = "mail@lukas.contact";
extraConfig = {
commit.gpgsign = true;
gpg.format = "ssh";
gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers";
user.signingkey = "~/.ssh/id_ed25519.pub";
};
};
}

22
home/lukas/hyprland.nix Normal file
View File

@@ -0,0 +1,22 @@
{ config, pkgs, ... }:
{
wayland.windowManager.hyprland = {
enable = true;
settings = {
monitor = ",preferred,auto,1";
exec-once = "hyprpaper & waybar";
input = {
kb_layout = "de";
follow_mouse = 1;
};
bind = [
"SUPER,Return,exec,alacritty"
"SUPER,q,killactive"
"SUPER,space,togglefloating"
];
decoration.rounding = 8;
misc.vfr = true;
};
};
}

1739
home/lukas/p10k.zsh Normal file

File diff suppressed because it is too large Load Diff

22
home/lukas/packages.nix Normal file
View File

@@ -0,0 +1,22 @@
{ pkgs, ... }:
{
fonts.fontconfig.enable = true;
home.packages = [
pkgs.thunderbird
pkgs.nextcloud-client
pkgs.keepassxc
pkgs.tree
pkgs.htop
pkgs.neovim
pkgs.wget
pkgs.unzip
pkgs.nerd-fonts.fira-code
pkgs.meslo-lgs-nf
pkgs.eza
pkgs.bat
];
}

40
home/lukas/shell.nix Normal file
View File

@@ -0,0 +1,40 @@
{ pkgs, ... }:
{
programs.zsh = {
enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
autosuggestion.enable = true;
initContent = "source /etc/nixos/home/lukas/p10k.zsh";
sessionVariables = {
POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD = "true";
};
zplug = {
enable = true;
plugins = [
{ name = "romkatv/powerlevel10k"; tags = [ as:theme depth:1 ]; }
];
};
shellAliases = {
ls = "eza --icons"; # plain directory listing
ll = "eza --icons -alh --git"; # long list, all, human, git status
la = "eza --icons -a"; # show all dot-files, short
lt = "eza -T --icons --git-ignore --level=2"; # pretty tree, two levels deep
cat ="bat --style=plain"; # pretty cat
less ="bat --style=plain --pager=less"; # pretty less
diff = "delta --paging=always"; # quick standalone diff
};
};
}

24
home/lukas/terminal.nix Normal file
View File

@@ -0,0 +1,24 @@
{ pkgs, ... }:
{
programs.tmux = {
enable = true;
clock24 = true;
extraConfig = ''
set-option -g mouse on
set-option -g history-limit 50000
set -g default-shell "${pkgs.zsh}/bin/zsh"
set -g default-terminal "tmux-256color"
'';
};
programs.alacritty = {
enable = true;
settings.terminal.shell = {
program = "${pkgs.tmux}/bin/tmux";
args = [ "new-session" "-A" "-s" "main" ];
};
};
}

44
home/lukas/waybar.nix Normal file
View File

@@ -0,0 +1,44 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
waybar networkmanagerapplet
];
programs.waybar = {
catppuccin.enable = true;
enable = true;
systemd.enable = true; # auto-restart on crashes
settings = {
mainBar = {
layer = "top";
position = "top";
height = 32;
modules-left = [ "hyprland/workspaces" ];
modules-center = [ "clock" ];
modules-right = [
"network"
"pulseaudio"
"battery"
"tray"
];
# `network` module shows SSID + signal; no need for nm-applet text
"network" = {
format-wifi = "{ssid} {signalStrength}%";
format-disconnected = "";
};
};
};
};
# Start nm-applet once; Waybar's SNI tray picks it up.
systemd.user.services."nm-applet" = {
Unit.Description = "NetworkManager Applet";
Service = {
ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet --indicator";
Restart = "on-failure";
};
Install.WantedBy = [ "graphical-session.target" ];
};
}