190 lines
5.3 KiB
Nix
Executable file
190 lines
5.3 KiB
Nix
Executable file
{ config, pkgs, ... }:
|
|
|
|
let
|
|
flake-compat = builtins.fetchTarball "https://github.com/edolstra/flake-compat/archive/master.tar.gz";
|
|
|
|
hyprland = (import flake-compat {
|
|
src = builtins.fetchTarball "https://github.com/hyprwm/Hyprland/archive/master.tar.gz";
|
|
}).defaultNix;
|
|
in {
|
|
imports = [
|
|
hyprland.homeManagerModules.default
|
|
];
|
|
|
|
nixpkgs.overlays = [
|
|
(self: super: {
|
|
kwin-system76-scheduler-integration = pkgs.libsForQt5.callPackage ../system/syspkgs/kwin-system76-scheduler-integration.nix {};
|
|
})
|
|
];
|
|
|
|
home.username = "bolt";
|
|
home.homeDirectory = "/home/bolt";
|
|
|
|
home.packages = with pkgs; [
|
|
cmus
|
|
zellij
|
|
xonotic
|
|
nicotine-plus
|
|
|
|
fuzzel
|
|
grim
|
|
slurp
|
|
mako
|
|
swaybg
|
|
wlogout
|
|
wf-recorder
|
|
libnotify
|
|
waybar
|
|
|
|
pulseaudio
|
|
];
|
|
|
|
|
|
wayland.windowManager.sway = {
|
|
enable = true;
|
|
config = rec {
|
|
modifier = "Mod4";
|
|
terminal = "kitty";
|
|
gaps = {
|
|
inner = 15;
|
|
outer = 30;
|
|
};
|
|
};
|
|
wrapperFeatures = {
|
|
base = true;
|
|
gtk= true;
|
|
};
|
|
};
|
|
|
|
|
|
wayland.windowManager.hyprland = {
|
|
enable = true;
|
|
systemdIntegration = true;
|
|
nvidiaPatches = true;
|
|
extraConfig = ''
|
|
bind = SUPER, Return, exec, kitty
|
|
exec-once = waybar
|
|
exec-once = keepassxc
|
|
exec-once = mako
|
|
exec-once = ckb-next -c -b
|
|
exec-once = swaybg -i $HOME/Downloads/00026.png
|
|
exec-once = xrdb $HOME/.Xresources
|
|
|
|
input {
|
|
kb_layout=us
|
|
kb_options=caps:escape,escape:caps
|
|
}
|
|
|
|
general {
|
|
no_border_on_floating=true
|
|
layout=dwindle
|
|
border_size=3
|
|
gaps_in=10
|
|
gaps_out=20
|
|
}
|
|
|
|
dwindle {
|
|
preserve_split=true
|
|
pseudotile=true
|
|
use_active_for_splits=true
|
|
}
|
|
|
|
decoration {
|
|
rounding=8
|
|
blur=0
|
|
}
|
|
|
|
animations {
|
|
enabled=1
|
|
bezier=overshot,0.05,0.9,0.1,1.1
|
|
bezier=smooth,0.06,0.94,0.1,1.0
|
|
bezier=slosmooth,0.1,0.89,0.14,0.96
|
|
animation=windows,1,6,overshot,popin
|
|
animation=workspaces,1,6,smooth,slidevert
|
|
animation=specialWorkspace,1,6,overshot,slide
|
|
}
|
|
|
|
misc {
|
|
disable_hyprland_logo=true
|
|
disable_splash_rendering=true
|
|
}
|
|
|
|
monitor=,highrr,auto,1
|
|
|
|
bind=SUPER,Return,exec,kitty
|
|
bind=SUPER,F,exec,firefox
|
|
bind=SUPER,D,exec,fuzzel
|
|
|
|
bind=SUPER_SHIFT,Q,killactive
|
|
bind=SUPER_SHIFT,space,fullscreen,0
|
|
bind=SUPER,space,togglefloating
|
|
|
|
bind=SUPER,h,movefocus,l
|
|
bind=SUPER,l,movefocus,r
|
|
bind=SUPER,j,movefocus,d
|
|
bind=SUPER,k,movefocus,u
|
|
bind=SUPER_SHIFT,h,movewindow,l
|
|
bind=SUPER_SHIFT,l,movewindow,r
|
|
bind=SUPER_SHIFT,j,movewindow,d
|
|
bind=SUPER_SHIFT,k,movewindow,u
|
|
|
|
bind=SUPER,s,togglesplit
|
|
|
|
bind=SUPER,1,workspace,1
|
|
bind=SUPER,2,workspace,2
|
|
bind=SUPER,3,workspace,3
|
|
bind=SUPER,4,workspace,4
|
|
bind=SUPER_SHIFT,1,movetoworkspacesilent,1
|
|
bind=SUPER_SHIFT,2,movetoworkspacesilent,2
|
|
bind=SUPER_SHIFT,3,movetoworkspacesilent,3
|
|
bind=SUPER_SHIFT,4,movetoworkspacesilent,4
|
|
|
|
bind=SUPER_CTRL,h,resizeactive,-40 0
|
|
bind=SUPER_CTRL,l,resizeactive,40 0
|
|
bind=SUPER_CTRL,j,resizeactive,0 -40
|
|
bind=SUPER_CTRL,k,resizeactive,0 40
|
|
|
|
bind=SUPER,minus,togglespecialworkspace
|
|
bind=SUPER_SHIFT,minus,movetoworkspace,special
|
|
|
|
bind=SUPER_SHIFT,S,exec,grim -g "$(slurp)" -t png -o "$HOME/Pictures/$(date +%F_%H-%m-%S).png" && notify-send "Screenshot taken."
|
|
bind=SUPER_SHIFT_CTRL,S,exec,wf-recorder -a -f "$HOME/Videos/recording_($date +%F_%H-%m-%S).mp4" && notify-send "Recording desktop.."
|
|
bind=SUPER_SHIFT,E,exec,wlogout
|
|
|
|
bind=,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle && notify-send "Audio" "Mute $(if [ $(pactl get-sink-mute @DEFAULT_SINK@ | rg yes >
|
|
bind=,XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +5% && notify-send "Audio" "Volume at $(pactl get-sink-volume @DEFAULT_SINK@ | c>
|
|
bind=,XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -5% && notify-send "Audio" "Volume at $(pactl get-sink-volume @DEFAULT_SINK@ | c>
|
|
bind=,XF86AudioStop,exec,cmus-remote -s && notify-send "Music" "Playback stopped."
|
|
bind=,XF86AudioPlay,exec,cmus-remote -u && notify-send "Music" "Playback status: $(cmus-remote -Q | head -n 1 | cut -d' ' -f 2)"
|
|
bind=,XF86AudioPrev,exec,cmus-remote -r && notify-send "Music" "Now playing:\n$(cmus-remote -Q | rg -e 'artist|title' | cut -d' ' -f 3-)"
|
|
bind=,XF86AudioNext,exec,cmus-remote -n && notify-send "Music" "Now playing:\n$(cmus-remote -Q | rg -e 'artist|title' | cut -d' ' -f 3-)"
|
|
'';
|
|
};
|
|
|
|
|
|
programs.mako = {
|
|
enable = true;
|
|
anchor = "bottom-right";
|
|
borderRadius = 8;
|
|
borderSize = 2;
|
|
defaultTimeout = 3500;
|
|
ignoreTimeout = true;
|
|
font = "Visby Regular 14";
|
|
};
|
|
|
|
|
|
systemd.user.startServices = true;
|
|
systemd.user.services."com.system76.Scheduler.dbusproxy" = {
|
|
Unit = {
|
|
Description = "the system76 process scheduler kwin dbus proxy";
|
|
Requires = [ "dbus.service" ];
|
|
};
|
|
Install = {
|
|
WantedBy = [ "graphical-session.target" "default.target" ];
|
|
};
|
|
Service = {
|
|
ExecStart = ''${pkgs.kwin-system76-scheduler-integration}/bin/kwin-system76-scheduler-dbus-proxy.sh'';
|
|
};
|
|
};
|
|
|
|
}
|