1

Enable Hyprland in addition to Plasma (for now)

This commit is contained in:
2023-04-02 20:38:40 +02:00
parent 3194428a5f
commit 00311cdf1a
5 changed files with 177 additions and 12 deletions

112
flake.lock generated
View File

@ -136,9 +136,51 @@
"type": "github" "type": "github"
} }
}, },
"hyprland": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"nixpkgs": "nixpkgs_3",
"wlroots": "wlroots",
"xdph": "xdph"
},
"locked": {
"lastModified": 1680439377,
"narHash": "sha256-hF/cjhEWQR3g70RnI61GQ10Wrp8h6dDtWmkoI0LZ4PE=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "b1426cad28f250a2269012da904901e0edcef114",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1671839510,
"narHash": "sha256-+PY1qqJfmZzzROgcIY4I7AkCwpnC+qBIYk2eFoA9RWc=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "b8f55e02a328c47ed373133c52483bbfa20a1b75",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"musnix": { "musnix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1679269409, "lastModified": 1679269409,
@ -156,7 +198,7 @@
}, },
"nixos-conf-editor": { "nixos-conf-editor": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"utils": "utils_2" "utils": "utils_2"
}, },
"locked": { "locked": {
@ -206,6 +248,22 @@
} }
}, },
"nixpkgs_3": { "nixpkgs_3": {
"locked": {
"lastModified": 1679172431,
"narHash": "sha256-XEh5gIt5otaUbEAPUY5DILUTyWe1goAyeqQtmwaFPyI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "1603d11595a232205f03d46e635d919d1e1ec5b9",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1677407201, "lastModified": 1677407201,
"narHash": "sha256-3blwdI9o1BAprkvlByHvtEm5HAIRn/XPjtcfiunpY7s=", "narHash": "sha256-3blwdI9o1BAprkvlByHvtEm5HAIRn/XPjtcfiunpY7s=",
@ -221,7 +279,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1673796341, "lastModified": 1673796341,
"narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=", "narHash": "sha256-1kZi9OkukpNmOaPY7S5/+SlCDOuYnP3HkXHvNDyLQcc=",
@ -237,7 +295,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1679797994, "lastModified": 1679797994,
"narHash": "sha256-Kr/O/UlfqAtoFmkZeAaphsxogeaN8a/IugBApFzPfpk=", "narHash": "sha256-Kr/O/UlfqAtoFmkZeAaphsxogeaN8a/IugBApFzPfpk=",
@ -276,9 +334,10 @@
"firefox-gnome-theme": "firefox-gnome-theme", "firefox-gnome-theme": "firefox-gnome-theme",
"hardware": "hardware", "hardware": "hardware",
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland",
"musnix": "musnix", "musnix": "musnix",
"nixos-conf-editor": "nixos-conf-editor", "nixos-conf-editor": "nixos-conf-editor",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_6",
"nur": "nur" "nur": "nur"
} }
}, },
@ -311,6 +370,49 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1679340088,
"narHash": "sha256-/1KiYoBivDj8HC/eVK2Tr2WYkVdKJxq2Lb0tQs0qqJo=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "1d64e12391a638201c679e71d4e22bb45e5faa8e",
"type": "gitlab"
},
"original": {
"host": "gitlab.freedesktop.org",
"owner": "wlroots",
"repo": "wlroots",
"type": "gitlab"
}
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1673116118,
"narHash": "sha256-eR0yDSkR2XYMesfdRWJs25kAdXET2mbNNHu5t+KUcKA=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "d479c846531fd0e1d2357c9588b8310a2b859ef2",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -20,6 +20,7 @@
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
musnix.url = "github:musnix/musnix"; musnix.url = "github:musnix/musnix";
devshell.url = "github:numtide/devshell"; devshell.url = "github:numtide/devshell";
hyprland.url = "github:hyprwm/Hyprland";
# nixvim.url = "github:pta2002/nixvim"; # nixvim.url = "github:pta2002/nixvim";
# plasma-manager.url = "github:pjones/plasma-manager"; # plasma-manager.url = "github:pjones/plasma-manager";
@ -40,7 +41,8 @@
# It gives a name to the ... ellipses. # It gives a name to the ... ellipses.
outputs = inputs @ { outputs = inputs @ {
nixpkgs, nixpkgs,
home-manager, # home-manager,
hyprland,
... ...
}: }:
# With let you can define local variables # With let you can define local variables
@ -85,7 +87,9 @@
hostname = "nixinator"; hostname = "nixinator";
username = "christoph"; username = "christoph";
extraModules = []; extraModules = [
hyprland.nixosModules.default # Use system module for SDDM config
];
}; };
# Usage: sudo nixos-rebuild switch --flake .#nixtop # Usage: sudo nixos-rebuild switch --flake .#nixtop
@ -95,7 +99,9 @@
hostname = "nixtop"; hostname = "nixtop";
username = "christoph"; username = "christoph";
extraModules = []; extraModules = [
hyprland.nixosModules.default # Use system module for SDDM config
];
}; };
}; };
}; };

View File

