Compare commits

...

10 commits

Author SHA1 Message Date
Evie Litherland-Smith ff54d7e919 sway: add monitor config for Northstar 2024-04-12 21:36:08 +01:00
Evie Litherland-Smith 0d3a037ef8 Enable tap and natural scrolling for touchpads 2024-04-12 21:25:48 +01:00
Evie Litherland-Smith 6dd70aa58e Fixed a couple of sway issues
Made swayfx the standard, added nixos system-level module to enable
and autostart with greetd; Includes fix for missing session that
should be fixed in later nixpkgs versions

Fixed formatting for waybar workspaces module, wasn't showing active
or empty workspaces correctly
2024-04-12 21:17:54 +01:00
Evie Litherland-Smith a4ab3c7288 Change most things over to use sway
Added most config, at least enough to get by for now

Update waybar config to remove hyprland-specific things

Misc updates to rofi, swaylock

Set greetd to start sway on machines by default now
2024-04-12 17:56:13 +01:00
Evie Litherland-Smith 2ce32bad4c Add back some kind of initial sway config 2024-04-12 11:43:34 +01:00
Evie Litherland-Smith 5db0b3feff Add guard for git-sync-all for non-main branch
Only pull/push non-syncing repos (currently nixos and emacs) if on the
"main" branch, echo warning message and skip otherwise.
2024-04-12 11:24:39 +01:00
Evie Litherland-Smith f8c7f1bf55 Fix missing import catch-all 2024-04-12 11:24:39 +01:00
Evie Litherland-Smith f0405343fc Add initial (and untested) river example config 2024-04-12 11:24:39 +01:00
Evie Litherland-Smith 97e8a62ece home-manager: move anything not hyprland-specific into desktop.nix 2024-04-12 11:24:39 +01:00
Evie Litherland-Smith 1a1d58a199 Move anything that's no hyprland-specific into desktop.nix 2024-04-12 11:24:39 +01:00
15 changed files with 504 additions and 268 deletions

View file

@ -193,21 +193,22 @@
hostName = "Northstar";
systemModules = [
./system/laptop.nix
./system/hyprland.nix
./system/sway.nix
];
homeModules = [
./home/hyprland/default.nix
./home/sway/default.nix
];
};
Vanguard = systemConfig {
hostName = "Vanguard";
systemModules = [
./system/hyprland.nix
./system/desktop
./system/games.nix
./system/sway.nix
];
homeModules = [
./home/hyprland/default.nix
./home/sway/default.nix
];
};
@ -218,10 +219,10 @@
user = "elitherl";
systemModules = [
./system/laptop.nix
./system/hyprland.nix
./system/sway.nix
];
homeModules = [
./home/hyprland/default.nix
./home/sway/default.nix
./home/email/work.nix
];
};
@ -230,10 +231,11 @@
hostName = "Scorch";
user = "elitherl";
systemModules = [
./system/hyprland.nix
./system/desktop.nix
./system/sway.nix
];
homeModules = [
./home/hyprland/default.nix
./home/sway/default.nix
./home/email/work.nix
];
};

63
home/desktop.nix Normal file
View file

@ -0,0 +1,63 @@
{
lib,
config,
pkgs,
catppuccinVariant ? "Mocha",
...
}: {
imports = [
./default.nix
./email/default.nix
./password-store/default.nix
./waybar/default.nix
./rofi/default.nix
./swaylock/default.nix
./swaync/default.nix
./avizo/default.nix
./alacritty/default.nix
./emacs/default.nix
./obs/default.nix
./cava/default.nix
];
programs.rofi.terminal = "${config.programs.alacritty.package}/bin/alacritty";
services = {
gpg-agent.pinentryFlavor = "gtk2";
avizo.enable = true;
syncthing.enable = true;
udiskie = {
enable = true;
notify = true;
automount = true;
tray = "never";
};
};
gtk = with lib.strings; let
accent = "Lavender";
size = "Standard";
in {
enable = true;
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
accent = toLower accent;
flavor = toLower catppuccinVariant;
};
name = "Papirus-Dark";
};
cursorTheme = let
variant = "${lib.strings.toLower catppuccinVariant}Dark";
in {
package = pkgs.catppuccin-cursors.${variant};
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
size = 32;
};
theme = {
package = with lib.strings;
pkgs.catppuccin-gtk.override {
accents = [(toLower accent)];
size = toLower size;
variant = toLower catppuccinVariant;
};
name = "Catppuccin-${catppuccinVariant}-${size}-${accent}-Dark";
};
};
}

