2023-04-15 12:21:22 +02:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
in {
|
2023-05-21 11:58:57 +02:00
|
|
|
imports = [
|
2023-11-23 17:52:21 +01:00
|
|
|
../profiles/wayland-desktop.nix
|
2023-05-21 11:58:57 +02:00
|
|
|
];
|
|
|
|
|
2023-04-15 12:21:22 +02:00
|
|
|
services = {
|
|
|
|
gnome-keyring.enable = false;
|
|
|
|
blueman-applet.enable = true;
|
|
|
|
flameshot.enable = true;
|
2023-05-23 18:11:30 +02:00
|
|
|
pasystray.enable = true;
|
2023-04-15 12:21:22 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
# TODO: remove this comment once i'm sure everything works
|
|
|
|
# xdg.configFile."autostart/gnome-keyring-ssh.desktop".text = ''
|
|
|
|
# [Desktop Entry]
|
|
|
|
# Type=Application
|
|
|
|
# Hidden=true
|
|
|
|
# '';
|
|
|
|
|
2024-06-01 21:46:09 +02:00
|
|
|
services.gpg-agent.pinentryPackage = pkgs.pinentry-gnome3;
|
2023-04-15 12:21:22 +02:00
|
|
|
|
|
|
|
dconf.settings = let
|
|
|
|
manualKeybindings = [
|
|
|
|
{
|
|
|
|
binding = "Print";
|
|
|
|
command = "flameshot gui";
|
|
|
|
name = "flameshot";
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
binding = "<Super>t";
|
|
|
|
command = "alacritty";
|
|
|
|
name = "alacritty";
|
|
|
|
}
|
|
|
|
];
|
|
|
|
|
|
|
|
numWorkspaces = 10;
|
|
|
|
customKeybindingBaseName = "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom";
|
|
|
|
customKeybindingsNames =
|
|
|
|
builtins.genList (i: "/${customKeybindingBaseName}${toString i}/")
|
|
|
|
(
|
|
|
|
(builtins.length manualKeybindings)
|
|
|
|
+ numWorkspaces # for sending to the workspace
|
|
|
|
);
|
|
|
|
|
|
|
|
workspacesKeyBindingsOffset = builtins.length manualKeybindings;
|
|
|
|
|
|
|
|
# with this we can make use of all number keys [0-9]
|
|
|
|
mapToNumber = i:
|
|
|
|
if i < 10
|
|
|
|
then i
|
|
|
|
else if i == 10
|
|
|
|
then 0
|
|
|
|
else throw "i exceeds 10: ${i}";
|
|
|
|
in
|
|
|
|
{
|
|
|
|
"org/gnome/settings-daemon/plugins/media-keys" = {
|
|
|
|
custom-keybindings = customKeybindingsNames;
|
|
|
|
screenreader = "@as []";
|
|
|
|
screensaver = ["<Alt><Super>l"];
|
|
|
|
};
|
|
|
|
|
|
|
|
# disable the builtin <Super>[1-9] functionality
|
2023-05-21 11:58:57 +02:00
|
|
|
"org/gnome/shell/keybindings" = builtins.listToAttrs ((builtins.genList
|
2023-11-23 17:52:21 +01:00
|
|
|
(i: {
|
|
|
|
name = "switch-to-application-${toString (i + 1)}";
|
|
|
|
value = [];
|
|
|
|
})
|
|
|
|
numWorkspaces)
|
|
|
|
++ [
|
2023-05-21 11:58:57 +02:00
|
|
|
{
|
|
|
|
name = "toggle-overview";
|
|
|
|
value = [];
|
|
|
|
}
|
|
|
|
]);
|
2023-04-15 12:21:22 +02:00
|
|
|
|
|
|
|
# remap it to switching to the workspaces
|
|
|
|
"org/gnome/desktop/wm/keybindings" = builtins.listToAttrs (builtins.genList
|
|
|
|
(i: {
|
|
|
|
name = "switch-to-workspace-${toString (i + 1)}";
|
|
|
|
value = [
|
|
|
|
"<Super>${toString (mapToNumber (i + 1))}"
|
|
|
|
];
|
|
|
|
})
|
|
|
|
numWorkspaces);
|
|
|
|
}
|
|
|
|
// builtins.listToAttrs (builtins.genList
|
|
|
|
(i: {
|
|
|
|
name = "${customKeybindingBaseName}${toString i}";
|
|
|
|
value = builtins.elemAt manualKeybindings i;
|
|
|
|
})
|
|
|
|
(builtins.length manualKeybindings))
|
|
|
|
// builtins.listToAttrs (builtins.genList
|
|
|
|
(i: {
|
|
|
|
name = "${customKeybindingBaseName}${toString (workspacesKeyBindingsOffset + i)}";
|
|
|
|
value = {
|
|
|
|
binding = "<Control><Super>${toString (mapToNumber (i + 1))}";
|
|
|
|
command = "wmctrl -r :ACTIVE: -t ${toString i}";
|
|
|
|
name = "Send to workspace ${toString (i + 1)}";
|
|
|
|
};
|
|
|
|
})
|
|
|
|
numWorkspaces);
|
|
|
|
}
|