Initial flocke configuration (warning: may break other systems, will fix shortly)
This commit is contained in:
parent
7d0db0c12e
commit
52cf5ee8e6
4 changed files with 159 additions and 156 deletions
|
@ -5,6 +5,7 @@
|
|||
../../../options/common/pin-registry.nix
|
||||
../../../options/common/preserve-system.nix
|
||||
../../../options/desktop/fonts.nix
|
||||
./packages.nix
|
||||
];
|
||||
|
||||
|
||||
|
@ -12,18 +13,16 @@
|
|||
time.timeZone = "Europe/Zurich";
|
||||
security.sudo.package = pkgs.sudo.override { withInsults = true; };
|
||||
|
||||
services.xserver = {
|
||||
enable = true;
|
||||
displayManager = {
|
||||
services.displayManager = {
|
||||
sessionPackages = [ pkgs.hyprland ]; # pkgs.gnome.gnome-session.sessions ];
|
||||
defaultSession = "hyprland";
|
||||
sddm = {
|
||||
enable = true;
|
||||
};
|
||||
wayland.enable = true;
|
||||
};
|
||||
windowManager.hypr.enable = true;
|
||||
};
|
||||
|
||||
|
||||
hardware.bluetooth.enable = true;
|
||||
hardware.bluetooth.powerOnBoot = true;
|
||||
|
||||
|
@ -110,18 +109,22 @@
|
|||
|
||||
modules = {
|
||||
other = {
|
||||
system = {
|
||||
system = rec {
|
||||
hostname = "flocke";
|
||||
username = "dragyx";
|
||||
monitors = {
|
||||
name = "LaptopMain";
|
||||
resolution = {
|
||||
x = 2256;
|
||||
y = 1504;
|
||||
};
|
||||
scale = 1.0;
|
||||
refresh_rate = 60;
|
||||
};
|
||||
gitPath = "/home/${username}/repos/nichts";
|
||||
monitors = [
|
||||
{
|
||||
name = "LaptopMain";
|
||||
device = "eDP-1";
|
||||
resolution = {
|
||||
x = 2256;
|
||||
y = 1504;
|
||||
};
|
||||
scale = 1.175;
|
||||
refresh_rate = 60;
|
||||
}
|
||||
];
|
||||
};
|
||||
home-manager = {
|
||||
enable = true;
|
||||
|
@ -134,7 +137,7 @@
|
|||
mpv.enable = true;
|
||||
schizofox.enable = true;
|
||||
obs.enable = true;
|
||||
neovim.enable = true;
|
||||
# neovim.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Dragyx";
|
||||
|
|
|
@ -28,7 +28,7 @@ in
|
|||
android-tools
|
||||
signal-desktop
|
||||
nextcloud-client
|
||||
etcher
|
||||
# etcher
|
||||
vlc
|
||||
audacity
|
||||
thunderbird
|
||||
|
|
|
@ -15,12 +15,9 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
programs.xwayland.enable = true;
|
||||
/*
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland = true;
|
||||
enable = true;
|
||||
};
|
||||
*/
|
||||
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
|
||||
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
|
||||
description = "polkit-gnome-authentication-agent-1";
|
||||
|
@ -48,15 +45,8 @@ in
|
|||
|
||||
dunst
|
||||
# wireplumber
|
||||
unstable.xwayland
|
||||
xwayland
|
||||
pciutils # lspci is needed by hyprland
|
||||
# from some obscure tutorial on youtube
|
||||
# xorg.libxcb
|
||||
# mesa
|
||||
libglvnd
|
||||
egl-wayland
|
||||
libdrm
|
||||
vulkan-tools
|
||||
dunst
|
||||
swww
|
||||
flameshot
|
||||
|
@ -66,15 +56,20 @@ in
|
|||
wl-clipboard
|
||||
];
|
||||
|
||||
programs.hyprland = {
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
systemd.enable = true;
|
||||
xwayland.enable = true;
|
||||
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 (
|
||||
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
|
||||
input = {
|
||||
kb_layout = console.keyMap;
|
||||
kb_layout = "us";
|
||||
natural_scroll = true;
|
||||
sensitivity = 0;
|
||||
};
|
||||
|
@ -82,9 +77,9 @@ in
|
|||
gaps_in = 2;
|
||||
gaps_out = 1;
|
||||
border_size = 1;
|
||||
col.active_border = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
col.inactive_border = "rgba(595959aa)";
|
||||
layout = dwindle;
|
||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||
"col.inactive_border" = "rgba(595959aa)";
|
||||
layout = "dwindle";
|
||||
};
|
||||
decoration.rounding = 5;
|
||||
misc.disable_hyprland_logo = true;
|
||||
|
@ -106,77 +101,76 @@ in
|
|||
gestures.workspace_swipe = true;
|
||||
debug.enable_stdout_logs = true;
|
||||
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
|
||||
"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"
|
||||
|
||||
"binde = ,XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||
"binde = ,XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||
|
||||
# Example volume button that allows press and hold, volume limited to 150%"
|
||||
"binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
# Example volume button that will activate even while an input inhibitor is active"
|
||||
"binde = ,XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
|
||||
# Move focus with mainMod + arrow keys"
|
||||
"SUPER, h, movefocus, l"
|
||||
"SUPER, l, movefocus, r"
|
||||
"SUPER, k, movefocus, u"
|
||||
"SUPER, j, movefocus, d"
|
||||
|
||||
# move window to next / previous workspace"
|
||||
"SUPER CTRL, h, movetoworkspace, -1"
|
||||
"SUPER CTRL, l, movetoworkspace, +1"
|
||||
|
||||
# move to next / previous workspace"
|
||||
"SUPER CTRL, h, workspace, -1"
|
||||
"SUPER CTRL, l, workspace, +1"
|
||||
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]"
|
||||
"SUPER, 1, workspace, 1"
|
||||
"SUPER, 2, workspace, 2"
|
||||
"SUPER, 3, workspace, 3"
|
||||
"SUPER, 4, workspace, 4"
|
||||
"SUPER, 5, workspace, 5"
|
||||
"SUPER, 6, workspace, 6"
|
||||
"SUPER, 7, workspace, 7"
|
||||
"SUPER, 8, workspace, 8"
|
||||
"SUPER, 9, workspace, 9"
|
||||
"SUPER, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||
"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"
|
||||
|
||||
# Move focus with mainMod + arrow keys"
|
||||
"SUPER, h, movefocus, l"
|
||||
"SUPER, l, movefocus, r"
|
||||
"SUPER, k, movefocus, u"
|
||||
"SUPER, j, movefocus, d"
|
||||
|
||||
# move window to next / previous workspace"
|
||||
"SUPER CTRL, h, movetoworkspace, -1"
|
||||
"SUPER CTRL, l, movetoworkspace, +1"
|
||||
|
||||
# move to next / previous workspace"
|
||||
"SUPER CTRL, h, workspace, -1"
|
||||
"SUPER CTRL, l, workspace, +1"
|
||||
|
||||
|
||||
# Switch workspaces with mainMod + [0-9]"
|
||||
"SUPER, 1, workspace, 1"
|
||||
"SUPER, 2, workspace, 2"
|
||||
"SUPER, 3, workspace, 3"
|
||||
"SUPER, 4, workspace, 4"
|
||||
"SUPER, 5, workspace, 5"
|
||||
"SUPER, 6, workspace, 6"
|
||||
"SUPER, 7, workspace, 7"
|
||||
"SUPER, 8, workspace, 8"
|
||||
"SUPER, 9, workspace, 9"
|
||||
"SUPER, 0, workspace, 10"
|
||||
|
||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
|
||||
"SUPER SHIFT, 1, movetoworkspace, 1"
|
||||
"SUPER SHIFT, 2, movetoworkspace, 2"
|
||||
"SUPER SHIFT, 3, movetoworkspace, 3"
|
||||
"SUPER SHIFT, 4, movetoworkspace, 4"
|
||||
"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
|
||||
"SUPER, mouse:272, movewindow"
|
||||
# "bindm = SUPER, mouse:273, resizewindow"
|
||||
];
|
||||
binde = [
|
||||
",XF86MonBrightnessUp, exec, brightnessctl set 10%+"
|
||||
",XF86MonBrightnessDown, exec, brightnessctl set 10%-"
|
||||
# Example volume button that allows press and hold, volume limited to 150%"
|
||||
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
# Example volume button that will activate even while an input inhibitor is active"
|
||||
",XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -7,63 +7,69 @@ with lib;
|
|||
List of monitors to use
|
||||
";
|
||||
default = [];
|
||||
type = with types; listOf submodule {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = "Give your monitor a cute name";
|
||||
default = "monitor0(I am lazy)";
|
||||
};
|
||||
device = mkOption {
|
||||
type = types.str;
|
||||
description = "The actual device name of the monitor";
|
||||
};
|
||||
resolution = mkOption {
|
||||
type = types.submodule {
|
||||
width = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor width";
|
||||
default = "1920";
|
||||
};
|
||||
height = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor height";
|
||||
default = "1080";
|
||||
type = with types; types.listOf (submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
description = "Give your monitor a cute name";
|
||||
default = "monitor0(I am lazy)";
|
||||
};
|
||||
device = mkOption {
|
||||
type = types.str;
|
||||
description = "The actual device name of the monitor";
|
||||
};
|
||||
resolution = mkOption {
|
||||
type = types.submodule {
|
||||
options = {
|
||||
x = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor width";
|
||||
default = "1920";
|
||||
};
|
||||
y = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor height";
|
||||
default = "1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
scale = mkOption {
|
||||
type = types.number;
|
||||
description = "monitor scale";
|
||||
default = 1.0;
|
||||
};
|
||||
refresh_rate = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor refresh rate (in Hz)";
|
||||
default = 60;
|
||||
};
|
||||
position = mkOption {
|
||||
type = types.submodule {
|
||||
x = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
scale = mkOption {
|
||||
type = types.number;
|
||||
description = "monitor scale";
|
||||
default = 1.0;
|
||||
};
|
||||
refresh_rate = mkOption {
|
||||
type = types.int;
|
||||
description = "monitor refresh rate (in Hz)";
|
||||
default = 60;
|
||||
};
|
||||
position = mkOption {
|
||||
type = types.submodule {
|
||||
options = {
|
||||
x = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
};
|
||||
y = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
y = mkOption {
|
||||
type = types.int;
|
||||
default = 0;
|
||||
description = "absolute monitor posititon";
|
||||
default = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
description = "absolute monitor posititon";
|
||||
default = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
transform = mkOption {
|
||||
type = types.ints.between 0 3;
|
||||
description = "Rotation of the monitor counterclockwise";
|
||||
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