mirror of
https://codeberg.org/muon/home.git
synced 2025-12-06 08:07:45 +00:00
Add hyprland
Add unfree
This commit is contained in:
parent
d676358f1a
commit
31ffdc94e8
18 changed files with 185 additions and 44 deletions
12
flake.lock
generated
12
flake.lock
generated
|
|
@ -170,11 +170,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716457508,
|
"lastModified": 1717316182,
|
||||||
"narHash": "sha256-ZxzffLuWRyuMrkVVq7wastNUqeO0HJL9xqfY1QsYaqo=",
|
"narHash": "sha256-Xi0EpZcu39N0eW7apLjFfUOR9y80toyjYizez7J1wMI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "850cb322046ef1a268449cf1ceda5fd24d930b05",
|
"rev": "9b53a10f4c91892f5af87cf55d08fba59ca086af",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -206,11 +206,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716509168,
|
"lastModified": 1717196966,
|
||||||
"narHash": "sha256-4zSIhSRRIoEBwjbPm3YiGtbd8HDWzFxJjw5DYSDy1n8=",
|
"narHash": "sha256-yZKhxVIKd2lsbOqYd5iDoUIwsRZFqE87smE2Vzf6Ck0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bfb7a882678e518398ce9a31a881538679f6f092",
|
"rev": "57610d2f8f0937f39dbd72251e9614b1561942d8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
inherit system;
|
inherit system;
|
||||||
};
|
};
|
||||||
|
|
||||||
utils = import ./utils.nix { inherit pkgs inputs system; };
|
utils = import ./utils.nix { inherit inputs system; };
|
||||||
in {
|
in {
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
muon = utils.mkHost ./hosts/muon/configuration.nix;
|
muon = utils.mkHost ./hosts/muon/configuration.nix;
|
||||||
|
|
|
||||||
|
|
@ -25,13 +25,15 @@ in {
|
||||||
|
|
||||||
# Modules
|
# Modules
|
||||||
mods.desktop.enable = true;
|
mods.desktop.enable = true;
|
||||||
|
mods.desktop.wayland.enable = true;
|
||||||
mods.theme.enable = true;
|
mods.theme.enable = true;
|
||||||
mods.theme.wallpaper = ./wallpaper.png;
|
mods.theme.wallpaper = ./wallpaper.png;
|
||||||
programs.hyprland = {
|
# programs.hyprland.enable = true;
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
mods.unfree.steam.enable = true;
|
||||||
};
|
mods.unfree.nvidia.enable = true;
|
||||||
|
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
opengl.enable = true;
|
opengl.enable = true;
|
||||||
nvidia.modesetting.enable = true;
|
nvidia.modesetting.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -8,14 +8,6 @@ let cfg = osConfig.mods; in {
|
||||||
# mods.module.enable = true;
|
# mods.module.enable = true;
|
||||||
programs.helix.enable = true;
|
programs.helix.enable = true;
|
||||||
programs.qutebrowser.enable = true;
|
programs.qutebrowser.enable = true;
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
systemd.enable = true;
|
|
||||||
settings = {
|
|
||||||
debug.disable_logs = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Version of first install
|
# Version of first install
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{ pkgs, lib, ... }: {
|
{ pkgs, lib, config, osConfig, ... }: {
|
||||||
imports = [
|
imports = [
|
||||||
./terminal
|
./terminal
|
||||||
|
./desktop
|
||||||
];
|
];
|
||||||
|
|
||||||
# Let Home Manager install and manage itself
|
# Let Home Manager install and manage itself
|
||||||
|
|
|
||||||
12
modules/home/desktop/default.nix
Normal file
12
modules/home/desktop/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ pkgs, lib, osConfig, ... }:
|
||||||
|
let
|
||||||
|
cfg = osConfig.mods.desktop;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./hyprland.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.wayland.enable {
|
||||||
|
mods.hyprland.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
45
modules/home/desktop/hyprland.nix
Normal file
45
modules/home/desktop/hyprland.nix
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
{ pkgs, lib, config, ... }: {
|
||||||
|
options.mods.hyprland.enable = lib.mkEnableOption "enables hyprland";
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.hyprland.enable {
|
||||||
|
programs.waybar.enable = true;
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
# systemd.enable = true;
|
||||||
|
settings = {
|
||||||
|
exec-once = "${lib.getExe pkgs.waybar}";
|
||||||
|
input = {
|
||||||
|
kb_options = "caps:escape";
|
||||||
|
};
|
||||||
|
"$mod" = "SUPER";
|
||||||
|
bind = [
|
||||||
|
"$mod, F, exec, qutebrowser"
|
||||||
|
"$mod, Return, exec, alacritty"
|
||||||
|
|
||||||
|
"$mod SHIFT, Q, killactive,"
|
||||||
|
"$mod SHIFT, X, exit,"
|
||||||
|
|
||||||
|
"$mod, H, movefocus, l"
|
||||||
|
"$mod, J, movefocus, d"
|
||||||
|
"$mod, K, movefocus, u"
|
||||||
|
"$mod, L, movefocus, r"
|
||||||
|
]
|
||||||
|
++ (builtins.concatLists (builtins.genList (
|
||||||
|
# workspaces
|
||||||
|
# binds $mod + [shift +] {1..10} to [move to] workspace {1..10}
|
||||||
|
x: let
|
||||||
|
ws = let
|
||||||
|
c = (x + 1) / 10;
|
||||||
|
in
|
||||||
|
builtins.toString (x + 1 - (c * 10));
|
||||||
|
in [
|
||||||
|
"$mod, ${ws}, workspace, ${toString (x + 1)}"
|
||||||
|
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
|
||||||
|
]
|
||||||
|
) 10) );
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }: {
|
||||||
options = {
|
options.mods.terminal.emulator.enable = lib.mkEnableOption "enables terminal emulator";
|
||||||
mods.terminal.emulator.enable = lib.mkEnableOption "enables terminal emulator";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.terminal.emulator.enable {
|
config = lib.mkIf config.mods.terminal.emulator.enable {
|
||||||
programs.alacritty.enable = true;
|
programs.alacritty.enable = true;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
{ pkgs, lib, ... }: {
|
{ pkgs, lib, ... }: {
|
||||||
config = {
|
networking.networkmanager.enable = true;
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,7 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }: {
|
||||||
options = {
|
options.mods.user.name = lib.mkOption {
|
||||||
mods.user.name = lib.mkOption {
|
default = "muon";
|
||||||
default = "muon";
|
description = "username of the main system user";
|
||||||
description = "username of the main system user";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
|
|
||||||
|
|
@ -4,5 +4,8 @@
|
||||||
./system
|
./system
|
||||||
./desktop
|
./desktop
|
||||||
./theme
|
./theme
|
||||||
|
|
||||||
|
# </3
|
||||||
|
./unfree
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,26 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.mods.desktop;
|
||||||
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
./xorg.nix
|
./xorg.nix
|
||||||
./sound.nix
|
./sound.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options.mods.desktop = {
|
||||||
mods.desktop.enable = lib.mkEnableOption "enables graphical desktop environment";
|
enable = lib.mkEnableOption "enables graphical desktop environment";
|
||||||
|
wayland.enable = lib.mkEnableOption "enables hyprland";
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkIf config.mods.desktop.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
mods.xorg.enable = true;
|
mods.xorg.enable = true;
|
||||||
mods.sound.enable = true;
|
mods.sound.enable = true;
|
||||||
|
mods.desktop.wayland.enable = lib.mkDefault false;
|
||||||
|
programs.hyprland = if cfg.wayland.enable then {
|
||||||
|
enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
|
} else {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }: {
|
||||||
options = {
|
options.mods.sound.enable = lib.mkEnableOption "enables sound";
|
||||||
mods.sound.enable = lib.mkEnableOption "enables sound";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.sound.enable {
|
config = lib.mkIf config.mods.sound.enable {
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
{ pkgs, lib, config, ... }: {
|
{ pkgs, lib, config, ... }: {
|
||||||
options = {
|
options.mods.xorg.enable = lib.mkEnableOption "enables xorg";
|
||||||
mods.xorg.enable = lib.mkEnableOption "enables xorg";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf config.mods.xorg.enable {
|
config = lib.mkIf config.mods.xorg.enable {
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
|
|
|
||||||
19
modules/nixos/unfree/default.nix
Normal file
19
modules/nixos/unfree/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.mods.unfree;
|
||||||
|
mkPackages = mod:
|
||||||
|
if cfg.${mod}.enable then
|
||||||
|
cfg.${mod}.packages else [];
|
||||||
|
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
./steam.nix
|
||||||
|
./nvidia.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
|
builtins.elem (lib.getName pkg) (
|
||||||
|
(mkPackages "steam") ++
|
||||||
|
(mkPackages "nvidia")
|
||||||
|
);
|
||||||
|
}
|
||||||
42
modules/nixos/unfree/nvidia.nix
Normal file
42
modules/nixos/unfree/nvidia.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
{ pkgs, lib, config, ... }:
|
||||||
|
let
|
||||||
|
cfg = config.mods.unfree.nvidia;
|
||||||
|
in {
|
||||||
|
options.mods.unfree.nvidia = {
|
||||||
|
enable = lib.mkEnableOption {
|
||||||
|
default = false;
|
||||||
|
description = "enables proprietary nvidia drivers";
|
||||||
|
};
|
||||||
|
packages = lib.mkOption {
|
||||||
|
default = [ "nvidia-x11" ];
|
||||||
|
description = "unfree packages";
|
||||||
|
};
|
||||||
|
driver = lib.mkOption {
|
||||||
|
default = "stable";
|
||||||
|
description = "nvidiaPackages driver kernel package";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
# nixos.wiki/wiki/Nvidia
|
||||||
|
hardware.opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = false;
|
||||||
|
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages."${cfg.driver}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
24
modules/nixos/unfree/steam.nix
Normal file
24
modules/nixos/unfree/steam.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
{ pkgs, lib, config, ... }: {
|
||||||
|
options.mods.unfree.steam = {
|
||||||
|
enable = lib.mkEnableOption {
|
||||||
|
default = false;
|
||||||
|
description = "enables proprietary steam software";
|
||||||
|
};
|
||||||
|
packages = lib.mkOption {
|
||||||
|
default = [
|
||||||
|
"steam"
|
||||||
|
"steam-original"
|
||||||
|
"steam-run"
|
||||||
|
];
|
||||||
|
description = "unfree packages";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf config.mods.unfree.steam.enable {
|
||||||
|
# nixos.wiki/wiki/Steam
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
remotePlay.openFirewall = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{ pkgs, inputs, system, ... }: {
|
{ inputs, system, ... }: {
|
||||||
mkHost = host: inputs.nixpkgs.lib.nixosSystem {
|
mkHost = host: inputs.nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = { inherit inputs system pkgs; };
|
specialArgs = { inherit inputs system; };
|
||||||
|
|
||||||
modules = [
|
modules = [
|
||||||
host
|
host
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue