From 6fad257d5bf05e0e60b618872722b064897cff8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Sun, 30 Apr 2023 18:35:46 +0200 Subject: [PATCH 1/7] fix(hyprland): make services more reliable --- modules/programs/hyprland/default.nix | 61 ++++++++++++++++----------- 1 file changed, 36 insertions(+), 25 deletions(-) diff --git a/modules/programs/hyprland/default.nix b/modules/programs/hyprland/default.nix index 5496b13..0be3db8 100644 --- a/modules/programs/hyprland/default.nix +++ b/modules/programs/hyprland/default.nix @@ -44,6 +44,7 @@ in wayland.windowManager.hyprland = { enable = true; package = hyprland; + recommendedEnvironment = true; extraConfig = import ./config.nix args; }; }; @@ -59,7 +60,7 @@ in # start using systemd service systemd = { enable = true; - target = "hyprland-session.target"; + target = "graphical-session.target"; }; settings = { @@ -87,11 +88,11 @@ in events = [ { event = "before-sleep"; - command = "${pkgs.swaylock-effects}/bin/swaylock -fF"; + command = "${pkgs.swaylock}/bin/swaylock -fF"; } { event = "lock"; - command = "${pkgs.swaylock-effects}/bin/swaylock -fF"; + command = "${pkgs.swaylock}/bin/swaylock -fF"; } ]; timeouts = [ @@ -105,10 +106,8 @@ in command = "${pkgs.systemd}/bin/loginctl lock-session"; } ]; + systemdTarget = "hyprland-session.target"; }; - - # start swayidle as part of hyprland, not sway - systemd.user.services.swayidle.Install.WantedBy = lib.mkForce [ "hyprland-session.target" ]; }; # adds pam module for swaylock @@ -116,27 +115,28 @@ in # start hyprpaper daemon using systemd unit (to set wallpaper) - systemd.user.services.hyprpaper = { - enable = true; - path = [ pkgs.hyprpaper ]; - wantedBy = [ "hyprland-session.target" ]; - after = [ "hyprland-session.target" ]; - script = "hyprpaper"; - }; - - # set hyprpaper conf (for setting initial background) - home-manager.users.moritz.xdg.configFile."hypr/hyprpaper.conf" = { - text = - let - setWallpaper = wallpaper: '' + systemd.user.services.hyprpaper = + let + wallpaper = "/home/moritz/.config/wallpapers/a_short_walk.png"; + config = pkgs.writeTextFile { + name = "hyprpaper.conf"; + text = '' preload = ${wallpaper} wallpaper = ,${wallpaper} ''; - in - setWallpaper "/home/moritz/.config/wallpapers/a_short_walk.png"; - onChange = "${pkgs.systemd}/bin/systemctl restart --user hyprpaper.service"; - }; - + }; + in + { + enable = true; + partOf = [ "graphical-session.target" ]; + wantedBy = [ "graphical-session.target" ]; + after = [ "graphical-session.target" ]; + serviceConfig = { + ExecStart = "${pkgs.hyprpaper}/bin/hyprpaper -c ${config}"; + RestartSec = "1s"; + Restart = "on-failure"; + }; + }; # only consider graphical-session.target started when hyprland-sesstion.target is reached systemd.user.targets.hyprland-session = { @@ -144,6 +144,17 @@ in before = [ "graphical-session.target" ]; }; + systemd.user.services.xdg-desktop-portal-hyprland = { + after = [ "hyprland-session.target" ]; + wantedBy = [ "hyprland-session.target" ]; + }; + + home-manager.users.moritz.systemd.user.services.nextcloud-client = { + Service = { + RestartSec = "1s"; + Restart = "on-failure"; + }; + }; # add user packages for wayland and hyprland in particular users.users.moritz.packages = with pkgs; [ @@ -206,7 +217,7 @@ in # dekstop portal (for screensharing) xdg.portal = { enable = true; - wlr.enable = true; + wlr.enable = mkForce false; extraPortals = [ pkgs.xdg-desktop-portal-hyprland ]; }; }; From f58c8dc6f8ea7ae5bc97f4778f857d9b6bdab576 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 1 May 2023 14:11:51 +0200 Subject: [PATCH 2/7] feat(services): add synology drive module --- modules/profiles/personal.nix | 11 +++++----- modules/programs/bspwm/default.nix | 2 -- modules/programs/hyprland/config.nix | 1 - modules/programs/sway.nix | 1 - modules/services/default.nix | 3 ++- modules/services/synology-drive.nix | 32 ++++++++++++++++++++++++++++ 6 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 modules/services/synology-drive.nix diff --git a/modules/profiles/personal.nix b/modules/profiles/personal.nix index e7d9e6e..2b227c3 100644 --- a/modules/profiles/personal.nix +++ b/modules/profiles/personal.nix @@ -1,9 +1,12 @@ -{ lib, pkgs, ... }: +{ lib, ... }: with lib; { my = { - services.openconnect.enable = true; + services = { + openconnect.enable = true; + synology-drive.enable = true; + }; programs = { ssh.includeSecrets = mkDefault [ ../../secrets/ssh-home.age ]; git.signing = mkDefault true; @@ -57,8 +60,4 @@ with lib; }; }; }; - - environment.systemPackages = with pkgs; [ - synology-drive-client - ]; } diff --git a/modules/programs/bspwm/default.nix b/modules/programs/bspwm/default.nix index ba50a96..81e1a60 100644 --- a/modules/programs/bspwm/default.nix +++ b/modules/programs/bspwm/default.nix @@ -46,7 +46,6 @@ in }; startupPrograms = [ "randomWallpaper" - "${pkgs.synology-drive-client}/bin/synology-drive" ]; extraConfig = builtins.readFile ./bspwmrc; }; @@ -89,7 +88,6 @@ in feh pamixer playerctl - synology-drive-client ]; }; } diff --git a/modules/programs/hyprland/config.nix b/modules/programs/hyprland/config.nix index 71d512a..bbc63ef 100644 --- a/modules/programs/hyprland/config.nix +++ b/modules/programs/hyprland/config.nix @@ -224,6 +224,5 @@ in bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:273, resizewindow - exec-once=synology-drive exec-once=randomWallpaper '' diff --git a/modules/programs/sway.nix b/modules/programs/sway.nix index f7ae605..162a1b9 100644 --- a/modules/programs/sway.nix +++ b/modules/programs/sway.nix @@ -71,7 +71,6 @@ in command = "systemctl --user restart waybar"; always = true; } - { command = "synology-drive"; } { command = "randomWallpaper"; } ]; }; diff --git a/modules/services/default.nix b/modules/services/default.nix index ac126e9..9cadf62 100644 --- a/modules/services/default.nix +++ b/modules/services/default.nix @@ -1,12 +1,13 @@ { imports = [ ./dunst.nix + ./gammastep.nix ./kdeconnect.nix ./mullvad.nix ./openconnect.nix ./picom.nix ./printing.nix - ./gammastep.nix + ./synology-drive.nix ./wireguard.nix ]; } diff --git a/modules/services/synology-drive.nix b/modules/services/synology-drive.nix new file mode 100644 index 0000000..f67b115 --- /dev/null +++ b/modules/services/synology-drive.nix @@ -0,0 +1,32 @@ +{ lib, config, pkgs, ... }: + +with lib; +let + cfg = config.my.services.synology-drive; +in +{ + options.my.services.synology-drive = { + enable = mkEnableOption "synology-drive"; + package = mkOption { + type = types.package; + default = pkgs.synology-drive-client; + description = "The package to use for synology-drive"; + }; + }; + + config = mkIf cfg.enable { + systemd.user.services.synology-drive = { + after = [ "graphical-session.target" ]; + partOf = [ "graphical-session.target" ]; + wantedBy = [ "graphical-session.target" ]; + serviceConfig = { + ExitType = "cgroup"; + Restart = "on-failure"; + RestartSec = "1s"; + ExecStartPre = "${pkgs.coreutils}/bin/rm -rf %h/.SynologyDrive/SynologyDrive.app %h/.SynologyDrive/cloud-connect.pid"; + ExecStart = "${cfg.package}/bin/synology-drive"; + }; + }; + environment.systemPackages = [ cfg.package ]; + }; +} From cd70254085907639c4a11446f0ac06cec3e7db31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 1 May 2023 14:19:37 +0200 Subject: [PATCH 3/7] fix(synology-drive): start after network is online --- modules/services/synology-drive.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/services/synology-drive.nix b/modules/services/synology-drive.nix index f67b115..9ff8384 100644 --- a/modules/services/synology-drive.nix +++ b/modules/services/synology-drive.nix @@ -16,7 +16,7 @@ in config = mkIf cfg.enable { systemd.user.services.synology-drive = { - after = [ "graphical-session.target" ]; + after = [ "graphical-session.target" "network.target" ]; partOf = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ]; serviceConfig = { From ac3a0230eb5897603a0a3ff297f71e5d73912520 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 2 May 2023 09:04:57 +0200 Subject: [PATCH 4/7] fix(flake): overlay export --- flake.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/flake.nix b/flake.nix index 8275c77..edb3699 100644 --- a/flake.nix +++ b/flake.nix @@ -109,11 +109,12 @@ self.overlay ]; - # overlays = utils.lib.exportOverlays { - # inherit (self) pkgs inputs; - # }; - - overlays.default = self.overlay; + overlays = utils.lib.exportOverlays + { + inherit (self) pkgs inputs; + } // { + default = self.overlay; + }; /* ╔══════════════════════════════════════════════════════════╗ From fe02a191bda48f4662c72a32d0fb76846b3ca5ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 2 May 2023 09:05:54 +0200 Subject: [PATCH 5/7] feat(laptop): remove gaming module --- flake.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/flake.nix b/flake.nix index edb3699..19877ec 100644 --- a/flake.nix +++ b/flake.nix @@ -146,7 +146,6 @@ hosts.nixos-laptop.modules = [ ./hosts/nixos-laptop self.nixosModules.desktop - self.nixosModules.gaming self.nixosModules.personal ]; From 6b7926880714b1cdfec10c25ff4a83b54cd51060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 2 May 2023 09:06:23 +0200 Subject: [PATCH 6/7] fix(ripping): remove unrelated packages --- modules/profiles/ripping.nix | 22 ---------------------- 1 file changed, 22 deletions(-) diff --git a/modules/profiles/ripping.nix b/modules/profiles/ripping.nix index be56abe..61289f9 100644 --- a/modules/profiles/ripping.nix +++ b/modules/profiles/ripping.nix @@ -2,31 +2,9 @@ { environment.systemPackages = with pkgs; [ - # nix - nixpkgs-review - # ripping abcde handbrake picard - - # other - anki - calibre - jellyfin-media-player - keepassxc - stable.libreoffice # HACK to fix build error - pavucontrol - stable.signal-desktop - tlaplusToolbox - vlc - thunderbird - plantuml - - jetbrains.pycharm-professional - - synology-drive-client - - texlive.combined.scheme-full ]; } From b074079484927e1eef0d413bb9cff315e3583d46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Tue, 2 May 2023 09:06:54 +0200 Subject: [PATCH 7/7] fix(nvim): buffer keybinds --- modules/programs/nvim/keybinds.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/programs/nvim/keybinds.lua b/modules/programs/nvim/keybinds.lua index 0556448..17a4651 100644 --- a/modules/programs/nvim/keybinds.lua +++ b/modules/programs/nvim/keybinds.lua @@ -5,6 +5,14 @@ require("which-key").register({ b = { "Telescope buffers", "List buffers" }, d = { "bd", "Delete buffer" }, }, +}, { prefix = "" }) +require("which-key").register({ + ["["] = { + b = { "bprevious", "Previous buffer" }, + }, + ["]"] = { + b = { "bnext", "Next buffer" }, + }, }) -- window @@ -17,14 +25,6 @@ require("which-key").register({ d = { "c", "Delete window" }, }, }, { prefix = "" }) -require("which-key").register({ - ["["] = { - b = { "bprevious", "Previous buffer" }, - }, - ["]"] = { - b = { "bnext", "Next buffer" }, - }, -}) -- fast window move require("which-key").register({