112 lines
3 KiB
Nix
Executable file
112 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
|
|
../foreign/dotfiles/modules/regreet.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
|
|
|
|
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'';
|
|
};
|
|
};
|
|
|
|
}
|