From 3a5bd2861aeef15ea43a9ac43a2acd9e5c0bebba Mon Sep 17 00:00:00 2001 From: Thilo Hohlt <123883702+thiloho@users.noreply.github.com> Date: Wed, 5 Jul 2023 07:35:46 +0200 Subject: [PATCH] Update shared-desktop.nix --- nixos-configurations/shared-desktop.nix | 184 ++++++++++++++++++++++-- 1 file changed, 170 insertions(+), 14 deletions(-) diff --git a/nixos-configurations/shared-desktop.nix b/nixos-configurations/shared-desktop.nix index 5c9fa5e..2b434db 100644 --- a/nixos-configurations/shared-desktop.nix +++ b/nixos-configurations/shared-desktop.nix @@ -1,33 +1,162 @@ { pkgs, ... }: { - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - hardware.pulseaudio.enable = false; - services = { - xserver = { + pipewire = { enable = true; - displayManager.sddm.enable = true; - desktopManager.plasma5.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; }; }; + hardware.opengl.enable = true; + + # Make swaylock work + security.pam.services.swaylock = {}; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + xdg-desktop-portal-wlr + xdg-desktop-portal-gtk + ]; + }; + + fonts = { + enableDefaultFonts = true; + fonts = with pkgs; [ + noto-fonts-cjk-sans + nerdfonts + ]; + }; + + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + pinentryFlavor = "gtk2"; + }; + + # Home manager configuration home-manager.users.thiloho = { pkgs, lib, config, ... }: { + wayland.windowManager.sway = { + enable = true; + wrapperFeatures.gtk = true; + config = { + modifier = "Mod4"; + terminal = "alacritty"; + menu = '' + tofi-run --width "100%" --height "100%" --border-width 0 --outline-width 0 --padding-left "35%" --padding-top "35%" --result-spacing 25 --num-results 5 --font "monospace" --background-color "#000A" | xargs swaymsg exec -- + ''; + bars = [ + { command = "waybar"; } + ]; + keybindings = let + modifier = config.wayland.windowManager.sway.config.modifier; + in lib.mkOptionDefault { + "${modifier}+Shift+S" = ''exec grim -g "$(slurp)" - | swappy -f -''; + }; + }; + extraConfig = '' + default_border pixel 1 + default_floating_border pixel 1 + ''; + }; programs = { + waybar = { + enable = true; + settings = [ + { + modules-left = [ "sway/workspaces" ]; + modules-center = [ "sway/window" ]; + modules-right = [ "user" "memory" "disk" "cpu" "clock" ]; + + user = { + format = "{user} - Uptime: {work_H}:{work_M}h"; + }; + + memory = { + format = "Memory: {used}GiB"; + }; + + disk = { + format = "Disk: {free}"; + }; + + cpu = { + format = "CPU: {usage}%"; + }; + + clock = { + interval = 60; + format = "{:%Y-%m-%d - %H:%M}"; + }; + } + ]; + style = '' + * { + border: none; + border-radius: 0; + font-size: 0.875rem; + } + + window#waybar { + background-color: #1a1a1a; + color: #e6e6e6; + } + + #workspaces button, #user, #memory, #disk, #cpu, #clock { + padding-top: 0.125rem; + padding-bottom: 0.125rem; + padding-left: 0.5rem; + padding-right: 0.5rem; + background-color: #262626; + border: 0.0625rem solid #404040; + } + ''; + }; + swaylock = { + enable = true; + settings = let + wallpaper = pkgs.callPackage ./wallpaper.nix {}; + in { + image = "${wallpaper}"; + }; + }; bash = { enable = true; shellAliases = { + rbs = "sudo nixos-rebuild switch --flake ."; + off = "sudo systemctl poweroff"; cleanup = "nix store optimise && nix-collect-garbage -d && sudo nix store optimise && sudo nix-collect-garbage -d"; listboots = "nix profile history --profile /nix/var/nix/profiles/system"; }; }; + helix = { + enable = true; + settings = { + theme = "gruvbox_transparent"; + editor = { + line-number = "relative"; + cursorline = true; + cursor-shape = { + normal = "block"; + insert = "bar"; + select = "underline"; + }; + }; + editor.file-picker = { + hidden = false; + }; + }; + themes = { + gruvbox_transparent = { + "inherits" = "gruvbox"; + "ui.background" = "{}"; + }; + }; + }; alacritty = { enable = true; settings = { @@ -44,7 +173,6 @@ { id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } ]; }; - vscode.enable = true; git = { enable = true; userName = "thiloho"; @@ -54,13 +182,41 @@ }; }; }; + gtk = { + enable = true; + theme = { + package = pkgs.gnome.gnome-themes-extra; + name = "Adwaita-dark"; + }; + }; home = { + sessionVariables = { + NIXOS_OZONE_WL = "1"; + EDITOR = "hx"; + }; packages = with pkgs; [ libreoffice airshipper prismlauncher + nil + rust-analyzer + marksman + nodePackages.typescript-language-server + nodePackages.svelte-language-server + nodePackages.vscode-langservers-extracted + postgresqlJitPackages.plpgsql_check + dconf + tofi + wl-clipboard + xdg-utils + slurp + grim + swappy + kooha ventoy + lapce tldr + vulkan-validation-layers steam ]; };