Sway: Difference between revisions

Lejvin (talk | contribs)
m Added keyboard layout setting for declarative configuration. Would have helped me out.
IvyRS (talk | contribs)
Using greeter: fixing package path + formatting
 
(6 intermediate revisions by 4 users not shown)
Line 97: Line 97:
Tuigreet does not even need a separate compositor to launch.
Tuigreet does not even need a separate compositor to launch.


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|||<nowiki>
services.greetd = {                                                       
services.greetd = {                                                       
   enable = true;                                                         
   enable = true;                                                         
   settings = {                                                           
   settings = {                                                           
     default_session = {                                                   
     default_session = {                                                   
       command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway";
       command = "${pkgs.tuigreet}/bin/tuigreet --time --cmd sway";
       user = "greeter";                                                   
       user = "greeter";                                                   
     };                                                                   
     };                                                                   
   };                                                                     
   };                                                                     
};                                                                       
};                                                                       
</nowiki>}}
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}}
 
=== Automatic startup on boot ===
The snippet below will start Sway immediately on startup, without a greeter and '''without login prompt'''. Only consider using this in conjunction with [[Full Disk Encryption]]!
 
<syntaxhighlight lang="nix">
services.getty = {
  autologinUser = "your_username";
  autologinOnce = true;
};
environment.loginShellInit = ''
    [[ "$(tty)" == /dev/tty1 ]] && sway
'';
</syntaxhighlight>


== Configuration ==
== Configuration ==
Line 146: Line 159:
== Troubleshooting ==
== Troubleshooting ==


=== Cursor is too tiny on HiDPI displays ===
=== Cursor is missing icons or too tiny on HiDPI displays ===


Using [[Home Manager]] try configuring a general mouse cursor size and theme
Using [[Home Manager]] try configuring a general mouse cursor size and theme. The reason that your cursor might be missing in some applications, is because <code>XCURSOR_THEME</code>is missing, which will cause applications relying on <code>XWAYLAND</code> to misbehave. Setting <code>sway.enable = true</code>, combined with the <code>name</code>, <code>package</code> and size will set the correct environment variables, which sway will then use.


<syntaxhighlight lang="nix">home-manager.users.myUser = {
<syntaxhighlight lang="nix">home-manager.users.myUser = {
     home.pointerCursor = {
     home.pointerCursor = {
       name = "Adwaita";
       name = "Adwaita";
       package = pkgs.gnome.adwaita-icon-theme;
       package = pkgs.adwaita-icon-theme;
       size = 24;
       size = 24;
       x11 = {
       x11 = {
Line 160: Line 172:
         defaultCursor = "Adwaita";
         defaultCursor = "Adwaita";
       };
       };
      sway.enable = true;
     };
     };
};</syntaxhighlight>
};</syntaxhighlight>


Line 215: Line 227:


When this happens on a new nixos system, enabling opengl in configuration.nix may fix this issue.   
When this happens on a new nixos system, enabling opengl in configuration.nix may fix this issue.   
{{Note|<code>hardware.opengl</code> was renamed to <code>hardware.graphics</code> in NixOS 24.11.}}


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">
hardware.opengl.enable = true;
hardware.graphics.enable = true;
</syntaxhighlight>
</syntaxhighlight>