diff options
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/default.nix | 1 | ||||
| -rw-r--r-- | modules/swayfx.nix | 19 | ||||
| -rw-r--r-- | modules/user/default.nix | 2 | ||||
| -rw-r--r-- | modules/user/desktop/default.nix | 49 | ||||
| -rw-r--r-- | modules/user/desktop/swayfx.nix | 78 | ||||
| -rw-r--r-- | modules/user/desktops/default.nix | 12 | ||||
| -rw-r--r-- | modules/user/desktops/hyprland.nix | 6 |
7 files changed, 148 insertions, 19 deletions
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" ]); }; - }; -} |
