feat(niri): giving niri a test drive
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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}",
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
24
modules/nixos/programs/niri/default.nix
Normal file
24
modules/nixos/programs/niri/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -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;
|
||||
};
|
||||
};
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user