user services + wm in hjr, some qs workaround
This commit is contained in:
parent
9e3aa574eb
commit
cb44e16d76
19 changed files with 393 additions and 361 deletions
|
|
@ -2,6 +2,7 @@
|
|||
pkgs,
|
||||
inputs,
|
||||
getFlakePkg',
|
||||
mainUser,
|
||||
...
|
||||
}:
|
||||
{
|
||||
|
|
|
|||
|
|
@ -51,12 +51,7 @@ in
|
|||
echo (fish_prompt_pwd_dir_length=100 prompt_pwd): $argv;
|
||||
end
|
||||
function fish_command_not_found
|
||||
set args (count $argv)
|
||||
if [ $args -gt 1 ]
|
||||
${comma} "$argv[1]" "$argv[2..]"
|
||||
else
|
||||
${comma} "$argv[1]"
|
||||
end
|
||||
${comma} $argv
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
|
|
|||
84
flake.lock
generated
84
flake.lock
generated
|
|
@ -127,11 +127,11 @@
|
|||
},
|
||||
"flake-compat_3": {
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -212,11 +212,11 @@
|
|||
"nixpkgs-lib": "nixpkgs-lib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1743550720,
|
||||
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -368,18 +368,14 @@
|
|||
"treefmt-nix": "treefmt-nix_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1755081855,
|
||||
"narHash": "sha256-o751fp3GYDZ2brb+DHRxX6JGTctvCvNqlG+C+oi/nVI=",
|
||||
"owner": "snugnug",
|
||||
"repo": "hjem-rum",
|
||||
"rev": "3cfa85f8614a01baf5e49829ee755d14d3390259",
|
||||
"type": "github"
|
||||
"lastModified": 1761625305,
|
||||
"narHash": "sha256-BXkv+e0mQ21CpXuKFVrxeRmdzmanj7h/XGv02mvVQ5M=",
|
||||
"path": "/home/bolt/code/etc/hjem-rum",
|
||||
"type": "path"
|
||||
},
|
||||
"original": {
|
||||
"owner": "snugnug",
|
||||
"ref": "pull/128/head",
|
||||
"repo": "hjem-rum",
|
||||
"type": "github"
|
||||
"path": "/home/bolt/code/etc/hjem-rum",
|
||||
"type": "path"
|
||||
}
|
||||
},
|
||||
"hjem_2": {
|
||||
|
|
@ -391,11 +387,11 @@
|
|||
"smfh": "smfh_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1754244549,
|
||||
"narHash": "sha256-ByZ81/QttgSS1mQYttnaoMw2WnqMvQ6HCxBPOioKrOA=",
|
||||
"lastModified": 1756255328,
|
||||
"narHash": "sha256-WJ70Dv+tJjIl7mMOqUgcdcz+RrujDRoeKptiU6oh1lI=",
|
||||
"owner": "feel-co",
|
||||
"repo": "hjem",
|
||||
"rev": "ee5c671eeba5cddd94f2c7de3c36f019fae5854e",
|
||||
"rev": "2426d6ad20e767895e936ed0c9563cc4e2b6c96f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -412,11 +408,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761266473,
|
||||
"narHash": "sha256-QxCyKWBmuzI+eMhYV1JmbZsiUnBNATRP1EW34OBt5Vg=",
|
||||
"lastModified": 1761513701,
|
||||
"narHash": "sha256-w7qOcQb1FSMZASvWe01r99QqZ5LnHO0k3rgs5ryyig0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "5c71d4a730bd3c972befff343bb074421e345937",
|
||||
"rev": "255b6a0ef2f488a2fad051361699cc67db57338c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -453,11 +449,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761202163,
|
||||
"narHash": "sha256-6RySf5VQElrm7RYGWxlIkNttemDp4FF0aH+LX435G2Y=",
|
||||
"lastModified": 1761376732,
|
||||
"narHash": "sha256-wavx9gROyuRZKSvPCCBh78gOur7o88ndRi545njNRrM=",
|
||||
"owner": "Jovian-Experiments",
|
||||
"repo": "Jovian-NixOS",
|
||||
"rev": "47976126007d9658ca4ac4dd933bea8846170fd9",
|
||||
"rev": "8bef482d65425d0cff6b20c11a5f054f85569a38",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -553,11 +549,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748103964,
|
||||
"narHash": "sha256-aRFl6I3x1aKzeOBaD/OJHYv+OQ+qE+3FR9uKhIvfW+A=",
|
||||
"lastModified": 1758017058,
|
||||
"narHash": "sha256-kj0AsPNRuW/nA+ck/mqE/auRrla3Tjb7mv4Kml+6PP0=",
|
||||
"owner": "feel-co",
|
||||
"repo": "ndg",
|
||||
"rev": "c556c4cbcba61474bf8a342a31a2d94cbefd8986",
|
||||
"rev": "5b16cb2a4b4233af289355b9ecf76af9f05f8be1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -791,11 +787,11 @@
|
|||
},
|
||||
"nixpkgs-lib": {
|
||||
"locked": {
|
||||
"lastModified": 1743296961,
|
||||
"narHash": "sha256-b1EdN3cULCqtorQ4QeWgLMrd5ZGOjLSLemfa00heasc=",
|
||||
"lastModified": 1754788789,
|
||||
"narHash": "sha256-x2rJ+Ovzq0sCMpgfgGaaqgBSwY+LST+WbZ6TytnT9Rk=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixpkgs.lib",
|
||||
"rev": "e4822aea2a6d1cdd36653c134cacfd64c97ff4fa",
|
||||
"rev": "a73b9c743612e4244d865a2fdee11865283c04e6",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -867,17 +863,17 @@
|
|||
},
|
||||
"nixpkgs-stable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1761468971,
|
||||
"narHash": "sha256-vY2OLVg5ZTobdroQKQQSipSIkHlxOTrIF1fsMzPh8w8=",
|
||||
"lastModified": 1760258180,
|
||||
"narHash": "sha256-Lz6L4+6e/Uz9hGGs6mwvvXserYM3TjdDK5qmyHB7QXo=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "78e34d1667d32d8a0ffc3eba4591ff256e80576e",
|
||||
"rev": "22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
|
|
@ -962,11 +958,11 @@
|
|||
},
|
||||
"nixpkgs_15": {
|
||||
"locked": {
|
||||
"lastModified": 1761114652,
|
||||
"narHash": "sha256-f/QCJM/YhrV/lavyCVz8iU3rlZun6d+dAiC3H+CDle4=",
|
||||
"lastModified": 1761373498,
|
||||
"narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "01f116e4df6a15f4ccdffb1bcd41096869fb385c",
|
||||
"rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1129,11 +1125,11 @@
|
|||
"rust-overlay": "rust-overlay_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761326352,
|
||||
"narHash": "sha256-DoR4mHaStX6Dg2Gilc2Dqr/XaxXmQTOQS5cZ5xKPQJY=",
|
||||
"lastModified": 1761548673,
|
||||
"narHash": "sha256-/513FfwpfbeppPdGDbmLhgcctLqEHdx8Rs92jImKA3M=",
|
||||
"owner": "chaotic-cx",
|
||||
"repo": "nyx",
|
||||
"rev": "6492dc810f2f250ef95096910a44f03eea6a594f",
|
||||
"rev": "25ef687b6a0a13e9d39c3949e7de05873f5571a9",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -1255,11 +1251,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761273263,
|
||||
"narHash": "sha256-6d6ojnu6A6sVxIjig8OL6E1T8Ge9st3YGgVwg5MOY+Q=",
|
||||
"lastModified": 1761446259,
|
||||
"narHash": "sha256-JNNOtIIVIX+yBIsh1rq1Nxhc1LZq168vuQB5sqrZbCY=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "28405834d4fdd458d28e123fae4db148daecec6f",
|
||||
"rev": "95098bb4d55ebe167c082fc40705a73ef76b58e4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.05";
|
||||
nixpkgs-stable.url = "github:NixOS/nixpkgs/22c5c52ca2d2cc1692bb74c873965cc1d9fa31d3";
|
||||
|
||||
helix.url = "github:helix-editor/helix";
|
||||
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
};
|
||||
|
||||
hjem-rum = {
|
||||
url = "github:snugnug/hjem-rum/pull/128/head";
|
||||
url = "github:snugnug/hjem-rum";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1,122 +1,137 @@
|
|||
_: { }
|
||||
# TODO rewrite this with hjem-rum
|
||||
# {
|
||||
# pkgs,
|
||||
# lib,
|
||||
# config,
|
||||
# inputs,
|
||||
# scope,
|
||||
# ...
|
||||
# }:
|
||||
# let
|
||||
# inherit (lib)
|
||||
# range
|
||||
# nameValuePair
|
||||
# mapAttrs'
|
||||
# mergeAttrsList
|
||||
# ;
|
||||
# inherit (builtins) listToAttrs replaceStrings;
|
||||
# inherit (config.hm.lib.niri) actions;
|
||||
# hBinds = {
|
||||
# H = "left";
|
||||
# L = "right";
|
||||
# };
|
||||
# vBinds = {
|
||||
# J = "down";
|
||||
# K = "up";
|
||||
# };
|
||||
# makeDirBind =
|
||||
# mods: cmd: keys:
|
||||
# mapAttrs' (
|
||||
# key: dir:
|
||||
# nameValuePair "${mods}+${key}" {
|
||||
# action = actions."${replaceStrings [ "$DIR" ] [ "${dir}" ] "${cmd}"}";
|
||||
# }
|
||||
# ) keys;
|
||||
# makeWsBind =
|
||||
# mods: cmd:
|
||||
# listToAttrs (
|
||||
# map (num: {
|
||||
# name = "${mods}+${builtins.toString num}";
|
||||
# value = {
|
||||
# action."${cmd}" = num;
|
||||
# };
|
||||
# }) (range 1 6)
|
||||
# );
|
||||
# tagctl = lib.getExe' inputs.niri-tag.packages.${pkgs.system}.unstable "tagctl";
|
||||
# makeTagBind =
|
||||
# mods: cmd:
|
||||
# listToAttrs (
|
||||
# map (num: {
|
||||
# name = "${mods}+${builtins.toString num}";
|
||||
# value = {
|
||||
# action.spawn = [
|
||||
# tagctl
|
||||
# cmd
|
||||
# (builtins.toString num)
|
||||
# ];
|
||||
# };
|
||||
# }) (range 1 6)
|
||||
# );
|
||||
# in
|
||||
# scope "hm.programs.niri.settings" {
|
||||
# binds = mergeAttrsList [
|
||||
# {
|
||||
# "Mod+D".action.spawn = [
|
||||
# "qs"
|
||||
# "ipc"
|
||||
# "call"
|
||||
# "launch"
|
||||
# "toggle"
|
||||
# ];
|
||||
# "Mod+F".action.spawn = "firefox";
|
||||
# "Mod+E".action.spawn = "nautilus";
|
||||
# "Mod+Return".action.spawn = "foot";
|
||||
# "Mod+Shift+E".action.spawn = "wlogout";
|
||||
# "Mod+Equal".action.spawn = "bitwarden";
|
||||
# "Mod+Shift+Q".action = actions.close-window;
|
||||
# "Mod+Shift+S".action = actions.screenshot;
|
||||
# "Mod+R".action = actions.switch-preset-column-width;
|
||||
# "Mod+Shift+R".action = actions.maximize-column;
|
||||
# "XF86AudioRaiseVolume".action.spawn = [
|
||||
# "volumectl"
|
||||
# "-u"
|
||||
# "up"
|
||||
# ];
|
||||
# "XF86AudioLowerVolume".action.spawn = [
|
||||
# "volumectl"
|
||||
# "-u"
|
||||
# "down"
|
||||
# ];
|
||||
# "XF86AudioMute".action.spawn = [
|
||||
# "volumectl"
|
||||
# "toggle-mute"
|
||||
# ];
|
||||
# "XF86AudioStop".action.spawn = [
|
||||
# "playerctl"
|
||||
# "stop"
|
||||
# ];
|
||||
# "XF86AudioPlay".action.spawn = [
|
||||
# "playerctl"
|
||||
# "play-pause"
|
||||
# ];
|
||||
# "XF86AudioNext".action.spawn = [
|
||||
# "playerctl"
|
||||
# "next"
|
||||
# ];
|
||||
# "XF86AudioPrev".action.spawn = [
|
||||
# "playerctl"
|
||||
# "previous"
|
||||
# ];
|
||||
# "Mod+Space".action = actions.toggle-window-floating;
|
||||
# }
|
||||
# (makeDirBind "Mod" "focus-window-$DIR" vBinds)
|
||||
# (makeDirBind "Mod" "focus-column-or-monitor-$DIR" hBinds)
|
||||
# (makeDirBind "Mod+Shift" "move-column-$DIR-or-to-monitor-$DIR" hBinds)
|
||||
# (makeDirBind "Mod+Ctrl" "consume-or-expel-window-$DIR" hBinds)
|
||||
# (makeDirBind "Mod+Ctrl" "move-window-$DIR" vBinds)
|
||||
# (makeTagBind "Mod" "toggle-tag")
|
||||
# (makeTagBind "Mod+Shift" "toggle")
|
||||
# (makeTagBind "Mod+Ctrl" "exclusive-tag")
|
||||
# ];
|
||||
# }
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
range
|
||||
nameValuePair
|
||||
mapAttrs'
|
||||
mergeAttrsList
|
||||
;
|
||||
inherit (builtins) listToAttrs replaceStrings;
|
||||
hBinds = {
|
||||
H = "left";
|
||||
L = "right";
|
||||
};
|
||||
vBinds = {
|
||||
J = "down";
|
||||
K = "up";
|
||||
};
|
||||
makeDirBind =
|
||||
mods: cmd: keys:
|
||||
mapAttrs' (
|
||||
key: dir:
|
||||
nameValuePair "${mods}+${key}" {
|
||||
action = "${replaceStrings [ "$DIR" ] [ "${dir}" ] "${cmd}"}";
|
||||
}
|
||||
) keys;
|
||||
makeTagBind =
|
||||
mods: cmd:
|
||||
listToAttrs (
|
||||
map (num: {
|
||||
name = "${mods}+${builtins.toString (lib.mod num 10)}";
|
||||
value = {
|
||||
spawn = [
|
||||
"tagctl"
|
||||
cmd
|
||||
(builtins.toString num)
|
||||
];
|
||||
};
|
||||
}) (range 1 10)
|
||||
);
|
||||
getApp = app: lib.singleton (lib.getExe config.apps.${app});
|
||||
in
|
||||
scope "user.desktops.niri.binds"
|
||||
<| mergeAttrsList [
|
||||
{
|
||||
"Mod+Grave".action = "focus-monitor-next";
|
||||
"Mod+Shift+Grave".action = "move-column-to-monitor-next";
|
||||
"Mod+Minus".spawn = [
|
||||
"tagctl"
|
||||
"toggle-tag"
|
||||
"99"
|
||||
];
|
||||
"Mod+Equal".spawn = [
|
||||
"tagctl"
|
||||
"toggle-tag"
|
||||
"101"
|
||||
];
|
||||
"Mod+D".spawn = [
|
||||
"qs"
|
||||
"ipc"
|
||||
"call"
|
||||
"launch"
|
||||
"toggle"
|
||||
];
|
||||
"Mod+F".spawn = (getApp "browser");
|
||||
"Mod+E".spawn = (getApp "fm");
|
||||
"Mod+Return".spawn = (getApp "terminal");
|
||||
"Mod+Shift+E".spawn = [
|
||||
"qs"
|
||||
"ipc"
|
||||
"call"
|
||||
"logout"
|
||||
"toggle"
|
||||
];
|
||||
# "Mod+Equal".spawn = (getAppName "passwordManager"); # niri-tag needs proper scratchpads smh
|
||||
"Mod+Shift+Q".action = "close-window";
|
||||
"Mod+Shift+S".action = "screenshot";
|
||||
"Mod+R".action = "switch-preset-column-width";
|
||||
"Mod+Shift+R".action = "maximize-column";
|
||||
"XF86AudioLowerVolume".spawn = [
|
||||
"volumectl"
|
||||
"-u"
|
||||
"down"
|
||||
];
|
||||
"XF86AudioMute".spawn = [
|
||||
"volumectl"
|
||||
"toggle-mute"
|
||||
];
|
||||
"XF86AudioNext".spawn = [
|
||||
"playerctl"
|
||||
"next"
|
||||
];
|
||||
"XF86AudioPlay".spawn = [
|
||||
"playerctl"
|
||||
"play-pause"
|
||||
];
|
||||
"XF86AudioPrev".spawn = [
|
||||
"playerctl"
|
||||
"previous"
|
||||
];
|
||||
"XF86AudioRaiseVolume".spawn = [
|
||||
"volumectl"
|
||||
"-u"
|
||||
"up"
|
||||
];
|
||||
"XF86AudioStop".spawn = [
|
||||
"playerctl"
|
||||
"stop"
|
||||
];
|
||||
"XF86MonBrightnessUp".spawn = [
|
||||
"brightnessctl"
|
||||
"s"
|
||||
"5%+"
|
||||
];
|
||||
"XF86MonBrightnessDown".spawn = [
|
||||
"brightnessctl"
|
||||
"s"
|
||||
"5%-"
|
||||
];
|
||||
"Mod+Space".action = "switch-focus-between-floating-and-tiling";
|
||||
"Mod+Shift+Space".action = "toggle-window-floating";
|
||||
"Mod+Ctrl+Space".action = "fullscreen-window";
|
||||
"Mod+C".action = "center-window";
|
||||
}
|
||||
(makeDirBind "Mod" "focus-window-$DIR" vBinds)
|
||||
(makeDirBind "Mod" "focus-column-or-monitor-$DIR" hBinds)
|
||||
(makeDirBind "Mod+Shift" "consume-or-expel-window-$DIR" hBinds)
|
||||
(makeDirBind "Mod+Ctrl" "move-column-$DIR-or-to-monitor-$DIR" hBinds)
|
||||
(makeDirBind "Mod+Ctrl" "move-window-$DIR" vBinds)
|
||||
(makeTagBind "Mod" "toggle-tag")
|
||||
(makeTagBind "Mod+Shift" "toggle")
|
||||
(makeTagBind "Mod+Ctrl" "exclusive-tag")
|
||||
]
|
||||
|
|
|
|||
|
|
@ -22,7 +22,8 @@ let
|
|||
Status = "locked";
|
||||
};
|
||||
in
|
||||
scope "programs.firefox" {
|
||||
(scope "apps.browser" <| pkgs.firefox)
|
||||
// scope "programs.firefox" {
|
||||
enable = true;
|
||||
|
||||
policies = {
|
||||
|
|
|
|||
55
graphical/desktop/niri.kdl
Normal file
55
graphical/desktop/niri.kdl
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
input {
|
||||
keyboard {
|
||||
xkb {
|
||||
layout ""
|
||||
model ""
|
||||
rules ""
|
||||
variant ""
|
||||
}
|
||||
repeat-delay 600
|
||||
repeat-rate 25
|
||||
track-layout "global"
|
||||
}
|
||||
mouse {
|
||||
accel-profile "flat"
|
||||
}
|
||||
warp-mouse-to-focus
|
||||
focus-follows-mouse
|
||||
}
|
||||
screenshot-path "~/screenshots/%Y-%m-%d_%H-%M-%S.png"
|
||||
prefer-no-csd
|
||||
layout {
|
||||
gaps %GAPS%
|
||||
struts {
|
||||
left 0
|
||||
right 0
|
||||
top 0
|
||||
bottom 0
|
||||
}
|
||||
focus-ring {
|
||||
width %BORDER%
|
||||
active-color "%ACTIVE%"
|
||||
inactive-color "%INACTIVE%"
|
||||
}
|
||||
border { off; }
|
||||
default-column-width { proportion 0.500000; }
|
||||
preset-column-widths {
|
||||
proportion 0.666667
|
||||
proportion 0.500000
|
||||
proportion 0.333333
|
||||
}
|
||||
center-focused-column "never"
|
||||
always-center-single-column
|
||||
}
|
||||
cursor {
|
||||
xcursor-theme "%CURSOR%"
|
||||
xcursor-size 16
|
||||
hide-when-typing
|
||||
hide-after-inactive-ms 5000
|
||||
}
|
||||
hotkey-overlay { skip-at-startup; }
|
||||
window-rule {
|
||||
geometry-corner-radius 0.000000 %ROUNDING%.000000 0.000000 %ROUNDING%.000000
|
||||
clip-to-geometry true
|
||||
}
|
||||
xwayland-satellite { path "%SATELLITE%"; }
|
||||
|
|
@ -6,7 +6,7 @@ import Quickshell.Io
|
|||
|
||||
Singleton {
|
||||
id: data
|
||||
property var tags: {}
|
||||
property var tags: ({})
|
||||
property var keys: []
|
||||
Timer {
|
||||
id: reconnectTimer
|
||||
|
|
|
|||
|
|
@ -9,17 +9,20 @@
|
|||
}:
|
||||
let
|
||||
inherit (lib) getExe getExe';
|
||||
stable = inputs.nixpkgs-stable;
|
||||
inherit (stable.legacyPackages.x86_64-linux) quickshell;
|
||||
in
|
||||
{
|
||||
# quickshell stuff
|
||||
user.packages = getPkgs {
|
||||
# quickshell stuff
|
||||
inherit (pkgs.kdePackages) qtbase qtdeclarative;
|
||||
inherit (pkgs) wl-clipboard quickshell;
|
||||
inherit (pkgs) wl-clipboard;
|
||||
inherit quickshell;
|
||||
};
|
||||
|
||||
quick.services = {
|
||||
swaync = "${getExe pkgs.swaynotificationcenter}";
|
||||
quickshell = "${getExe pkgs.quickshell}";
|
||||
quickshell = "${getExe quickshell}";
|
||||
swayidle =
|
||||
let
|
||||
niri = getFlakePkg' inputs.niri "niri-unstable";
|
||||
74
graphical/desktop/wm.nix
Normal file
74
graphical/desktop/wm.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
mainUser,
|
||||
inputs,
|
||||
getFlakePkg',
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
niri = (getFlakePkg' inputs.niri "niri-unstable");
|
||||
xwayland-satellite = (getFlakePkg' inputs.niri "xwayland-satellite-unstable");
|
||||
inherit (config) rice;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.niri.nixosModules.niri
|
||||
inputs.niri-tag.nixosModules.niri-tag
|
||||
];
|
||||
user.desktops.niri = {
|
||||
enable = true;
|
||||
config =
|
||||
let
|
||||
template = builtins.readFile ./niri.kdl;
|
||||
baseConfig =
|
||||
with rice;
|
||||
lib.replaceStrings
|
||||
[
|
||||
"%CURSOR%"
|
||||
"%ROUNDING%"
|
||||
"%GAPS%"
|
||||
"%BORDER%"
|
||||
"%ACTIVE%"
|
||||
"%INACTIVE%"
|
||||
"%SATELLITE%"
|
||||
]
|
||||
[
|
||||
cursor.name
|
||||
(toString borders.rounding)
|
||||
(toString borders.gaps)
|
||||
(toString borders.thickness)
|
||||
palette.shortHex.bright.yellow
|
||||
palette.shortHex.normal.yellow
|
||||
(lib.getExe xwayland-satellite)
|
||||
]
|
||||
template;
|
||||
in
|
||||
baseConfig;
|
||||
};
|
||||
user.packages = [
|
||||
niri
|
||||
xwayland-satellite
|
||||
];
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = false;
|
||||
settings =
|
||||
let
|
||||
session = {
|
||||
command = "niri-session";
|
||||
user = "${mainUser}";
|
||||
};
|
||||
in
|
||||
{
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = niri;
|
||||
};
|
||||
services.niri-tag.enable = true;
|
||||
|
||||
}
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
scope "user" {
|
||||
programs = {
|
||||
direnv = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
integrations.fish.enable = true;
|
||||
};
|
||||
|
||||
|
|
@ -19,15 +19,12 @@ scope "user" {
|
|||
name = "atagen";
|
||||
email = "boss@atagen.co";
|
||||
};
|
||||
# merge = {
|
||||
# conflictstyle = "diff3";
|
||||
# };
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
url = {
|
||||
"https://github.com/".insteadOf = "github:";
|
||||
"https://git.atagen.co/".insteadOf = "atagen:";
|
||||
"https://git.atagen.co/atagen".insteadOf = "atagen:";
|
||||
"https://codeberg.org/".insteadOf = "codeberg:";
|
||||
};
|
||||
credential.helper = "rbw";
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
qt = {
|
||||
enable = true;
|
||||
style = "adwaita-dark";
|
||||
# platformTheme = "gnome";
|
||||
# platformTheme = "gnome"; # broken in unstable ?
|
||||
};
|
||||
|
||||
user.misc.gtk =
|
||||
|
|
|
|||
|
|
@ -2,60 +2,57 @@
|
|||
config,
|
||||
lib,
|
||||
mainUser,
|
||||
scope,
|
||||
...
|
||||
}:
|
||||
{
|
||||
options = {
|
||||
quick = {
|
||||
services =
|
||||
with lib;
|
||||
mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
};
|
||||
oneShots =
|
||||
with lib;
|
||||
mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
};
|
||||
scope "options.quick" {
|
||||
services =
|
||||
with lib;
|
||||
mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
};
|
||||
oneShots =
|
||||
with lib;
|
||||
mkOption {
|
||||
type = with types; attrsOf str;
|
||||
default = { };
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
systemd.user.services =
|
||||
builtins.mapAttrs (name: cmd: {
|
||||
environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/${mainUser}/bin:/etc/profiles/per-user/${mainUser}/sbin";
|
||||
unitConfig = {
|
||||
Description = "${name}";
|
||||
Requires = [
|
||||
"graphical-session.target"
|
||||
];
|
||||
After = [
|
||||
"graphical-session.target"
|
||||
"niri.target"
|
||||
];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = cmd;
|
||||
};
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
}) config.quick.services
|
||||
// builtins.mapAttrs (name: cmd: {
|
||||
unitConfig = {
|
||||
Description = "${name}";
|
||||
Requires = [ "graphical-session.target" ];
|
||||
After = [
|
||||
"graphical-session.target"
|
||||
"niri.target"
|
||||
];
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = cmd;
|
||||
Type = "oneshot";
|
||||
};
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
}) config.quick.oneShots;
|
||||
};
|
||||
}
|
||||
// scope "config.user.systemd" {
|
||||
enable = true;
|
||||
services =
|
||||
builtins.mapAttrs (name: cmd: {
|
||||
environment.PATH = lib.mkForce "/run/current-system/sw/bin:/run/current-system/sw/sbin:/etc/profiles/per-user/${mainUser}/bin:/etc/profiles/per-user/${mainUser}/sbin";
|
||||
unitConfig = {
|
||||
Description = "${name}";
|
||||
Requires = [
|
||||
"graphical-session.target"
|
||||
];
|
||||
After = [
|
||||
"graphical-session.target"
|
||||
"niri.target"
|
||||
];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = cmd;
|
||||
};
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
}) config.quick.services
|
||||
// builtins.mapAttrs (name: cmd: {
|
||||
unitConfig = {
|
||||
Description = "${name}";
|
||||
Requires = [ "graphical-session.target" ];
|
||||
After = [
|
||||
"graphical-session.target"
|
||||
"niri.target"
|
||||
];
|
||||
};
|
||||
serviceConfig = {
|
||||
ExecStart = cmd;
|
||||
Type = "oneshot";
|
||||
};
|
||||
wantedBy = [ "graphical-session.target" ];
|
||||
}) config.quick.oneShots;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,9 +36,9 @@
|
|||
};
|
||||
|
||||
borders = {
|
||||
thickness = 6;
|
||||
rounding = 0;
|
||||
gaps = 48;
|
||||
thickness = 4;
|
||||
rounding = 10;
|
||||
gaps = 64;
|
||||
};
|
||||
|
||||
bg = {
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
|
||||
plymouth = {
|
||||
theme = "starship";
|
||||
font = "${config.rice.fonts.sans.package}/share/fonts/truetype/InriaSans-Regular.ttf";
|
||||
font = "${config.rice.fonts.sans.package}/share/fonts/truetype/MSW98UI-Regular.ttf";
|
||||
themePackages = [
|
||||
inputs.hudcore.packages.${pkgs.system}.default
|
||||
];
|
||||
|
|
|
|||
112
graphical/wm.nix
112
graphical/wm.nix
|
|
@ -1,112 +0,0 @@
|
|||
{
|
||||
mainUser,
|
||||
inputs,
|
||||
getFlakePkg',
|
||||
# config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
# inherit (config) rice;
|
||||
niri = (getFlakePkg' inputs.niri "niri-unstable");
|
||||
xwayland-satellite = (getFlakePkg' inputs.niri "xwayland-satellite-unstable");
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.niri.nixosModules.niri
|
||||
inputs.niri-tag.nixosModules.niri-tag
|
||||
];
|
||||
# user.desktops.niri = {
|
||||
# enable = true;
|
||||
# configFile = ./desktop/niri-config.kdl;
|
||||
# };
|
||||
environment.files."/home/${mainUser}/.config/niri/config.kdl" = {
|
||||
uid = 1000;
|
||||
gid = 100;
|
||||
source = "/home/${mainUser}/.nix/graphical/desktop/niri-config.kdl";
|
||||
};
|
||||
# user.xdg.config.files."niri/config.kdl".source = ./desktop/niri-config.kdl;
|
||||
user.packages = [
|
||||
niri
|
||||
xwayland-satellite
|
||||
];
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
restart = false;
|
||||
settings =
|
||||
let
|
||||
session = {
|
||||
command = "niri-session";
|
||||
user = "${mainUser}";
|
||||
};
|
||||
in
|
||||
{
|
||||
default_session = session;
|
||||
initial_session = session;
|
||||
};
|
||||
};
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
package = niri;
|
||||
};
|
||||
services.niri-tag.enable = true;
|
||||
|
||||
}
|
||||
|
||||
# old hm config, TODO template from this
|
||||
# {
|
||||
# values = {
|
||||
# input = {
|
||||
# warp-mouse-to-focus.enable = true;
|
||||
# };
|
||||
# cursor = {
|
||||
# hide-after-inactive-ms = 5000;
|
||||
# hide-when-typing = true;
|
||||
# size = 16;
|
||||
# theme = rice.cursor.name;
|
||||
# };
|
||||
# layout = {
|
||||
# always-center-single-column = true;
|
||||
# gaps = config.rice.borders.gaps;
|
||||
# default-column-width.proportion = 0.5;
|
||||
# preset-column-widths = map (p: { proportion = p; }) [
|
||||
# (2.0 / 3.0)
|
||||
# 0.5
|
||||
# (1.0 / 3.0)
|
||||
# ];
|
||||
# focus-ring =
|
||||
# let
|
||||
# pal = rice.palette.hex;
|
||||
# in
|
||||
# {
|
||||
# active = {
|
||||
# color = pal.bright.yellow;
|
||||
# };
|
||||
# inactive = {
|
||||
# color = pal.normal.black;
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# prefer-no-csd = true;
|
||||
# hotkey-overlay.skip-at-startup = true;
|
||||
# window-rules =
|
||||
# let
|
||||
# v = 10.0;
|
||||
# in
|
||||
# [
|
||||
# {
|
||||
# geometry-corner-radius = {
|
||||
# bottom-left = v;
|
||||
# bottom-right = 0.0;
|
||||
# top-left = 0.0;
|
||||
# top-right = v;
|
||||
# };
|
||||
# clip-to-geometry = true;
|
||||
# }
|
||||
# ];
|
||||
# xwayland-satellite = {
|
||||
# enable = true;
|
||||
# path = lib.getExe inputs.niri.packages.${pkgs.system}.xwayland-satellite-unstable;
|
||||
# };
|
||||
# };
|
||||
# }
|
||||
#
|
||||
10
hosts/quiver/extra-niri.kdl
Normal file
10
hosts/quiver/extra-niri.kdl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
output "DP-1" {
|
||||
scale 1
|
||||
transform "90"
|
||||
}
|
||||
output "DP-2" {
|
||||
scale 1
|
||||
transform "normal"
|
||||
variable-refresh-rate on-demand=false
|
||||
focus-at-startup
|
||||
}
|
||||
3
hosts/quiver/extra-niri.nix
Normal file
3
hosts/quiver/extra-niri.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
_: {
|
||||
user.desktops.niri.config = builtins.readFile ./extra-niri.kdl;
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
inputs,
|
||||
# inputs,
|
||||
config,
|
||||
scope,
|
||||
...
|
||||
|
|
@ -11,8 +11,8 @@ scope "services" {
|
|||
};
|
||||
|
||||
open-webui = {
|
||||
package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui;
|
||||
enable = true;
|
||||
# package = inputs.nixpkgs-stable.legacyPackages.x86_64-linux.open-webui;
|
||||
enable = false;
|
||||
port = 8088;
|
||||
environment = {
|
||||
DO_NOT_TRACK = "True";
|
||||
|
|
|
|||
|
|
@ -24,10 +24,6 @@ in
|
|||
getFlakePkg' = p: n: p.packages.${info.system}.${n};
|
||||
};
|
||||
modules = [
|
||||
# (_: {
|
||||
# disabledModules = [ "services/misc/open-webui.nix" ];
|
||||
# imports = [ "${inputs.nixpkgs-stable}/nixos/modules/services/misc/open-webui.nix" ];
|
||||
# })
|
||||
inputs.arbys.nixosModules.arbys
|
||||
inputs.hjem.nixosModules.hjem
|
||||
(
|
||||
|
|
@ -42,6 +38,7 @@ in
|
|||
"packages"
|
||||
"files"
|
||||
"xdg"
|
||||
"systemd"
|
||||
]);
|
||||
}
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue