aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix4
-rw-r--r--hosts/limbo/default.nix9
-rw-r--r--modules/default.nix1
-rw-r--r--modules/swayfx.nix19
-rw-r--r--modules/user/default.nix2
-rw-r--r--modules/user/desktop/default.nix49
-rw-r--r--modules/user/desktop/swayfx.nix78
-rw-r--r--modules/user/desktops/default.nix12
-rw-r--r--modules/user/desktops/hyprland.nix6
-rw-r--r--user/default.nix2
-rw-r--r--user/home/default.nix3
11 files changed, 160 insertions, 25 deletions
diff --git a/flake.nix b/flake.nix
index 5e151b0..6757ef6 100644
--- a/flake.nix
+++ b/flake.nix
@@ -28,8 +28,8 @@
{
hostName,
system,
- # Whether to create the default user account. This account will be
- # in the wheel group, and has an empty default password!
+ # Note that the default user account is in the wheel group and has an
+ # empty default password.
makeDefaultUser ? true,
useHomeManager ? true,
additionalModules ? [ ],
diff --git a/hosts/limbo/default.nix b/hosts/limbo/default.nix
index b7be92e..181000c 100644
--- a/hosts/limbo/default.nix
+++ b/hosts/limbo/default.nix
@@ -11,11 +11,20 @@
time = true;
};
+ home-manager.users.rosa = {
+ imports = [
+ ../../modules/user
+ ];
+
+ desktop.windowManager = "swayfx";
+ };
+
networking.networkmanager = {
enable = true;
wifi.macAddress = "random";
};
+ programs.swayfx.enable = true;
services.automatic-timezoned.enable = true;
system.stateVersion = "26.05";
}
diff --git a/modules/default.nix b/modules/default.nix
index 339daf1..e62353b 100644
--- a/modules/default.nix
+++ b/modules/default.nix
@@ -1,5 +1,6 @@
{
imports = [
+ ./swayfx.nix
./tuigreet.nix
];
}
diff --git a/modules/swayfx.nix b/modules/swayfx.nix
new file mode 100644
index 0000000..caa9fdf
--- /dev/null
+++ b/modules/swayfx.nix
@@ -0,0 +1,19 @@
+{
+ config,
+ lib,
+ pkgs,
+ options,
+ ...
+}:
+{
+ options.programs.swayfx.enable = lib.mkEnableOption "swayfx";
+
+ config.programs.sway =
+ if config.programs.swayfx.enable then
+ {
+ enable = lib.mkForce true;
+ package = lib.mkForce pkgs.swayfx;
+ }
+ else
+ { };
+}
diff --git a/modules/user/default.nix b/modules/user/default.nix
index 68500bd..5c8d960 100644
--- a/modules/user/default.nix
+++ b/modules/user/default.nix
@@ -1,5 +1,5 @@
{
imports = [
- ./desktops
+ ./desktop
];
}
diff --git a/modules/user/desktop/default.nix b/modules/user/desktop/default.nix
new file mode 100644
index 0000000..1cfd36b
--- /dev/null
+++ b/modules/user/desktop/default.nix
@@ -0,0 +1,49 @@
+{
+ config,
+ lib,
+ pkgs,
+ options,
+ ...
+}:
+{
+ imports = [
+ ./swayfx.nix
+ ];
+
+ options.desktop = {
+ windowManager = lib.mkOption {
+ description = "Which window manager to use";
+ default = null;
+ type = with lib.types; nullOr (enum [ ]);
+ };
+ };
+
+ config = {
+ home.packages = with pkgs; [
+ fira-code # monospace font
+ ];
+
+ programs.foot = {
+ enable = lib.mkDefault (config.desktop != null);
+ settings = {
+ bell = {
+ notify = true;
+ urgent = true;
+ };
+
+ colors = {
+ alpha = 0.7;
+ };
+
+ cursor.blink = true;
+ main = {
+ font = "Fira Code:size=8";
+ dpi-aware = true;
+ };
+
+ mouse.hide-when-typing = true;
+ };
+ };
+ };
+
+}
diff --git a/modules/user/desktop/swayfx.nix b/modules/user/desktop/swayfx.nix
new file mode 100644
index 0000000..2ea2e85
--- /dev/null
+++ b/modules/user/desktop/swayfx.nix
@@ -0,0 +1,78 @@
+{
+ config,
+ lib,
+ options,
+ ...
+}:
+{
+ options.desktop.windowManager = lib.mkOption { type = with lib.types; nullOr (enum [ "swayfx" ]); };
+
+ config.wayland.windowManager.sway =
+ if (config.desktop.windowManager == "swayfx") then
+ {
+ enable = lib.mkForce true;
+ package = null; # use the nixos module
+ config = {
+ bars = [ ];
+ bindswitches = {
+ "lid:off" = {
+ action = "output eDP-1 power on";
+ locked = true;
+ };
+
+ "lid:on" = {
+ action = "output eDP-1 power off";
+ locked = true;
+ };
+ };
+
+ floating.titlebar = false;
+ focus.followMouse = false;
+ gaps = {
+ inner = 4;
+ outer = 8;
+ };
+
+ input = {
+ "*" = {
+ accel_profile = "flat";
+ };
+
+ "type:touchpad" = {
+ drag = "enabled";
+ dwt = "enabled";
+ natural_scroll = "enabled";
+ tap = "enabled";
+ };
+ };
+
+ keybindings =
+ let
+ mod = config.wayland.windowManager.sway.config.modifier;
+ in
+ lib.mkOptionDefault {
+ "${mod}+Return" = "exec foot";
+ "${mod}+Q" = "kill";
+ };
+
+ modifier = "Mod4";
+ output = {
+ "eDP-1" = {
+ mode = "2256x1504@60Hz";
+ position = "0 0";
+ scale = "1.5";
+ };
+ };
+
+ window.titlebar = false;
+ };
+
+ extraConfig = ''
+ blur enable
+ corner_radius 10
+ shadows enable
+ '';
+ }
+ else
+ { };
+}
diff --git a/modules/user/desktops/default.nix b/modules/user/desktops/default.nix
deleted file mode 100644
index 36446f9..0000000
--- a/modules/user/desktops/default.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-{ config, lib, options, ... }:
-{
- imports = [
- ./hyprland.nix
- ];
-
- options.desktops.enable = lib.mkOption {
- description = "Which desktop setup to enable";
- default = null;
- type = with lib.types; nullOr (enum [ ]);
- };
-}
diff --git a/modules/user/desktops/hyprland.nix b/modules/user/desktops/hyprland.nix
deleted file mode 100644
index bc369bc..0000000
--- a/modules/user/desktops/hyprland.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ config, lib, options, ... }:
-{
- options.desktops = {
- enable = lib.mkOption { type = with lib.types; nullOr (enum [ "hyprland" ]); };
- };
-}
diff --git a/user/default.nix b/user/default.nix
index 431a5b1..d4042c2 100644
--- a/user/default.nix
+++ b/user/default.nix
@@ -1,10 +1,8 @@
{ config, lib, ... }:
{
users.users.rosa = {
- description = lib.mkDefault "Rosa";
extraGroups = [ "wheel" ];
initialPassword = "";
isNormalUser = true;
- useDefaultShell = true;
};
}
diff --git a/user/home/default.nix b/user/home/default.nix
index 1751a82..8d76df9 100644
--- a/user/home/default.nix
+++ b/user/home/default.nix
@@ -6,11 +6,10 @@
imports = [
./git.nix
./kakoune
- ../../modules/user
./ssh.nix
+ ./zsh.nix
];
- desktops.enable = "hyprland";
home = {
homeDirectory = "/home/rosa";
stateVersion = "26.05";