fix xkb issues, change espanso formatting, noctalia support

This commit is contained in:
alisceon 2026-03-16 18:49:10 +01:00
parent a100acda87
commit 4e3922c4a4
6 changed files with 257 additions and 48 deletions

134
flake.lock generated
View file

@ -205,11 +205,11 @@
]
},
"locked": {
"lastModified": 1773264488,
"narHash": "sha256-rK0507bDuWBrZo+0zts9bCs/+RRUEHuvFE5DHWPxX/Q=",
"lastModified": 1773681845,
"narHash": "sha256-o8hrZrigP0JYcwnglCp8Zi8jQafWsxbDtRRPzuVwFxY=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "5c0f63f8d55040a7eed69df7e3fcdd15dfb5a04c",
"rev": "0759e0e137305bc9d0c52c204c6d8dffe6f601a6",
"type": "github"
},
"original": {
@ -226,11 +226,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1773196765,
"narHash": "sha256-GvveRb/AiCb/dKXculKiNiAMW4CXMPwpeyi6c/S/a7o=",
"lastModified": 1773456096,
"narHash": "sha256-vlV3HnHBxnfW4a2ifabH3L/3iGGjA5ejEP7XD7EOC+E=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "4d744dff3d8e0d9e7f85e06244ad353bdcf424ff",
"rev": "ce7440a5fced512773e8e695d8a7bd57f33c7e6d",
"type": "github"
},
"original": {
@ -257,11 +257,11 @@
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1773282481,
"narHash": "sha256-b/GV2ysM8mKHhinse2wz+uP37epUrSE+sAKXy/xvBY4=",
"lastModified": 1773646010,
"narHash": "sha256-iYrs97hS7p5u4lQzuNWzuALGIOdkPXvjz7bviiBjUu8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "fe416aaedd397cacb33a610b33d60ff2b431b127",
"rev": "5b2c2d84341b2afb5647081c1386a80d7a8d8605",
"type": "github"
},
"original": {
@ -273,11 +273,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1773222311,
"narHash": "sha256-BHoB/XpbqoZkVYZCfXJXfkR+GXFqwb/4zbWnOr2cRcU=",
"lastModified": 1773610124,
"narHash": "sha256-EpC7ELOKmb+xXaqpK5ZRpJ5g9fxxg6tWny7/rUBfrwk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0590cd39f728e129122770c029970378a79d076a",
"rev": "9fe1300f4360e13f39d6d1d006e54fd5093e9ad5",
"type": "github"
},
"original": {
@ -287,6 +287,67 @@
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"noctalia": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"noctalia-qs": [
"noctalia-qs"
]
},
"locked": {
"lastModified": 1773670009,
"narHash": "sha256-LEiA7ntxR6Biep4fgD2Jh9bB1g2olRNAToFUS51szDs=",
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"rev": "9511f1fce45ffe763d7954f3207e3dfd644c97f2",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-shell",
"type": "github"
}
},
"noctalia-qs": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1773629133,
"narHash": "sha256-9/GtCljeEYQAQlU4LB/o8cTJ8TzYvNCzf4ILnW5Rs3g=",
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"rev": "5794d3a88fced826e1903164d77a7b07bdb93ff6",
"type": "github"
},
"original": {
"owner": "noctalia-dev",
"repo": "noctalia-qs",
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts",
@ -295,11 +356,11 @@
]
},
"locked": {
"lastModified": 1773428326,
"narHash": "sha256-vu0CCPOMNwXF9M1aW517HL67lXgExR0A3KuWGKPdOxc=",
"lastModified": 1773682536,
"narHash": "sha256-BfHJu2vRuHNTwCP6Xzc1j/WY36lLID7dhu3dGj9NOqc=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8d1130d6d780fa95338518911798662df04ca9f8",
"rev": "7bdcf4a25232bfc9ac9259e9abc7bfe25cf84f2b",
"type": "github"
},
"original": {
@ -316,11 +377,11 @@
]
},
"locked": {
"lastModified": 1773428326,
"narHash": "sha256-vu0CCPOMNwXF9M1aW517HL67lXgExR0A3KuWGKPdOxc=",
"lastModified": 1773682536,
"narHash": "sha256-BfHJu2vRuHNTwCP6Xzc1j/WY36lLID7dhu3dGj9NOqc=",
"owner": "nix-community",
"repo": "NUR",
"rev": "8d1130d6d780fa95338518911798662df04ca9f8",
"rev": "7bdcf4a25232bfc9ac9259e9abc7bfe25cf84f2b",
"type": "github"
},
"original": {
@ -360,6 +421,8 @@
"nix-minecraft": "nix-minecraft",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable",
"noctalia": "noctalia",
"noctalia-qs": "noctalia-qs",
"nur": "nur",
"nur-unstable": "nur-unstable",
"stylix": "stylix"
@ -378,7 +441,7 @@
"nixpkgs"
],
"nur": "nur_2",
"systems": "systems_2",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
@ -415,6 +478,21 @@
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -509,6 +587,24 @@
"repo": "base16-zed",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1772660329,
"narHash": "sha256-IjU1FxYqm+VDe5qIOxoW+pISBlGvVApRjiw/Y/ttJzY=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "3710e0e1218041bbad640352a0440114b1e10428",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

