Compare commits

...

11 commits

13 changed files with 315 additions and 67 deletions

7
flake.lock generated
View file

@ -340,15 +340,16 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1769776025, "lastModified": 1770260404,
"narHash": "sha256-70a1kVC08AMTvPc7iqQsJbbD4Y1fukakMVudz4oY9SM=", "narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "0fba737f8d5571d41467f3d99a878e11b8c0f0f0", "rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }

View file

@ -3,7 +3,7 @@
inputs = { inputs = {
alejandra.url = "github:kamadorueda/alejandra/3.0.0"; alejandra.url = "github:kamadorueda/alejandra/3.0.0";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager/release-25.11";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "github:hyprwm/Hyprland"; hyprland.url = "github:hyprwm/Hyprland";
hyprland.inputs.nixpkgs.follows = "nixpkgs"; hyprland.inputs.nixpkgs.follows = "nixpkgs";
@ -63,6 +63,7 @@
]; ];
specialArgs = { specialArgs = {
host = "sakura"; host = "sakura";
system = "aarch64-darwin";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -75,6 +76,7 @@
]; ];
specialArgs = { specialArgs = {
host = "sakura"; host = "sakura";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -85,6 +87,7 @@
]; ];
specialArgs = { specialArgs = {
host = "yoshino"; host = "yoshino";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -95,6 +98,7 @@
]; ];
specialArgs = { specialArgs = {
host = "ichiyo"; host = "ichiyo";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -105,6 +109,7 @@
]; ];
specialArgs = { specialArgs = {
host = "violet"; host = "violet";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -115,6 +120,7 @@
]; ];
specialArgs = { specialArgs = {
host = "dandelion"; host = "dandelion";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -125,6 +131,7 @@
]; ];
specialArgs = { specialArgs = {
host = "lily"; host = "lily";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -135,6 +142,7 @@
]; ];
specialArgs = { specialArgs = {
host = "zinnia"; host = "zinnia";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -145,6 +153,7 @@
]; ];
specialArgs = { specialArgs = {
host = "posy"; host = "posy";
system = "aarch64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -155,6 +164,7 @@
]; ];
specialArgs = { specialArgs = {
host = "hazel"; host = "hazel";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -165,6 +175,7 @@
]; ];
specialArgs = { specialArgs = {
host = "daisy"; host = "daisy";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -175,6 +186,7 @@
]; ];
specialArgs = { specialArgs = {
host = "iris"; host = "iris";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -185,6 +197,7 @@
]; ];
specialArgs = { specialArgs = {
host = "sunflower"; host = "sunflower";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -195,6 +208,7 @@
]; ];
specialArgs = { specialArgs = {
host = "imilia"; host = "imilia";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };
@ -205,6 +219,7 @@
]; ];
specialArgs = { specialArgs = {
host = "april"; host = "april";
system = "x86_64-linux";
inherit self inputs username; inherit self inputs username;
}; };
}; };

View file

