From b9c6b6c0e727a99b085b8e94b283562e7558cc44 Mon Sep 17 00:00:00 2001 From: m3tam3re Date: Sun, 9 Apr 2023 11:12:23 +0200 Subject: [PATCH] from xorg to wayland --- flake.nix | 3 +- home/features/cli/#fish.nix# | 55 ------ home/features/cli/fish.nix | 3 + home/features/coding/emacs.nix | 1 + home/features/desktop/default.nix | 50 +++-- home/features/desktop/extrafonts.nix | 1 + home/features/desktop/hyprland/config.nix | 2 +- home/features/desktop/hyprland/default.nix | 28 ++- home/features/desktop/office.nix | 31 +++- home/features/desktop/qt.nix | 9 +- home/features/desktop/rofi.nix | 1 + home/features/desktop/waybar.nix | 35 ++++ home/users/m3tam3re/base/default.nix | 14 ++ home/users/m3tam3re/dotfiles/default.nix | 7 + home/users/m3tam3re/dotfiles/hyprland.nix | 202 +++++++++++++++++++++ home/users/m3tam3re/m3-nix.nix | 10 +- hosts/common/base/default.nix | 10 +- hosts/common/users/m3tam3re/default.nix | 2 +- hosts/m3-nix/default.nix | 16 +- hosts/m3-nix/services/xserver.nix | 33 ++-- 20 files changed, 378 insertions(+), 135 deletions(-) delete mode 100644 home/features/cli/#fish.nix# create mode 100644 home/features/desktop/waybar.nix create mode 100644 home/users/m3tam3re/dotfiles/default.nix create mode 100644 home/users/m3tam3re/dotfiles/hyprland.nix diff --git a/flake.nix b/flake.nix index 43412af..6b3fee8 100644 --- a/flake.nix +++ b/flake.nix @@ -64,7 +64,7 @@ ]; }; m3-nix = lib.nixosSystem { - specialArgs = { inherit inputs; }; + specialArgs = { inherit inputs outputs; }; modules = [ allowUnfree ./hosts/m3-nix @@ -82,6 +82,7 @@ extraSpecialArgs = { inherit inputs nix-colors; }; modules = [ + hyprland.homeManagerModules.default ./home/users/m3tam3re/m3-nix.nix allowUnfree ]; diff --git a/home/features/cli/#fish.nix# b/home/features/cli/#fish.nix# deleted file mode 100644 index 156c997..0000000 --- a/home/features/cli/#fish.nix# +++ /dev/null @@ -1,55 +0,0 @@ -{ config, lib, pkgs, ... }: - -with lib; - -let cfg = config.features.cli.fish; - -in { - - options.features.cli.fish.enable = mkEnableOption "enable fish shell"; - - config = mkIf cfg.enable { - programs.fish = { - enable = true; - plugins = [{ - name = "foreign-env"; - src = pkgs.fetchFromGitHub { - owner = "oh-my-fish"; - repo = "plugin-foreign-env"; - rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc"; - sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs"; - }; - }]; - loginShellInit = '' - set -x WEBKIT_DISABLE_COMPOSITING_MODE 1 - set -x EDITOR emacsclient - set -x VISUAL emacsclient - set -x XDG_DATA_HOME $HOME/.local/share - ''; - shellAbbrs = { - ls = "exa"; - grep = "rg"; - ps = "procs"; - - n = "nix"; - nd = "nix develop -c $SHELL"; - ns = "nix shell"; - nsn = "nix shell nixpkgs#"; - nb = "nix build"; - nbn = "nix build nixpkgs#"; - nf = "nix flake"; - - ncb nr = "nixos-rebuild --flake ."; nrs = "nixos-rebuild - --flake . switch"; snr = "sudo nixos-rebuild --flake ."; snrs - = "sudo nixos-rebuild --flake . switch"; hm = "home-manager - --flake ."; hms = "home-manager --flake . switch"; - - vi = "nvim"; - vim = "nvim"; - - wgd = "sudo systemctl stop wg-quick-wg0.service"; - wgu = "sudo systemctl start wg-quick-wg0.service"; - }; - }; - }; -} diff --git a/home/features/cli/fish.nix b/home/features/cli/fish.nix index ca9982c..5cbe1f5 100644 --- a/home/features/cli/fish.nix +++ b/home/features/cli/fish.nix @@ -25,6 +25,9 @@ in { set -x EDITOR emacsclient set -x VISUAL emacsclient set -x XDG_DATA_HOME $HOME/.local/share + if test (tty) = "/dev/tty1" + exec Hyprland &> /dev/null + end ''; shellAbbrs = { ls = "exa"; diff --git a/home/features/coding/emacs.nix b/home/features/coding/emacs.nix index de79527..4ed528b 100644 --- a/home/features/coding/emacs.nix +++ b/home/features/coding/emacs.nix @@ -42,6 +42,7 @@ epkgs.evil-nerd-commenter epkgs.exec-path-from-shell epkgs.forge + epkgs.fontawesome epkgs.general epkgs.go-mode epkgs.graphql-mode diff --git a/home/features/desktop/default.nix b/home/features/desktop/default.nix index 79df767..ae3e4ba 100644 --- a/home/features/desktop/default.nix +++ b/home/features/desktop/default.nix @@ -1,77 +1,69 @@ -{ pkgs, lib, outputs, nix-colors, ... }: -{ +{ pkgs, ... }: { + imports = [ ./crypto.nix ./design.nix -# ./espanso.nix - ./hyprland - ./i3-gaps.nix ./extrafonts.nix + #./hyprland ./media.nix ./office.nix - ./polybar.nix ./qt.nix ./rofi.nix ./syncthing.nix - nix-colors.homeManagerModule + ./waybar.nix ]; - xdg.mimeApps.enable = true; - colorScheme = nix-colors.colorSchemes.dracula; - + xdg.mimeApps = { + enable = true; + defaultApplications = { + "application/pdf" = ["okular.desktop"]; + }; + }; + home.sessionVariables = { WEBKIT_DISABLE_COMPOSITING_MODE = "1"; EDITOR = "emacs"; - VISUAL = "emacs"; + VISUAL = "emacs"; + QT_QPA_PLATFORM = "wayland"; + QT_QPA_PLATFORMTHEME = "qt5ct"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_BIN_HOME = "\${HOME}/.local/bin"; XDG_DATA_HOME = "\${HOME}/.local/share"; }; home.sessionPath = [ "\${XDG_BIN_HOME}" "\${HOME}/.cargo/bin" ]; - + + fonts.fontconfig.enable = true; + home.packages = with pkgs; [ alacritty appimage-run - autotiling blueberry brave brightnessctl clipman - dunst - feh + distrobox flameshot fuzzel gnome.file-roller gnome.seahorse gnome.vinagre + glib gsettings-desktop-schemas hyprpaper libnotify - lxappearance nyxt pamixer - pasystray - pavucontrol picom - polkit_gnome + libsForQt5.qtstyleplugins qt5ct - qt6.qtwayland rustdesk - slurp unrar unzip usbutils v4l-utils - wlogout - wl-clipboard - xclip xdg-utils xdotool - xfce.xfce4-clipman-plugin - xorg.xbacklight - xorg.xkill - xorg.xmodmap - xorg.xrandr zip ]; + } diff --git a/home/features/desktop/extrafonts.nix b/home/features/desktop/extrafonts.nix index 4afda44..c0dc90c 100644 --- a/home/features/desktop/extrafonts.nix +++ b/home/features/desktop/extrafonts.nix @@ -16,6 +16,7 @@ in { font-manager font-awesome font-awesome_4 + font-awesome_5 noto-fonts ]; }; diff --git a/home/features/desktop/hyprland/config.nix b/home/features/desktop/hyprland/config.nix index 068dced..3aaf204 100644 --- a/home/features/desktop/hyprland/config.nix +++ b/home/features/desktop/hyprland/config.nix @@ -5,7 +5,7 @@ let in '' monitor=eDP-1,preferred, 2560x0, auto - monitor=DP-2,preferred, 0x0, auto + monitor=eDP-2,preferred, 0x0, auto exec-once = hyprpaper exec-once = waybar exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json" diff --git a/home/features/desktop/hyprland/default.nix b/home/features/desktop/hyprland/default.nix index 8daa81e..de27d16 100644 --- a/home/features/desktop/hyprland/default.nix +++ b/home/features/desktop/hyprland/default.nix @@ -7,14 +7,30 @@ end ''; }; - wayland.windowManager.hyprland = { - enable = true; - nvidiaPatches = true; - extraConfig = - (import ./config.nix { inherit (config) home; }); + # wayland.windowManager.hyprland = { + # enable = true; + # nvidiaPatches = true; + # extraConfig = (import ./config.nix { inherit (config) home; }); - }; + # }; programs.waybar.package = pkgs.waybar.overrideAttrs (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; }); programs.waybar.enable = true; + + home.packages = with pkgs; [ + grim + imv + mimeo + xwayland + pulseaudio + slurp + swayidle + swaylock + waypipe + wireplumber + wf-recorder + wl-clipboard + wl-mirror + ydotool + ]; } diff --git a/home/features/desktop/office.nix b/home/features/desktop/office.nix index 062f44c..6d26086 100644 --- a/home/features/desktop/office.nix +++ b/home/features/desktop/office.nix @@ -1,11 +1,22 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - nextcloud-client - libreoffice - neomutt - tutanota-desktop - okular - zathura - ]; +{ config, lib, pkgs, ... }: + +with lib; + +let cfg = config.features.desktop.office; + +in { + + options.features.desktop.office.enable = + mkEnableOption "enable office features"; + + config = mkIf cfg.enable { + home.packages = with pkgs; [ + nextcloud-client + libreoffice + neomutt + tutanota-desktop + okular + zathura + ]; + }; } diff --git a/home/features/desktop/qt.nix b/home/features/desktop/qt.nix index b368d1d..afaa6d2 100644 --- a/home/features/desktop/qt.nix +++ b/home/features/desktop/qt.nix @@ -1,6 +1,13 @@ +{ pkgs, ...}: { qt = { enable = true; - platformTheme = "gtk"; + }; + gtk = { + enable = true; + theme = { + name = "Dracula"; + package = pkgs.dracula-theme; + }; }; } diff --git a/home/features/desktop/rofi.nix b/home/features/desktop/rofi.nix index 8c4857e..0f1fd91 100644 --- a/home/features/desktop/rofi.nix +++ b/home/features/desktop/rofi.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { programs.rofi = { enable = true; + package = pkgs.rofi-wayland; plugins = [ pkgs.rofi-calc pkgs.rofi-emoji ]; theme = "themes/dracula"; extraConfig = { diff --git a/home/features/desktop/waybar.nix b/home/features/desktop/waybar.nix new file mode 100644 index 0000000..a70c978 --- /dev/null +++ b/home/features/desktop/waybar.nix @@ -0,0 +1,35 @@ +{ inputs, config, lib, pkgs, ... }: { + # programs = { + # fish.loginShellInit = '' + # if test (tty) = "/dev/tty1" + # exec Hyprland &> /dev/null + # end + # ''; + # }; + # wayland.windowManager.hyprland = { + # enable = true; + # nvidiaPatches = true; + # extraConfig = (import ./config.nix { inherit (config) home; }); + + # }; + programs.waybar.package = pkgs.waybar.overrideAttrs + (oa: { mesonFlags = (oa.mesonFlags or [ ]) ++ [ "-Dexperimental=true" ]; }); + programs.waybar.enable = true; + + home.packages = with pkgs; [ + grim + imv + mimeo + xwayland + pulseaudio + slurp + swayidle + swaylock + waypipe + wireplumber + wf-recorder + wl-clipboard + wl-mirror + ydotool + ]; +} diff --git a/home/users/m3tam3re/base/default.nix b/home/users/m3tam3re/base/default.nix index cb7a8ac..6c80573 100644 --- a/home/users/m3tam3re/base/default.nix +++ b/home/users/m3tam3re/base/default.nix @@ -2,6 +2,20 @@ let in { +nixpkgs = { + config = { + allowUnfree = true; + allowUnfreePredicate = (_: true); + }; + }; + + nix = { + package = lib.mkDefault pkgs.nix; + settings = { + experimental-features = [ "nix-command" "flakes" "repl-flake" ]; + warn-dirty = false; + }; + }; programs = { home-manager.enable = true; git.enable = true; diff --git a/home/users/m3tam3re/dotfiles/default.nix b/home/users/m3tam3re/dotfiles/default.nix new file mode 100644 index 0000000..e0159f4 --- /dev/null +++ b/home/users/m3tam3re/dotfiles/default.nix @@ -0,0 +1,7 @@ +{ + + imports = [ + hyprland.nix + ]; + +} diff --git a/home/users/m3tam3re/dotfiles/hyprland.nix b/home/users/m3tam3re/dotfiles/hyprland.nix new file mode 100644 index 0000000..29708ae --- /dev/null +++ b/home/users/m3tam3re/dotfiles/hyprland.nix @@ -0,0 +1,202 @@ +{ + home.file.".config/hypr/hyprland.conf".text = '' + + # See https://wiki.hyprland.org/Configuring/Monitors/ + monitor=eDP-1,preferred, 2560x0, auto + monitor=DP-2,preferred, 0x0, auto + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + + # Execute your favorite apps at launch + # exec-once = waybar & hyprpaper & firefox + exec-once = waybar + exec-once = hyprpaper + exec-once = wl-paste -p -t text --watch clipman store -P --histpath="~/.local/share/clipman-primary.json" + # Source a file (multi-file configs) + # source = ~/.config/hypr/myColors.conf + + # Some default env vars. + env = XCURSOR_SIZE,24 + env = WLR_NO_HARDWARE_CURSORS,1 + # For all categories, see https://wiki.hyprland.org/Configuring/Variables/ + input { + kb_layout = de + kb_variant = + kb_model = + kb_rules = + kb_options=ctrl:nocaps + follow_mouse = 1 + + touchpad { + natural_scroll = yes + } + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + } + + general { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + col.active_border = rgb(44475a) rgb(bd93f9) 90deg + col.inactive_border = rgba(44475aaa) + col.group_border = rgba(282a36dd) + col.group_border_active = rgb(bd93f9) rgb(44475a) 90deg + + gaps_in = 5 + gaps_out = 5 + border_size = 1 + col.active_border = rgba(9742b5ee) rgba(9742b5ee) 45deg + col.inactive_border = rgba(595959aa) + + layout = dwindle + } + + decoration { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + col.shadow = rgba(1E202966) + drop_shadow = yes + shadow_range = 60 + shadow_offset = 1 2 + shadow_render_power = 3 + shadow_scale = 0.97 + rounding = 8 + blur = yes + blur_size = 3 + blur_passes = 3 + blur_new_optimizations = on + active_opacity = 0.9 + inactive_opacity = 0.5 + drop_shadow = yes + shadow_range = 4 + shadow_render_power = 3 + } + + animations { + enabled = yes + + # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default + } + + dwindle { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = yes # you probably want this + } + + master { + # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more + new_is_master = true + } + + gestures { + # See https://wiki.hyprland.org/Configuring/Variables/ for more + workspace_swipe = off + } + + # Example per-device config + # See https://wiki.hyprland.org/Configuring/Keywords/#executing for more + device:epic-mouse-v1 { + sensitivity = -0.5 + } + + # Example windowrule v1 + # windowrule = float, ^(kitty)$ + # Example windowrule v2 + # windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + windowrule = float, file_progress + windowrule = float, confirm + windowrule = float, dialog + windowrule = float, download + windowrule = float, notification + windowrule = float, error + windowrule = float, splash + windowrule = float, confirmreset + windowrule = float, title:Open File + windowrule = float, title:branchdialog + windowrule = float, Lxappearance + windowrule = float, Wofi + windowrule = animation none,Wofi + windowrule = float,viewnior + windowrule = float,feh + windowrule = float, pavucontrol-qt + windowrule = float, pavucontrol + windowrule = float, file-roller + windowrule = fullscreen, wlogout + windowrule = float, title:wlogout + windowrule = fullscreen, title:wlogout + windowrule = idleinhibit focus, mpv + windowrule = idleinhibit fullscreen, firefox + windowrule = float, title:^(Media viewer)$ + windowrule = float, title:^(Volume Control)$ + windowrule = float, title:^(Picture-in-Picture)$ + windowrule = size 800 600, title:^(Volume Control)$ + windowrule = move 75 44%, title:^(Volume Control)$ + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + $mainMod = SUPER + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + bind = $mainMod, return, exec, alacritty -e tmux + bind = $mainMod control, t, exec, alacritty -e tmux attach + bind = $mainMod SHIFT, e, exec, emacsclient -n -c -e '(package-initialize)' + bind = $mainMod, o, exec, emacsclient -n -c -e '(dired "~")' + bind = $mainMod, Escape, exec, wlogout -p layer-shell + bind = $mainMod, Space, togglefloating + bind = $mainMod, q, killactive, + bind = $mainMod, M, exit, + bind= $mainMod, F, fullscreen + bind = $mainMod, E, exec, thunar + bind = $mainMod, V, togglefloating, + bind = $mainMod, D, exec, rofi -modi drun emoji calc ssh -show drun -font 'Fira Code 13' -show-icons + bind = $mainMod, D, exec, rofi -modi drun emoji calc ssh -show drun -font 'Fira Code 13' -show-icons + bind = $mainMod SHIFT, P, pseudo, # dwindle + bind = $mainMod, J, togglesplit, # dwindle + + # Move focus with mainMod + arrow keys + bind = $mainMod, left, movefocus, l + bind = $mainMod, right, movefocus, r + bind = $mainMod, up, movefocus, u + bind = $mainMod, down, movefocus, d + + # Switch workspaces with mainMod + [0-9] + bind = $mainMod, 1, workspace, 1 + bind = $mainMod, 2, workspace, 2 + bind = $mainMod, 3, workspace, 3 + bind = $mainMod, 4, workspace, 4 + bind = $mainMod, 5, workspace, 5 + bind = $mainMod, 6, workspace, 6 + bind = $mainMod, 7, workspace, 7 + bind = $mainMod, 8, workspace, 8 + bind = $mainMod, 9, workspace, 9 + bind = $mainMod, 0, workspace, 10 + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + bind = $mainMod SHIFT, 1, movetoworkspace, 1 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 + + # Scroll through existing workspaces with mainMod + scroll + bind = $mainMod, mouse_down, workspace, e+1 + bind = $mainMod, mouse_up, workspace, e-1 + + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = $mainMod, mouse:272, movewindow + bindm = $mainMod, mouse:273, resizewindow + ''; +} diff --git a/home/users/m3tam3re/m3-nix.nix b/home/users/m3tam3re/m3-nix.nix index 009afd5..f0b0352 100644 --- a/home/users/m3tam3re/m3-nix.nix +++ b/home/users/m3tam3re/m3-nix.nix @@ -8,7 +8,7 @@ ../../features/virtualization ../../features/services ]; -nixpkgs.config.allowUnfree = true; + features = { cli = { fish.enable = true; @@ -23,17 +23,13 @@ nixpkgs.config.allowUnfree = true; design.enable = true; extrafonts.enable = true; media.enable = true; + office.enable = true; }; virtualization = { podman.enable = true; qemu.enable = true; }; - services = { - netbird.enable = true; - }; - + services = { netbird.enable = true; }; }; - home.stateVersion = "22.11"; - } diff --git a/hosts/common/base/default.nix b/hosts/common/base/default.nix index a7a9d4e..0c5cbaa 100644 --- a/hosts/common/base/default.nix +++ b/hosts/common/base/default.nix @@ -1,14 +1,14 @@ -{ config, lib, inputs, pkgs, system, ... }: +{ lib, pkgs, inputs, outputs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager ]; - + home-manager = { + useUserPackages = true; + extraSpecialArgs = { inherit inputs outputs; }; + }; users.defaultUserShell = pkgs.fish; - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - environment.systemPackages = [ inputs.agenix.packages.x86_64-linux.default pkgs.busybox diff --git a/hosts/common/users/m3tam3re/default.nix b/hosts/common/users/m3tam3re/default.nix index c498067..afb5c49 100644 --- a/hosts/common/users/m3tam3re/default.nix +++ b/hosts/common/users/m3tam3re/default.nix @@ -4,7 +4,7 @@ "$y$j9T$wOKc3kLsQVtmmyLIN7ljV.$NvdWzwn6p8JNByHoXQqf6/GF3C0JOPHW/D0HgFLQXy4"; isNormalUser = true; description = "m3tam3re"; - extraGroups = [ "wheel" "networkmanager" "libvirtd" "flatpak" ]; + extraGroups = [ "wheel" "networkmanager" "libvirtd" "flatpak" "audio" "video" ]; openssh.authorizedKeys.keys = [ "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC3YEmpYbM+cpmyD10tzNRHEn526Z3LJOzYpWEKdJg8DaYyPbDn9iyVX30Nja2SrW4Wadws0Y8DW+Urs25/wVB6mKl7jgPJVkMi5hfobu3XAz8gwSdjDzRSWJrhjynuaXiTtRYED2INbvjLuxx3X8coNwMw58OuUuw5kNJp5aS2qFmHEYQErQsGT4MNqESe3jvTP27Z5pSneBj45LmGK+RcaSnJe7hG+KRtjuhjI7RdzMeDCX73SfUsal+rHeuEw/mmjYmiIItXhFTDn8ZvVwpBKv7xsJG90DkaX2vaTk0wgJdMnpVIuIRBa4EkmMWOQ3bMLGkLQeK/4FUkNcvQ/4+zcZsg4cY9Q7Fj55DD41hAUdF6SYODtn5qMPsTCnJz44glHt/oseKXMSd556NIw2HOvihbJW7Rwl4OEjGaO/dF4nUw4c9tHWmMn9dLslAVpUuZOb7ykgP0jk79ldT3Dv+2Hj0CdAWT2cJAdFX58KQ9jUPT3tBnObSF1lGMI7t77VU= m3tam3re@m3-nix" ]; diff --git a/hosts/m3-nix/default.nix b/hosts/m3-nix/default.nix index 0155183..ef7ab7d 100644 --- a/hosts/m3-nix/default.nix +++ b/hosts/m3-nix/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, inputs, pkgs, lib, ... }: with pkgs; @@ -19,6 +19,7 @@ in { ../common/users/m3tam3re ../common/base ./services + inputs.hyprland.nixosModules.default ]; specialisation = { @@ -50,7 +51,7 @@ in { hardware.tuxedo-keyboard.enable = true; boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; boot.kernelModules = [ "v4l2loopback" ]; - + boot.kernelParams = [ "tuxedo_keyboard.mode=0" # https://github.com/tuxedocomputers/tuxedo-keyboard#kernelparam "tuxedo_keyboard.brightness=255" @@ -103,12 +104,21 @@ in { }; }; + # xdg.portal = { + # enable = true; + # wlr.enable = true; + # extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ]; + # }; + programs.hyprland = { + enable = true; + nvidiaPatches = true; + }; programs.steam = { enable = true; remotePlay.openFirewall = true; dedicatedServer.openFirewall = true; }; - + time.timeZone = "Europe/Berlin"; i18n.defaultLocale = "de_DE.utf8"; console.keyMap = "de"; diff --git a/hosts/m3-nix/services/xserver.nix b/hosts/m3-nix/services/xserver.nix index ce0b2b0..27352fd 100644 --- a/hosts/m3-nix/services/xserver.nix +++ b/hosts/m3-nix/services/xserver.nix @@ -1,18 +1,19 @@ { pkgs, ... }: { - services.xserver = { - enable = true; - videoDrivers = [ "nvidia" ]; - displayManager = { - defaultSession = "hyprland"; - sddm = { enable = true; }; - }; - libinput.enable = true; # touchpad support - layout = "de"; - xkbOptions = "ctrl:nocaps"; - }; - services.xserver.screenSection = '' - Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" - Option "AllowIndirectGLXProtocol" "off" - Option "TripleBuffer" "on" - ''; + services.xserver.videoDrivers = [ "nvidia" ]; + # services.xserver = { + # enable = true; + # videoDrivers = [ "nvidia" ]; + # displayManager = { + # defaultSession = "hyprland"; + # sddm = { enable = true; }; + # }; + # libinput.enable = true; # touchpad support + # layout = "de"; + # xkbOptions = "ctrl:nocaps"; + # }; + # services.xserver.screenSection = '' + # Option "metamodes" "nvidia-auto-select +0+0 {ForceFullCompositionPipeline=On}" + # Option "AllowIndirectGLXProtocol" "off" + # Option "TripleBuffer" "on" + # ''; }