aboutsummaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user')
-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
5 files changed, 128 insertions, 19 deletions
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" ]); };
- };
-}