My Nix Configuration

[flake] add hyprland

pyrox.dev ffc936a3 ceac5311

verified
+23
.zed/settings.json
···
+
// Folder-specific settings
+
//
+
// For a full list of overridable settings, and general information on folder-specific settings,
+
// see the documentation: https://zed.dev/docs/configuring-zed#settings-files
+
{
+
"lsp": {
+
"nixd": {
+
"settings": {
+
"options": {
+
"nixos": {
+
"expr": "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.zaphod.options"
+
},
+
"home-manager": {
+
"expr": "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.zaphod.options.home-manager.users.type.getSubOptions []"
+
},
+
"flake-parts": {
+
"expr": "(builtins.getFlake (builtins.toString ./.)).debug.options"
+
}
+
}
+
}
+
}
+
}
+
}
+70 -1
flake.lock
···
"type": "github"
}
},
+
"flake-utils_3": {
+
"inputs": {
+
"systems": "systems_3"
+
},
+
"locked": {
+
"lastModified": 1731533236,
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
+
"owner": "numtide",
+
"repo": "flake-utils",
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
+
"type": "github"
+
},
+
"original": {
+
"owner": "numtide",
+
"repo": "flake-utils",
+
"type": "github"
+
}
+
},
"git-hooks": {
"inputs": {
"flake-compat": [
···
"type": "github"
}
},
+
"nixpkgs_4": {
+
"locked": {
+
"lastModified": 1759036355,
+
"narHash": "sha256-0m27AKv6ka+q270dw48KflE0LwQYrO7Fm4/2//KCVWg=",
+
"owner": "nixos",
+
"repo": "nixpkgs",
+
"rev": "e9f00bd893984bc8ce46c895c3bf7cac95331127",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nixos",
+
"ref": "nixos-unstable",
+
"repo": "nixpkgs",
+
"type": "github"
+
}
+
},
"root": {
"inputs": {
"agenix": "agenix",
···
"nixpkgs-stalwart-fix": "nixpkgs-stalwart-fix",
"stable": "stable",
"systems": "systems",
-
"tangled": "tangled"
+
"tangled": "tangled",
+
"vicinae": "vicinae"
}
},
"sqlite-lib-src": {
···
"type": "github"
}
},
+
"systems_3": {
+
"locked": {
+
"lastModified": 1681028828,
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+
"owner": "nix-systems",
+
"repo": "default",
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nix-systems",
+
"repo": "default",
+
"type": "github"
+
}
+
},
"tangled": {
"inputs": {
"flake-compat": "flake-compat_2",
···
"original": {
"type": "git",
"url": "https://tangled.org/@tangled.org/core"
+
}
+
},
+
"vicinae": {
+
"inputs": {
+
"flake-utils": "flake-utils_3",
+
"nixpkgs": "nixpkgs_4"
+
},
+
"locked": {
+
"lastModified": 1759946048,
+
"narHash": "sha256-cyL+LxzEQNPJ7s9y4g1HfUlgoIS0YzcAlyXP6nrKBnU=",
+
"owner": "vicinaehq",
+
"repo": "vicinae",
+
"rev": "96e7405c95f7967ed55689a1d563a10f5e1f24e7",
+
"type": "github"
+
},
+
"original": {
+
"owner": "vicinaehq",
+
"repo": "vicinae",
+
"type": "github"
}
}
},
+7
flake.nix
···
"https://cache.nixos.org"
"https://nix-community.cachix.org"
"https://install.determinate.systems"
+
"https://vicinae.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM="
+
"vicinae.cachix.org-1:1kDrfienkGHPYbkpNj1mWTr7Fm1+zcenzgTizIcI3oc="
];
cores = 0;
max-jobs = 2;
···
url = "git+https://git.pyrox.dev/pyrox/pkgs";
inputs.nixpkgs.follows = "nixpkgs";
};
+
vicinae = {
+
url = "github:vicinaehq/vicinae";
+
};
tangled = {
url = "git+https://tangled.org/@tangled.org/core";
};
···
};
formatter = pkgs.nixfmt;
};
+
# Enable debugging for nixd
+
debug = true;
};
}
+1
homeModules/all-modules.nix
···
inputs.nix-index-database.homeModules.nix-index
inputs.ctp.homeModules.catppuccin
+
inputs.vicinae.homeManagerModules.default
];
}
+4 -7
homeModules/profiles/gui/default.nix
···
{
options.py.profiles.gui.enable = mkEnableOption "GUI Profile";
config = lib.mkIf cfg.enable {
-
home.sessionVariables = {
-
XDG_CURRENT_DESKTOP = "sway";
-
};
py = {
programs = {
chromium.enable = mkDefault true;
···
};
services = {
gpg-agent.enable = mkDefault true;
-
kanshi.enable = mkDefault true;
+
kanshi.enable = mkDefault false;
kdeconnect.enable = mkDefault true;
-
mako.enable = mkDefault true;
+
mako.enable = mkDefault false;
+
vicinae.enable = mkDefault true;
swayidle.enable = mkDefault true;
syncthing.enable = mkDefault false;
};
···
home.packages = with pkgs; [
chatterino2
equibop
-
grim
krita
libappindicator
libappindicator-gtk3
lutris
prismlauncher
pwvucontrol
+
hyprshot
satty
-
slurp
ueberzug
(olympus.overrideAttrs (_: {
celesteWrapper = osConfig.programs.steam.package.run;
+1 -1
homeModules/programs/wlogout/default.nix
···
}
{
label = "lock";
-
action = lib.getExe pkgs.swaylock-effects;
+
action = "hyprlock";
text = "Lock";
keybind = "l";
}
+1 -1
homeModules/programs/wlogout/style.nix
···
background-image: none;
}
window {
-
background-image: image(url("/home/thehedgehog/bgs/ctp-waves.png"), url("/home/thehedgehog/bgs/ctp-waves.png"));
+
background-image: image(url("/home/thehedgehog/bgs/wallpapers/xenia/chimmie_valentine_xenia.png"), url("/home/thehedgehog/bgs/wallpapers/xenia/chimmie_valentine_xenia.png"));
background-size: cover;
}
button {
+1
homeModules/services/default.nix
···
./mako
./swayidle
./syncthing
+
./vicinae
];
}
+3 -1
homeModules/services/mako/default.nix
···
{ lib, config, ... }:
let
cfg = config.py.services.mako;
+
hl = config.wayland.windowManager.hyprland;
in
{
options.py.services.mako.enable = lib.mkEnableOption "mako";
# avoid IFD
config.catppuccin.mako.enable = false;
-
config.services.mako = lib.mkIf cfg.enable {
+
# Hyprpanel with hyprland uses its own notification daemon
+
config.services.mako = lib.mkIf (cfg.enable && !hl.enable) {
enable = true;
settings = {
+1 -1
homeModules/services/swayidle/default.nix
···
{
options.py.services.swayidle.enable = lib.mkEnableOption "swayidle";
config.services.swayidle = lib.mkIf cfg.enable {
-
enable = true;
+
enable = false;
events = [
{
event = "lock";
+15
homeModules/services/vicinae/default.nix
···
+
{
+
config,
+
lib,
+
...
+
}:
+
let
+
cfg = config.py.services.vicinae;
+
in
+
{
+
options.py.services.vicinae.enable = lib.mkEnableOption "Vicinae";
+
config.services.vicinae = lib.mkIf cfg.enable {
+
enable = true;
+
autoStart = true;
+
};
+
}
+2 -1
homeModules/theming/default.nix
···
};
home.pointerCursor = mkIf pro.gui.enable {
package = pkgs.catppuccin-cursors.mochaBlue;
-
name = "Catppuccin-Mocha-Blue";
+
name = "catppuccin-mocha-blue-cursors";
gtk.enable = true;
+
hyprcursor.enable = true;
};
gtk = mkIf pro.gui.enable {
enable = true;
+1
homeModules/wayland/default.nix
···
./keybindings.nix
./waybar.nix
./swaylock.nix
+
./hyprland
];
}
+35
homeModules/wayland/hyprland/default.nix
···
+
{
+
pkgs,
+
config,
+
osConfig,
+
lib,
+
...
+
}:
+
let
+
c = osConfig.py.programs.hyprland;
+
cfg = config.wayland.windowManager.hyprland;
+
in
+
{
+
imports = [
+
./hyprpanel.nix
+
./services.nix
+
./hypridle.nix
+
./hyprlock.nix
+
];
+
config = {
+
catppuccin.hyprland.enable = c.enable;
+
wayland.windowManager.hyprland = {
+
enable = c.enable;
+
# Per https://nix-community.github.io/home-manager/options.xhtml#opt-wayland.windowManager.hyprland.package
+
package = null;
+
systemd = {
+
enable = true;
+
enableXdgAutostart = true;
+
};
+
settings = import ./settings.nix;
+
plugins = [
+
pkgs.hyprlandPlugins.hy3
+
];
+
};
+
};
+
}
+9
homeModules/wayland/hyprland/env.nix
···
+
{
+
env = [
+
"WLR_NO_HARDWARE_CURSORS, 1"
+
"WLR_RENDERER_ALLOW_SOFTWARE, 1"
+
"NIXOS_OZONE_WL, 1"
+
"XDG_SESSION_TYPE, wayland"
+
"QT_QPA_PLATFORM, wayland"
+
];
+
}
+18
homeModules/wayland/hyprland/hypridle.nix
···
+
{
+
config,
+
lib,
+
...
+
}:
+
let
+
cfg = config.wayland.windowManager.hyprland;
+
in
+
{
+
config.services.hypridle = lib.mkIf cfg.enable {
+
enable = false;
+
settings = {
+
general = {
+
lock_cmd = "hyprlock";
+
};
+
};
+
};
+
}
+93
homeModules/wayland/hyprland/hyprlock.nix
···
+
{
+
config,
+
lib,
+
...
+
}:
+
let
+
cfg = config.wayland.windowManager.hyprland;
+
in
+
{
+
config.catppuccin.hyprlock.enable = cfg.enable;
+
config.catppuccin.hyprlock.useDefaultConfig = false;
+
config.programs.hyprlock = lib.mkIf cfg.enable {
+
enable = true;
+
settings = {
+
general = {
+
hide_cursor = true;
+
immediate_render = true;
+
text_trim = true;
+
};
+
};
+
extraConfig = ''
+
$accent = $mauve
+
$accentAlpha = $mauveAlpha
+
$font = Blex Mono Nerd Font
+
+
# BACKGROUND
+
background {
+
monitor =
+
path = $HOME/bgs/wallpapers/xenia/chimmie_valentine_xenia.png
+
blur_passes = 1
+
color = $base
+
}
+
+
# TIME
+
label {
+
monitor =
+
text = $TIME
+
color = $text
+
font_size = 90
+
font_family = $font
+
position = -30, 0
+
halign = right
+
valign = top
+
}
+
+
# DATE
+
label {
+
monitor =
+
text = cmd[update:43200000] date +"%A, %d %B %Y"
+
color = $text
+
font_size = 25
+
font_family = $font
+
position = -30, -150
+
halign = right
+
valign = top
+
}
+
+
# USER AVATAR
+
image {
+
monitor =
+
path = $HOME/.face
+
size = 100
+
border_color = $accent
+
position = 0, 75
+
halign = center
+
valign = center
+
}
+
+
# INPUT FIELD
+
input-field {
+
monitor =
+
size = 300, 60
+
outline_thickness = 4
+
dots_size = 0.2
+
dots_spacing = 0.2
+
dots_center = true
+
outer_color = $accent
+
inner_color = $surface0
+
font_color = $text
+
fade_on_empty = false
+
placeholder_text = <span foreground="##$textAlpha"><i>󰌾 Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
+
hide_input = false
+
check_color = $accent
+
fail_color = $red
+
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
+
capslock_color = $yellow
+
position = 0, -47
+
halign = center
+
valign = center
+
}
+
'';
+
};
+
}
+14
homeModules/wayland/hyprland/hyprpanel.nix
···
+
{
+
config,
+
lib,
+
...
+
}:
+
let
+
cfg = config.wayland.windowManager.hyprland;
+
in
+
{
+
programs.hyprpanel = lib.mkIf cfg.enable {
+
enable = true;
+
systemd.enable = true;
+
};
+
}
+98
homeModules/wayland/hyprland/keybindings.nix
···
+
{
+
"$mod" = "SUPER";
+
"$satty" = "satty -f -";
+
+
binde = [
+
# Media binds that can be held and repeated
+
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
+
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
+
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
+
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
+
];
+
+
bind = [
+
"SUPER_SHIFT, F, exec, MOZ_DISABLE_RDD_SANDBOX=1 firefox"
+
"$mod, Return, exec, ghostty"
+
"$mod, X, exec, wlogout"
+
"$mod, D, exec, vicinae toggle"
+
"SUPER_SHIFT, E, exit"
+
+
# Media Binds
+
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
+
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
+
", XF86AudioPlay, exec, playerctl play-pause"
+
", XF86AudioNext, exec, playerctl next"
+
", XF86AudioPrev, exec, playerctl previous"
+
+
# Workspace binds
+
"$mod, 1, workspace, 01"
+
"SUPER_SHIFT, 1, hy3:movetoworkspace, 01, follow, warp"
+
"$mod, 2, workspace, 02"
+
"SUPER_SHIFT, 2, hy3:movetoworkspace, 02, follow, warp"
+
"$mod, 3, workspace, 03"
+
"SUPER_SHIFT, 3, hy3:movetoworkspace, 03, follow, warp"
+
"$mod, 4, workspace, 04"
+
"SUPER_SHIFT, 4, hy3:movetoworkspace, 04, follow, warp"
+
"$mod, 5, workspace, 05"
+
"SUPER_SHIFT, 5, hy3:movetoworkspace, 05, follow, warp"
+
"$mod, 6, workspace, 06"
+
"SUPER_SHIFT, 6, hy3:movetoworkspace, 06, follow, warp"
+
"$mod, 7, workspace, 07"
+
"SUPER_SHIFT, 7, hy3:movetoworkspace, 07, follow, warp"
+
"$mod, 8, workspace, 08"
+
"SUPER_SHIFT, 8, hy3:movetoworkspace, 08, follow, warp"
+
"$mod, 9, workspace, 09"
+
"SUPER_SHIFT, 9, hy3:movetoworkspace, 09, follow, warp"
+
"$mod, 0, workspace, 10"
+
"SUPER_SHIFT, 0, hy3:movetoworkspace, 10, follow, warp"
+
# Scratchpad
+
"SUPER_SHIFT, -, movetoworkspace, special"
+
"$mod, -, togglespecialworkspace"
+
+
# Window Management
+
"SUPER_SHIFT, Up, hy3:movewindow, up, once, visible"
+
"SUPER_SHIFT, K, hy3:movewindow, up, once, visible"
+
"$mod, Up, hy3:movefocus, up, visible, warp"
+
"$mod, K, hy3:movefocus, up, visible, warp"
+
+
"SUPER_SHIFT, Right, hy3:movewindow, right, once, visible"
+
"SUPER_SHIFT, L, hy3:movewindow, right, once, visible"
+
"$mod, Right, hy3:movefocus, right, visible, warp"
+
"$mod, L, hy3:movefocus, right, visible, warp"
+
+
"SUPER_SHIFT, Left, hy3:movewindow, left, once, visible"
+
"SUPER_SHIFT, H, hy3:movewindow, left, once, visible"
+
"$mod, Left, hy3:movefocus, left, visible, warp"
+
"$mod, H, hy3:movefocus, left, visible, warp"
+
+
"SUPER_SHIFT, Down, hy3:movewindow, down, once, visible"
+
"SUPER_SHIFT, J, hy3:movewindow, down, once, visible"
+
"$mod, Down, hy3:movefocus, down, visible, warp"
+
"$mod, J, hy3:movefocus, down, visible, warp"
+
+
"SUPER_SHIFT, Q, killactive"
+
"$mod, F, fullscreen, 0"
+
"$mod, Space, hy3:togglefocuslayer"
+
"SUPER_SHIFT, Space, togglefloating, active"
+
+
# Screenshots
+
"SHIFT, F3, exec, hyprshot -m output --raw -z -s | $satty"
+
"SHIFT, F4, exec, hyprshot -m region --raw -z -s | $satty"
+
];
+
+
bindm = [
+
"$mod, mouse:272, movewindow"
+
];
+
+
# Unbind a bunch of default keybinds
+
unbind = [
+
"$mod, C"
+
"$mod, E"
+
"$mod, J"
+
"$mod, M"
+
"$mod, P"
+
"$mod, Q"
+
"$mod, R"
+
"$mod, V"
+
];
+
}
+8
homeModules/wayland/hyprland/monitors.nix
···
+
{
+
monitor = [
+
"eDP-1, 2560x1600@165, 0x0, 1, vrr, 1"
+
"desc:Acer Technologies SA241Y 0x1497CF17, preferred, 2560x0, 1"
+
# Fallback for random monitors
+
", preferred, auto, 1"
+
];
+
}
+7
homeModules/wayland/hyprland/plugins.nix
···
+
{
+
plugin = {
+
hy3 = {
+
no_gaps_when_only = 1;
+
};
+
};
+
}
+10
homeModules/wayland/hyprland/services.nix
···
+
{
+
config,
+
...
+
}:
+
let
+
cfg = config.wayland.windowManager.hyprland;
+
in
+
{
+
services.hyprpolkitagent.enable = cfg.enable;
+
}
+22
homeModules/wayland/hyprland/settings.nix
···
+
let
+
keybinds = import ./keybindings.nix;
+
monitors = import ./monitors.nix;
+
variables = import ./variables.nix;
+
plugins = import ./plugins.nix;
+
env = import ./env.nix;
+
windowrules = import ./windowrules.nix;
+
in
+
{
+
exec-once = [
+
"hyprpanel"
+
];
+
animation = [
+
"global, 1, 4, default"
+
];
+
}
+
// keybinds
+
// monitors
+
// variables
+
// plugins
+
// env
+
// windowrules
+33
homeModules/wayland/hyprland/variables.nix
···
+
# https://wiki.hypr.land/Configuring/Variables
+
{
+
general = {
+
gaps_in = 1;
+
gaps_out = 1;
+
gaps_workspaces = 80;
+
layout = "hy3";
+
resize_on_border = true;
+
};
+
decoration = {
+
blur.enabled = false;
+
shadow.enabled = false;
+
};
+
misc = {
+
disable_hyprland_logo = true;
+
disable_splash_rendering = true;
+
font_family = "Inter";
+
mouse_move_focuses_monitor = true;
+
};
+
input = {
+
kb_options = "caps:escape";
+
repeat_delay = 300;
+
touchpad = {
+
scroll_factor = 1.5;
+
tap_button_map = "lmr";
+
tap-and-drag = false;
+
};
+
};
+
ecosystem = {
+
no_update_news = true;
+
no_donation_nag = true;
+
};
+
}
+6
homeModules/wayland/hyprland/windowrules.nix
···
+
{
+
windowrule = [
+
"immediate, content game, title:Celeste"
+
"tile, title:Melvor Idle"
+
];
+
}
+4 -3
homeModules/wayland/waybar.nix
···
}:
let
cfg = config.py.profiles.gui;
+
sway = config.wayland.windowManager.sway;
in
{
config = {
-
xdg.configFile."waybar/mocha.css" = lib.mkIf cfg.enable {
+
xdg.configFile."waybar/mocha.css" = lib.mkIf (cfg.enable && sway.enable) {
source = ./waybar-mocha.css;
recursive = false;
};
catppuccin.waybar.enable = false;
-
programs.waybar = lib.mkIf cfg.enable {
-
enable = lib.mkDefault true;
+
programs.waybar = lib.mkIf (cfg.enable && sway.enable) {
+
enable = lib.mkDefault false;
systemd.enable = true;
systemd.target = "sway-session.target";
style = ./waybar-style.css;
+1
hosts/default.nix
···
inputs.self.nixosModules.defaultConfig
inputs.self.nixosModules.defaultUsers
inputs.self.nixosModules.firefox
+
inputs.self.nixosModules.hyprland
inputs.self.nixosModules.forgejo-runner
inputs.self.nixosModules.hm-pyrox
inputs.self.nixosModules.hm-thehedgehog
+1
hosts/zaphod/default.nix
···
dconf.enable = true;
firefox.enable = true;
fish.enable = true;
+
hyprland.enable = true;
less.enable = true;
neovim.enable = true;
noisetorch.enable = true;
+1 -6
hosts/zaphod/programs/sway.nix
···
-
{ pkgs, ... }:
{
programs.sway = {
-
enable = true;
-
extraPackages = with pkgs; [
-
swaylock-effects
-
swayidle
-
];
+
enable = false;
wrapperFeatures.base = true;
wrapperFeatures.gtk = true;
};
img.png

This is a binary file and will not be displayed.

+1
nixosModules/default.nix
···
# Programs
chromium = import ./programs/chromium;
firefox = import ./programs/firefox;
+
hyprland = import ./programs/hyprland;
miscPrograms = import ./programs/misc;
neovim = import ./programs/neovim;
-123
nixosModules/homes/.default.nix.bak
···
-
{
-
lib,
-
withSystem,
-
inputs,
-
...
-
}:
-
let
-
mkHM = withSystem "x86_64-linux" (
-
{ pkgs, system, ... }:
-
extra:
-
inputs.home-manager.lib.homeManagerConfiguration (
-
lib.mergeAttrs {
-
inherit pkgs;
-
extraSpecialArgs = { inherit inputs system; };
-
} extra
-
)
-
);
-
defaultModules = [
-
inputs.ctp.homeModules.default
-
inputs.self.homeModules.theming
-
inputs.self.homeModules.programs
-
inputs.self.homeModules.services
-
];
-
-
in
-
{
-
flake.homeConfigurations = {
-
marvin-pyrox = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./pyrox
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
marvin-thehedgehog = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./thehedgehog
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
prefect-pyrox = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./pyrox
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
prefect-thehedgehog = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./thehedgehog
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
thought-pyrox = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./pyrox
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
thought-thehedgehog = mkHM {
-
modules = [
-
inputs.self.homeModules.profiles
-
./thehedgehog
-
{
-
py.profiles.server.enable = true;
-
}
-
]
-
++ defaultModules;
-
};
-
zaphod-pyrox = withSystem "x86_64-linux" (
-
{ pkgs, ... }:
-
inputs.home-manager.lib.homeManagerConfiguration {
-
inherit pkgs;
-
modules = [
-
inputs.self.homeModules.profiles
-
{
-
imports = [
-
./pyrox
-
"${inputs.self}/homeConfigurations/pyrox@zaphod"
-
];
-
py.profiles.desktop.enable = true;
-
}
-
]
-
++ defaultModules;
-
}
-
);
-
zaphod-thehedgehog = withSystem "x86_64-linux" (
-
{ pkgs, ... }:
-
inputs.home-manager.lib.homeManagerConfiguration {
-
inherit pkgs;
-
modules = [
-
inputs.self.homeModules.profiles
-
{
-
imports = [
-
./thehedgehog
-
"${inputs.self}/homeConfigurations/thehedgehog@zaphod"
-
];
-
py.profiles.desktop.enable = true;
-
}
-
]
-
++ defaultModules;
-
}
-
);
-
};
-
}
+20
nixosModules/programs/hyprland/default.nix
···
+
{
+
config,
+
lib,
+
...
+
}:
+
let
+
cfg = config.py.programs.hyprland;
+
in
+
{
+
options = {
+
py.programs.hyprland.enable = lib.mkEnableOption "Hyprland";
+
};
+
config = lib.mkIf cfg.enable {
+
programs.hyprland = {
+
enable = true;
+
xwayland.enable = true;
+
};
+
programs.hyprlock.enable = cfg.enable;
+
};
+
}