2024-03-25 21:25:44 +01:00

228 lines
5.4 KiB
Nix

{pkgs, ...}: {
home.packages = with pkgs; [
helix
firefox-devedition
git
pinentry
acpi
sops
moonlight-qt
discord
vesktop
telegram-desktop
obs-studio
];
programs.bash.enable = true;
programs.swaylock.enable = true;
wayland.windowManager.hyprland = let
locker = "${pkgs.swaylock}/bin/swaylock";
set-dpms = "${pkgs.hyprland}/bin/hyprctl dispatcher dpms";
idle-script = pkgs.writeShellScript "idle-lock.sh" ''
${pkgs.swayidle}/bin/swayidle -w \
timeout 600 ${locker} \
timeout 300 '${set-dpms} off' \
timeout 15 'if pgrep -x swaylock; then ${set-dpms} off; fi' \
resume '${set-dpms} on' \
before-sleep '${locker}'
'';
in {
enable = true;
settings = {
"$mod" = "SUPER";
monitor = [
"eDP-1,2256x1504,0x0,1.566667"
"desc:LG Electronics LG ULTRAWIDE 0x000219F2,2560x1080,1440x0,1"
"desc:Fujitsu Siemens Computers GmbH B22W-6 LED YV3U164923,1680x1050,4000x0,1"
",preferred,auto,1"
];
exec-once = ["waybar" idle-script];
input = {
kb_layout = "us,de";
follow_mouse = 1;
};
general = {
gaps_in = 5;
gaps_out = 5;
border_size = 1;
layout = "dwindle";
allow_tearing = false;
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
"col.inactive_border" = "rgba(595959aa)";
};
decoration = {
rounding = 5;
drop_shadow = true;
shadow_range = 4;
shadow_render_power = 3;
"col.shadow" = "rgba(1a1a1aee)";
blur = {
enabled = true;
size = 3;
passes = 1;
};
};
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 3, myBezier"
"windowsOut, 1, 3, default, popin 80%"
"border, 1, 3, default"
"borderangle, 1, 3, default"
"fade, 1, 3, default"
"workspaces, 1, 3, default"
];
};
bind =
[
", PRINT, exec, ${pkgs.hyprshot}/bin/hyprshot -m region --clipboard-only"
"$mod, return, exec, ${pkgs.alacritty}/bin/alacritty"
"$mod, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun"
"$mod SHIFT, Q, killactive, "
"$mod, L, exec, ${locker}"
"$mod, V, togglefloating, "
"$mod, P, pseudo, # dwindle"
"$mod, J, togglesplit, # dwindle"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod, S, togglespecialworkspace, magic"
"$mod SHIFT, S, movetoworkspace, special:magic"
]
++ builtins.concatLists (builtins.genList (
x: let
num = builtins.toString (x + 1);
in [
"$mod, ${num}, workspace, ${num}"
"$mod SHIFT, ${num}, movetoworkspace, ${num}"
]
)
9);
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
"device:razer-razer-blackwidow-chroma" = {
kb_layout = "de";
};
misc = {
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;
};
};
};
programs.waybar = {
enable = true;
settings.mainbar = {
layer = "top";
position = "top";
height = 30;
modules-left = ["hyprland/workspaces"];
modules-right = ["pulseaudio" "network" "cpu" "memory" "temperature" "battery" "clock" "tray"];
};
};
programs.starship.enable = true;
programs.helix = {
enable = true;
defaultEditor = true;
settings = {
theme = "onedark";
editor = {
line-number = "relative";
true-color = true;
gutters = ["diagnostics" "spacer" "line-numbers" "spacer" "diff"];
cursorline = true;
completion-trigger-len = 2;
cursor-shape = {
insert = "bar";
normal = "block";
select = "underline";
};
lsp = {
display-messages = true;
display-inlay-hints = true;
};
statusline = {
left = ["mode" "spinner"];
center = ["file-name"];
right = ["diagnostics" "selections" "position" "file-encoding" "file-line-ending" "file-type" "version-control"];
mode = {
normal = "NORMAL";
insert = "INSERT";
select = "SELECT";
};
};
};
};
};
programs.thunderbird = {
enable = true;
profiles = {
main = {
isDefault = true;
withExternalGnupg = true;
};
};
};
accounts.email.accounts = {
patrick = {
primary = true;
realName = "Patrick Michl";
address = "me@fuckwit.dev";
userName = "me@fuckwit.dev";
gpg = {
key = "5FA64909521A5C85992F26E0F819AEFF941BB849";
signByDefault = true;
};
imap = {
host = "mail.fuckwit.dev";
port = 143;
tls = {
useStartTls = true;
};
};
smtp = {
host = "mail.fuckwit.dev";
port = 587;
tls = {
useStartTls = true;
};
};
thunderbird = {
enable = true;
profiles = ["main"];
};
};
};
home.stateVersion = "23.11";
}