aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRosa <rosaontheweb@proton.me>2026-03-18 12:04:07 -0400
committerRosa <rosaontheweb@proton.me>2026-03-18 12:04:07 -0400
commitcad9638875c04122b04d47242ddfc76e21e77029 (patch)
treed80077f45b7b0d7513b3af0dabe6d2d992c846b7
parentce19b701046c064a1eb39098d8537b2c4964a86e (diff)
progress on sway configuration
-rw-r--r--.ssh/id_rosa.pub1
-rw-r--r--common/region/na-east.nix5
-rw-r--r--flake.nix2
-rw-r--r--hosts/meowbook/default.nix17
-rw-r--r--modules/core.nix (renamed from common/core.nix)18
-rw-r--r--modules/desktop.nix3
-rw-r--r--modules/user/default.nix8
-rw-r--r--modules/user/desktop/default.nix5
-rw-r--r--modules/user/desktop/sessions/default.nix5
-rw-r--r--modules/user/desktop/sessions/sway.nix147
-rw-r--r--modules/user/editors/default.nix3
-rw-r--r--modules/user/editors/kakoune/default.nix42
-rw-r--r--modules/user/editors/kakoune/kakrc1
-rw-r--r--modules/user/git.nix10
-rw-r--r--modules/user/zsh/default.nix25
-rw-r--r--modules/user/zsh/zshrc.zsh1
16 files changed, 284 insertions, 9 deletions
diff --git a/.ssh/id_rosa.pub b/.ssh/id_rosa.pub
new file mode 100644
index 0000000..077da0c
--- /dev/null
+++ b/.ssh/id_rosa.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICcEZBikGjnGveif3TsfBkWCl1Qrw0yZoOAn/LxS8oAa rosa@meowbook
diff --git a/common/region/na-east.nix b/common/region/na-east.nix
deleted file mode 100644
index 5446801..0000000
--- a/common/region/na-east.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{ config, lib, ... }:
-{
- i18n.defaultLocale = "en_CA.UTF-8";
- time.timeZone = lib.mkDefault "Canada/Eastern";
-}
diff --git a/flake.nix b/flake.nix
index 703c26a..a9b3030 100644
--- a/flake.nix
+++ b/flake.nix
@@ -32,10 +32,10 @@
}:
nixpkgs.lib.nixosSystem {
modules = [
- ./common/core.nix
./hosts/${hostName}
./hosts/${hostName}/hardware-configuration.nix
./modules # include custom system modules
+ ./modules/core.nix # always include core settings
{ networking.hostName = hostName; }
]
++ additionalModules;
diff --git a/hosts/meowbook/default.nix b/hosts/meowbook/default.nix
index 084074e..03acecb 100644
--- a/hosts/meowbook/default.nix
+++ b/hosts/meowbook/default.nix
@@ -1,10 +1,23 @@
{ config, ... }:
{
imports = [
- ../../common/region/na-east.nix
./disks.nix
];
+ home-manager.users.rosa = {
+ imports = [
+ ../../modules/user
+ ];
+
+ desktop.sessions.sway.enable = true;
+ editors.kakoune.enable = true;
+ home = {
+ homeDirectory = "/home/rosa";
+ stateVersion = "26.05";
+ username = "rosa";
+ };
+ };
+
networking.networkmanager = {
enable = true;
wifi.macAddress = "random";
@@ -17,4 +30,6 @@
enableDesktopDefaults = true;
stateVersion = "26.05";
};
+
+ users.users.rosa.enable = true;
}
diff --git a/common/core.nix b/modules/core.nix
index 664239e..15d3581 100644
--- a/common/core.nix
+++ b/modules/core.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
boot.loader = {
efi.canTouchEfiVariables = true;
@@ -37,5 +42,14 @@
};
};
- users.defaultUserShell = pkgs.zsh;
+ users = {
+ defaultUserShell = pkgs.zsh;
+ users.rosa = {
+ enable = lib.mkDefault false;
+ description = "Rosa";
+ extraGroups = [ "wheel" ];
+ isNormalUser = true;
+ openssh.authorizedKeys.keyFiles = [ ./.ssh/id_rosa.pub ];
+ };
+ };
}
diff --git a/modules/desktop.nix b/modules/desktop.nix
index ed16388..0ad8321 100644
--- a/modules/desktop.nix
+++ b/modules/desktop.nix
@@ -6,6 +6,7 @@
}:
{
config = lib.mkIf config.system.enableDesktopDefaults {
+ i18n.defaultLocale = lib.mkDefault "en_CA.UTF-8";
services.pipewire = {
enable = true;
alsa = {
@@ -15,6 +16,8 @@
pulse.enable = true;
};
+
+ time.timeZone = lib.mkDefault "Canada/Eastern";
};
options.system.enableDesktopDefaults = lib.mkEnableOption "core desktop services such as pipewire";
diff --git a/modules/user/default.nix b/modules/user/default.nix
new file mode 100644
index 0000000..0cbd1ff
--- /dev/null
+++ b/modules/user/default.nix
@@ -0,0 +1,8 @@
+{
+ imports = [
+ ./desktop
+ ./editors
+ ./git.nix
+ ./zsh
+ ];
+}
diff --git a/modules/user/desktop/default.nix b/modules/user/desktop/default.nix
new file mode 100644
index 0000000..f5f2e28
--- /dev/null
+++ b/modules/user/desktop/default.nix
@@ -0,0 +1,5 @@
+{
+ imports = [
+ ./sessions
+ ];
+}
diff --git a/modules/user/desktop/sessions/default.nix b/modules/user/desktop/sessions/default.nix
new file mode 100644
index 0000000..47a721a
--- /dev/null
+++ b/modules/user/desktop/sessions/default.nix
@@ -0,0 +1,5 @@
+{
+ imports = [
+ ./sway.nix
+ ];
+}
diff --git a/modules/user/desktop/sessions/sway.nix b/modules/user/desktop/sessions/sway.nix
new file mode 100644
index 0000000..e853a10
--- /dev/null
+++ b/modules/user/desktop/sessions/sway.nix
@@ -0,0 +1,147 @@
+{
+ config,
+ lib,
+ options,
+ ...
+}:
+{
+ config = {
+ wayland.windowManager.sway = {
+ enable = lib.mkDefault config.desktop.sessions.sway.enable;
+ config = {
+ bars = [
+ {
+ colors = {
+ activeWorkspace = {
+ background = "#11111b";
+ border = "#11111b";
+ text = "#cdd6f4";
+ };
+
+ background = "#11111b";
+ bindingMode = {
+ background = "#a6e3a1";
+ border = "#a6e3a1";
+ text = "#11111b";
+ };
+
+ focusedBackground = "#11111b";
+ focusedSeparator = "#a6adc8";
+ focusedStatusline = "#cdd6f4";
+ focusedWorkspace = {
+ background = "#11111b";
+ border = "#11111b";
+ text = "#cba6f7";
+ };
+
+ inactiveWorkspace = {
+ background = "#11111b";
+ border = "#11111b";
+ text = "#a6adc8";
+ };
+
+ separator = "#a6adc8";
+ statusline = "#cdd6f4";
+ urgentWorkspace = {
+ background = "#f38ba8";
+ border = "#f38ba8";
+ text = "#11111b";
+ };
+ };
+
+ fonts = {
+ names = [ "Fira Mono" ];
+ size = 8.0;
+ };
+
+ position = "bottom";
+ }
+ ];
+
+ bindswitches =
+ let
+ display = "eDP-1";
+ in
+ {
+ "lid:on" = {
+ action = "output ${display} disable";
+ locked = true;
+ reload = true;
+ };
+
+ "lid:off" = {
+ action = "output ${display} enable";
+ locked = true;
+ reload = true;
+ };
+ };
+
+ colors = {
+ focused = {
+ background = "#1e1e2e";
+ border = "#cba6f7";
+ childBorder = "#cba6f7";
+ indicator = "#f5c2e7";
+ text = "#1e1e2e";
+ };
+
+ focusedInactive = {
+ background = "#1e1e2e";
+ border = "#585b70";
+ childBorder = "#585b70";
+ indicator = "#585b70";
+ text = "#cdd6f4";
+ };
+
+ unfocused = {
+ background = "#1e1e2e";
+ border = "#313244";
+ childBorder = "#313244";
+ indicator = "#313244";
+ text = "#a6adc8";
+ };
+
+ urgent = {
+ background = "#1e1e2e";
+ border = "#f38ba8";
+ childBorder = "#f38ba8";
+ indicator = "#f38ba8";
+ text = "#1e1e2e";
+ };
+ };
+
+ defaultWorkspace = "workspace number 1";
+ floating = {
+ criteria = [
+ # TODO
+ ];
+
+ titlebar = false;
+ };
+
+ focus.followMouse = false;
+ fonts = {
+ names = [ "Fira Mono" ];
+ size = 8.0;
+ };
+
+ gaps = {
+ inner = 2;
+ outer = 4;
+ };
+
+ input = {
+ "type:touchpad" = {
+ accel_profile = "flat";
+ drag = "enabled";
+ dwt = "enabled";
+ natural_scroll = "enabled";
+ tap = "enabled";
+ };
+ };
+ };
+ };
+ };
+
+ options.desktop.sessions.sway.enable = lib.mkEnableOption "the sway window manager";
+}
diff --git a/modules/user/editors/default.nix b/modules/user/editors/default.nix
new file mode 100644
index 0000000..fa1b4ff
--- /dev/null
+++ b/modules/user/editors/default.nix
@@ -0,0 +1,3 @@
+{
+ imports = [ ./kakoune ];
+}
diff --git a/modules/user/editors/kakoune/default.nix b/modules/user/editors/kakoune/default.nix
new file mode 100644
index 0000000..0b69e1a
--- /dev/null
+++ b/modules/user/editors/kakoune/default.nix
@@ -0,0 +1,42 @@
+{
+ config,
+ lib,
+ options,
+ pkgs,
+ ...
+}:
+{
+ config.programs.kakoune = lib.mkIf config.editors.kakoune.enable {
+ enable = true;
+ colorSchemePackage = pkgs.kakounePlugins.kakoune-catppuccin;
+ config = {
+ hooks = [
+ {
+ commands = "set window indentwidth 2";
+ group = "set-indentwidth";
+ name = "WinSetOption";
+ option = "filetype=(nix)";
+ }
+ ];
+
+ numberLines = {
+ enable = true;
+ highlightCursor = true;
+ relative = true;
+ };
+
+ tabStop = 4;
+ ui.assistant = "cat";
+ };
+
+ defaultEditor = true;
+ extraConfig = builtins.readFile ./kakrc;
+ plugins = with pkgs.kakounePlugins; [
+ auto-pairs-kak
+ kakoune-extra-filetypes
+ kakoune-lsp
+ ];
+ };
+
+ options.editors.kakoune.enable = lib.mkEnableOption "rosa's kakoune setup";
+}
diff --git a/modules/user/editors/kakoune/kakrc b/modules/user/editors/kakoune/kakrc
new file mode 100644
index 0000000..a06f5b5
--- /dev/null
+++ b/modules/user/editors/kakoune/kakrc
@@ -0,0 +1 @@
+enable-auto-pairs
diff --git a/modules/user/git.nix b/modules/user/git.nix
new file mode 100644
index 0000000..d41fa11
--- /dev/null
+++ b/modules/user/git.nix
@@ -0,0 +1,10 @@
+{ config, lib, options, ... }:
+{
+ programs.git = {
+ enable = lib.mkDefault true;
+ settings = lib.mkDefault {
+ user.email = "rosaontheweb@proton.me";
+ user.name = "Rosa";
+ };
+ };
+}
diff --git a/modules/user/zsh/default.nix b/modules/user/zsh/default.nix
new file mode 100644
index 0000000..6f49406
--- /dev/null
+++ b/modules/user/zsh/default.nix
@@ -0,0 +1,25 @@
+{
+ config,
+ lib,
+ options,
+ ...
+}:
+{
+ config.programs.zsh = {
+ enable = lib.mkDefault true; # default user shell
+ autocd = true;
+ autosuggestion = {
+ enable = lib.mkDefault true;
+ strategy = [
+ "history"
+ "completion"
+ ];
+ };
+
+ history.ignoreAllDups = true;
+ initContent = builtins.readFile ./zshrc.zsh;
+ #loginExtra = builtins.readFile ./zlogin.zsh;
+ setOptions = [ "extendedglob" ];
+ syntaxHighlighting.enable = true;
+ };
+}
diff --git a/modules/user/zsh/zshrc.zsh b/modules/user/zsh/zshrc.zsh
new file mode 100644
index 0000000..9b2083a
--- /dev/null
+++ b/modules/user/zsh/zshrc.zsh
@@ -0,0 +1 @@
+PS1='%F{8}%(?..(%F{1}%?%F{8}%)-)[%F{1}%n@%M%F{8}]:%F{1}%5~%F{8}%# %f'