feat(niri): giving niri a test drive

This commit is contained in:
2025-09-12 20:47:08 +02:00
parent 65de9592a0
commit f6722f4986
19 changed files with 329 additions and 107 deletions

View File

@@ -76,6 +76,7 @@
./nixos/programs/lact
./nixos/programs/lutris
./nixos/programs/microfetch
./nixos/programs/niri
./nixos/programs/pkgs
./nixos/programs/mysql-workbench
./nixos/programs/nh

View File

@@ -22,7 +22,7 @@ in
main = {
layer = "overlay";
font = "Input Sans Narrow Light:size=12";
launch-prefix = "uwsm app --";
# launch-prefix = "uwsm app --";
lines = "8";
};
colors = {

View File

@@ -28,7 +28,7 @@ in
enableFishIntegration = config.programs.fish.enable;
enableZshIntegration = config.programs.zsh.enable;
settings = {
theme = "GruvboxDark";
theme = "GruvboxDarkHard";
focus-follows-mouse = true;
resize-overlay = "never";
background-opacity = 0.95;

View File

@@ -12,7 +12,7 @@ in
{
imports = [
./languages.nix
./gruvbox.nix
# ./gruvbox.nix
];
options = {
@@ -26,7 +26,7 @@ in
package = inputs.helix-flake.packages.${pkgs.system}.default;
settings = {
theme = "gruvbox_custom";
theme = "gruvbox_dark_hard";
editor = {
color-modes = true;
scrolloff = 0;

View File

@@ -1,7 +1,6 @@
{
inputs,
pkgs,
config,
lib,
osConfig,
cLib,
@@ -9,7 +8,7 @@
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.home.programs.hyprlock;
cfg = osConfig.nixos.programs.hyprland;
hyprlockFlake = inputs.hyprlock.packages.${pkgs.system}.hyprlock;
# hyprlockPkg = pkgs.hyprlock;
@@ -18,9 +17,6 @@ let
inherit (cLib.theme.bgs) resolve;
in
{
options = {
home.programs.hyprlock.enable = mkEnableOption "Enables hyprlock";
};
config = mkIf cfg.enable {
programs.hyprlock = {
enable = true;

View File

@@ -1,5 +1,22 @@
[
{
"modules-left": [
"group/system"
],
"modules-center": [
"niri/workspaces"
],
"modules-right": [
"custom/progress",
"custom/systemd",
"group/tray",
"pulseaudio",
"backlight",
"battery",
"date",
"clock",
"custom/dunst"
],
"backlight": {
"format": "<span foreground='#928374'>{icon}</span> {percent}%",
"format-icons": [
@@ -128,6 +145,19 @@
"*": 3
}
},
"niri/workspaces": {
"format": "{icon}",
"format-icons": {
// Named workspaces
// (you need to configure them in niri)
"browser": "",
"discord": "",
"chat": "<b></b>",
// Icons by state
"active": "",
"default": ""
}
},
"memory": {
"format": "<span foreground='#928374'></span> {}%",
"states": {
@@ -135,23 +165,6 @@
"warning": 70
}
},
"modules-center": [
"hyprland/workspaces"
],
"modules-left": [
"group/system"
],
"modules-right": [
"custom/progress",
"custom/systemd",
"group/tray",
"pulseaudio",
"backlight",
"battery",
"date",
"clock",
"custom/dunst"
],
"network": {
"format-disconnected": " <span foreground='#928374'></span> ",
"format-ethernet": "<span foreground='#928374'></span> {ifname}",

View File

@@ -1,21 +1,18 @@
{
config,
osConfig,
lib,
pkgs,
inputs,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.home.services.hypridle;
inherit (lib) mkIf;
cfg = osConfig.nixos.programs.hyprland;
hypridleFlake = inputs.hypridle.packages.${pkgs.system}.hypridle;
# hypridlePkg = pkgs.hypridle;
in
{
options = {
home.services.hypridle.enable = mkEnableOption "Enables hypridle";
};
config = mkIf cfg.enable {
services.hypridle = {
enable = true;

View File

@@ -1,5 +1,4 @@
{
config,
lib,
pkgs,
inputs,
@@ -8,9 +7,9 @@
...
}:
let
inherit (lib) mkIf mkEnableOption;
inherit (lib) mkIf;
cfg = config.home.services.hyprpaper;
cfg = osConfig.nixos.programs.hyprland;
hyprpaperFlake = inputs.hyprpaper.packages.${pkgs.system}.default;
bg = osConfig.settings.theme.background;
bgs = cLib.theme.bgs;
@@ -35,10 +34,6 @@ let
];
in
{
options = {
home.services.hyprpaper.enable = mkEnableOption "Enable hyprpaper wallpaper service";
};
config = mkIf cfg.enable {
services.hyprpaper = {
enable = true;

View File

@@ -20,7 +20,14 @@ in
config = mkMerge [
(mkIf cfg.enable {
programs.fish.enable = true;
programs.fish = {
enable = true;
vendor = {
completions.enable = true;
config.enable = true;
functions.enable = true;
};
};
})
(mkIf cfg.homeless.enable {

View File

@@ -1,22 +0,0 @@
# Taken from Misterio77 https://github.com/Misterio77/nix-config/blob/main/home/gabriel/features/cli/fish/up-or-search.fish
# Merge history upon doing up-or-search
# This lets multiple fish instances share history
if commandline --search-mode
commandline -f history-search-backward
return
end
if commandline --paging-mode
commandline -f up-line
return
end
set -l lineno (commandline -L)
switch $lineno
case 1
commandline -f history-search-backward
# Here we go
history merge
case '*'
commandline -f up-line
end

View File

@@ -0,0 +1,24 @@
{
config,
inputs,
lib,
pkgs,
...
}:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.nixos.programs.niri;
in
{
options = {
nixos.programs.niri.enable = mkEnableOption "Enables niri";
};
config = mkIf cfg.enable {
nixpkgs.overlays = [ inputs.niri.overlays.niri ];
systemd.user.services.niri-flake-polkit.enable = false;
programs.niri = {
enable = true;
package = pkgs.niri-unstable;
};
};
}

View File

@@ -1,6 +1,7 @@
{
config,
lib,
pkgs,
...
}:
let
@@ -9,8 +10,11 @@ let
mkEnableOption
mkOption
types
mkMerge
;
cfg = config.nixos.services.greetd;
hyprcfg = config.nixos.programs.hyprland;
niricfg = config.nixos.programs.niri;
in
{
options = {
@@ -28,21 +32,47 @@ in
};
};
config = mkIf cfg.enable {
services.greetd =
let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
config =
let
usernames = builtins.attrNames config.home-manager.users;
username = builtins.head usernames;
in
mkMerge [
(mkIf cfg.enable { services.greetd.enable = true; })
(mkIf hyprcfg.enable {
services.greetd =
let
session = {
command = "${lib.getExe config.programs.uwsm.package} start hyprland-uwsm.desktop";
user = cfg.user;
};
in
{
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
})
(mkIf niricfg.enable {
services.greetd = {
enable = true;
settings = rec {
tuigreet_session =
let
session = "${pkgs.niri-unstable}/bin/niri-session";
tuigreet = "${lib.getExe pkgs.tuigreet}";
in
{
command = "${tuigreet} --time --remember --cmd ${session}";
user = "greeter";
};
default_session = tuigreet_session;
};
};
in
{
enable = true;
settings = {
terminal.vt = 1;
default_session = session;
initial_session = session;
};
};
};
})
];
}