feat(nix): extend wayland with sway setup
This commit is contained in:
parent
2da1181445
commit
6970b8c7d2
27 changed files with 867 additions and 516 deletions
|
@ -2,6 +2,7 @@
|
|||
imports = [
|
||||
../../profiles/common/configuration.nix
|
||||
../../profiles/graphical/configuration.nix
|
||||
../../profiles/graphical-gnome-xorg.nix
|
||||
../../modules/opinionatedDisk.nix
|
||||
|
||||
./system.nix
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
imports = [
|
||||
../../profiles/common/configuration.nix
|
||||
../../profiles/graphical/configuration.nix
|
||||
../../profiles/graphical-gnome-xorg.nix
|
||||
|
||||
./system.nix
|
||||
./hw.nix
|
||||
|
|
|
@ -10,6 +10,5 @@
|
|||
home-manager.users.steveej = import ../../../home-manager/configuration/graphical-fullblown.nix {
|
||||
inherit pkgs;
|
||||
};
|
||||
services.teamviewer.enable = true;
|
||||
system.stateVersion = "20.09";
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
../../profiles/common/configuration.nix
|
||||
../../profiles/graphical/configuration.nix
|
||||
../../modules/opinionatedDisk.nix
|
||||
../../cachix.nix
|
||||
|
||||
./system.nix
|
||||
./hw.nix
|
||||
|
|
|
@ -5,18 +5,25 @@
|
|||
nodeFlake = repoFlake.inputs.get-flake ./.;
|
||||
in {
|
||||
meta.nodeSpecialArgs.${nodeName} = {
|
||||
inherit nodeName nodeFlake;
|
||||
inherit repoFlake nodeName nodeFlake;
|
||||
packages' = repoFlake.packages.${system};
|
||||
};
|
||||
|
||||
meta.nodeNixpkgs.${nodeName} = import nodeFlake.inputs.nixpkgs.outPath {
|
||||
inherit system;
|
||||
overlays = [
|
||||
(final: prev: {
|
||||
# FIXME: why are these not effective in for the configuration.nix below?
|
||||
xdg-desktop-portal-wlr' = repoFlake.inputs.nixpkgs-wayland.packages.${system}.xdg-desktop-portal-wlr;
|
||||
xdg-desktop-portal-wlr-gtk' = repoFlake.inputs.nixpkgs-wayland.packages.${system}.xdg-desktop-portal-wlr-gtk;
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
${nodeName} = {
|
||||
deployment.targetHost = nodeName;
|
||||
deployment.replaceUnknownProfiles = false;
|
||||
# deployment.allowLocalDeployment = true;
|
||||
deployment.allowLocalDeployment = true;
|
||||
|
||||
imports = [
|
||||
(repoFlake + "/nix/os/devices/${nodeName}/configuration.nix")
|
||||
|
|
25
nix/os/devices/steveej-t14/flake.lock
generated
25
nix/os/devices/steveej-t14/flake.lock
generated
|
@ -37,13 +37,29 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"nixpkgs-2211": {
|
||||
"locked": {
|
||||
"lastModified": 1684756366,
|
||||
"narHash": "sha256-aua/NybNHOJdZ0whu2qRfFOFqgjVUZ65D4xg3i3nZS0=",
|
||||
"lastModified": 1684580438,
|
||||
"narHash": "sha256-LUPswmDn6fXP3lEBJFA2Id8PkcYDgzUilevWackYVvQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e8d32cbe6678eb66f8def22cce43422c4b64957f",
|
||||
"rev": "7dc71aef32e8faf065cb171700792cf8a65c152d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-22.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-master": {
|
||||
"locked": {
|
||||
"lastModified": 1684758073,
|
||||
"narHash": "sha256-LFm53sqiZoWRMNPjIDhqJvXgCcdsmMw7rbSZFhLRuJw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "f491fc656a0b48c40e0312d559380d4ad46c4447",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -73,6 +89,7 @@
|
|||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-2211": "nixpkgs-2211",
|
||||
"nixpkgs-master": "nixpkgs-master",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
inputs.nixpkgs-2211.url = "github:nixos/nixpkgs/nixos-22.11";
|
||||
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
inputs.nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable-small";
|
||||
inputs.nixpkgs-master.url = "github:nixos/nixpkgs/master";
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{pkgs, lib, ...}: {
|
||||
{pkgs, lib, repoFlake, nodeFlake, ...}: {
|
||||
home-manager.users.steveej = _: {
|
||||
imports = [
|
||||
../../../home-manager/configuration/graphical-fullblown.nix
|
||||
|
@ -11,89 +11,122 @@
|
|||
];
|
||||
};
|
||||
|
||||
# TODO: delegate graphical session to home-manager config (mostly)
|
||||
|
||||
# FIXME: move this to home-manager entirely
|
||||
# programs.sway.enable = true;
|
||||
# programs.sway.package = null;
|
||||
|
||||
services.xserver = {
|
||||
enable = lib.mkForce false;
|
||||
|
||||
desktopManager = {
|
||||
gnome.enable = lib.mkForce false;
|
||||
xterm.enable = lib.mkForce false;
|
||||
|
||||
# FIXME: gnome should be moved to user session
|
||||
# gnome.enable = true;
|
||||
# xterm.enable = true;
|
||||
};
|
||||
|
||||
displayManager = {
|
||||
# gdm.enable = lib.mkForce false;
|
||||
|
||||
# FIXME: does the home-manager session have an explicit name?
|
||||
# defaultSession = "xterm";
|
||||
|
||||
# autoLogin = {
|
||||
# enable = true;
|
||||
# user = "steveej";
|
||||
# };
|
||||
|
||||
# session = [
|
||||
# {
|
||||
# manage = "desktop";
|
||||
# name = "xsession";
|
||||
# start = "";
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
};
|
||||
|
||||
services.greetd =
|
||||
let
|
||||
# exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit"
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK; ${pkgs.greetd.regreet}/bin/regreet; swaymsg exit"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
'';
|
||||
in {
|
||||
enable = true;
|
||||
settings = {
|
||||
vt = 1;
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
# TODO: fix the following errors with regreet
|
||||
#
|
||||
# Failed to create /var/empty/.cache for shader cache (Operation not permitted)---disabling.
|
||||
# amdgpu: amdgpu_cs_ctx_create2 failed. (-13)
|
||||
# Failed to create /var/empty/.cache for shader cache (Operation not permitted)---disabling.
|
||||
# ERROR: Couldn't create log file '/var/log/regreet/log': Permission denied (os error 13)
|
||||
# 2023-05-22T10:31:42.52900769+02:00 WARN regreet::tomlutils: Missing TOML file: /var/cache/regreet/cache.toml
|
||||
# 2023-05-22T10:31:42.52902325+02:00 WARN regreet::tomlutils: Missing TOML file: /etc/greetd/regreet.toml
|
||||
#
|
||||
# (regreet:505614): Gtk-WARNING **: 10:31:42.532: Theme parser warning: <data>:6:17-18: Empty declaration
|
||||
# Failed to create /var/empty/.cache for shader cache (Operation not permitted)---disabling.
|
||||
services.greetd =
|
||||
let
|
||||
# exec "${pkgs.greetd.gtkgreet}/bin/gtkgreet -l; swaymsg exit"
|
||||
swayConfig = pkgs.writeText "greetd-sway-config" ''
|
||||
# `-l` activates layer-shell mode. Notice that `swaymsg exit` will run after gtkgreet.
|
||||
exec "dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK; ${pkgs.greetd.regreet}/bin/regreet; swaymsg exit"
|
||||
bindsym Mod4+shift+e exec swaynag \
|
||||
-t warning \
|
||||
-m 'What do you want to do?' \
|
||||
-b 'Poweroff' 'systemctl poweroff' \
|
||||
-b 'Reboot' 'systemctl reboot'
|
||||
'';
|
||||
in {
|
||||
enable = false;
|
||||
settings = {
|
||||
vt = 1;
|
||||
default_session = {
|
||||
command = "${pkgs.sway}/bin/sway --config ${swayConfig}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.etc."greetd/environments".text = ''
|
||||
sway
|
||||
jay
|
||||
'';
|
||||
|
||||
# fonts = let
|
||||
# prefs.font = rec {
|
||||
# size = 13;
|
||||
# default = sans;
|
||||
|
||||
# sans = { family = "Noto Sans"; package = pkgs.noto-fonts; };
|
||||
# serif = { family = "Noto Serif"; package = pkgs.noto-fonts; };
|
||||
# # monospace = { family = "Iosevka Fixed"; package = pkgs.iosevka-bin; };
|
||||
# monospace = { family = "Iosevka Comfy Fixed"; package = pkgs.iosevka-comfy.comfy-fixed; };
|
||||
# # monospace = { family = "Go Mono"; package = pkgs.go-font; };
|
||||
# # monospace = { family = "Jetbrains Mono"; package = pkgs.jetbrains-mono; };
|
||||
# fallback = { family = "Font Awesome 5 Free"; package = pkgs.font-awesome; };
|
||||
# emoji = { family = "Noto Color Emoji"; package = pkgs.noto-fonts-emoji; };
|
||||
#
|
||||
# allPackages = (map (p: p.package)
|
||||
# [
|
||||
# default
|
||||
# sans
|
||||
# serif
|
||||
# monospace
|
||||
# fallback
|
||||
# emoji
|
||||
# ]) ++
|
||||
# (with pkgs; [
|
||||
# liberation_ttf # free corefonts-metric-compatible replacement
|
||||
# ttf_bitstream_vera
|
||||
# gelasio # metric-compatible with Georgia
|
||||
# powerline-symbols
|
||||
# ]);
|
||||
# };
|
||||
# in {
|
||||
# # fonts = prefs.font.allPackages;
|
||||
|
||||
# # fontconfig = {
|
||||
# # enable = true;
|
||||
# # defaultFonts = {
|
||||
# # serif = [ prefs.font.serif.family ];
|
||||
# # sansSerif = [ prefs.font.sans.family ];
|
||||
# # monospace = [ prefs.font.monospace.family ];
|
||||
# # emoji = [ prefs.font.emoji.family ];
|
||||
# # };
|
||||
# # };
|
||||
# };
|
||||
|
||||
security.pam.services.getty.enableGnomeKeyring = true;
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
# rtkit is optional but recommended
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
# If you want to use JACK applications, uncomment this
|
||||
#jack.enable = true;
|
||||
};
|
||||
|
||||
# required by swaywm
|
||||
security.polkit.enable = true;
|
||||
|
||||
security.pam.services.swaylock = { };
|
||||
|
||||
services.teamviewer.enable = false;
|
||||
system.stateVersion = "20.09";
|
||||
# test these on https://mozilla.github.io/webrtc-landing/gum_test.html
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
# FIXME: `true` breaks xdg-open from alacritty:
|
||||
# $ xdg-open "https://github.com/"
|
||||
# Error: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.OpenURI” on object at path /org/freedesktop/portal/desktop
|
||||
xdgOpenUsePortal = false;
|
||||
extraPortals = [
|
||||
pkgs.xdg-desktop-portal-wlr
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
|
||||
# repoFlake.inputs.nixpkgs-wayland.packages.${pkgs.system}.xdg-desktop-portal-wlr
|
||||
# (pkgs.xdg-desktop-portal-gtk.override (_: {
|
||||
# buildPortalsInGnome = false;
|
||||
# }))
|
||||
];
|
||||
};
|
||||
|
||||
# TODO: move this into home-manager
|
||||
environment.systemPackages = with pkgs.gnomeExtensions; [
|
||||
pop-shell
|
||||
vitals
|
||||
soft-brightness
|
||||
|
||||
# TODO: currently not compatible
|
||||
# window-switcher-current-workspace-first
|
||||
# mmod-panel
|
||||
];
|
||||
system.stateVersion = "23.05";
|
||||
}
|
||||
|
|
|
@ -7,19 +7,19 @@
|
|||
}: let
|
||||
passwords = import ../../../variables/passwords.crypt.nix;
|
||||
in {
|
||||
nix = {
|
||||
binaryCaches = [
|
||||
nix.settings = {
|
||||
substituters = [
|
||||
"https://holochain-ci.cachix.org"
|
||||
# "https://cache.holo.host/"
|
||||
];
|
||||
binaryCachePublicKeys = [
|
||||
trusted-public-keys = [
|
||||
"holochain-ci.cachix.org-1:5IUSkZc0aoRS53rfkvH9Kid40NpyjwCMCzwRTXy+QN8="
|
||||
# "cache.holo.host-1:lNXIXtJgS9Iuw4Cu6X0HINLu9sTfcjEntnrgwMQIMcE="
|
||||
# "cache.holo.host-2:ZJCkX3AUYZ8soxTLfTb60g+F3MkWD7hkH9y8CgqwhDQ="
|
||||
];
|
||||
|
||||
settings.extra-experimental-features = ["impure-derivations"];
|
||||
settings.system-features = ["recursive-nix"];
|
||||
extra-experimental-features = ["impure-derivations"];
|
||||
system-features = ["recursive-nix"];
|
||||
};
|
||||
|
||||
networking.bridges."virbr1".interfaces = [];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue