Refactored home-manager to system and added hyprland

Added hyprland

Added some wayland configs
This commit is contained in:
fwastring 2025-09-06 09:58:46 +02:00
parent b211d24b69
commit 72dafab57f
10 changed files with 747 additions and 335 deletions

View file

@ -131,6 +131,7 @@
};
console.keyMap = "sv-latin1";
environment.systemPackages = with pkgs; [
waypipe
(st.overrideAttrs (oldAttrs: rec {

View file

@ -1,5 +1,3 @@
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
inputs,
lib,
@ -9,45 +7,34 @@
...
}:
{
imports = [
../shared/dwm.nix
../shared/tmux.nix
../shared/fish.nix
../shared/git.nix
../shared/kitty.nix
../shared/dunst.nix
../shared/nixpkgs.nix
../shared/firefox.nix
../shared/zathura.nix
../shared/lazygit.nix
../shared/ssh.nix
../shared/aerc.nix
../shared/oh-my-posh.nix
../shared/gtk.nix
../shared/neovim.nix
../shared/k9s.nix
# ../shared/hyprland.nix
];
imports = [
../shared/dwm.nix
../shared/tmux.nix
../shared/fish.nix
../shared/git.nix
../shared/kitty.nix
../shared/dunst.nix
../shared/nixpkgs.nix
../shared/firefox.nix
../shared/zathura.nix
../shared/lazygit.nix
../shared/ssh.nix
../shared/aerc.nix
../shared/oh-my-posh.nix
../shared/gtk.nix
../shared/neovim.nix
../shared/k9s.nix
];
nixpkgs = {
overlays = [ ];
config = {
allowUnfree = true;
allowUnfreePredicate = _: true;
};
};
programs.home-manager.enable = true;
programs.fish.enable = true;
programs.man.generateCaches = false;
programs.home-manager.enable = true;
programs.fish.enable = true;
programs.man.generateCaches = false;
# xsession.enable = true;
# xsession.windowManager.command = "xrandr --output eDP-1 --mode 1920x1080 --pos 0x1080 --rotate normal --output DP-1 --off --output HDMI-1 --primary --mode 3840x2160 --pos 1920x0 --rotate normal --output DP-2 --off --output HDMI-2 --off";
home.username = "fw";
home.homeDirectory = "/home/fw";
home.username = "fw";
home.homeDirectory = "/home/fw";
home.stateVersion = "25.05"; # Did you read the comment?
home.stateVersion = "23.11"; # Did you read the comment?
systemd.user.startServices = "sd-switch";
systemd.user.startServices = "sd-switch";
}

234
config/hyprland.nix Normal file
View file

@ -0,0 +1,234 @@
{ host
, config
, pkgs
, inputs
, ...
}:
let
in
{
environment.systemPackages = with pkgs; [
swww
grim
slurp
wl-clipboard
swappy
ydotool
hyprpolkitagent
hyprland-qtutils # needed for banners and ANR messages
];
nix.settings = {
substituters = ["https://hyprland.cachix.org"];
trusted-substituters = ["https://hyprland.cachix.org"];
trusted-public-keys = ["hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="];
};
programs.hyprland = {
enable = true;
# set the flake package
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
# make sure to also set the portal package, so that they are in sync
portalPackage = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
home-manager.users.fw =
{ pkgs, ... }:
{
services = {
cliphist = {
enable = true;
};
};
wayland.windowManager.hyprland = {
enable = true;
xwayland = {
enable = true;
};
settings = {
"$terminal" = "kitty";
"$mod" = "ALT";
monitor = [
"DP-1, 1920x1080@144, 0x0, 1"
",prefered,auto,1"
];
xwayland = {
force_zero_scaling = true;
};
general = {
gaps_in = 6;
gaps_out = 6;
border_size = 2;
layout = "dwindle";
allow_tearing = true;
};
input = {
kb_layout = "se";
kb_options = [
"caps:escape"
];
follow_mouse = true;
touchpad = {
natural_scroll = true;
};
accel_profile = "flat";
sensitivity = 0;
};
decoration = {
rounding = 15;
active_opacity = 0.9;
inactive_opacity = 0.8;
fullscreen_opacity = 0.9;
blur = {
enabled = true;
xray = true;
special = false;
new_optimizations = true;
size = 14;
passes = 4;
brightness = 1;
noise = 0.01;
contrast = 1;
popups = true;
popups_ignorealpha = 0.6;
ignore_opacity = false;
};
};
animations = {
enabled = true;
bezier = [
"linear, 0, 0, 1, 1"
"md3_standard, 0.2, 0, 0, 1"
"md3_decel, 0.05, 0.7, 0.1, 1"
"md3_accel, 0.3, 0, 0.8, 0.15"
"overshot, 0.05, 0.9, 0.1, 1.1"
"crazyshot, 0.1, 1.5, 0.76, 0.92"
"hyprnostretch, 0.05, 0.9, 0.1, 1.0"
"menu_decel, 0.1, 1, 0, 1"
"menu_accel, 0.38, 0.04, 1, 0.07"
"easeInOutCirc, 0.85, 0, 0.15, 1"
"easeOutCirc, 0, 0.55, 0.45, 1"
"easeOutExpo, 0.16, 1, 0.3, 1"
"softAcDecel, 0.26, 0.26, 0.15, 1"
"md2, 0.4, 0, 0.2, 1"
];
animation = [
"windows, 1, 3, md3_decel, popin 60%"
"windowsIn, 1, 3, md3_decel, popin 60%"
"windowsOut, 1, 3, md3_accel, popin 60%"
"border, 1, 10, default"
"fade, 1, 3, md3_decel"
"layersIn, 1, 3, menu_decel, slide"
"layersOut, 1, 1.6, menu_accel"
"fadeLayersIn, 1, 2, menu_decel"
"fadeLayersOut, 1, 4.5, menu_accel"
"workspaces, 1, 7, menu_decel, slide"
"specialWorkspace, 1, 3, md3_decel, slidevert"
];
};
cursor = {
enable_hyprcursor = true;
};
dwindle = {
pseudotile = true;
preserve_split = true;
smart_split = false;
smart_resizing = false;
};
misc = {
disable_hyprland_logo = true;
disable_splash_rendering = true;
};
bind = [
# General
"$mod, return, exec, $terminal"
"$mod SHIFT, q, killactive"
"$mod SHIFT, e, exit"
"$mod SHIFT, x, exec, ${pkgs.hyprlock}/bin/hyprlock"
# Screen focus
"$mod, v, togglefloating"
"$mod, u, focusurgentorlast"
"$mod, tab, focuscurrentorlast"
"$mod, f, fullscreen"
# Screen resize
"$mod CTRL, h, resizeactive, -20 0"
"$mod CTRL, l, resizeactive, 20 0"
"$mod CTRL, k, resizeactive, 0 -20"
"$mod CTRL, j, resizeactive, 0 20"
# Workspaces
"$mod, 1, workspace, 1"
"$mod, 2, workspace, 2"
"$mod, 3, workspace, 3"
"$mod, 4, workspace, 4"
"$mod, 5, workspace, 5"
"$mod, 6, workspace, 6"
"$mod, 7, workspace, 7"
"$mod, 8, workspace, 8"
"$mod, 9, workspace, 9"
"$mod, 0, workspace, 10"
# Move to workspaces
"$mod SHIFT, 1, movetoworkspace,1"
"$mod SHIFT, 2, movetoworkspace,2"
"$mod SHIFT, 3, movetoworkspace,3"
"$mod SHIFT, 4, movetoworkspace,4"
"$mod SHIFT, 5, movetoworkspace,5"
"$mod SHIFT, 6, movetoworkspace,6"
"$mod SHIFT, 7, movetoworkspace,7"
"$mod SHIFT, 8, movetoworkspace,8"
"$mod SHIFT, 9, movetoworkspace,9"
"$mod SHIFT, 0, movetoworkspace,10"
# Navigation
"$mod, h, movefocus, l"
"$mod, l, movefocus, r"
"$mod, k, movefocus, u"
"$mod, j, movefocus, d"
# Applications
"$mod, q, exec, ${pkgs.firefox}/bin/firefox"
"$mod, d, exec, ${pkgs.wmenu}/bin/wmenu-run"
# Screencapture
"$mod, S, exec, ${pkgs.grim}/bin/grim | wl-copy"
"$mod SHIFT+ALT, S, exec, ${pkgs.grim}/bin/grim -g \"$(slurp)\" - | ${pkgs.swappy}/bin/swappy -f -"
];
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
env = [
"NIXOS_OZONE_WL,1"
"_JAVA_AWT_WM_NONREPARENTING,1"
"QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
"QT_QPA_PLATFORM,wayland"
"SDL_VIDEODRIVER,wayland"
"GDK_BACKEND,wayland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
"XDG_CURRENT_DESKTOP,Hyprland"
];
};
systemd = {
enable = true;
};
};
};
}

View file

@ -15,6 +15,13 @@
enableSSHSupport = true;
};
programs.nh = {
enable = true;
clean.enable = true;
clean.extraArgs = "--keep-since 4d --keep 3";
flake = "/home/fw/nix";
};
environment.systemPackages = with pkgs; [
# System

View file

@ -4,7 +4,6 @@
...
}:
{
# TODO: Configure your system-wide user settings (groups, etc), add more users as needed.
users = {
defaultUserShell = pkgs.bash;
users = {