niksos/homes/jacek/default.nix

381 lines
14 KiB
Nix
Raw Normal View History

{
config,
2023-07-07 20:13:49 +02:00
inputs,
lib,
pkgs,
...
}: {
2023-07-07 20:13:49 +02:00
imports = [
inputs.hyprland.homeManagerModules.default
];
config = {
programs = {
home-manager.enable = true; # let home-manager enable itself
git = {
enable = true;
userName = "jacekpoz";
userEmail = "jacekpoz@cock.li";
};
zsh = {
enable = true;
shellAliases = {
cl = "clear";
cp = "cp -ivr";
mv = "mv -iv";
rm = "trash -v";
l = "ls -A --color=auto";
ll = "exa -lha --git";
untar = "tar -xvf";
untargz = "tar -xzf";
mnt = "udisksctl mount -b";
umnt = "udisksctl unmount -b";
v = "nvim";
kys = "shutdown now";
gpl = "curl https://www.gnu.org/licenses/gpl-3.0.txt -o LICENSE";
agpl = "curl https://www.gnu.org/licenses/agpl-3.0.txt -o LICENSE";
wget = "wget --hsts-file=\"${config.xdg.dataHome}/wget-hsts\"";
};
initExtra = ''
bindkey '^H' backward-kill-word
'';
history = {
path = "${config.xdg.dataHome}/zsh/zsh_history";
size = 999999999;
extended = true;
ignoreSpace = true;
};
enableAutosuggestions = true;
enableCompletion = true;
autocd = false;
dotDir = ".config/zsh";
plugins = [
{
name = "fast-syntax-highlighting";
file = "fast-syntax-highlighting.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "zdharma-continuum";
repo = "fast-syntax-highlighting";
rev = "cf318e06a9b7c9f2219d78f41b46fa6e06011fd9";
sha256 = "sha256-RVX9ZSzjBW3LpFs2W86lKI6vtcvDWP6EPxzeTcRZua4=";
};
}
];
};
zoxide = {
enable = true;
enableZshIntegration = true;
};
starship = {
enable = true;
enableZshIntegration = true;
settings = {
add_newline = false;
command_timeout = 1000;
line_break = {
disabled = true;
};
directory = {
truncation_length = 3;
truncate_to_repo = false;
truncation_symbol = ".../";
read_only = "";
};
};
};
waybar = {
enable = true;
#package = pkgs.waybar.overrideAttrs (oldAttrs: {
# mesonFlags = oldAttrs.mesonFlags ++ [ "-Dexperimental=true" ];
#});
settings = {
bar = {
gtk-layer-shell = true;
layer = "top";
modules-left = [ "custom/launcher" "custom/power_profile" "custom/xwayland" "tray" "wlr/workspaces" ];
modules-center = [ "hyprland/window" ];
modules-right = [ "custom/dnd" "backlight" "cava" "pulseaudio" "clock" "battery" "custom/power" ];
pulseaudio = {
tooltip = false;
scroll-step = "1";
format = " {icon} {volume}%";
format-muted = " 󰸈 {volume}%";
format-icons = {
default = ["󰕿" "󰖀" "󰕾"];
};
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
};
};
};
};
};
home = {
username = "jacek";
homeDirectory = "/home/jacek";
packages = with pkgs; [
neofetch
git
librewolf-wayland
firefox-wayland
foot
keepassxc
neovim
exa
waybar
];
stateVersion = lib.mkDefault "23.11";
};
wayland.windowManager.hyprland = {
enable = true;
extraConfig = ''
#laptop
#monitor=eDP-1,2560@1440@165,0x0,1
#workspace=eDP-1,1
#second monitor
#monitor=HDMI-A-1,2560x1440@144,2560x0,1
#workspace=HDMI-A-1,11
workspace = 1, monitor: eDP-1
workspace = 2, monitor: eDP-1
workspace = 3, monitor: eDP-1
workspace = 4, monitor: eDP-1
workspace = 5, monitor: eDP-1
workspace = 6, monitor: eDP-1
workspace = 7, monitor: eDP-1
workspace = 8, monitor: eDP-1
workspace = 9, monitor: eDP-1
workspace = 10, monitor: eDP-1
#wsbind = 11, HDMI-a-1
#wsbind = 12, HDMI-a-1
#wsbind = 13, HDMI-a-1
#wsbind = 14, HDMI-a-1
#wsbind = 15, HDMI-a-1
#wsbind = 16, HDMI-a-1
#wsbind = 17, HDMI-a-1
#wsbind = 18, HDMI-a-1
#wsbind = 19, HDMI-a-1
#wsbind = 20, HDMI-a-1
input {
kb_layout=pl
kb_variant=
kb_model=
kb_options=
kb_rules=
follow_mouse=1
touchpad {
disable_while_typing=true
}
}
general {
sensitivity=1.0 # for mouse cursor
gaps_in=5
gaps_out=5
#gaps_in=0
#gaps_out=0
border_size=2
#border_size=1
col.active_border=0xFFCC241D
col.inactive_border=0xFF928374
col.group_border_active=0xFF98971A
col.group_border=0xFF928374
apply_sens_to_raw=0 # whether to apply the sensitivity to raw input (e.g. used by games where you aim using your mouse)
#no_border_on_floating=true
}
decoration {
#rounding=0
rounding=10
blur=1
blur_size=3
blur_passes=2
blur_new_optimizations=1
drop_shadow=1
shadow_range=15
shadow_render_power=2
shadow_ignore_window=1
shadow_offset= 2 4
shadow_scale=1
col.shadow=0xAF282828
}
gestures {
workspace_swipe=1
workspace_swipe_distance=200
workspace_swipe_invert=1
workspace_swipe_min_speed_to_force=20
workspace_swipe_cancel_ratio=0.5
}
bezier=dupa, 0.1, 0.9, 0.1, 1.05
animations {
enabled=1
animation=windows,1,4,dupa,popin
animation=windowsOut,1,7,dupa,slide
animation=border,1,15,default
animation=fade,1,10,default
animation=workspaces,1,5,dupa,slidevert
}
dwindle {
no_gaps_when_only=1
}
misc {
enable_swallow=0
swallow_regex=foot
focus_on_activate=true
vrr=1
animate_manual_resizes=false
animate_mouse_windowdragging=false
}
windowrulev2 = float, class:^(Tor Browser)$
windowrulev2 = float, class:^(foot)$
windowrulev2 = float, class:^(mpv)$
windowrulev2 = float, class:^(imv)$
windowrulev2 = float, class:^(Vieb)$
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = float, class:^(code), title: ^(Open*)
windowrulev2 = size 70% 70%, class:^(code), title: ^(Open*)
windowrulev2 = center, class: ^(code), title: ^(Open*)
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = size 960 670, title:^(ROG Control Center)$
bind = SUPER, RETURN, exec, footclient
bind = SUPER, W, exec, librewolf
bind = SUPERSHIFT, W, exec, firefox
bind = SUPER, Q, killactive
bind = SUPER, F, fullscreen, 0
bind = SUPER, M, fullscreen, 1
bind = SUPER, D, exec, ~/.config/rofi/launchers/type-4/launcher.sh
bind = SUPER, SPACE, togglefloating,
bind = SUPER, C, exec, rofi -show calc -modi calc -no-show-match -no-sort
bind = SUPERSHIFT, C, centerwindow
bind = SUPER, R, bringactivetotop
binde = SUPER, H, exec, hyprsome focus l
binde = SUPER, J, exec, hyprsome focus d
binde = SUPER, K, exec, hyprsome focus u
binde = SUPER, L, exec, hyprsome focus r
binde = SUPERCTRL, J, focusmonitor, l
binde = SUPERCTRL, K, focusmonitor, r
bind = SUPER, 1, exec, hyprsome workspace 1
bind = SUPER, 2, exec, hyprsome workspace 2
bind = SUPER, 3, exec, hyprsome workspace 3
bind = SUPER, 4, exec, hyprsome workspace 4
bind = SUPER, 5, exec, hyprsome workspace 5
bind = SUPER, 6, exec, hyprsome workspace 6
bind = SUPER, 7, exec, hyprsome workspace 7
bind = SUPER, 8, exec, hyprsome workspace 8
bind = SUPER, 9, exec, hyprsome workspace 9
bind = SUPER, 0, exec, hyprsome workspace 10
bind = SUPERSHIFT, 1, exec, hyprsome move 1
bind = SUPERSHIFT, 2, exec, hyprsome move 2
bind = SUPERSHIFT, 3, exec, hyprsome move 3
bind = SUPERSHIFT, 4, exec, hyprsome move 4
bind = SUPERSHIFT, 5, exec, hyprsome move 5
bind = SUPERSHIFT, 6, exec, hyprsome move 6
bind = SUPERSHIFT, 7, exec, hyprsome move 7
bind = SUPERSHIFT, 8, exec, hyprsome move 8
bind = SUPERSHIFT, 9, exec, hyprsome move 9
bindle = , XF86MonBrightnessUp, exec, ~/Scripts/notif_brightness.sh set +5%
bindle = , XF86MonBrightnessDown, exec, ~/Scripts/notif_brightness.sh set 5%-
bindl = , XF86AudioMedia, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioStop, exec, playerctl stop
bindl = , XF86AudioPrev, exec, playerctl previous
bindl = , XF86AudioNext, exec, playerctl next
bindle = , XF86AudioRaiseVolume, exec, ~/Scripts/notif_volume.sh -ui 5
bindle = , XF86AudioLowerVolume, exec, ~/Scripts/notif_volume.sh -ud 5
bindl = , XF86AudioMute, exec, ~/Scripts/notif_volume.sh --toggle-mute
# https://github.com/n3oney/shadower
bind = SUPER, S, exec, grimblast save area - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, S, exec, grimblast save area - | swappy -f - -o - | shadower | tee "$(xdg-user-dir PICTURES)/Screenshots/$(date +'screenshot-%Y%m%d%H%M%S.png')" | wl-copy
bind = SUPERSHIFT, R, exec, hyprctl reload
bind = SUPER, P, pin
bind = , XF86Launch1, exec, rog-control-center
binde = , XF86Launch3, exec, asusctl led-mode -n
bind = , XF86Launch4, exec, asusctl profile -n; pkill -SIGRTMIN+8 waybar
binde = , XF86KbdBrightnessUp, exec, asusctl -n
binde = , XF86KbdBrightnessDown, exec, asusctl -p
bind = , XF86TouchpadToggle, exec,
bind = SUPER, T, exec, grim -g "$(slurp)" -t ppm - | tesseract -l pol - - | wl-copy && notify-send "Copied text: " "\"$(wl-paste)\""
bind = SUPER, SEMICOLON, exec, ~/.config/rofi/powermenu/type-2/powermenu.sh
bind = SUPER, X, exec, keepassxc
bind = SUPERSHIFT, M, exec, ~/Scripts/man.sh
bind = SUPER, E, exec, wl-paste | spd-say -e -w -i 10
bind = SUPERCONTROL, E, exec, wl-paste | spd-say -e -w -i 10 -l pl
bind = SUPERSHIFT, E, exec, spd-say -C
bind = SUPER, G, togglegroup
binde = SUPERSHIFT, G, changegroupactive, f
bind = SUPERCONTROL, R, exec, replay-sorcery save
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
binds {
pass_mouse_when_bound=0
}
exec=killall -9 waybar; waybar
exec-once=foot --server
exec-once=hyprctl setcursor Bibata-Modern-Classic 24
exec-once=wl-paste --watch cliphist store
exec-once=hyprctl dispatch exec "swww init" && sleep 0.5
exec-once=swww img -o eDP-1 ~/wall0.jpg
exec-once=swww img -o HDMI-A-1 ~/wall1.jpg
exec-once=rog-control-center
exec-once=mullvad-vpn
exec-once=gammastep-indicator
exec-once=sleep 1 && keepassxc
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
#exec-once=foot -e nvim ~/todo.md
exec-once=nm-applet --indicator
exec-once=blueman-applet
exec-once=$HOME/.local/share/hyprload/hyprload.sh
# no black border on grimblast screenshots
layerrule = noanim, ^(selection)$
layerrule = blur, ^(waybar)$
# temporary fix to swaylock screenshoting rofi before locking
layerrule = noanim, ^(rofi)$
plugin {
csgo-vulkan-fix {
res_w = 2560
res_h = 1440
}
}
'';
};
};
}