diff --git a/flake.lock b/flake.lock index a2c3af0..241e7ec 100644 --- a/flake.lock +++ b/flake.lock @@ -326,6 +326,21 @@ "type": "github" } }, + "crane": { + "locked": { + "lastModified": 1779130139, + "narHash": "sha256-BLrtr42azquO7MdGFU5a7KiMl3YpFlTeIXqy1fT5GlQ=", + "owner": "ipetkov", + "repo": "crane", + "rev": "edb38893982a3338972bb4a2ec7ce7c29ba10fd9", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "default-creds": { "inputs": { "bun2nix": "bun2nix_3", @@ -1399,6 +1414,22 @@ } }, "nixpkgs_11": { + "locked": { + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_12": { "locked": { "lastModified": 1778869304, "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", @@ -1414,7 +1445,7 @@ "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { "locked": { "lastModified": 1775888245, "narHash": "sha256-nwASzrRDD1JBEu/o8ekKYEXm/oJW6EMCzCRdrwcLe90=", @@ -1430,7 +1461,7 @@ "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_14": { "locked": { "lastModified": 1777954456, "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", @@ -1446,7 +1477,7 @@ "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_15": { "locked": { "lastModified": 1779560665, "narHash": "sha256-tpyBcxPpcQb8ukyNF7DoCwfSY3VPsxHoYwj00Cayv5o=", @@ -1462,7 +1493,7 @@ "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_16": { "locked": { "lastModified": 1777268161, "narHash": "sha256-bxrdOn8SCOv8tN4JbTF/TXq7kjo9ag4M+C8yzzIRYbE=", @@ -1606,6 +1637,26 @@ "type": "github" } }, + "notashelf-tuigreet": { + "inputs": { + "crane": "crane", + "nixpkgs": "nixpkgs_11", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1779222498, + "narHash": "sha256-LGIZ5xrJN3Ko0OxOTSDztoFYiIBMBgzQrLpXfNWx/RI=", + "owner": "NotAShelf", + "repo": "tuigreet", + "rev": "605c0a107406f3187632c74fcc67ed03acd30200", + "type": "github" + }, + "original": { + "owner": "NotAShelf", + "repo": "tuigreet", + "type": "github" + } + }, "nur": { "inputs": { "flake-parts": [ @@ -1658,7 +1709,7 @@ "flake-parts": "flake-parts_5", "mnw": "mnw", "ndg": "ndg", - "nixpkgs": "nixpkgs_11", + "nixpkgs": "nixpkgs_12", "systems": "systems_7" }, "locked": { @@ -1759,6 +1810,7 @@ "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_10", "nixpkgs-stable": "nixpkgs-stable", + "notashelf-tuigreet": "notashelf-tuigreet", "nvf": "nvf", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", @@ -1767,9 +1819,30 @@ "usbguard-tui": "usbguard-tui" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "notashelf-tuigreet", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778555852, + "narHash": "sha256-55EmwooVAS4UpA0oWd5wilKPRqCiHD5BAej9QiNwheY=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "f29b0f7a9f367e0056b716f8aa137cb41e784444", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sops-nix": { "inputs": { - "nixpkgs": "nixpkgs_12" + "nixpkgs": "nixpkgs_13" }, "locked": { "lastModified": 1777944972, @@ -1810,7 +1883,7 @@ "inputs": { "git-hooks": "git-hooks_2", "gomod2nix": "gomod2nix_2", - "nixpkgs": "nixpkgs_13" + "nixpkgs": "nixpkgs_14" }, "locked": { "lastModified": 1779828271, @@ -1835,7 +1908,7 @@ "firefox-gnome-theme": "firefox-gnome-theme", "flake-parts": "flake-parts_6", "gnome-shell": "gnome-shell", - "nixpkgs": "nixpkgs_14", + "nixpkgs": "nixpkgs_15", "nur": "nur", "systems": "systems_10", "tinted-kitty": "tinted-kitty", @@ -2181,7 +2254,7 @@ }, "usbguard-tui": { "inputs": { - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1779819262, diff --git a/flake.nix b/flake.nix index 11035e3..942a26d 100644 --- a/flake.nix +++ b/flake.nix @@ -13,6 +13,7 @@ stylix.url = "github:danth/stylix"; sops-nix.url = "github:Mic92/sops-nix"; nvf.url = "github:notashelf/nvf"; + notashelf-tuigreet.url = "github:NotAShelf/tuigreet"; bun2nix.url = "github:nix-community/bun2nix"; usbguard-tui.url = "github:anotherhadi/usbguard-tui"; jwt-tui.url = "github:anotherhadi/jwt-tui"; diff --git a/home/programs/ghostty/default.nix b/home/programs/ghostty/default.nix index 6cc4b32..292d0b2 100644 --- a/home/programs/ghostty/default.nix +++ b/home/programs/ghostty/default.nix @@ -14,8 +14,6 @@ in { home.sessionVariables = { TERMINAL = "ghostty"; TERM = "ghostty"; - XMODIFIERS = "@im=none"; - GTK_IM_MODULE = "simple"; }; programs.ghostty = { diff --git a/home/programs/helium/default.nix b/home/programs/helium/default.nix index 8de3b19..769275c 100644 --- a/home/programs/helium/default.nix +++ b/home/programs/helium/default.nix @@ -66,6 +66,7 @@ .helium.browser.layout = 3 | .helium.browser.minimal_location_bar = true | .helium.browser.show_dynamic_new_tab_button = false | + .helium.browser.rounded_frame = false | .bookmark_bar.show_tab_groups = false | .extensions.settings[$id] = { "active_permissions": {"api": [], "explicit_host": [], "manifest_permissions": [], "scriptable_host": []}, diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index 6a974b4..f333438 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -8,7 +8,7 @@ ../../nixos/home-manager.nix ../../nixos/nix.nix ../../nixos/systemd-boot.nix - ../../nixos/sddm.nix + ../../nixos/tuigreet.nix ../../nixos/users.nix ../../nixos/utils.nix ../../nixos/hyprland.nix diff --git a/nixos/tuigreet.nix b/nixos/tuigreet.nix new file mode 100644 index 0000000..126b02b --- /dev/null +++ b/nixos/tuigreet.nix @@ -0,0 +1,62 @@ +{ + pkgs, + inputs, + config, + lib, + ... +}: let + c = config.lib.stylix.colors; + tuigreet = inputs.notashelf-tuigreet.packages.${pkgs.stdenv.hostPlatform.system}.default; + + theme = lib.concatStringsSep ";" [ + "border=#${c.base0D}" + "text=#${c.base05}" + "prompt=#${c.base0D}" + "action=#${c.base0C}" + "button=#${c.base0D}" + "container=#${c.base00}" + "input=#${c.base02}" + ]; + + tuigreet-launch = pkgs.writeShellScript "tuigreet-launch" '' + exec ${tuigreet}/bin/tuigreet \ + --time \ + --time-format '%H:%M %A %d %B' \ + --sessions /run/current-system/sw/share/wayland-sessions \ + --remember \ + --remember-user-session \ + --asterisks \ + --greeting 'Welcome' \ + --container-padding 2 \ + --theme '${theme}' \ + --power-shutdown 'systemctl poweroff' \ + --power-reboot 'systemctl reboot' + ''; +in { + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${tuigreet-launch}"; + user = "greeter"; + }; + }; + }; + + # this is a life saver. + # literally no documentation about this anywhere. + # might be good to write about this... + # https://www.reddit.com/r/NixOS/comments/u0cdpi/tuigreet_with_xmonad_how/ + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + + environment.systemPackages = [tuigreet]; +} diff --git a/nixos/utils.nix b/nixos/utils.nix index 29de315..c50e268 100644 --- a/nixos/utils.nix +++ b/nixos/utils.nix @@ -33,6 +33,11 @@ in { timeZone = timeZone; }; i18n.defaultLocale = defaultLocale; + i18n.inputMethod = { + enable = true; + type = "fcitx5"; + fcitx5.addons = with pkgs; [ fcitx5-gtk ]; + }; i18n.extraLocaleSettings = { LC_ADDRESS = extraLocale; LC_IDENTIFICATION = extraLocale;