@ -1,35 +1,51 @@
{ username, ... }: {
pkgs,
inputs,
self,
...
}:
{ {
imports = [ imports = [
#./hardware-configuration.nix # ./../../modules/core/homebrew.nix
#./../../modules/core ./../../modules/core/user.nix
./../../modules/core/skhd.nix
./../../modules/core/yabai.nix
#./../../modules/core/virtualization.nix #./../../modules/core/virtualization.nix
#./../../modules/services/tailscale.nix #./../../modules/services/tailscale.nix
#./../../modules/services/mpd.nix #./../../modules/services/mpd.nix
#./../../modules/services/smart-monitoring.nix
#./../../modules/services/mullvad.nix
#./../../modules/home/steam.nix
#./../../modules/services/ollama.nix
#./../../modules/services/automount.nix
]; ];
environment.systemPackages = [ security.pam.services.sudo_local.touchIdAuth = true;
pkgs.vim
];
security.pam.enableSudoTouchIdAuth = true;
system.primaryUser = username;
nix.settings.experimental-features = "nix-command flakes"; nix.settings.experimental-features = "nix-command flakes";
# system.configurationRevision = self.rev or self.dirtyRev or null;
system.configurationRevision = self.rev or self.dirtyRev or null; system = {
primaryUser = "liv";
system.stateVersion = 6; stateVersion = 6;
defaults = {
dock = {
autohide = true;
mru-spaces = false;
show-recents = false;
# showHidden = true;
};
finder = {
AppleShowAllExtensions = true;
FXPreferredViewStyle = "clmv";
};
iCal."first day of week" = "Monday";
screencapture.include-date = true;
screencapture.type = "png";
spaces.spans-displays = true;
};
};
nixpkgs.hostPlatform = "aarch64-darwin"; nixpkgs.hostPlatform = "aarch64-darwin";
homebrew = { homebrew = {
enable = true; enable = true;
#taps = {
# "homebrew/homebrew-core" = inputs.homebrew-core;
# "homebrew/homebrew-cask" = inputs.homebrew-cask;
#};
onActivation = { onActivation = {
autoUpdate = true; autoUpdate = true;
cleanup = "uninstall"; cleanup = "uninstall";
@ -39,16 +55,58 @@
caskArgs = { caskArgs = {
no_quarantine = true; no_quarantine = true;
}; };
brews = [
"imagemagick"
"virt-manager"
];
casks = [ casks = [
"qbittorrent"
"libreoffice" "libreoffice"
"signal" "signal"
"handbrake"
"tailscale"
"ungoogled-chromium" "ungoogled-chromium"
# "orca-slicer" # "orca-slicer"
"element" "element"
"raycast" "raycast"
"anki" "anki"
"kitty"
"spotify"
"nextcloud"
"handbrake-app"
"tailscale-app"
"ungoogled-chromium"
"karabiner-elements"
"bitwarden"
"gimp"
"betterdisplay"
"mullvad-vpn"
"maccy"
"spotmenu"
];
};
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
# imports = [ ../flake/modules/home/zsh.nix ];
environment.systemPackages = [
pkgs.vim
inputs.nixvim.packages.${pkgs.system}.default
pkgs.lazygit
pkgs.eza
pkgs.exiftool
pkgs.fzf
];
nixpkgs.config = {
allowUnfree = true;
permittedInsecurePackages = [
"jitsi-meet-1.0.8043"
"olm-3.2.16"
"libsoup-2.74.3"
];
overlays = [
self.overlays.default
inputs.nur.overlay
inputs.nixocaine.overlays.default
]; ];
}; };
} }

82
modules/core/skhd.nix Normal file
View file

@ -0,0 +1,82 @@
{
config,
pkgs,
lib,
...
}:
{
services.skhd = {
enable = true;
skhdConfig = ''
shift + alt - 1: yabai -m window --space 1
shift + alt - 2: yabai -m window --space 2
shift + alt - 3: yabai -m window --space 3
shift + alt - 4: yabai -m window --space 4
shift + alt - 5: yabai -m window --space 5
shift + alt - 6: yabai -m window --space 6
shift + alt - 7: yabai -m window --space 7
shift + alt - 8: yabai -m window --space 8
shift + alt - 9: yabai -m window --space 9
shift + alt - 0: yabai -m window --space 10
# focus window
alt - h : yabai -m window --focus west
alt - j : yabai -m window --focus south
alt - k : yabai -m window --focus north
alt - l : yabai -m window --focus east
# move window
shift + alt - h : yabai -m window --warp west
shift + alt - j : yabai -m window --warp south
shift + alt - k : yabai -m window --warp north
shift + alt - l : yabai -m window --warp east
# Float / Unfloat window
alt - space : \
yabai -m window --toggle float; \
yabai -m window --toggle border
# cmd - d : yabai -m space --layout $(yabai -m query --spaces --space | jq -r 'if .type == "bsp" then "stack" else "bsp" end')
alt - return: open -a Kitty -n
# # Linux-style word navigation and deletion
# ctrl - backspace [
# @native_apps ~ # Terminal apps handle natively
# * | alt - backspace # Other apps: delete word
# ]
# ctrl - left [
# @native_apps ~ # Terminal apps handle natively
# * | alt - left # Other apps: move word left
# ]
# ctrl - right [
# @native_apps ~ # Terminal apps handle natively
# * | alt - right # Other apps: move word right
# ]
# # Home/End key behavior (with shift for selection)
# home [
# @native_apps ~ # Terminal apps handle natively
# * | cmd - left # Other apps: line start
# ]
# shift - home [
# @native_apps ~ # Terminal apps handle natively
# * | cmd + shift - left # Other apps: select to line start
# ]
# # Ctrl+Home/End for document navigation
# ctrl - home [
# @native_apps ~ # Terminal apps handle natively
# * | cmd - up # Other apps: document start
# ]
# ctrl - end [
# @native_apps ~ # Terminal apps handle natively
# * | cmd - down # Other apps: document end
# ]
'';
};
}

82
modules/core/yabai.nix Normal file
View file

@ -0,0 +1,82 @@
{
config,
pkgs,
lib,
...
}:
{
services.yabai = {
enable = true;
enableScriptingAddition = true;
config = {
# external_bar = "all:0:0";
layout = "bsp";
auto_balance = "on";
window_placement = "second_child";
window_opacity = "off";
window_border = "on";
window_border_placement = "inset";
window_border_width = 2;
window_border_radius = 3;
window_shadow = "float";
active_window_opacity = "1.0";
normal_window_opacity = "1.0";
mouse_modifier = "cmd";
# set modifier + right-click drag to resize window (default: resize)
mouse_action2 = "resize";
# set modifier + left-click drag to resize window (default: move)
mouse_action1 = "move";
mouse_follows_focus = "off";
focus_follows_mouse = "autofocus";
# gaps
top_padding = 0;
bottom_padding = 0;
left_padding = 0;
right_padding = 0;
window_gap = 0;
};
extraConfig = ''
# osascript -e 'tell application id "tracesOf.Uebersicht" to refresh'
# rules
yabai -m rule --add app=".*" sub-layer=normal
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="^System Information$" manage=off
yabai -m rule --add app="^System Preferences$" manage=off
yabai -m rule --add title="Preferences$" manage=off
yabai -m rule --add title="Settings$" manage=off
yabai -m rule --add app="Finder$" manage=off
# workspace management
yabai -m space 1 --label web
yabai -m space 2 --label terminal
yabai -m space 6 --label config
yabai -m space 7 --label notes
yabai -m space 8 --label chat
yabai -m space 9 --label music
yabai -m space 10 --label mail
yabai -m rule --add app="Element" space=chat
yabai -m rule --add app="Signal" space=chat
yabai -m rule --add app="Spotify" space=music
yabai -m rule --add app="Calendar" space=mail
yabai -m rule --add app="Mail" space=mail
yabai -m rule --add app='About This Mac' manage=off
yabai -m rule --add app='System Information' manage=off
yabai -m rule --add app='System Preferences' manage=off
yabai -m signal --add event=dock_did_restart \
action="sudo yabai --load-sa"
sudo yabai --load-sa
# yabai -m config external_bar all:40:0
# exec ~/.config/borders/bordersrc &
'';
};
}

View file

@ -0,0 +1,15 @@
{ ... }:
{
imports =
[ (import ./git.nix) ]
++ [ (import ./htop.nix) ]
++ [ (import ./kitty.nix) ]
++ [ (import ./nvim.nix) ]
++ [ (import ./zathura.nix) ]
++ [ (import ./packages.nix) ]
++ [ (import ./scripts/scripts.nix) ]
++ [ (import ./ssh.nix) ]
++ [ (import ./zsh.nix) ]
++ [ (import ./qutebrowser.nix) ]
++ [ (import ./tmux.nix) ];
}

View file

@ -1,5 +1,7 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
fonts.fontconfig.antialias = false;
home.packages = with pkgs; [ home.packages = with pkgs; [
scientifica scientifica
# nerd-fonts._0xproto # nerd-fonts._0xproto

View file

@ -7,12 +7,12 @@
font = { font = {
name = "GohuFont 14 Nerd Font Mono"; name = "GohuFont 14 Nerd Font Mono";
size = 9; size = 12;
}; };
settings = { settings = {
confirm_os_window_close = 0; confirm_os_window_close = 0;
background_opacity = "0.50"; background_opacity = "0.75";
window_padding_width = 10; window_padding_width = 10;
scrollback_lines = 10000; scrollback_lines = 10000;
enable_audio_bell = false; enable_audio_bell = false;

View file

@ -2,19 +2,6 @@
{ {
home.packages = with pkgs; [ home.packages = with pkgs; [
# Environment shit # Environment shit
tesseract
yubikey-touch-detector
wireguard-tools
openresolv
xdg-utils
killall
libnotify
openssl
pamixer
playerctl
wl-clipboard
cliphist
poweralertd
ffmpeg ffmpeg
zip zip
unzip unzip
@ -23,16 +10,12 @@
gcc gcc
gnumake gnumake
python3 python3
nautilus
qbittorrent qbittorrent
# CLI shit # CLI shit
imagemagick imagemagick
foot
# termpdfpy # shit broke again smfh
vimv vimv
pass pass
lm_sensors
neofetch neofetch
hyfetch hyfetch
glow glow
@ -54,29 +37,27 @@
yarn yarn
cargo cargo
rustc rustc
# wikit
# reader
nmap nmap
# speedtest-go speedtest-go
powertop
android-tools android-tools
sshpass sshpass
net-tools net-tools
nmap nmap
aerc aerc
w3m
aspell # aspell
aspellDicts.de # aspellDicts.de
aspellDicts.nl # aspellDicts.nl
aspellDicts.uk # aspellDicts.uk
# Hunspell dictionaries for spell checking # Hunspell dictionaries for spell checking
hunspell # hunspell
hunspellDicts.de_DE # German # hunspellDicts.de_DE # German
hunspellDicts.en_GB-ise # UK English with -ise spellings # hunspellDicts.en_GB-ise # UK English with -ise spellings
hunspellDicts.en_US # hunspellDicts.en_US
hunspellDicts.nl_NL # Dutch # hunspellDicts.nl_NL # Dutch
hunspellDicts.nl_nl # Dutch (alternative) # hunspellDicts.nl_nl # Dutch (alternative)
# Install pip packages # Install pip packages
# python3 # python3
@ -84,12 +65,5 @@
# (writeShellScriptBin "install-pip-packages" '' # This script does not run, yet. # (writeShellScriptBin "install-pip-packages" '' # This script does not run, yet.
# pip install --user --break-system-packages <package> # pip install --user --break-system-packages <package>
# '') # '')
# Email/calendar/etc
# neomutt
w3m
# khard
# khal
# vdirsyncer
]; ];
} }

View file

@ -22,6 +22,7 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
# Home packages # Home packages
swaylock swaylock
lm_sensors
]; ];
}; };
}; };
@ -39,7 +40,7 @@ in
hardware.openrgb = { hardware.openrgb = {
enable = true; enable = true;
package = pkgs.openrgb-with-all-plugins; package = pkgs.openrgb-with-all-plugins;
motherboard = "amd"; motherboard = "intel";
server = { server = {
port = 6742; port = 6742;
# autoStart = true; # autoStart = true;

View file

@ -82,6 +82,21 @@ in
mpv mpv
kdePackages.kdeconnect-kde kdePackages.kdeconnect-kde
libgnome-keyring libgnome-keyring
foot
nautilus
tesseract
yubikey-touch-detector
wireguard-tools
openresolv
xdg-utils
killall
libnotify
openssl
pamixer
playerctl
wl-clipboard
cliphist
poweralertd
# Gaming # Gaming
lunar-client lunar-client

View file

@ -25,6 +25,8 @@ in
home.packages = with pkgs; [ home.packages = with pkgs; [
acpi acpi
brightnessctl brightnessctl
powertop
lm_sensors
]; ];
}; };
}; };

View file

@ -20,6 +20,7 @@ in
kitty.terminfo kitty.terminfo
foot.terminfo foot.terminfo
powertop powertop
lm_sensors
]; ];
services = { services = {