Compare commits

..

9 Commits

12 changed files with 131 additions and 86 deletions

View File

@ -19,7 +19,7 @@
profiles = {
desktop.enable = true;
personal.enable = true;
# webis.enable = true;
webis.enable = true;
};
};

View File

@ -37,6 +37,7 @@
rootFsOptions = {
compression = "zstd";
"com.sun:auto-snapshot" = "false";
"acltype" = "posixacl"; # NOTE: needed for systemd https://github.com/NixOS/nixpkgs/issues/16954
};
mountpoint = null;

View File

@ -42,6 +42,7 @@
".local/share/zoxide"
".local/state/nvim"
".config/kdeconnect"
".cat_installer" # eduroam
".mozilla"
"Documents"
"Downloads"

View File

@ -100,10 +100,14 @@ in
enable = true;
startInBackground = true;
};
systemd.user.services.nextcloud-client.Service = {
RestartSec = "500ms";
Restart = "on-failure";
};
};
services = {
illum.enable = true;
resolved.enable = true;
gnome.gnome-keyring.enable = true;
pipewire = {
enable = true;
@ -111,5 +115,16 @@ in
pulse.enable = true;
};
};
# faster startup https://majiehong.com/post/2021-07-30_slow_nixos_startup/
networking = {
# no need to wait interfaces to have an IP to continue booting
dhcpcd.wait = "background";
# avoid checking if IP is already taken to boot a few seconds faster
dhcpcd.extraConfig = "noarp";
};
# disable network-online.target
systemd.services.NetworkManager-wait-online.enable = false;
};
}

View File

@ -155,6 +155,7 @@ in
bind = $mainMod , M , exec , hyprctl keyword general:layout master
bind = $mainMod , R , exec , rofi -show combi
bind = $mainMod , RETURN , exec , kitty
bind = $mainMod SHIFT , RETURN , exec , kitty -- tmux new -A -s home
# XF86 keys
binde = , XF86AudioLowerVolume , exec , pamixer -d 5

View File

@ -1,7 +1,6 @@
{ config
, lib
, pkgs
, inputs
, ...
} @ args:
@ -9,8 +8,7 @@ with lib;
let
cfg = config.my.programs.hyprland;
hyprland-nvidia = pkgs.hyprland.override { enableNvidiaPatches = true; };
hyprland = if cfg.nvidiaSupport then hyprland-nvidia else pkgs.hyprland;
hyprland = config.programs.hyprland.finalPackage;
in
{
options.my.programs.hyprland = {
@ -50,16 +48,33 @@ in
rofi.enable = true;
};
wallpapers.enable = true;
services.dunst.enable = true;
services.wallpaper.enable = true;
services = {
dunst.enable = true;
wallpaper = {
enable = true;
target = "hyprland-session.target";
};
spotify-player.target = "hyprland-session.target";
};
};
programs.hyprland = {
enable = true;
enableNvidiaPatches = cfg.nvidiaSupport;
};
home-manager.users.moritz = {
# enable home-manager module
wayland.windowManager.hyprland = {
enable = true;
package = hyprland;
enableNvidiaPatches = cfg.nvidiaSupport;
extraConfig = import ./_config.nix args;
systemd.extraCommands = [
"systemctl --user stop hyprland-session.target"
"sleep 1.5"
"systemctl --user start hyprland-session.target"
"systemctl --user start xdg-desktop-portal-hyprland.service"
];
};
# add waybar as a status bar
@ -69,7 +84,7 @@ in
# start using systemd service
systemd = {
enable = true;
target = "graphical-session.target";
target = "hyprland-session.target";
};
settings = {
@ -128,23 +143,13 @@ in
timeout = 30 * 60;
command = "${pkgs.systemd}/bin/systemctl suspend-and-hibernate";
};
systemdTarget = "graphical-session.target";
};
systemd.user.services.nextcloud-client.Service = {
RestartSec = "500ms";
Restart = "on-failure";
systemdTarget = "hyprland-session.target";
};
};
# adds pam module for swaylock
security.pam.services.swaylock = { };
systemd.user.services.xdg-desktop-portal-hyprland = {
after = [ "hyprland-session.target" ];
requiredBy = [ "xdg-desktop-portal.service" ];
};
# add user packages for wayland and hyprland in particular
users.users.moritz.packages = with pkgs; [
brightnessctl # control brightness
@ -177,7 +182,6 @@ in
__GL_VRR_ALLOWED = "0";
});
services = {
dbus.enable = true;
# use pipewire (needed for screensharing)
@ -196,18 +200,31 @@ in
user = "moritz";
};
defaultSession = "hyprland";
sessionPackages = [ hyprland ]; # can't set the defaultSession otherwise
};
};
};
security.rtkit.enable = true;
# desktop portal (for screensharing)
xdg.portal = {
enable = true;
wlr.enable = mkForce false;
extraPortals = [ pkgs.xdg-desktop-portal-hyprland ];
home-manager.users.moritz.systemd.user.services =
let
units = [ "waybar" ];
mkAfter = _: {
Unit = {
After = [ "hyprland-session.target" ];
Wants = [ "hyprland-session.target" ];
};
};
in
genAttrs units mkAfter;
systemd.user.services =
let
units = [ "pipewire" "xdg-desktop-portal" "xdg-desktop-portal-hyprland" "wireplumber" ];
mkAfter = _: {
after = [ "hyprland-session.target" ];
wants = [ "hyprland-session.target" ];
};
in
genAttrs units mkAfter;
};
}

View File

@ -36,6 +36,7 @@ in
fish
isort
jq
nil
nixd
nixpkgs-fmt
nodePackages.bash-language-server

View File

@ -134,11 +134,12 @@ end
local servers = {
"bashls",
"gopls",
"nil_ls",
"nixd",
"pylsp",
"ruff_lsp",
"typst_lsp",
"gopls",
}
for _, lsp in ipairs(servers) do
lspconfig_setup(lsp, {})

View File

@ -1,6 +1,6 @@
local telekasten = require("telekasten")
telekasten.setup({
home = vim.fn.expand("~/Nextcloud/Notes/zettelkasten"),
home = vim.fn.expand("~/Documents/Nextcloud/Notes/zettelkasten"),
auto_set_filetype = false,
image_subdir = "assets",
})

View File

@ -30,6 +30,10 @@ in
type = types.package;
default = pkgs.spotify-player;
};
target = mkOption {
type = types.str;
default = "graphical-session.target";
};
};
config = mkIf cfg.enable {
@ -44,9 +48,8 @@ in
}
];
systemd.user.services.spotify-player = {
after = [ "graphical-session.target" "network.target" ];
partOf = [ "graphical-session.target" ];
wantedBy = [ "graphical-session.target" ];
after = [ cfg.target "network.target" ];
wantedBy = [ cfg.target ];
serviceConfig = {
Type = "forking";
Restart = "always";

View File

@ -10,12 +10,17 @@ in
type = types.str;
default = "30m";
};
target = mkOption {
type = types.str;
default = "graphical-session.target";
};
};
config = mkIf cfg.enable {
systemd.user.services.wallpaper = {
script = "${getExe config.my.programs.wallpaper.package} -r -v";
wantedBy = [ "graphical-session.target" ];
wantedBy = [ cfg.target ];
after = [ cfg.target ];
serviceConfig = {
Restart = "always";
RuntimeMaxSec = cfg.frequency;

Binary file not shown.