@ -28,6 +28,7 @@ rec {
../modules ../modules
# inputs.nixvim.homeManagerModules.nixvim # inputs.nixvim.homeManagerModules.nixvim
# inputs.hyprland.homeManagerModules.default # NOTE: Use System module, this one doesn't (can't) add the SDDM entry
]; ];
modules = { modules = {
@ -122,8 +123,6 @@ rec {
}; };
}; };
# Temporary hack: https://github.com/nix-community/home-manager/issues/3342
# TODO: Remove when possible
manual.manpages.enable = true; manual.manpages.enable = true;
manual.html.enable = true; manual.html.enable = true;
@ -132,6 +131,9 @@ rec {
# TODO: Derivations for bottles like UPlay, NeuralDSP, LoL (don't know what is possible with bottles-cli though) # TODO: Derivations for bottles like UPlay, NeuralDSP, LoL (don't know what is possible with bottles-cli though)
# TODO: When bottles derivations are there remove the bottles option from audio/gaming module and assert that bottles is enabled in flatpak module # TODO: When bottles derivations are there remove the bottles option from audio/gaming module and assert that bottles is enabled in flatpak module
# TODO: Remove Plasma, only use Hyprland
# TODO: I need to pack all Plasma/Hyprland/Gnome related stuff into their respective modules
# TODO: Then it should only be possible to activate one Desktop at a time
# Make fonts installed through user packages available to applications # Make fonts installed through user packages available to applications
# NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case # NOTE: I don't think I need this anymore as all fonts are installed through the system config but let's keep this just in case
@ -150,6 +152,9 @@ rec {
source = ../../config/mpv; source = ../../config/mpv;
}; };
# TODO: Hyprland Module
# TODO: Move Hyprland config to NixFlake/config/hyprland and link from here
# TODO: Latex module # TODO: Latex module
home.file."texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty; home.file."texmf/tex/latex/custom/christex.sty".source = ../../config/latex/christex.sty;
home.file."Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes home.file."Notes/Obsidian/Chriphost/christex.sty".source = ../../config/latex/christex.sty; # For obsidian notes
@ -360,7 +365,14 @@ rec {
# Use NixCommunity binary cache # Use NixCommunity binary cache
cachix cachix
# tor-browser-bundle-bin # TODO: Module
# Hyprland stuff
# dunst # NOTE: Use HM service
libsForQt5.polkit-kde-agent # No idea if that comes with KDE
slurp # Region selector for screensharing
# rofi-wayland # App launcher # NOTE: Use HM Program
webcord # Unshitted discord? Well, except Krisp of course
ncspot # Spotify in cool (but slow)?
]; ];
# Packages with extra options managed by HomeManager natively # Packages with extra options managed by HomeManager natively
@ -484,6 +496,20 @@ rec {
enable = true; enable = true;
}; };
# NOTE: For Hyprland -> Enable from hyprland module
rofi = {
enable = true;
package = pkgs.rofi-wayland;
plugins = [
pkgs.keepmenu # Rofi KeepassXC frontend
];
terminal = "${pkgs.kitty}/bin/kitty";
font = "JetBrains Mono 14";
# theme =
# extraConfig = '''';
};
# Git status replacement with file selection by number # Git status replacement with file selection by number
scmpuff = { scmpuff = {
enable = true; enable = true;
@ -504,6 +530,7 @@ rec {
enableFishIntegration = config.modules.fish.enable; enableFishIntegration = config.modules.fish.enable;
}; };
# TODO: Module
vscode = { vscode = {
enable = true; enable = true;
enableExtensionUpdateCheck = false; enableExtensionUpdateCheck = false;
@ -628,6 +655,17 @@ rec {
# TODO: Snippets # TODO: Snippets
}; };
# TODO: Belongs to hyprland module
waybar = {
enable = true;
systemd = {
enable = false;
};
# settings = {};
# style = '''';
};
# TODO: Check HM module options # TODO: Check HM module options
yt-dlp.enable = true; yt-dlp.enable = true;
@ -639,6 +677,11 @@ rec {
services = { services = {
# kdeconnect.enable = true; # Note: This does not setup the firewall at all # kdeconnect.enable = true; # Note: This does not setup the firewall at all
# TODO: To hyprland module
dunst = {
enable = true;
};
}; };
# Nicely reload system units when changing configs # Nicely reload system units when changing configs

View File

@ -31,7 +31,7 @@ in {
extraModules extraModules
# I included the home config statically like this as I am the only user # I included the home config statically like this as I am the only user.
# I would have liked to make it more flexible (for multiple users on the same host) # I would have liked to make it more flexible (for multiple users on the same host)
# but I failed because nix stopped autoinjecting the required arguments and I didn't # but I failed because nix stopped autoinjecting the required arguments and I didn't
# know how to handle that... # know how to handle that...

View File

@ -27,4 +27,18 @@
# videoDrivers = [ "nvidia" ]; # NVIDIA # videoDrivers = [ "nvidia" ]; # NVIDIA
videoDrivers = ["amdgpu"]; videoDrivers = ["amdgpu"];
}; };
programs.hyprland = {
enable = true;
nvidiaPatches = false;
recommendedEnvironment = true;
# NOTE: System module hyprland is configured in ~/.config/hypr/
# extraConfig = ''
# bind = SUPER,a,exec,rofi -show drun
# exec-once = dunst & # Notification daemon
# exec-once = ${pkgs.libsForQt5.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1
# '';
};
} }