View file

@ -5,23 +5,9 @@
fonts,
scheme,
accentColour ? "base07",
catppuccinVariant ? "Mocha",
...
}: {
imports = [
../default.nix
../email/default.nix
../password-store/default.nix
../waybar/default.nix
../rofi/default.nix
../swaylock/default.nix
../swaync/default.nix
../avizo/default.nix
../alacritty/default.nix
../emacs/default.nix
../obs/default.nix
../cava/default.nix
];
imports = [../desktop.nix];
home.packages = with pkgs; [
(writeShellScriptBin "protonmail-setup-bridge" ''
pkill -9 -f protonmail-bridge
@ -29,54 +15,6 @@
${config.wayland.windowManager.hyprland.finalPackage}/bin/hyprctl dispatch exec "${protonmail-bridge}/bin/protonmail-bridge -n"
'')
];
programs = {
rofi = with pkgs; {
package = rofi-wayland;
terminal = "${config.programs.alacritty.package}/bin/alacritty";
pass.package = rofi-pass-wayland;
};
zellij.settings.copy_command = "wl-copy";
};
services = {
gpg-agent.pinentryFlavor = "gtk2";
avizo.enable = true;
syncthing.enable = true;
udiskie = {
enable = true;
notify = true;
automount = true;
tray = "never";
};
};
gtk = with lib.strings; let
accent = "Lavender";
size = "Standard";
in {
enable = true;
iconTheme = {
package = pkgs.catppuccin-papirus-folders.override {
accent = toLower accent;
flavor = toLower catppuccinVariant;
};
name = "Papirus-Dark";
};
cursorTheme = let
variant = "${lib.strings.toLower catppuccinVariant}Dark";
in {
package = pkgs.catppuccin-cursors.${variant};
name = "Catppuccin-${catppuccinVariant}-Dark-Cursors";
size = 32;
};
theme = {
package = with lib.strings;
pkgs.catppuccin-gtk.override {
accents = [(toLower accent)];
size = toLower size;
variant = toLower catppuccinVariant;
};
name = "Catppuccin-${catppuccinVariant}-${size}-${accent}-Dark";
};
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;

51
home/river/default.nix Normal file
View file

@ -0,0 +1,51 @@
{config, ...}: {
imports = [../desktop.nix];
wayland.windowManager.river = {
enable = true;
xwayland.enable = true;
extraSessionVariables = {
QT_AUTO_SCREEN_SCALE_FACTOR = "1";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
MOZ_ENABLE_WAYLAND = "1";
};
systemd = {
enable = true;
variables = [
"DISPLAY"
"WAYLAND_DISPLAY"
"XDG_CURRENT_DESKTOP"
"NIXOS_OZONE_WL"
"XCURSOR_THEME"
"XCURSOR_SIZE"
];
};
settings = {
# These are currently example settings
border-width = 2;
declare-mode = [
"locked"
"normal"
"passthrough"
];
input = {
pointer-foo-bar = {
accel-profile = "flat";
events = true;
pointer-accel = -0.3;
tap = false;
};
};
map = {
normal = {
"Alt Q" = "close";
};
};
rule-add = {};
set-cursor-warp = "on-output-change";
set-repeat = "50 300";
spawn = [];
xcursor-theme = with config.gtk.cursorTheme; "${name} ${toString size}";
};
};
}

View file

@ -8,11 +8,13 @@
}: {
programs.rofi = {
enable = true;
package = pkgs.rofi-wayland;
font = fonts.monospace.name;
location = "center";
plugins = with pkgs; [rofi-emoji];
pass = {
enable = true;
# package = pkgs.rofi-wayland;
extraConfig = ''
USERNAME_field='login'
'';

View file

@ -46,8 +46,12 @@ for i in "${!PULL_DIRS[@]}"; do
fi
(
cd "$DIRECTORY" || exit
git remote set-url origin "$URL"
git pull --ff-only
git push
if [ "$(git branch --show-current)" = "main" ]; then
git remote set-url origin "$URL"
git pull --ff-only
git push
else
echo "Not syncing repo $DIRECTORY on branch $(git branch --show-current)"
fi
)
done

135
home/sway/default.nix Normal file
View file

@ -0,0 +1,135 @@
{
config,
lib,
pkgs,
fonts,
scheme,
accentColour ? "base07",
...
}: {
imports = [../desktop.nix];
wayland.windowManager.sway = {
enable = true;
package = null;
swaynag.enable = true;
systemd.enable = true;
xwayland = true;
config = {
input = {
"*" = {
xkb_layout = "gb";
xkb_options = "ctrl:nocaps";
};
"type:touchpad" = {
tap = "enabled";
natural_scroll = "enabled";
};
};
modifier = "Mod4";
terminal = "${config.programs.alacritty.package}/bin/alacritty";
menu = "${config.programs.rofi.finalPackage}/bin/rofi -show drun";
workspaceAutoBackAndForth = true;
bars = [];
gaps = {
inner = 10;
# outer = 5;
};
fonts = {
names = [fonts.monospace.name];
style = "regular";
size = 12.0; # fonts.sizes.desktop;
};
colors = with scheme.withHashtag; let
text = toString base05;
indicator = toString cyan;
in rec {
background = toString base00;
focused = rec {
inherit background text indicator;
border = toString scheme.withHashtag.${accentColour};
childBorder = border;
};
unfocused = rec {
inherit background text indicator;
border = toString base03;
childBorder = border;
};
focusedInactive = rec {
inherit background text indicator;
border = toString base03;
childBorder = border;
};
};
startup = [
{command = "${pkgs.swaynotificationcenter}/bin/swaync";}
{command = "${pkgs.swaybg}/bin/swaybg -i ${../../wallpapers/waves/cat-waves.png}";}
{command = "${pkgs.waybar}/bin/waybar";}
{command = "${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1";}
{command = "${pkgs.protonmail-bridge}/bin/protonmail-bridge -n";}
];
assigns = {
"3: Files" = [
{class = "^(libreoffice|soffice)(.*)$";}
];
"4: Chat" = [
{class = "^WebCord$";}
{class = "^Signal$";}
];
"5: Games" = [
{class = "^steam$";}
{class = "^org.prismlauncher.PrismLauncher$";}
];
};
window = {
commands = [
{
command = "floating enable";
criteria = {app_id = "org.kde.polkit-kde-authentication-agent-1";};
}
{
command = "floating enable";
criteria = {app_id = "Pinentry";};
}
{
command = "floating enable";
criteria = {app_id = "pavucontrol";};
}
{
command = "floating enable";
criteria = {app_id = ".blueman-manager-wrapped";};
}
{
command = "floating enable";
criteria = {app_id = "nm-connection-editor";};
}
{
command = "floating enable";
criteria = {app_id = "org.prismlauncher.PrismLauncher";};
}
];
};
keybindings = let
modifier = config.wayland.windowManager.sway.config.modifier;
in
lib.mkOptionDefault {
"${modifier}+F1" = "exec swaylock";
"${modifier}+z" = "exec swaync-client -t -sw";
"${modifier}+e" = "exec emacsclient -c";
"${modifier}+w" = "exec firefox";
"${modifier}+f" = "exec thunar";
};
};
extraConfig = ''
corner_radius 10
blur enable
blur_xray disable
blur_passes 3
blur_radius 5
corner_radius 10
shadows enable
shadow_blur_radius 4
titlebar_separator enable
scratchpad_minimize disable
'';
};
}

View file

@ -1,8 +1,4 @@
{
config,
pkgs,
...
}: {
{pkgs, ...}: {
programs.swaylock = {
enable = true;
package = pkgs.swaylock-effects;
@ -13,7 +9,7 @@
indicator-caps-lock = true;
ignore-empty-password = true;
show-failed-attempts = true;
effect-blur = with config.wayland.windowManager.hyprland.settings.decoration.blur; "${toString size}x${toString passes}";
effect-blur = "5x3";
effect-vignette = "0.5:0.5";
grace = 2;
fade-in = 0.2;

View file

@ -17,8 +17,8 @@
position = "top";
# Layout
"modules-left" = [
"hyprland/workspaces"
"hyprland/window"
"sway/workspaces"
"sway/window"
];
"modules-center" = [
"mpris"
@ -36,8 +36,36 @@
"tray"
];
# Module config
"hyprland/window" = {
"sway/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "󰟀 ";
"2" = "󰝚 ";
"3" = "󱧶 ";
"4" = "󰭻 ";
"5" = "󰹁 ";
"6" = "󰫃 ";
"7" = "󰫄 ";
"8" = "󰫅 ";
"9" = "󰫆 ";
"10" = "󰫇 ";
default = "󰫈 ";
urgent = "󰁡 ";
};
# show-special = false;
# sort-by-number = true;
all-outputs = false;
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
"sway/window" = {
"format" = "{title}";
"max-length" = 50;
"rewrite" = {
"(.*) - GNU Emacs at (.*)" = " $1 [$2]";
"(Alacritty.*)" = " $1";
@ -57,34 +85,6 @@
"(X2Go Client)" = "󰢹 $1";
"(NoMachine|Nxplayer.bin) (.*)" = "󰢹 $1 $2";
};
"separate-outputs" = true;
};
"hyprland/workspaces" = {
format = "{icon}";
format-icons = {
"1" = "󰟀 ";
"2" = "󰝚 ";
"3" = "󱧶 ";
"4" = "󰭻 ";
"5" = "󰹁 ";
"6" = "󰫃 ";
"7" = "󰫄 ";
"8" = "󰫅 ";
"9" = "󰫆 ";
"10" = "󰫇 ";
default = "󰫈 ";
urgent = "󰁡 ";
};
show-special = false;
sort-by-number = true;
all-outputs = false;
persistent-workspaces = {
"1" = [];
"2" = [];
"3" = [];
"4" = [];
"5" = [];
};
};
mpris = {
"format" = "{status_icon} {player_icon} {artist} - {title}";
@ -314,10 +314,10 @@
margin: 0px;
padding: 0px 5px;
}
#workspaces button.empty {
#workspaces button.persistent {
color: ${base03};
}
#workspaces button.active {
#workspaces button.focused {
color: ${accent};
}
#workspaces button.urgent {

View file

@ -1 +1,7 @@
{...}: {wayland.windowManager.hyprland.settings.monitor = ["eDP-1,preferred,1920x0,1.50"];}
{...}: {
wayland.windowManager.sway.config.output = {
"eDP-1" = {
scale = "1.5";
};
};
}

View file

@ -1,34 +1,85 @@
{
lib,
pkgs,
user,
...
}: {
imports = [./default.nix];
environment.systemPackages = with pkgs; [
libnotify
libcamera
glib
gsettings-desktop-schemas
hunspell
hunspellDicts.en_GB-large
xarchiver
libreoffice-fresh
zathura
inkscape
noson
tagger
webcord
signal-desktop
remmina
nomachine-client
];
imports = [./default.nix ./firefox.nix];
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
environment = {
sessionVariables = {
NIXOS_OZONE_WL = "1";
XDG_SESSION_TYPE = "wayland";
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
};
systemPackages = with pkgs; [
wtype
wl-clipboard
xdg-utils
libnotify
libcamera
glib
gsettings-desktop-schemas
hunspell
hunspellDicts.en_GB-large
swaybg
swayimg
swaylock-effects
pamixer
pavucontrol
playerctl
brightnessctl
mpv
xarchiver
libreoffice-fresh
zathura
inkscape
noson
tagger
webcord
signal-desktop
remmina
nomachine-client
];
};
security = {
polkit.enable = true;
rtkit.enable = true;
pam = {
services.swaylock = {};
loginLimits = [
{
domain = "@users";
item = "rtprio";
type = "-";
value = 1;
}
];
};
};
sound.enable = false;
hardware.bluetooth.enable = true;
programs = {
dconf.enable = true;
light.enable = true;
noisetorch.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
};
};
gtk.iconCache.enable = true;
qt = {
enable = true;
platformTheme = "gtk2";
style = "gtk2";
};
services = {
blueman.enable = true;
gvfs = {
enable = true;
package = lib.mkForce pkgs.gnome3.gvfs;
};
accounts-daemon.enable = true;
dbus.packages = with pkgs; [gcr];
greetd = {
@ -46,20 +97,94 @@
pulse.enable = true;
wireplumber.enable = true;
};
xserver.xkb = {
layout = "gb";
variant = "";
options = "ctrl:nocaps";
tumbler.enable = true;
udisks2.enable = true;
xserver = {
enable = false;
xkb = {
layout = "gb";
variant = "";
options = "ctrl:nocaps";
};
};
};
programs = {
dconf.enable = true;
noisetorch.enable = true;
};
gtk.iconCache.enable = true;
qt = {
enable = true;
platformTheme = "gtk2";
style = "gtk2";
xdg = {
portal = {
enable = true;
config.common.default = "*"; # TODO change for xdg-desktop-portal > 1.17 changes
extraPortals = [pkgs.xdg-desktop-portal-gtk];
};
mime = let
emacs = ["emacsclient.desktop" "emacs.desktop"];
browser = ["firefox.desktop"];
applications = {
"inode/directory" = ["thunar.desktop"];
"inode/symlink" = ["thunar.desktop"];
"image/jpeg" = ["swayimg.desktop"];
"image/png" = ["swayimg.desktop"];
"video/mp4" = ["mpv.desktop"];
"text/plain" = emacs;
"text/richtext" = emacs;
"text/org" = emacs;
"text/markdown" = emacs;
"text/rust" = emacs;
"text/csv" = emacs;
"text/html" = emacs;
"text/css" = emacs;
"text/tab-separated-values" = emacs;
"text/x-emacs-lisp" = emacs;
"text/x-fortran" = emacs;
"text/x-idl" = emacs;
"text/x-log" = emacs;
"text/x-lua" = emacs;
"text/x-makefile" = emacs;
"text/x-python" = emacs;
"text/x-python3" = emacs;
"text/x-readme" = emacs;
"text/x-scheme" = emacs;
"text/x-tex" = emacs;
"text/x-texinfo" = emacs;
"application/json" = emacs;
"application/toml" = emacs;
"application/yaml" = emacs;
"application/xml" = emacs;
"application/rss+xml" = emacs;
"application/xhtml+xml" = emacs;
"application/oxps" = emacs;
"application/x-shellscript" = emacs;
"application/pdf" = ["org.pwmt.zathura.desktop"];
"application/epub+zip" = ["org.pwmt.zathura.desktop"];
"application/msword" = ["writer.desktop"];
"application/zip" = ["xarchiver.desktop"];
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"application/x-mozilla-bookmarks" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser;
"x-scheme-handler/unknown" = emacs;
"x-scheme-handler/ms-word" = ["writer.desktop"];
"x-scheme-handler/ms-powerpoint" = ["impress.desktop"];
"x-scheme-handler/ms-excel" = ["calc.desktop"];
};
in {
enable = true;
defaultApplications = applications;
addedAssociations = applications;
removedAssociations = {"x-scheme-handler/zoomus" = browser;};
};
};
}

View file

@ -1,136 +1,23 @@
{
lib,
pkgs,
...
}: {
imports = [./desktop.nix ./firefox.nix];
nixpkgs.config.chromium.commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland";
{pkgs, ...}: {
imports = [./desktop.nix];
environment = {
sessionVariables = {
NIXOS_OZONE_WL = "1";
XDG_SESSION_TYPE = "wayland";
XDG_SESSION_DESKTOP = "Hyprland";
XDG_CURRENT_DESKTOP = "Hyprland";
GRIM_DEFAULT_DIR = "$HOME/Pictures/Grim";
};
systemPackages = with pkgs; [
wtype
wl-clipboard
xdg-utils
hyprpaper
hyprpicker
swaylock-effects
swayimg
pamixer
pavucontrol
playerctl
brightnessctl
mpv
];
};
security.pam.services = {
swaylock = {};
hyprlock = {};
};
services = {
xserver.enable = false;
blueman.enable = true;
udisks2.enable = true;
tumbler.enable = true;
gvfs = {
enable = true;
package = lib.mkForce pkgs.gnome3.gvfs;
};
greetd.settings = let
command = "Hyprland";
in {
default_session = {inherit command;};
initial_session = {inherit command;};
};
};
xdg.portal.enable = true;
xdg.mime = let
emacs = ["emacsclient.desktop" "emacs.desktop"];
browser = ["firefox.desktop"];
applications = {
"inode/directory" = ["thunar.desktop"];
"inode/symlink" = ["thunar.desktop"];
"image/jpeg" = ["swayimg.desktop"];
"image/png" = ["swayimg.desktop"];
"video/mp4" = ["mpv.desktop"];
"text/plain" = emacs;
"text/richtext" = emacs;
"text/org" = emacs;
"text/markdown" = emacs;
"text/rust" = emacs;
"text/csv" = emacs;
"text/html" = emacs;
"text/css" = emacs;
"text/tab-separated-values" = emacs;
"text/x-emacs-lisp" = emacs;
"text/x-fortran" = emacs;
"text/x-idl" = emacs;
"text/x-log" = emacs;
"text/x-lua" = emacs;
"text/x-makefile" = emacs;
"text/x-python" = emacs;
"text/x-python3" = emacs;
"text/x-readme" = emacs;
"text/x-scheme" = emacs;
"text/x-tex" = emacs;
"text/x-texinfo" = emacs;
"application/json" = emacs;
"application/toml" = emacs;
"application/yaml" = emacs;
"application/xml" = emacs;
"application/rss+xml" = emacs;
"application/xhtml+xml" = emacs;
"application/oxps" = emacs;
"application/x-shellscript" = emacs;
"application/pdf" = ["org.pwmt.zathura.desktop"];
"application/epub+zip" = ["org.pwmt.zathura.desktop"];
"application/msword" = ["writer.desktop"];
"application/zip" = ["xarchiver.desktop"];
"application/x-extension-htm" = browser;
"application/x-extension-html" = browser;
"application/x-extension-shtml" = browser;
"application/x-extension-xhtml" = browser;
"application/x-extension-xht" = browser;
"application/x-mozilla-bookmarks" = browser;
"x-scheme-handler/http" = browser;
"x-scheme-handler/https" = browser;
"x-scheme-handler/about" = browser;
"x-scheme-handler/chrome" = browser;
"x-scheme-handler/webcal" = browser;
"x-scheme-handler/unknown" = emacs;
"x-scheme-handler/ms-word" = ["writer.desktop"];
"x-scheme-handler/ms-powerpoint" = ["impress.desktop"];
"x-scheme-handler/ms-excel" = ["calc.desktop"];
};
services.greetd.settings = let
command = "Hyprland";
in {
enable = true;
defaultApplications = applications;
addedAssociations = applications;
removedAssociations = {"x-scheme-handler/zoomus" = browser;};
default_session = {inherit command;};
initial_session = {inherit command;};
};
programs = {
dconf.enable = true;
light.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [thunar-archive-plugin thunar-volman];
};
hyprland = {
enable = true;
xwayland.enable = true;
};
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
}

View file

@ -1,4 +1,5 @@
{...}: {
imports = [./desktop.nix];
powerManagement.enable = true;
services.auto-cpufreq = {
enable = true;

7
system/river.nix Normal file
View file

@ -0,0 +1,7 @@
{...}: {
imports = [./desktop.nix];
programs.river = {
enable = true;
extraPackages = [];
};
}

19
system/sway.nix Normal file
View file

@ -0,0 +1,19 @@
{
config,
pkgs,
...
}: {
programs.sway = {
enable = true;
package =
pkgs.swayfx.overrideAttrs
(old: {passthru.providedSessions = ["sway"];});
wrapperFeatures.gtk = true;
};
services.greetd.settings = let
command = "${config.programs.sway.package}/bin/sway";
in {
default_session = {inherit command;};
initial_session = {inherit command;};
};
}