View file

@ -20,6 +20,15 @@
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
noctalia = {
url = "github:noctalia-dev/noctalia-shell";
inputs.nixpkgs.follows = "nixpkgs";
inputs.noctalia-qs.follows = "noctalia-qs";
};
noctalia-qs = {
url = "github:noctalia-dev/noctalia-qs";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
};
@ -27,11 +36,6 @@
self,
nixpkgs,
nixpkgs-unstable,
nur,
nur-unstable,
home-manager,
stylix,
nix-minecraft,
...
}:
let
@ -46,14 +50,14 @@
inherit system;
config.allowUnfree = true;
flake.setFlakeRegistry = true;
overlays = [ nur.overlays.default ];
overlays = [ inputs.nur.overlays.default ];
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
flake.setFlakeRegistry = true;
overlays = [ nur-unstable.overlays.default ];
overlays = [ inputs.nur-unstable.overlays.default ];
};
sharedSpecialArgs = {
@ -63,8 +67,8 @@
sharedModules = [
./nixos/modules/base.nix
stylix.nixosModules.stylix
home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
inputs.home-manager.nixosModules.home-manager
({ ... }: {
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
@ -93,7 +97,10 @@
++ [
{
home-manager.users.alisceon.imports =
[ ./home/profiles/base.nix ]
[
inputs.noctalia.homeModules.default
./home/profiles/base.nix
]
++ hmModules;
home-manager.users.root.imports = [
./home/users/root/default.nix
@ -142,7 +149,7 @@
nixosModules = serverModules;
hmModules = serverHomeModules;
extraModules = [
nix-minecraft.nixosModules.minecraft-servers
inputs.nix-minecraft.nixosModules.minecraft-servers
{ nixpkgs.overlays = [ inputs.nix-minecraft.overlay ]; }
];
};

View file

@ -0,0 +1,78 @@
{ pkgs, inputs, ... }:
{
programs.noctalia-shell = {
enable = true;
systemd.enable = true;
settings = {
# configure noctalia here
dock.enabled = false;
osd.enabled = false;
location.
location = {
weatherEnabled = false;
monthBeforeDay = true;
};
general = {
avatarImage = "/home/alisceon/Pictures/system/prof.png";
radiusRatio = 0.2;
};
notifications = {
density = "compact";
location = "top";
};
appLauncher = {
density = "compact";
};
bar = {
density = "compact";
position = "top";
showCapsule = false;
widgets = {
left = [
{
id = "ControlCenter";
useDistroLogo = true;
}
{
hideUnoccupied = false;
id = "Workspace";
labelMode = "index";
pillSize = 1;
}
];
center = [
{
id = "ActiveWindow";
maxWidth = 512;
showIcon = false;
}
];
right = [
{
id = "Tray";
}
{
id = "NotificationHistory";
showUnreadBadge = true;
unreadBadgeColor = "primary";
}
{
id = "Battery";
alwaysShowPercentage = true;
warningThreshold = 30;
}
{
id = "Clock";
formatHorizontal = "HH:mm";
formatVertical = "HH mm";
useMonospacedFont = true;
usePrimaryColor = true;
}
];
};
};
};
};
}

View file

@ -14,14 +14,12 @@ in
imports = [
./gtk.nix
./xdg.nix
./shells/noctalia.nix
../../programs/foot.nix
../../programs/rofi.nix
../../programs/qutebrowser.nix
../../programs/swaylock.nix
../../programs/waybar.nix
../../services/espanso.nix
../../services/gnome-keyring.nix
../../services/mako.nix
../../services/swayidle.nix
];
@ -32,7 +30,6 @@ in
modifier = key_mod;
startup = [
{ command = "systemctl --user start libinput-gestures"; }
{ command = "${uwsm} swaybg -m fill -i /home/alisceon/Pictures/system/bg.png"; }
];
bars = [ ];
input = {
@ -122,30 +119,16 @@ in
"${key_mod}+${key_mod_misc}+Shift+Tab" = "workspace prev";
"Mod4+space" = "exec ${notify} -t 2000 \"$(${pkgs.xonsh}/bin/xonsh ${repoRoot}/util/toggle_xkb.xsh)\"";
"${key_mod}+Shift+r" = "reload";
"${key_mod}+Ctrl+r" = "restart";
"${key_mod}+Backspace" = "exec ${nag} -m 'TuneD profiles:' -Z 'Performance' 'tuned-adm profile accelerator-performance' -Z 'Balanced' 'tuned-adm profile balanced' -Z 'Power Save' 'tuned-adm profile powersave'";
"${key_mod}+Shift+q" = "kill";
"Alt+F4" = "kill";
"${key_mod}+L" = "exec ${lock}";
"${key_mod}+Escape" = "exec ${nag} -m 'Shutdown options:' -Z 'Power Off' 'systemctl poweroff' -Z 'Reboot' 'systemctl reboot' -Z 'Logout' 'swaymsg exit'";
"${key_mod}+Return" = "exec ${uwsm} ${term}";
"${key_mod}+d" = "exec ${uwsm} ${dmenu} -show drun";
"${key_mod}+s" = "exec ${uwsm} ${espanso} search";
"${key_mod}+Shift+e" = "exec ${uwsm} ${espanso} toggle";
"${key_mod}+Shift+s" = "exec grimshot savecopy area";
"${key_mod}+Ctrl+s" = "exec grimshot savecopy output";
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +3%";
"XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -3%";
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioPlay" = "exec playerctl play-pause";
"${key_mod}+XF86AudioPlay" = "exec ${notify} -t 2000 \"$(${pkgs.xonsh}/bin/xonsh ${repoRoot}/util/swap_sound_device.xsh)\"";
"XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 9";
"XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 3";
};
window = {
titlebar = false;

View file

@ -0,0 +1,27 @@
{ ... }:
{
commands = import ../../../../lib/commands.nix { inherit pkgs; };
inherit (commands) uwsm lock term notify nag dmenu espanso;
imports = [
../../../programs/rofi.nix
../../../programs/waybar.nix
../../../services/mako.nix
];
wayland.windowManager.sway.config = {
startup = [
{ command = "${uwsm} swaybg -m fill -i /home/alisceon/Pictures/system/bg.png"; }
];
};
keybindings = {
"${key_mod}+L" = "exec ${lock}";
"${key_mod}+Escape" = "exec ${nag} -m 'Shutdown options:' -Z 'Power Off' 'systemctl poweroff' -Z 'Reboot' 'systemctl reboot' -Z 'Logout' 'swaymsg exit'";
"${key_mod}+Backspace" = "exec ${nag} -m 'TuneD profiles:' -Z 'Performance' 'tuned-adm profile accelerator-performance' -Z 'Balanced' 'tuned-adm profile balanced' -Z 'Power Save' 'tuned-adm profile powersave'"
"${key_mod}+d" = "exec ${uwsm} ${dmenu} -show drun";
"XF86AudioRaiseVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ +3%";
"XF86AudioLowerVolume" = "exec pactl set-sink-volume @DEFAULT_SINK@ -3%";
"XF86AudioMute" = "exec pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86MonBrightnessUp" = "exec ${pkgs.light}/bin/light -A 9";
"XF86MonBrightnessDown" = "exec ${pkgs.light}/bin/light -U 3";
"XF86AudioPlay" = "exec playerctl play-pause";
};
}

View file

@ -0,0 +1,18 @@
{ ... }:
let
ipc = "noctalia-shell ipc call";
in
{
imports = [
../../../programs/noctalia.nix
];
wayland.windowManager.sway.config.keybindings = {
"Mod4+d" = "exec ${ipc} launcher togggle";
"XF86AudioRaiseVolume" = "exec ${ipc} volume increase";
"XF86AudioLowerVolume" = "exec ${ipc} volume decrease";
"XF86AudioMute" = "exec ${ipc} volume muteOutput";
"XF86MonBrightnessUp" = "exec ${ipc} brightness increase";
"XF86MonBrightnessDown" = "exec ${ipc} brightness decrease";
"XF86AudioPlay" = "exec ${ipc} media playPause";
};
}