Set up Sway #1
8 changed files with 317 additions and 70 deletions
|
@ -15,33 +15,6 @@ in
|
|||
config = mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [ gnome-ssh-askpass4 ];
|
||||
|
||||
# Excluding some GNOME applications from the default install
|
||||
environment.gnome.excludePackages =
|
||||
(with pkgs; [
|
||||
gnome-connections
|
||||
gnome-photos
|
||||
gnome-tour
|
||||
snapshot
|
||||
])
|
||||
++ (with pkgs; [
|
||||
atomix # puzzle game
|
||||
baobab # disk usage analyzer
|
||||
cheese # webcam tool
|
||||
epiphany # web browser
|
||||
geary # email reader
|
||||
gnome-clocks
|
||||
gnome-contacts
|
||||
gnome-disk-utility
|
||||
gnome-logs
|
||||
gnome-music
|
||||
gnome-terminal
|
||||
hitori # sudoku game
|
||||
iagno # go game
|
||||
simple-scan
|
||||
tali # poker game
|
||||
yelp # help viewer
|
||||
]);
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
fontconfig = {
|
||||
|
@ -78,19 +51,19 @@ in
|
|||
localNetworkGameTransfers.openFirewall = true;
|
||||
};
|
||||
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
security.polkit.enable = true;
|
||||
|
||||
services.printing.enable = true;
|
||||
# services.printing.enable = true;
|
||||
|
||||
services.displayManager.defaultSession = "gnome";
|
||||
|
||||
services.xserver = {
|
||||
# services.displayManager.defaultSession = "gnome";
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
displayManager.gdm.enable = true;
|
||||
displayManager.gdm.autoSuspend = false;
|
||||
desktopManager.gnome.enable = true;
|
||||
xkb.layout = "se";
|
||||
xkb.variant = "us";
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd sway";
|
||||
user = "greeter";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.pulseaudio.enable = false;
|
||||
|
@ -99,6 +72,7 @@ in
|
|||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
audio.enable = true;
|
||||
pulse.enable = true;
|
||||
jack.enable = true;
|
||||
};
|
||||
|
|
54
flake.lock
generated
54
flake.lock
generated
|
@ -134,11 +134,11 @@
|
|||
"zig": "zig"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737699693,
|
||||
"narHash": "sha256-Rs8KNdInnmqs0YNWvvauYlf2XcnA4EIdmRggvQGjmUQ=",
|
||||
"lastModified": 1737779447,
|
||||
"narHash": "sha256-+iVqQXAUJshUYgxOHfke54Ux4f/aggl1yub86KNx2tE=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "fd8cacaa674c93fb86751e8030af2b202133939e",
|
||||
"rev": "71e62f96fa4d286eda835048428d5be96e9f87c1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -221,11 +221,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737704314,
|
||||
"narHash": "sha256-zta8jvOQ2wRCZmiwFEnS5iCulWAh8e+fLUlQxrgOBjM=",
|
||||
"lastModified": 1737968762,
|
||||
"narHash": "sha256-xiPARGKwocaMtv+U/rgi+h2g56CZZEmrcl7ldRaslq8=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "a0428685572b134f6594e7d7f5db5e1febbab2d7",
|
||||
"rev": "e1ae908bcc30af792b0bb0a52e53b03d2577255e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -266,11 +266,11 @@
|
|||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737701591,
|
||||
"narHash": "sha256-S71nENrb8kBrEvihDD+1mzn5sRrRr1sAaNMkjWDx1h0=",
|
||||
"lastModified": 1737961008,
|
||||
"narHash": "sha256-GYzjvr6qsy1KQY0jdtkTloeKAAsF1Ls5jpPved3l1PY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "neovim-nightly-overlay",
|
||||
"rev": "c9248eec123e70ef1132bbedeae22e2af7011095",
|
||||
"rev": "af9d81d77c8b81856a2d56048c8cb48e98bb929e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -282,11 +282,11 @@
|
|||
"neovim-src": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1737675744,
|
||||
"narHash": "sha256-2Q4SNciK6DHC5WknFSbk3aYjorayf9y4uz3tdtl/T1M=",
|
||||
"lastModified": 1737934383,
|
||||
"narHash": "sha256-aMMwHoHpaKbCaPoDd18N9gCCzA/IRPTrrRQmAWFQO54=",
|
||||
"owner": "neovim",
|
||||
"repo": "neovim",
|
||||
"rev": "8bc28978b632362ae658f8d4a6327e07a8b371b2",
|
||||
"rev": "1759b7844a2d468310b6d0ceca899fec6f2d4b84",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -302,11 +302,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1737257306,
|
||||
"narHash": "sha256-lEGgpA4kGafc76+Amnz+gh1L/cwUS2pePFlf22WEyh8=",
|
||||
"lastModified": 1737861961,
|
||||
"narHash": "sha256-LIRtMvAwLGb8pBoamzgEF67oKlNPz4LuXiRPVZf+TpE=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-index-database",
|
||||
"rev": "744d330659e207a1883d2da0141d35e520eb87bd",
|
||||
"rev": "79b7b8eae3243fc5aa9aad34ba6b9bbb2266f523",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -349,11 +349,11 @@
|
|||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1737569578,
|
||||
"narHash": "sha256-6qY0pk2QmUtBT9Mywdvif0i/CLVgpCjMUn6g9vB+f3M=",
|
||||
"lastModified": 1737885640,
|
||||
"narHash": "sha256-GFzPxJzTd1rPIVD4IW+GwJlyGwBDV1Tj5FLYwDQQ9sM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "47addd76727f42d351590c905d9d1905ca895b82",
|
||||
"rev": "4e96537f163fad24ed9eb317798a79afc85b51b7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -381,11 +381,11 @@
|
|||
},
|
||||
"nixpkgs-unstable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1737622296,
|
||||
"narHash": "sha256-GWHH9ljsR0LR29IEruJnKVVk6veeQpo7kfolyDyCVGQ=",
|
||||
"lastModified": 1737942377,
|
||||
"narHash": "sha256-8Eo/jRAgT3CbAloyqOj6uPN1EqBvLI/Tv2g+RxHjkhU=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "055c50feaa548eadca66407630961b77f3ebb750",
|
||||
"rev": "88a55dffa4d44d294c74c298daf75824dc0aafb5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -397,11 +397,11 @@
|
|||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1737557748,
|
||||
"narHash": "sha256-BaMuhctP1x00+8cBE2cJveJQb70/tWHI50MHj/ZrtOY=",
|
||||
"lastModified": 1737879851,
|
||||
"narHash": "sha256-H+FXIKj//kmFHTTW4DFeOjR7F1z2/3eb2iwN6Me4YZk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "606996d74f6e2a12635d41c1bf58bfc7ea3bb5ec",
|
||||
"rev": "5d3221fd57cc442a1a522a15eb5f58230f45a304",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -413,11 +413,11 @@
|
|||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1737469691,
|
||||
"narHash": "sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk=",
|
||||
"lastModified": 1737885589,
|
||||
"narHash": "sha256-Zf0hSrtzaM1DEz8//+Xs51k/wdSajticVrATqDrfQjg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab",
|
||||
"rev": "852ff1d9e153d8875a83602e03fdef8a63f0ecf8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
./nvim
|
||||
./scripts.nix
|
||||
./ssh.nix
|
||||
./sway.nix
|
||||
./theme-dark.nix
|
||||
./tmux.nix
|
||||
./utils.nix
|
||||
./vcs.nix
|
||||
|
|
|
@ -34,8 +34,7 @@
|
|||
gtk-titlebar-hide-when-maximized = true;
|
||||
window-padding-balance = true;
|
||||
window-padding-color = "extend";
|
||||
window-theme = "system";
|
||||
theme = "light:PatagiaLight,dark:PatagiaDark";
|
||||
theme = "PatagiaDark";
|
||||
|
||||
keybind = [
|
||||
"alt+shift+c=copy_to_clipboard"
|
||||
|
|
186
home/common/sway.nix
Normal file
186
home/common/sway.nix
Normal file
|
@ -0,0 +1,186 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = lib.mkIf config.patagia.desktop.enable {
|
||||
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1"; # For electron apps
|
||||
|
||||
programs.wofi = {
|
||||
enable = true;
|
||||
settings = {
|
||||
location = "top-center";
|
||||
allow_markup = true;
|
||||
width = 800;
|
||||
};
|
||||
|
||||
style = ''
|
||||
* {
|
||||
font-family: TX-02;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: #141b23;
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
clipman
|
||||
fuzzel
|
||||
gcr
|
||||
light
|
||||
wofi
|
||||
swayidle
|
||||
swaylock
|
||||
waybar
|
||||
wireplumber
|
||||
wob
|
||||
];
|
||||
|
||||
services.gnome-keyring.enable = true;
|
||||
|
||||
home.pointerCursor = {
|
||||
name = "Adwaita";
|
||||
package = pkgs.adwaita-icon-theme;
|
||||
size = 24;
|
||||
x11 = {
|
||||
enable = true;
|
||||
defaultCursor = "Adwaita";
|
||||
};
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
# config.common.default = "*";
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-wlr
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
xdgOpenUsePortal = true;
|
||||
config = {
|
||||
common = {
|
||||
default = [ "wlr" ];
|
||||
};
|
||||
sway = {
|
||||
default = [ "wlr" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.sway =
|
||||
let
|
||||
gtk-launch = "${pkgs.gtk4.dev}/bin/gtk4-launch";
|
||||
light = "${pkgs.light}/bin/light";
|
||||
wofi = "${pkgs.wofi}/bin/wofi";
|
||||
wpctl = "${pkgs.wireplumber}/bin/wpctl";
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
|
||||
# SwayFX for fancy fancification
|
||||
package = pkgs.swayfx;
|
||||
checkConfig = false; # workaround for https://discourse.nixos.org/t/sway-fails-with-cannot-create-gles2-renderer-after-update/45703
|
||||
extraConfig = ''
|
||||
corner_radius 6
|
||||
shadows enable
|
||||
'';
|
||||
# default_dim_inactive 0.9
|
||||
|
||||
config = {
|
||||
modifier = "Mod4";
|
||||
terminal = "ghostty";
|
||||
menu = "${wofi} --show drun";
|
||||
|
||||
fonts.names = [ "TX-02" ];
|
||||
|
||||
gaps = {
|
||||
smartGaps = true;
|
||||
smartBorders = "on";
|
||||
inner = 0;
|
||||
outer = 0;
|
||||
};
|
||||
|
||||
input = {
|
||||
"type:keyboard" = {
|
||||
xkb_layout = "us,se";
|
||||
xkb_options = "ctrl:nocaps,grp:switch,compose:rctrl";
|
||||
};
|
||||
"type:touchpad" = {
|
||||
dwt = "true";
|
||||
natural_scroll = "true";
|
||||
tap = "true";
|
||||
};
|
||||
};
|
||||
|
||||
window = {
|
||||
border = 3;
|
||||
titlebar = false;
|
||||
};
|
||||
|
||||
modes = {
|
||||
|
||||
"(p)oweroff, (s)uspend, (h)ibernate, (r)eboot, (l)ogout" = {
|
||||
p = "exec swaymsg 'mode default' && systemctl poweroff";
|
||||
s = "exec swaymsg 'mode default' && systemctl suspend-then-hibernate";
|
||||
h = "exec swaymsg 'mode default' && systemctl hibernate";
|
||||
r = "exec swaymsg 'mode default' && systemctl reboot";
|
||||
l = "exec swaymsg 'mode default' && systemctl --user stop sway-session.target && systemctl --user stop graphical-session.target && swaymsg exit";
|
||||
Return = "mode default";
|
||||
Escape = "mode default";
|
||||
};
|
||||
};
|
||||
|
||||
keybindings =
|
||||
let
|
||||
inherit (config.wayland.windowManager.sway.config) modifier menu;
|
||||
in
|
||||
lib.mkAfter {
|
||||
"${modifier}+Escape" = ''mode "(p)oweroff, (s)uspend, (h)ibernate, (r)eboot, (l)ogout"'';
|
||||
"${modifier}+return" = "exec ${menu}";
|
||||
"${modifier}+f" = "floating toggle";
|
||||
"${modifier}+t" = "exec ghostty";
|
||||
"${modifier}+s" = "sticky toggle";
|
||||
"${modifier}+q" = ''kill'';
|
||||
"${modifier}+Control+q" = "exit";
|
||||
"${modifier}+r" = "reload";
|
||||
"XF86MonBrightnessDown" = "exec '${light} -U 15'";
|
||||
"XF86MonBrightnessUp" = "exec '${light} -A 15'";
|
||||
"XF86AudioRaiseVolume" = "exec '${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%+ -l 1.0'";
|
||||
"XF86AudioLowerVolume" = "exec '${wpctl} set-volume @DEFAULT_AUDIO_SINK@ 5%- -l 1.0'";
|
||||
"XF86AudioMute" = "exec '${wpctl} set-mute @DEFAULT_AUDIO_SINK@ toggle'";
|
||||
"Print" = "exec 'screenshot.sh clipboard'";
|
||||
|
||||
"F1" = "workspace number 1";
|
||||
"F2" = "workspace number 2";
|
||||
"F3" = "workspace number 3";
|
||||
"F4" = "workspace number 4";
|
||||
"F5" = "workspace number 5";
|
||||
"F6" = "workspace number 6";
|
||||
"F7" = "workspace number 7";
|
||||
"F8" = "workspace number 8";
|
||||
"F9" = "workspace number 9";
|
||||
"F10" = "workspace number 10";
|
||||
|
||||
# Move focused container to workspace
|
||||
"Shift+F1" = "move container to workspace number 1";
|
||||
"Shift+F2" = "move container to workspace number 2";
|
||||
"Shift+F3" = "move container to workspace number 3";
|
||||
"Shift+F4" = "move container to workspace number 4";
|
||||
"Shift+F5" = "move container to workspace number 5";
|
||||
"Shift+F6" = "move container to workspace number 6";
|
||||
"Shift+F7" = "move container to workspace number 7";
|
||||
"Shift+F8" = "move container to workspace number 8";
|
||||
"Shift+F9" = "move container to workspace number 9";
|
||||
"Shift+F10" = "move container to workspace number 10";
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
52
home/common/theme-dark.nix
Normal file
52
home/common/theme-dark.nix
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
config = lib.mkIf config.patagia.desktop.enable {
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme.name = "Arc-Dark";
|
||||
iconTheme.package = pkgs.adwaita-icon-theme;
|
||||
iconTheme.name = "Adwaita";
|
||||
|
||||
gtk2.extraConfig = ''
|
||||
gtk-cursor-theme-name="Adwaita"
|
||||
gtk-cursor-theme-size=24
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
gtk3.extraConfig = {
|
||||
"gtk-cursor-theme-name" = "Adwaita";
|
||||
"gtk-cursor-theme-size" = 24;
|
||||
"gtk-application-prefer-dark-theme" = 1;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
"gtk-cursor-theme-name" = "Adwaita";
|
||||
"gtk-cursor-theme-size" = 24;
|
||||
};
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"org/gnome/desktop/interface" = {
|
||||
"color-scheme" = "prefer-dark";
|
||||
"gtk-enable-primary-paste" = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme.name = "adwaita";
|
||||
style = {
|
||||
name = "adwaita-dark";
|
||||
package = pkgs.adwaita-qt;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
|
@ -16,6 +16,12 @@
|
|||
};
|
||||
};
|
||||
|
||||
wayland.windowManager.sway.config.output = {
|
||||
eDP-1 = {
|
||||
scale = "2";
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [ ];
|
||||
|
||||
programs.gpg.enable = true;
|
||||
|
|
|
@ -83,13 +83,41 @@
|
|||
"patagia.net"
|
||||
"aarn.patagia.net"
|
||||
];
|
||||
networkmanager.enable = false;
|
||||
useDHCP = lib.mkDefault true;
|
||||
wireless.iwd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
Settings = {
|
||||
AutoConnect = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
networking.networkmanager.wifi.backend = "iwd";
|
||||
services.nscd.enableNsncd = false;
|
||||
|
||||
systemd.network.enable = true;
|
||||
#networking.networkmanager.wifi.backend = "iwd";
|
||||
|
||||
services.resolved = {
|
||||
enable = true;
|
||||
domains = [
|
||||
"patagia.net"
|
||||
"aarn.patagia.net"
|
||||
];
|
||||
llmnr = "false";
|
||||
fallbackDns = [ "9.9.9.9" ];
|
||||
};
|
||||
|
||||
services.mullvad-vpn.enable = true;
|
||||
|
||||
security.tpm2 = {
|
||||
enable = true;
|
||||
pkcs11.enable = true;
|
||||
tctiEnvironment.enable = true;
|
||||
};
|
||||
|
||||
users.users.dln = {
|
||||
isNormalUser = true;
|
||||
description = "Daniel Lundin";
|
||||
|
@ -108,12 +136,12 @@
|
|||
patagia = {
|
||||
desktop.enable = true;
|
||||
laptop.enable = true;
|
||||
plymouth.enable = true;
|
||||
# plymouth.enable = true;
|
||||
podman.enable = true;
|
||||
};
|
||||
|
||||
services.displayManager.autoLogin.enable = true;
|
||||
services.displayManager.autoLogin.user = "dln";
|
||||
# services.displayManager.autoLogin.enable = true;
|
||||
# services.displayManager.autoLogin.user = "dln";
|
||||
systemd.services."getty@tty1".enable = false;
|
||||
systemd.services."autovt@tty1".enable = false;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue