refactor *started*
This commit is contained in:
parent
d0413cb830
commit
db2103a37d
103 changed files with 1008 additions and 786 deletions
|
|
@ -1,3 +0,0 @@
|
|||
# HOME
|
||||
|
||||
only for dotfiles, no longer installing stuff from here
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
audio.enable = lib.mkEnableOption "enable audio";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.audio.enable {
|
||||
home.packages = with pkgs; [
|
||||
pavucontrol
|
||||
playerctl
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -7,16 +7,9 @@
|
|||
|
||||
{
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./walker.nix
|
||||
./waybar.nix
|
||||
./rofi.nix
|
||||
./wallpaper.nix
|
||||
./grimblast.nix
|
||||
./audio.nix
|
||||
./noctalia.nix
|
||||
];
|
||||
home.packages = with pkgs; [
|
||||
wl-clipboard
|
||||
./utilities
|
||||
./window-managers
|
||||
./shell
|
||||
./display-manager.nix
|
||||
];
|
||||
}
|
||||
|
|
|
|||
51
modules/desktop/display-manager.nix
Normal file
51
modules/desktop/display-manager.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
services = {
|
||||
xserver = {
|
||||
xkb = {
|
||||
layout = builtins.substring 0 2 config.system.locale;
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
power-profiles-daemon = {
|
||||
enable = true;
|
||||
};
|
||||
upower = {
|
||||
enable = true;
|
||||
};
|
||||
displayManager = {
|
||||
gdm = {
|
||||
enable = true;
|
||||
autoSuspend = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
uwsm = {
|
||||
waylandCompositors = {
|
||||
hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
||||
prettyName = "Hyprland";
|
||||
comment = "Hyprland";
|
||||
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
|
||||
};
|
||||
sway = lib.mkIf config.desktop.window-managers.sway.enable {
|
||||
prettyName = "Sway";
|
||||
comment = "Sway";
|
||||
binPath = "${config.programs.sway.package}/bin/sway --session";
|
||||
};
|
||||
niri = lib.mkIf config.desktop.window-managers.niri.enable {
|
||||
prettyName = "Niri";
|
||||
comment = "Niri";
|
||||
binPath = "${config.programs.niri.package}/bin/niri-session";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,211 +0,0 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
hyprland = {
|
||||
enable = lib.mkEnableOption "enable hyprland";
|
||||
monitors = lib.mkOption {
|
||||
default = [
|
||||
",preferred,auto,1"
|
||||
];
|
||||
description = "declare monitors";
|
||||
};
|
||||
workspaces = {
|
||||
workspaces = lib.mkOption {
|
||||
default = (
|
||||
builtins.concatLists (
|
||||
builtins.genList (
|
||||
i:
|
||||
let
|
||||
ws = i + 1;
|
||||
in
|
||||
[
|
||||
"${toString i},persistent:true"
|
||||
]
|
||||
) config.desktop.hyprland.workspaces.amount
|
||||
)
|
||||
);
|
||||
description = "declare workspace";
|
||||
};
|
||||
amount = lib.mkOption {
|
||||
default = 9;
|
||||
description = "declare workspace amount";
|
||||
};
|
||||
};
|
||||
numlock = lib.mkEnableOption "numlock by default";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.hyprland.enable {
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
configPackages = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
];
|
||||
extraPortals = [
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
|
||||
pkgs.xdg-desktop-portal-xapp
|
||||
pkgs.xdg-desktop-portal-gtk
|
||||
|
||||
];
|
||||
config.common = {
|
||||
"org.freedesktop.portal.OpenURI" = [
|
||||
"*"
|
||||
"hyprland"
|
||||
];
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
hyprlock = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
systemd.enable = false;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage =
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
settings = {
|
||||
monitor = config.desktop.hyprland.monitors;
|
||||
workspace = config.desktop.hyprland.workspaces.workspaces;
|
||||
env = [
|
||||
"XDG_CURRENT_DESKTOP,Hyprland"
|
||||
"XDG_SESSION_TYPE,wayland"
|
||||
"XDG_SESSION_DESKTOP,Hyprland"
|
||||
];
|
||||
exec-once = [
|
||||
#"hyprctl plugin load "
|
||||
(lib.mkIf (config.desktop.walker.enable) "elephant")
|
||||
(lib.mkIf (config.desktop.waybar.enable) "waybar")
|
||||
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell")
|
||||
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell ipc call wallpaper random")
|
||||
(lib.mkIf (config.desktop.wallpaper.enable) "waypaper --restore --random")
|
||||
(lib.mkIf (config.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent")
|
||||
(lib.mkIf (config.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
|
||||
"echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature"
|
||||
];
|
||||
"$mod" = "SUPER";
|
||||
"$shiftmod" = "SUPER_SHIFT";
|
||||
"$controlmod" = "SUPER_CTRL";
|
||||
bind = [
|
||||
|
||||
(lib.mkIf (config.desktop.walker.enable) "$mod, D, exec, walker")
|
||||
(lib.mkIf (config.desktop.rofi.enable) "$mod, D, exec, rofi -show drun")
|
||||
(lib.mkIf (config.terminal.kitty.enable) "$mod, return, exec, kitty")
|
||||
(lib.mkIf (config.desktop.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
|
||||
(lib.mkIf (config.desktop.rofi.enable) (
|
||||
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; rofi-rbw; sleep 30; rbw lock"
|
||||
))
|
||||
(lib.mkIf (config.desktop.walker.enable) (
|
||||
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
|
||||
))
|
||||
"$mod, F, fullscreen, 1"
|
||||
"$shiftmod, F, fullscreen, 0"
|
||||
"$shiftmod, Q, killactive,"
|
||||
"$mod, S, togglespecialworkspace, magic"
|
||||
"$mod, O, exec, zen"
|
||||
"$shiftmod, S, movetoworkspace, special:magic"
|
||||
"$controlmod, right, workspace, m+1"
|
||||
"$controlmod, left, workspace, m-1"
|
||||
"$mod, mouse_down, workspace, m-1"
|
||||
"$mod, mouse_up, workspace, m+1"
|
||||
"$mod, left, movefocus, l"
|
||||
"$mod, right, movefocus, r"
|
||||
"$mod, up, movefocus, u"
|
||||
"$mod, down, movefocus, d"
|
||||
"$mod, J, exec, playerctl previous"
|
||||
"$mod, K, exec, playerctl play-pause"
|
||||
"$mod, L, exec, playerctl next"
|
||||
"$mod, G, togglefloating,"
|
||||
# "$mod, H, hyprexpo:expo, toggle"
|
||||
"$mod, F1, exec, hyprlock"
|
||||
"$shiftmod, E, exec, codium"
|
||||
"$controlmod, up, exec, light -A 10"
|
||||
"$controlmod, down, exec, light -U 10"
|
||||
"$controlmod, Q, exec, hyprctl kill"
|
||||
|
||||
]
|
||||
++ (builtins.concatLists (
|
||||
builtins.genList (
|
||||
i:
|
||||
let
|
||||
ws = i + 1;
|
||||
in
|
||||
[
|
||||
"$mod, code:1${toString i}, workspace, ${toString ws}"
|
||||
"$shiftmod, code:1${toString i}, movetoworkspacesilent, ${toString ws}"
|
||||
]
|
||||
) config.desktop.hyprland.workspaces.amount
|
||||
));
|
||||
bindm = [
|
||||
"$mod, mouse:272, movewindow"
|
||||
"$mod, mouse:273, resizewindow"
|
||||
];
|
||||
bindel = [
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
];
|
||||
input = {
|
||||
kb_layout = "de";
|
||||
numlock_by_default = config.desktop.hyprland.numlock;
|
||||
follow_mouse = 2;
|
||||
mouse_refocus = false;
|
||||
accel_profile = "flat";
|
||||
sensitivity = 0.2;
|
||||
touchpad = {
|
||||
natural_scroll = "no";
|
||||
disable_while_typing = true;
|
||||
};
|
||||
};
|
||||
cursor = {
|
||||
inactive_timeout = 0;
|
||||
no_warps = true;
|
||||
};
|
||||
decoration = {
|
||||
rounding = 20;
|
||||
blur = {
|
||||
enabled = true;
|
||||
size = 3;
|
||||
passes = 1;
|
||||
};
|
||||
shadow = {
|
||||
range = 4;
|
||||
render_power = 3;
|
||||
color = "rgba(1a1a1aee)";
|
||||
};
|
||||
};
|
||||
# plugin = {
|
||||
# hyprexpo = {
|
||||
# columns = 2;
|
||||
# gap_size = 20;
|
||||
# bg_col = "rgb(e1e1e2)";
|
||||
# workspace_method = "first 1";
|
||||
# enable_gesture = true;
|
||||
# gesture_distance = 300;
|
||||
# gesture_positive = true;
|
||||
# gesture_negative = true;
|
||||
# };
|
||||
# hyprtrails = {
|
||||
# color = "rgba(1a1a1aee)";
|
||||
# };
|
||||
# };
|
||||
};
|
||||
plugins = [
|
||||
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails
|
||||
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
|
||||
|
||||
];
|
||||
};
|
||||
home.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
noctalia.enable = lib.mkEnableOption "enable noctalia";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.noctalia.enable {
|
||||
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
rofi.enable = lib.mkEnableOption "enable rofi";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.rofi.enable {
|
||||
programs = {
|
||||
rofi = {
|
||||
enable = true;
|
||||
modes = [
|
||||
"drun"
|
||||
"run"
|
||||
"ssh"
|
||||
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/desktop/shell/default.nix
Normal file
15
modules/desktop/shell/default.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./noctalia.nix
|
||||
./swww.nix
|
||||
./walker.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
||||
24
modules/desktop/shell/noctalia.nix
Normal file
24
modules/desktop/shell/noctalia.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.shell = {
|
||||
noctalia.enable = lib.mkEnableOption "enable noctalia";
|
||||
};
|
||||
};
|
||||
imports = lib.mkIf config.desktop.shell.noctalia.enable [
|
||||
inputs.noctalia.homeModules.default
|
||||
];
|
||||
config = lib.mkIf config.desktop.shell.noctalia.enable {
|
||||
desktop.shell.swww.enable = lib.mkDefault false;
|
||||
programs.noctalia-shell = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
22
modules/desktop/shell/swww.nix
Normal file
22
modules/desktop/shell/swww.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.shell = {
|
||||
swww.enable = lib.mkEnableOption "enable swww";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.shell.swww.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
waypaper
|
||||
swww
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -8,19 +8,15 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.shell = {
|
||||
walker.enable = lib.mkEnableOption "enable walker";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.walker.enable {
|
||||
config = lib.mkIf config.desktop.shell.walker.enable {
|
||||
programs = {
|
||||
walker = {
|
||||
enable = true;
|
||||
runAsService = true;
|
||||
config = {
|
||||
theme = "noctalia";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -7,12 +7,12 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.shell = {
|
||||
waybar.enable = lib.mkEnableOption "enable waybar";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.waybar.enable {
|
||||
config = lib.mkIf config.desktop.shell.waybar.enable {
|
||||
programs = {
|
||||
waybar = {
|
||||
enable = true;
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
sway = {
|
||||
enable = lib.mkEnableOption "enable sway";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.sway.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
grim # screenshot functionality
|
||||
slurp # screenshot functionality
|
||||
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
|
||||
];
|
||||
|
||||
# Enable the gnome-keyring secrets vault.
|
||||
# Will be exposed through DBus to programs willing to store secrets.
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
package = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
12
modules/desktop/utilities/default.nix
Normal file
12
modules/desktop/utilities/default.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./grimblast.nix
|
||||
];
|
||||
}
|
||||
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.utilities = {
|
||||
grimblast.enable = lib.mkEnableOption "enable grimblast";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.grimblast.enable {
|
||||
home.packages = with pkgs; [
|
||||
config = lib.mkIf config.desktop.utilities.grimblast.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
grimblast
|
||||
gradia
|
||||
];
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
wallpaper.enable = lib.mkEnableOption "enable wallpapers";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf config.desktop.wallpaper.enable {
|
||||
home.packages = with pkgs; [
|
||||
waypaper
|
||||
swww
|
||||
];
|
||||
};
|
||||
}
|
||||
14
modules/desktop/window-managers/default.nix
Normal file
14
modules/desktop/window-managers/default.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hyprland.nix
|
||||
./niri.nix
|
||||
./sway.nix
|
||||
];
|
||||
}
|
||||
27
modules/desktop/window-managers/hyprland.nix
Normal file
27
modules/desktop/window-managers/hyprland.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.window-managers = {
|
||||
hyprland = {
|
||||
enable = lib.mkEnableOption "enable hyprland";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.window-managers.hyprland.enable {
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
withUWSM = true;
|
||||
xwayland.enable = true;
|
||||
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
|
||||
portalPackage =
|
||||
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -7,21 +7,17 @@
|
|||
|
||||
{
|
||||
options = {
|
||||
desktop = {
|
||||
desktop.window-managers = {
|
||||
niri = {
|
||||
enable = lib.mkEnableOption "enable niri";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.niri.enable {
|
||||
|
||||
# Enable the gnome-keyring secrets vault.
|
||||
# Will be exposed through DBus to programs willing to store secrets.
|
||||
config = lib.mkIf config.desktop.window-managers.niri.enable {
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
xwayland-satellite
|
||||
niri
|
||||
];
|
||||
xwayland-satellite
|
||||
];
|
||||
programs.niri = {
|
||||
enable = true;
|
||||
};
|
||||
24
modules/desktop/window-managers/sway.nix
Normal file
24
modules/desktop/window-managers/sway.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
options = {
|
||||
desktop.window-managers = {
|
||||
sway = {
|
||||
enable = lib.mkEnableOption "enable sway";
|
||||
};
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.desktop.window-managers.sway.enable {
|
||||
services.gnome.gnome-keyring.enable = true;
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
package = null;
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue