nix/home/bolt.nix
2023-04-10 18:37:28 +10:00

111 lines
3 KiB
Nix
Executable file

{ config, pkgs, lib, ... }:
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;
wlogout_style_base = dots/wlogout/style.css;
wlogout_style = pkgs.runCommandLocal "wlogout_style_base" {wlogpath = lib.strings.escape ["/"] "${pkgs.wlogout}";} ''
cp ${wlogout_style_base} $out
sed -i "s/\/usr\/share\/wlogout/$wlogpath\/share\/wlogout/g" $out
sed -i "s/\/etc\/wlogout/$wlogpath\/etc\/wlogout/g" $out
'';
in {
imports = [
hyprland.homeManagerModules.default
../foreign/dotfiles/home/programs/eww/default.nix
];
nixpkgs.overlays = [
(self: super: {
kwin-system76-scheduler-integration = pkgs.libsForQt5.callPackage ../system/syspkgs/kwin-system76-scheduler-integration.nix {};
hyprland-s76 = pkgs.callPackage ../system/syspkgs/hyprland-system76-scheduler-integration.nix {};
swayosd = pkgs.callPackage ./homepkgs/swayosd.nix {};
})
];
programs.eww-hyprland = {
enable = true;
colors = builtins.readFile dots/eww/colors.scss;
};
home.username = "bolt";
home.homeDirectory = "/home/bolt";
home.packages = with pkgs; [
zellij
xonotic
nicotine-plus
glib # for gsettings
fuzzel
grim
slurp
swaybg
wlogout
wf-recorder
libnotify
xorg.xrdb
swayidle
swaynotificationcenter
swayosd
waylock
playerctl
];
xdg.configFile = builtins.mapAttrs (name: value: { enable=true; text=builtins.readFile value; })
{
"wlogout/layout" = dots/wlogout/layout;
"wlogout/style.css" = wlogout_style;
"swaync/config.json" = dots/swaync/config.json;
"swaync/configSchema.json" = dots/swaync/configSchema.json;
"swaync/style.css" = dots/swaync/style.css;
"fuzzel/fuzzel.ini" = dots/fuzzel/fuzzel.ini;
};
wayland.windowManager.hyprland = {
enable = true;
systemdIntegration = true;
nvidiaPatches = true;
xwayland = {
enable = true;
hidpi = false;
};
recommendedEnvironment = true;
extraConfig = builtins.readFile dots/hyprland/hyprland.conf;
};
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'';
};
};
systemd.user.services."hyprland-system76" = {
Unit = {
Description = "the hyprland process scheduler hook";
Requires = [ "dbus.service" ];
};
Install = {
WantedBy = [ "graphical-session.target" "default.target" ];
};
Service = {
ExecStart = ''${pkgs.hyprland-s76}/bin/hyprland-system76-scheduler-hook.sh'';
};
};
}