Initial flocke configuration (warning: may break other systems, will fix shortly)
This commit is contained in:
parent
f3abb45151
commit
064b8d964a
4 changed files with 159 additions and 156 deletions
|
@ -5,6 +5,7 @@
|
||||||
../../../options/common/pin-registry.nix
|
../../../options/common/pin-registry.nix
|
||||||
../../../options/common/preserve-system.nix
|
../../../options/common/preserve-system.nix
|
||||||
../../../options/desktop/fonts.nix
|
../../../options/desktop/fonts.nix
|
||||||
|
./packages.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,18 +13,16 @@
|
||||||
time.timeZone = "Europe/Zurich";
|
time.timeZone = "Europe/Zurich";
|
||||||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||||
|
|
||||||
services.xserver = {
|
services.displayManager = {
|
||||||
enable = true;
|
|
||||||
displayManager = {
|
|
||||||
sessionPackages = [ pkgs.hyprland ]; # pkgs.gnome.gnome-session.sessions ];
|
sessionPackages = [ pkgs.hyprland ]; # pkgs.gnome.gnome-session.sessions ];
|
||||||
defaultSession = "hyprland";
|
defaultSession = "hyprland";
|
||||||
sddm = {
|
sddm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
wayland.enable = true;
|
||||||
};
|
};
|
||||||
windowManager.hypr.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
hardware.bluetooth.powerOnBoot = true;
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
||||||
|
@ -110,18 +109,22 @@
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
other = {
|
other = {
|
||||||
system = {
|
system = rec {
|
||||||
hostname = "flocke";
|
hostname = "flocke";
|
||||||
username = "dragyx";
|
username = "dragyx";
|
||||||
monitors = {
|
gitPath = "/home/${username}/repos/nichts";
|
||||||
name = "LaptopMain";
|
monitors = [
|
||||||
resolution = {
|
{
|
||||||
x = 2256;
|
name = "LaptopMain";
|
||||||
y = 1504;
|
device = "eDP-1";
|
||||||
};
|
resolution = {
|
||||||
scale = 1.0;
|
x = 2256;
|
||||||
refresh_rate = 60;
|
y = 1504;
|
||||||
};
|
};
|
||||||
|
scale = 1.175;
|
||||||
|
refresh_rate = 60;
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -134,7 +137,7 @@
|
||||||
mpv.enable = true;
|
mpv.enable = true;
|
||||||
schizofox.enable = true;
|
schizofox.enable = true;
|
||||||
obs.enable = true;
|
obs.enable = true;
|
||||||
neovim.enable = true;
|
# neovim.enable = true;
|
||||||
git = {
|
git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
userName = "Dragyx";
|
userName = "Dragyx";
|
||||||
|
|
|
@ -28,7 +28,7 @@ in
|
||||||
android-tools
|
android-tools
|
||||||
signal-desktop
|
signal-desktop
|
||||||
nextcloud-client
|
nextcloud-client
|
||||||
etcher
|
# etcher
|
||||||
vlc
|
vlc
|
||||||
audacity
|
audacity
|
||||||
thunderbird
|
thunderbird
|
||||||
|
|
|
@ -15,12 +15,9 @@ in
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.xwayland.enable = true;
|
programs.xwayland.enable = true;
|
||||||
/*
|
|
||||||
programs.hyprland = {
|
programs.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
xwayland = true;
|
|
||||||
};
|
};
|
||||||
*/
|
|
||||||
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
|
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
|
||||||
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
|
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
|
||||||
description = "polkit-gnome-authentication-agent-1";
|
description = "polkit-gnome-authentication-agent-1";
|
||||||
|
@ -48,15 +45,8 @@ in
|
||||||
|
|
||||||
dunst
|
dunst
|
||||||
# wireplumber
|
# wireplumber
|
||||||
unstable.xwayland
|
xwayland
|
||||||
pciutils # lspci is needed by hyprland
|
pciutils # lspci is needed by hyprland
|
||||||
# from some obscure tutorial on youtube
|
|
||||||
# xorg.libxcb
|
|
||||||
# mesa
|
|
||||||
libglvnd
|
|
||||||
egl-wayland
|
|
||||||
libdrm
|
|
||||||
vulkan-tools
|
|
||||||
dunst
|
dunst
|
||||||
swww
|
swww
|
||||||
flameshot
|
flameshot
|
||||||
|
@ -66,15 +56,20 @@ in
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
xwayland.enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
exec-once = mkIf cfg.gnome-keyring "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
|
exec-once = [
|
||||||
|
"waybar"
|
||||||
|
] ++ (if cfg.gnome-keyring then ["${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"]
|
||||||
|
else []);
|
||||||
monitor = map (
|
monitor = map (
|
||||||
m: "${m.device},${m.resolution.x}x${m.resolution.y}@${m.refresh_rate},${m.position.x}x${m.position.y},${m.scale},transform,${m.transform}"
|
m: "${m.device},${builtins.toString m.resolution.x}x${builtins.toString m.resolution.y}@${builtins.toString m.refresh_rate},${builtins.toString m.position.x}x${builtins.toString m.position.y},${builtins.toString m.scale},transform,${builtins.toString m.transform}"
|
||||||
) monitors; #TODO: default value
|
) monitors; #TODO: default value
|
||||||
input = {
|
input = {
|
||||||
kb_layout = console.keyMap;
|
kb_layout = "us";
|
||||||
natural_scroll = true;
|
natural_scroll = true;
|
||||||
sensitivity = 0;
|
sensitivity = 0;
|
||||||
};
|
};
|
||||||
|
@ -82,9 +77,9 @@ in
|
||||||
gaps_in = 2;
|
gaps_in = 2;
|
||||||
gaps_out = 1;
|
gaps_out = 1;
|
||||||
border_size = 1;
|
border_size = 1;
|
||||||
col.active_border = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
col.inactive_border = "rgba(595959aa)";
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
layout = dwindle;
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
decoration.rounding = 5;
|
decoration.rounding = 5;
|
||||||
misc.disable_hyprland_logo = true;
|
misc.disable_hyprland_logo = true;
|
||||||
|
@ -106,77 +101,76 @@ in
|
||||||
gestures.workspace_swipe = true;
|
gestures.workspace_swipe = true;
|
||||||
debug.enable_stdout_logs = true;
|
debug.enable_stdout_logs = true;
|
||||||
bind = [
|
bind = [
|
||||||
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
|
"SUPER, RETURN, exec, alacritty"
|
||||||
|
"SUPER SHIFT, RETURN, exec, rofi -show drun"
|
||||||
|
"SUPER SHIFT, Q, killactive,"
|
||||||
|
"SUPER, M, exit, "
|
||||||
|
"SUPER, B, exec, firefox"
|
||||||
|
"SUPER, f, fullscreen"
|
||||||
|
"SUPER, E, exec, nautilus --new-window "
|
||||||
|
"SUPER, V, togglefloating, "
|
||||||
|
"SUPER, P, pseudo, # dwindle"
|
||||||
|
"SUPER, S, togglesplit, # dwindle"
|
||||||
|
"SUPER, C, exec, /home/vali/.config/wallpaper/colorscheme-setter"
|
||||||
|
",PRINT, exec, flameshot"
|
||||||
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
# Move focus with mainMod + arrow keys"
|
||||||
"SUPER, RETURN, exec, alacritty"
|
"SUPER, h, movefocus, l"
|
||||||
"SUPER SHIFT, RETURN, exec, rofi -show drun"
|
"SUPER, l, movefocus, r"
|
||||||
"SUPER SHIFT, Q, killactive,"
|
"SUPER, k, movefocus, u"
|
||||||
"SUPER, M, exit, "
|
"SUPER, j, movefocus, d"
|
||||||
"SUPER, B, exec, firefox"
|
|
||||||
"SUPER, f, fullscreen"
|
# move window to next / previous workspace"
|
||||||
"SUPER, E, exec, nautilus --new-window "
|
"SUPER CTRL, h, movetoworkspace, -1"
|
||||||
"SUPER, V, togglefloating, "
|
"SUPER CTRL, l, movetoworkspace, +1"
|
||||||
"SUPER, P, pseudo, # dwindle"
|
|
||||||
"SUPER, S, togglesplit, # dwindle"
|
# move to next / previous workspace"
|
||||||
"SUPER, C, exec, /home/vali/.config/wallpaper/colorscheme-setter"
|
"SUPER CTRL, h, workspace, -1"
|
||||||
",PRINT, exec, flameshot"
|
"SUPER CTRL, l, workspace, +1"
|
||||||
|
|
||||||
"binde = ,XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
|
||||||
"binde = ,XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
# Switch workspaces with mainMod + [0-9]"
|
||||||
|
"SUPER, 1, workspace, 1"
|
||||||
# Example volume button that allows press and hold, volume limited to 150%"
|
"SUPER, 2, workspace, 2"
|
||||||
"binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
"SUPER, 3, workspace, 3"
|
||||||
# Example volume button that will activate even while an input inhibitor is active"
|
"SUPER, 4, workspace, 4"
|
||||||
"binde = ,XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
"SUPER, 5, workspace, 5"
|
||||||
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
"SUPER, 6, workspace, 6"
|
||||||
|
"SUPER, 7, workspace, 7"
|
||||||
# Move focus with mainMod + arrow keys"
|
"SUPER, 8, workspace, 8"
|
||||||
"SUPER, h, movefocus, l"
|
"SUPER, 9, workspace, 9"
|
||||||
"SUPER, l, movefocus, r"
|
"SUPER, 0, workspace, 10"
|
||||||
"SUPER, k, movefocus, u"
|
|
||||||
"SUPER, j, movefocus, d"
|
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
||||||
|
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||||
# move window to next / previous workspace"
|
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||||
"SUPER CTRL, h, movetoworkspace, -1"
|
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||||
"SUPER CTRL, l, movetoworkspace, +1"
|
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||||
|
"SUPER SHIFT, 5, movetoworkspace, 5"
|
||||||
# move to next / previous workspace"
|
"SUPER SHIFT, 6, movetoworkspace, 6"
|
||||||
"SUPER CTRL, h, workspace, -1"
|
"SUPER SHIFT, 7, movetoworkspace, 7"
|
||||||
"SUPER CTRL, l, workspace, +1"
|
"SUPER SHIFT, 8, movetoworkspace, 8"
|
||||||
|
"SUPER SHIFT, 9, movetoworkspace, 9"
|
||||||
|
"SUPER SHIFT, 0, movetoworkspace, 10"
|
||||||
# Switch workspaces with mainMod + [0-9]"
|
|
||||||
"SUPER, 1, workspace, 1"
|
# Scroll through existing workspaces with mainMod + scroll"
|
||||||
"SUPER, 2, workspace, 2"
|
"SUPER, mouse_down, workspace, e+1"
|
||||||
"SUPER, 3, workspace, 3"
|
"SUPER, mouse_up, workspace, e-1"
|
||||||
"SUPER, 4, workspace, 4"
|
|
||||||
"SUPER, 5, workspace, 5"
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||||
"SUPER, 6, workspace, 6"
|
"SUPER, mouse:272, movewindow"
|
||||||
"SUPER, 7, workspace, 7"
|
# "bindm = SUPER, mouse:273, resizewindow"
|
||||||
"SUPER, 8, workspace, 8"
|
];
|
||||||
"SUPER, 9, workspace, 9"
|
binde = [
|
||||||
"SUPER, 0, workspace, 10"
|
",XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||||
|
",XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
# Example volume button that allows press and hold, volume limited to 150%"
|
||||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
# Example volume button that will activate even while an input inhibitor is active"
|
||||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
",XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
"SUPER SHIFT, 5, movetoworkspace, 5"
|
|
||||||
"SUPER SHIFT, 6, movetoworkspace, 6"
|
|
||||||
"SUPER SHIFT, 7, movetoworkspace, 7"
|
|
||||||
"SUPER SHIFT, 8, movetoworkspace, 8"
|
|
||||||
"SUPER SHIFT, 9, movetoworkspace, 9"
|
|
||||||
"SUPER SHIFT, 0, movetoworkspace, 10"
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll"
|
|
||||||
"SUPER, mouse_down, workspace, e+1"
|
|
||||||
"SUPER, mouse_up, workspace, e-1"
|
|
||||||
"
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging"
|
|
||||||
#bindm = SUPER, mouse:272, movewindow"
|
|
||||||
#bindm = SUPER, mouse:273, resizewindow"
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,63 +7,69 @@ with lib;
|
||||||
List of monitors to use
|
List of monitors to use
|
||||||
";
|
";
|
||||||
default = [];
|
default = [];
|
||||||
type = with types; listOf submodule {
|
type = with types; types.listOf (submodule {
|
||||||
name = mkOption {
|
options = {
|
||||||
type = types.str;
|
name = mkOption {
|
||||||
description = "Give your monitor a cute name";
|
type = types.str;
|
||||||
default = "monitor0(I am lazy)";
|
description = "Give your monitor a cute name";
|
||||||
};
|
default = "monitor0(I am lazy)";
|
||||||
device = mkOption {
|
};
|
||||||
type = types.str;
|
device = mkOption {
|
||||||
description = "The actual device name of the monitor";
|
type = types.str;
|
||||||
};
|
description = "The actual device name of the monitor";
|
||||||
resolution = mkOption {
|
};
|
||||||
type = types.submodule {
|
resolution = mkOption {
|
||||||
width = mkOption {
|
type = types.submodule {
|
||||||
type = types.int;
|
options = {
|
||||||
description = "monitor width";
|
x = mkOption {
|
||||||
default = "1920";
|
type = types.int;
|
||||||
};
|
description = "monitor width";
|
||||||
height = mkOption {
|
default = "1920";
|
||||||
type = types.int;
|
};
|
||||||
description = "monitor height";
|
y = mkOption {
|
||||||
default = "1080";
|
type = types.int;
|
||||||
|
description = "monitor height";
|
||||||
|
default = "1080";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
scale = mkOption {
|
||||||
scale = mkOption {
|
type = types.number;
|
||||||
type = types.number;
|
description = "monitor scale";
|
||||||
description = "monitor scale";
|
default = 1.0;
|
||||||
default = 1.0;
|
};
|
||||||
};
|
refresh_rate = mkOption {
|
||||||
refresh_rate = mkOption {
|
type = types.int;
|
||||||
type = types.int;
|
description = "monitor refresh rate (in Hz)";
|
||||||
description = "monitor refresh rate (in Hz)";
|
default = 60;
|
||||||
default = 60;
|
};
|
||||||
};
|
position = mkOption {
|
||||||
position = mkOption {
|
type = types.submodule {
|
||||||
type = types.submodule {
|
options = {
|
||||||
x = mkOption {
|
x = mkOption {
|
||||||
type = types.int;
|
type = types.int;
|
||||||
default = 0;
|
default = 0;
|
||||||
|
};
|
||||||
|
y = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
y = mkOption {
|
description = "absolute monitor posititon";
|
||||||
type = types.int;
|
default = {
|
||||||
default = 0;
|
x = 0;
|
||||||
|
y = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
description = "absolute monitor posititon";
|
transform = mkOption {
|
||||||
default = {
|
type = types.ints.between 0 3;
|
||||||
x = 0;
|
description = "Rotation of the monitor counterclockwise";
|
||||||
y = 0;
|
default = 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
transform = mkOption {
|
});
|
||||||
type = types.ints.between 0 3;
|
|
||||||
description = "Rotation of the monitor counterclockwise";
|
|
||||||
default = 0;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue