Personal Nix setup

Add home hyprland config

Changed files
+95 -31
home
machines
modules
desktop
+3 -4
flake.lock
···
]
},
"locked": {
-
"lastModified": 1745557122,
-
"narHash": "sha256-eqSo9ugzsqhFgaDFYUZj943nurlX4L6f+AW0skJ4W+M=",
"owner": "nix-community",
"repo": "home-manager",
-
"rev": "dd26f75fb4ec1c731d4b1396eaf4439ce40a91c1",
"type": "github"
},
"original": {
"owner": "nix-community",
-
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
···
]
},
"locked": {
+
"lastModified": 1746193516,
+
"narHash": "sha256-7KqthzbP7LbJpo6DtxlTg2Fqcs7HL1iV1vd1mM8q/u0=",
"owner": "nix-community",
"repo": "home-manager",
+
"rev": "355a6b937d07a95cb0b753ef513bcaad09128dea",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
+1 -1
flake.nix
···
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
-
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
···
flake-utils.url = "github:numtide/flake-utils";
home-manager = {
+
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
+1 -1
home/base/shell.nix
···
src = pkgs.pure-prompt;
}
];
-
initExtra = /*sh*/''
setopt NO_NOMATCH
stty -ixon -ixoff
'';
···
src = pkgs.pure-prompt;
}
];
+
initContent = /*sh*/''
setopt NO_NOMATCH
stty -ixon -ixoff
'';
+1
home/default.nix
···
imports = [
./base
./development
./apps
];
}
···
imports = [
./base
./development
+
./desktop
./apps
];
}
+16
home/desktop/default.nix
···
···
+
{ lib, ... }:
+
+
with lib; {
+
options.modules.desktop = {
+
enable = mkOption {
+
default = false;
+
example = true;
+
description = "Whether to enable Deskop options.";
+
type = types.bool;
+
};
+
};
+
+
imports = [
+
./hyprland.nix
+
];
+
}
+71
home/desktop/hyprland.nix
···
···
+
{ lib, config, pkgs, ... }:
+
+
with lib;
+
let
+
cfg = config.modules.desktop;
+
in {
+
options.modules.desktop.hyprland = {
+
enable = mkOption {
+
default = cfg.enable;
+
example = true;
+
description = "Whether to enable Hyprland configuration.";
+
type = types.bool;
+
};
+
};
+
+
config = mkIf cfg.hyprland.enable {
+
wayland.windowManager.hyprland = {
+
enable = true;
+
systemd.enable = false;
+
xwayland.enable = true;
+
settings = {
+
"$mod" = "SUPER";
+
+
general = {
+
gaps_out = 10;
+
};
+
+
input = {
+
kb_options = "ctrl:nocaps";
+
touchpad = {
+
clickfinger_behavior = true;
+
tap-to-click = false;
+
tap-and-drag = false;
+
scroll_factor = 0.2;
+
};
+
};
+
+
monitor = [
+
"eDP-1, preferred, 0x0, 1.6"
+
"eDP-1, addreserved, 35, 0, 0, 0"
+
];
+
+
debug = {
+
error_position = 1;
+
};
+
+
bind = [
+
"$mod, Q, exec, uwsm app -- ghostty"
+
];
+
};
+
};
+
+
home.pointerCursor = {
+
gtk.enable = true;
+
hyprcursor.enable = true;
+
x11.enable = true;
+
package = pkgs.apple-cursor;
+
name = "macOS";
+
size = 28;
+
};
+
+
xdg.portal = {
+
enable = true;
+
xdgOpenUsePortal = true;
+
extraPortals = with pkgs; [
+
xdg-desktop-portal-hyprland
+
xdg-desktop-portal-gtk
+
];
+
};
+
};
+
}
+1 -1
machines/sodacream/configuration.nix
···
server = {
enable = true;
tailscale.enable = true;
-
sshd.enable = false;
podman.enable = true;
};
};
···
server = {
enable = true;
tailscale.enable = true;
+
sshd.enable = true;
podman.enable = true;
};
};
+1
machines/sodacream/home.nix
···
{ ... }: {
modules = {
development = {
enable = true;
js.enable = true;
···
{ ... }: {
modules = {
+
desktop.enable = true;
development = {
enable = true;
js.enable = true;
-24
modules/desktop/session.nix
···
plymouth.enable = true;
initrd.verbose = mkDefault false;
consoleLogLevel = 0;
-
kernelParams = [ "console=tty1" "vt.global_cursor_default=0" ];
};
services.greetd = {
···
enable = true;
withUWSM = true;
xwayland.enable = true;
-
};
-
-
environment = {
-
systemPackages = with pkgs.kdePackages; [
-
sddm-kcm
-
qtmultimedia
-
pkgs.apple-cursor
-
];
-
plasma6 = {
-
excludePackages = with pkgs.kdePackages; [
-
discover
-
ffmpegthumbs
-
plasma-browser-integration
-
kate
-
konsole
-
krdp
-
elisa
-
gwenview
-
oxygen
-
oxygen-sounds
-
khelpcenter
-
];
-
};
};
security = {
···
plymouth.enable = true;
initrd.verbose = mkDefault false;
consoleLogLevel = 0;
};
services.greetd = {
···
enable = true;
withUWSM = true;
xwayland.enable = true;
};
security = {