From 56d74ee6b8ba7ac9572814f556891e86525f7663 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Mon, 31 Mar 2025 13:18:59 -0400 Subject: Experiment with "as needed" packages and cleanup --- nix/amdgpu.nix | 4 +- nix/audio.nix | 10 ++- nix/gaming.nix | 60 +++++++---------- nix/intel.nix | 4 +- nix/programs/firefox.nix | 4 +- nix/programs/foot.nix | 39 ++++++------ nix/programs/kitty.nix | 67 +++++++++---------- nix/programs/nvim.nix | 2 +- nix/programs/sway.nix | 163 ++++++++++++++++++++++++----------------------- nix/scripts.nix | 18 +++--- nix/system.nix | 6 +- nix/user.nix | 39 +++++------- nix/utils.nix | 7 ++ nix/virtualisation.nix | 5 +- 14 files changed, 207 insertions(+), 221 deletions(-) create mode 100644 nix/utils.nix (limited to 'nix') diff --git a/nix/amdgpu.nix b/nix/amdgpu.nix index 32b317b..3b6a1c6 100644 --- a/nix/amdgpu.nix +++ b/nix/amdgpu.nix @@ -4,8 +4,8 @@ VDPAU_DRIVER = "radeonsi"; LIBVA_DRIVER_NAME = "radeonsi"; AMD_VULKAN_ICD = "RADV"; - VK_ICD_FILENAMES="${pkgs.pkgsi686Linux.mesa.drivers}/share/vulkan/icd.d/radeon_icd.i686.json:${pkgs.mesa.drivers}/share/vulkan/icd.d/radeon_icd.x86_64.json"; - __EGL_VENDOR_LIBRARY_FILENAMES="${pkgs.pkgsi686Linux.mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json:${pkgs.mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json"; + VK_ICD_FILENAMES="${pkgs.pkgsi686Linux.mesa}/share/vulkan/icd.d/radeon_icd.i686.json:${pkgs.mesa}/share/vulkan/icd.d/radeon_icd.x86_64.json"; + __EGL_VENDOR_LIBRARY_FILENAMES="${pkgs.pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${pkgs.mesa}/share/glvnd/egl_vendor.d/50_mesa.json"; }; environment.systemPackages = with pkgs; [ radeontop diff --git a/nix/audio.nix b/nix/audio.nix index e8a57ff..da59310 100644 --- a/nix/audio.nix +++ b/nix/audio.nix @@ -5,9 +5,9 @@ # }; # nixpkgs.config.pulseaudio = true; services.pipewire = { - enable = false; - pulse.enable = false; - alsa.enable = false; + enable = true; + pulse.enable = true; + alsa.enable = true; alsa.support32Bit = true; extraConfig = { # cat /proc/asound/card1/stream0 @@ -24,7 +24,6 @@ "default.video.height" = 480; "default.video.rate.num" = 25; "default.video.rate.denom" = 1; - "vm.overrides" = { }; }; "context.modules" = [{ "name" = "libpipewire-module-filter-chain"; @@ -78,7 +77,6 @@ "pulse.properties" = { "pulse.default.format" = "S32"; "pulse.default.position" = [ "FL" "FR" ]; - "vm.overrides" = { }; }; "stream.properties" = { "resample.quality" = 8; @@ -105,7 +103,7 @@ }; environment.systemPackages = with pkgs; [ pipewire - (pavucontrol.override { withLibcanberra = false; }) + pavucontrol ]; environment.etc = { "convolver/Focal_Elegia_minimum_phase_44100Hz.wav".source = ../files/convolver/Focal_Elegia_minimum_phase_44100Hz.wav; diff --git a/nix/gaming.nix b/nix/gaming.nix index d1e90bf..a2d866f 100644 --- a/nix/gaming.nix +++ b/nix/gaming.nix @@ -1,28 +1,25 @@ -{ config, pkgs, ... }: -let - s = config.local; +{ config, lib, pkgs, ... }: let + loc = config.local; + colo = loc.scheme; + inherit (import ./utils.nix) asNeeded; in { users.users.andrew = { extraGroups = [ "gamemode" ]; }; - environment.systemPackages = with pkgs; [ + environment.systemPackages = with pkgs; lib.lists.flatten [ mangohud - umu-launcher - protontricks - lutris - #legendary-gl - prismlauncher - jdk21 - #retroarch - #dolphin-emu - #pcsx2 - #(ppsspp.override { enableQt = true; }) - #cemu - rpcs3 - #ryujinx - osu-lazer-bin - parsec-bin - #r2modman + (asNeeded lib pkgs "protontricks" ["protontricks" "protontricks-launch"]) + (asNeeded lib pkgs "[lutris umu-launcher]" ["lutris"]) + (asNeeded lib pkgs "prismlauncher" ["prismlauncher"]) + (asNeeded lib pkgs "retroarch" ["retroarch"]) + (asNeeded lib pkgs "dolphin-emu" ["dolphin-emu"]) + (asNeeded lib pkgs "pcsx2" ["pcsx2-qt"]) + (asNeeded lib pkgs "(ppsspp.override { enableQt = true; })" ["ppsspp"]) + (asNeeded lib pkgs "cemu" ["cemu"]) + (asNeeded lib pkgs "rpcs3" ["rpcs3"]) + (asNeeded lib pkgs "ryujinx" ["ryujinx"]) + (asNeeded lib pkgs "osu-lazer-bin" ["osu!"]) + (asNeeded lib pkgs "parsec-bin" ["parsecd"]) (pkgs.writeShellScriptBin "run-steam-gamescope" '' export TTY=/dev/tty4 export XDG_VTNR=4 @@ -38,7 +35,7 @@ in { export VKD3D_DEBUG=none export VKD3D_SHADER_DEBUG=none export mesa_glthread=true - xrandr --output ${s.monitors.monitor1} --primary + xrandr --output ${loc.monitors.monitor1} --primary exec env --unset=SDL_VIDEODRIVER --unset=SDL_VIDEO_DRIVER MANGOHUD=1 gamemoderun "$@" '') ]; @@ -65,20 +62,6 @@ in { }; programs.steam = { enable = true; - package = pkgs.steam.override { - extraPkgs = pkgs: with pkgs; [ - xorg.libXcursor - xorg.libXi - xorg.libXinerama - xorg.libXScrnSaver - libpng - libpulseaudio - libvorbis - stdenv.cc.cc.lib - libkrb5 - keyutils - ]; - }; gamescopeSession = let width = "2560"; height = "1440"; @@ -88,14 +71,14 @@ in { "-W ${width}" "-H ${height}" "-w ${width}" "-h ${height}" "-r 144" - "-O ${s.monitors.monitor1}" + "-O ${loc.monitors.monitor1}" "--rt" "-f" "-e" # "-o 10" "--adaptive-sync" # "--force-grab-cursor" -# "--mangoapp" + "--mangoapp" ]; }; }; @@ -137,8 +120,11 @@ in { cpu_mhz = true; vulkan_driver = true; gpu_name = true; + gpu_power = true; + gpu_temp = true; gpu_junction_temp = true; gpu_core_clock = true; + gpu_voltage = true; vram = true; gpu_mem_temp = true; gpu_mem_clock = true; diff --git a/nix/intel.nix b/nix/intel.nix index 8601f6b..0ebfb8f 100644 --- a/nix/intel.nix +++ b/nix/intel.nix @@ -3,8 +3,8 @@ VDPAU_DRIVER = "va_gl"; LIBVA_DRIVER_NAME = "iHD"; AMD_VULKAN_ICD = "ANV"; - VK_ICD_FILENAMES="${pkgs.pkgsi686Linux.mesa.drivers}/share/vulkan/icd.d/intel_icd.i686.json:${pkgs.mesa.drivers}/share/vulkan/icd.d/intel_icd.x86_64.json"; - __EGL_VENDOR_LIBRARY_FILENAMES="${pkgs.pkgsi686Linux.mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json:${pkgs.mesa.drivers}/share/glvnd/egl_vendor.d/50_mesa.json"; + VK_ICD_FILENAMES="${pkgs.pkgsi686Linux.mesa}/share/vulkan/icd.d/intel_icd.i686.json:${pkgs.mesa}/share/vulkan/icd.d/intel_icd.x86_64.json"; + __EGL_VENDOR_LIBRARY_FILENAMES="${pkgs.pkgsi686Linux.mesa}/share/glvnd/egl_vendor.d/50_mesa.json:${pkgs.mesa}/share/glvnd/egl_vendor.d/50_mesa.json"; }; hardware.graphics = { extraPackages = with pkgs; [ diff --git a/nix/programs/firefox.nix b/nix/programs/firefox.nix index 404c3a6..da5aa09 100644 --- a/nix/programs/firefox.nix +++ b/nix/programs/firefox.nix @@ -19,8 +19,8 @@ in { source = (pkgs.fetchFromGitHub { owner = "rafaelmardojai"; repo = "firefox-gnome-theme"; - rev = "d8a440226dc9030cb793db4562132d8166fcc904"; - hash = "sha256-knaPVGni+v431hidyJ/HOKITFzQs0PaxuainC603jjo="; + rev = "a1795946debb5f21dfa5d328a6f1b68984f810fc"; + hash = "sha256-CoGE9+8oVnnOOTStPQ9C87gp0C6vgf0tN3ls7MuKZiE="; }); }; home.file."customChrome.css" = { diff --git a/nix/programs/foot.nix b/nix/programs/foot.nix index 9cc9fa9..5c85ce7 100644 --- a/nix/programs/foot.nix +++ b/nix/programs/foot.nix @@ -1,6 +1,7 @@ { config, pkgs, ... }: let - s = config.local; + loc = config.local; + colo = loc.scheme; in { environment.sessionVariables = { TERMINAL = "${pkgs.foot}/bin/footclient"; @@ -14,24 +15,24 @@ in { font = "${s.font.name}:size=${toString s.font.size}"; }; colors = { - foreground = "${s.scheme.foreground}"; - background = "${s.scheme.background}"; - regular0 = "${s.scheme.color0}"; - regular1 = "${s.scheme.color1}"; - regular2 = "${s.scheme.color2}"; - regular3 = "${s.scheme.color3}"; - regular4 = "${s.scheme.color4}"; - regular5 = "${s.scheme.color5}"; - regular6 = "${s.scheme.color6}"; - regular7 = "${s.scheme.color7}"; - bright0 = "${s.scheme.color8}"; - bright1 = "${s.scheme.color9}"; - bright2 = "${s.scheme.color10}"; - bright3 = "${s.scheme.color11}"; - bright4 = "${s.scheme.color12}"; - bright5 = "${s.scheme.color13}"; - bright6 = "${s.scheme.color14}"; - bright7 = "${s.scheme.color15}"; + foreground = "${colo.foreground}"; + background = "${colo.background}"; + regular0 = "${colo.color0}"; + regular1 = "${colo.color1}"; + regular2 = "${colo.color2}"; + regular3 = "${colo.color3}"; + regular4 = "${colo.color4}"; + regular5 = "${colo.color5}"; + regular6 = "${colo.color6}"; + regular7 = "${colo.color7}"; + bright0 = "${colo.color8}"; + bright1 = "${colo.color9}"; + bright2 = "${colo.color10}"; + bright3 = "${colo.color11}"; + bright4 = "${colo.color12}"; + bright5 = "${colo.color13}"; + bright6 = "${colo.color14}"; + bright7 = "${colo.color15}"; alpha = "1.0"; }; }; diff --git a/nix/programs/kitty.nix b/nix/programs/kitty.nix index e3238eb..5f0c91b 100644 --- a/nix/programs/kitty.nix +++ b/nix/programs/kitty.nix @@ -1,6 +1,7 @@ { config, lib, pkgs, ... }: let - s = config.local; + loc = config.local; + colo = loc.scheme; in { environment.sessionVariables = { TERMINAL = "${pkgs.kitty}/bin/kitty -1"; @@ -9,8 +10,8 @@ in { programs.kitty = { enable = true; font = { - name = s.font.name; - size = s.font.size; + name = loc.font.name; + size = loc.font.size; }; shellIntegration = { mode = "enabled"; @@ -20,7 +21,7 @@ in { shell ${pkgs.bashInteractive}/bin/bash --login update_check_interval 0 confirm_os_window_close 0 - sync_to_monitor yes + sync_to_monitor no allow_remote_control yes linux_display_server wayland remember_window_size no @@ -29,41 +30,41 @@ in { scrollback_lines 3000 paste_actions confirm,confirm-if-large disable_ligatures always - modify_font baseline ${toString s.font.baseline} - cursor #${s.scheme.foreground} + modify_font baseline ${toString loc.font.baseline} + cursor #${colo.foreground} cursor_shape block #cursor_blink_interval -1 linear ease-out #cursor_stop_blinking_after 20.0 cursor_trail 35 cursor_trail_decay 0.1 0.5 cursor_trail_start_threshold 2 - foreground #${s.scheme.foreground} - background #${s.scheme.background} - color0 #${s.scheme.color0} - color1 #${s.scheme.color1} - color2 #${s.scheme.color2} - color3 #${s.scheme.color3} - color4 #${s.scheme.color4} - color5 #${s.scheme.color5} - color6 #${s.scheme.color6} - color7 #${s.scheme.color7} - color8 #${s.scheme.color8} - color9 #${s.scheme.color9} - color10 #${s.scheme.color10} - color11 #${s.scheme.color11} - color12 #${s.scheme.color12} - color13 #${s.scheme.color13} - color14 #${s.scheme.color14} - color15 #${s.scheme.color15} - selection_foreground #${s.scheme.background} - selection_background #${s.scheme.color6} - mark1_foreground #${s.scheme.background} - mark1_background #${s.scheme.color5} - mark2_foreground #${s.scheme.background} - mark2_background #${s.scheme.color6} - mark3_foreground #${s.scheme.background} - mark3_background #${s.scheme.color4} - background_opacity ${toString s.scheme.alpha} + foreground #${colo.foreground} + background #${colo.background} + color0 #${colo.color0} + color1 #${colo.color1} + color2 #${colo.color2} + color3 #${colo.color3} + color4 #${colo.color4} + color5 #${colo.color5} + color6 #${colo.color6} + color7 #${colo.color7} + color8 #${colo.color8} + color9 #${colo.color9} + color10 #${colo.color10} + color11 #${colo.color11} + color12 #${colo.color12} + color13 #${colo.color13} + color14 #${colo.color14} + color15 #${colo.color15} + selection_foreground #${colo.background} + selection_background #${colo.color6} + mark1_foreground #${colo.background} + mark1_background #${colo.color5} + mark2_foreground #${colo.background} + mark2_background #${colo.color6} + mark3_foreground #${colo.background} + mark3_background #${colo.color4} + background_opacity ${toString colo.alpha} ''; }; wayland.windowManager.sway = { diff --git a/nix/programs/nvim.nix b/nix/programs/nvim.nix index fb779e4..5ff902f 100644 --- a/nix/programs/nvim.nix +++ b/nix/programs/nvim.nix @@ -61,7 +61,7 @@ let hi ModeMsg guifg=#${colo.color4} hi MoreMsg guifg=#${colo.color2} hi NonText guifg=#${colo.color6} - hi NormalFloat guibg=#${colo.background} + hi NormalFloat guibg=#${colo.color4} hi Pmenu guibg=#${colo.color4} hi PmenuThumb guibg=#${colo.color5} hi PmenuSel guibg=#${colo.color3} diff --git a/nix/programs/sway.nix b/nix/programs/sway.nix index 863a8ef..49efdf6 100644 --- a/nix/programs/sway.nix +++ b/nix/programs/sway.nix @@ -1,6 +1,7 @@ { config, lib, pkgs, ... }: let - s = config.local; + loc = config.local; + colo = loc.scheme; in { services.xserver.videoDrivers = [ "modesetting" ]; programs.sway = { @@ -54,82 +55,82 @@ in { home.sessionVariables = { XDG_CURRENT_DESKTOP = "sway"; MOZ_ENABLE_WAYLAND = "1"; - #SDL_VIDEODRIVER = "wayland"; + SDL_VIDEODRIVER = "wayland"; GDK_BACKEND = "wayland,x11"; QT_QPA_PLATFORM = "wayland;xcb"; QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; _JAVA_AWT_WM_NONREPARENTING = "1"; }; xresources.properties = { - "*background" = "#${s.scheme.background}"; - "*foreground" = "#${s.scheme.foreground}"; - "*color0" = "#${s.scheme.color0}"; - "*color1" = "#${s.scheme.color1}"; - "*color2" = "#${s.scheme.color2}"; - "*color3" = "#${s.scheme.color3}"; - "*color4" = "#${s.scheme.color4}"; - "*color5" = "#${s.scheme.color5}"; - "*color6" = "#${s.scheme.color6}"; - "*color7" = "#${s.scheme.color7}"; - "*color8" = "#${s.scheme.color8}"; - "*color9" = "#${s.scheme.color9}"; - "*color10" = "#${s.scheme.color10}"; - "*color11" = "#${s.scheme.color11}"; - "*color12" = "#${s.scheme.color12}"; - "*color13" = "#${s.scheme.color13}"; - "*color14" = "#${s.scheme.color14}"; - "*color15" = "#${s.scheme.color15}"; + "*background" = "#${colo.background}"; + "*foreground" = "#${colo.foreground}"; + "*color0" = "#${colo.color0}"; + "*color1" = "#${colo.color1}"; + "*color2" = "#${colo.color2}"; + "*color3" = "#${colo.color3}"; + "*color4" = "#${colo.color4}"; + "*color5" = "#${colo.color5}"; + "*color6" = "#${colo.color6}"; + "*color7" = "#${colo.color7}"; + "*color8" = "#${colo.color8}"; + "*color9" = "#${colo.color9}"; + "*color10" = "#${colo.color10}"; + "*color11" = "#${colo.color11}"; + "*color12" = "#${colo.color12}"; + "*color13" = "#${colo.color13}"; + "*color14" = "#${colo.color14}"; + "*color15" = "#${colo.color15}"; }; gtk = let # *_shade_color is adjusted from black by default. extraCss3 = '' - @define-color window_bg_color #${s.scheme.background}; - @define-color window_fg_color #${s.scheme.foreground}; - @define-color view_bg_color #${s.scheme.background}; - @define-color view_fg_color #${s.scheme.foreground}; - @define-color accent_bg_color #${s.scheme.color4}; - @define-color accent_fg_color #${s.scheme.background}; - @define-color accent_color #${s.scheme.color4}; - @define-color headerbar_bg_color #${s.scheme.background}; - @define-color headerbar_fg_color #${s.scheme.foreground}; - @define-color headerbar_backdrop_color #${s.scheme.background}; - @define-color headerbar_border_color #${s.scheme.color6}; - @define-color secondary_headerbar_bg_color #${s.scheme.background}; - @define-color secondary_headerbar_fg_color #${s.scheme.foreground}; - @define-color secondary_headerbar_backdrop_color #${s.scheme.background}; - @define-color secondary_headerbar_border_color #${s.scheme.color5}; - @define-color thumbnail_bg_color #${s.scheme.background}; - @define-color thumbnail_fg_color #${s.scheme.foreground}; - @define-color card_bg_color #${s.scheme.background}; - @define-color card_fg_color #${s.scheme.foreground}; - @define-color popover_bg_color #${s.scheme.background}; - @define-color popover_fg_color #${s.scheme.foreground}; - @define-color dialog_bg_color #${s.scheme.background}; - @define-color dialog_fg_color #${s.scheme.foreground}; - @define-color panel_bg_color #${s.scheme.background}; - @define-color panel_fg_color #${s.scheme.foreground}; - @define-color sidebar_bg_color #${s.scheme.background}; - @define-color sidebar_fg_color #${s.scheme.foreground}; - @define-color sidebar_backdrop_color #${s.scheme.background}; - @define-color warning_bg_color #${s.scheme.color4}; - @define-color warning_fg_color #${s.scheme.foreground}; - @define-color warning_color #${s.scheme.color4}; - @define-color error_bg_color #${s.scheme.color3}; - @define-color error_fg_color #${s.scheme.foreground}; - @define-color error_color #${s.scheme.color3}; - @define-color success_bg_color #${s.scheme.color2}; - @define-color success_fg_color #${s.scheme.background}; - @define-color success_color #${s.scheme.color2}; - @define-color destructive_bg_color #${s.scheme.color5}; - @define-color destructive_fg_color #${s.scheme.background}; - @define-color destructive_color #${s.scheme.color5}; + @define-color window_bg_color #${colo.background}; + @define-color window_fg_color #${colo.foreground}; + @define-color view_bg_color #${colo.background}; + @define-color view_fg_color #${colo.foreground}; + @define-color accent_bg_color #${colo.color4}; + @define-color accent_fg_color #${colo.background}; + @define-color accent_color #${colo.color4}; + @define-color headerbar_bg_color #${colo.background}; + @define-color headerbar_fg_color #${colo.foreground}; + @define-color headerbar_backdrop_color #${colo.background}; + @define-color headerbar_border_color #${colo.color6}; + @define-color secondary_headerbar_bg_color #${colo.background}; + @define-color secondary_headerbar_fg_color #${colo.foreground}; + @define-color secondary_headerbar_backdrop_color #${colo.background}; + @define-color secondary_headerbar_border_color #${colo.color5}; + @define-color thumbnail_bg_color #${colo.background}; + @define-color thumbnail_fg_color #${colo.foreground}; + @define-color card_bg_color #${colo.background}; + @define-color card_fg_color #${colo.foreground}; + @define-color popover_bg_color #${colo.background}; + @define-color popover_fg_color #${colo.foreground}; + @define-color dialog_bg_color #${colo.background}; + @define-color dialog_fg_color #${colo.foreground}; + @define-color panel_bg_color #${colo.background}; + @define-color panel_fg_color #${colo.foreground}; + @define-color sidebar_bg_color #${colo.background}; + @define-color sidebar_fg_color #${colo.foreground}; + @define-color sidebar_backdrop_color #${colo.background}; + @define-color warning_bg_color #${colo.color4}; + @define-color warning_fg_color #${colo.foreground}; + @define-color warning_color #${colo.color4}; + @define-color error_bg_color #${colo.color3}; + @define-color error_fg_color #${colo.foreground}; + @define-color error_color #${colo.color3}; + @define-color success_bg_color #${colo.color2}; + @define-color success_fg_color #${colo.background}; + @define-color success_color #${colo.color2}; + @define-color destructive_bg_color #${colo.color5}; + @define-color destructive_fg_color #${colo.background}; + @define-color destructive_color #${colo.color5}; ''; extraCss4 = '' ''; in { enable = true; theme = { - name = "adw-gtk3" + (if s.scheme.lightness == "light" then "" else "-dark"); + name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark"); package = pkgs.adw-gtk3; }; cursorTheme = { @@ -156,12 +157,12 @@ in { settings = { "" = { edge = "top"; - font = "${s.ui-font.name} ${toString s.ui-font.size}"; - background = "${s.scheme.background}"; - border = "${s.scheme.background}"; - text = "${s.scheme.foreground}"; - button-text = "${s.scheme.foreground}"; - button-background = "${s.scheme.color6}"; + font = "${loc.ui-font.name} ${toString loc.ui-font.size}"; + background = "${colo.background}"; + border = "${colo.background}"; + text = "${colo.foreground}"; + button-text = "${colo.foreground}"; + button-background = "${colo.color6}"; message-padding = 5; border-bottom-size = 1; details-border-size = 1; @@ -211,7 +212,7 @@ in { scroll_button = "276"; }; "1386:890:Wacom_One_by_Wacom_S_Pen" = { - map_to_output = s.monitors.monitor1; + map_to_output = loc.monitors.monitor1; left_handed = "enabled"; }; }; @@ -259,9 +260,9 @@ in { }; }; fonts = { - names = [ s.ui-font.name ]; + names = [ loc.ui-font.name ]; style = "Regular"; - size = s.ui-font.size + 0.0; + size = loc.ui-font.size + 0.0; }; bars = [ ]; window = { @@ -269,7 +270,8 @@ in { titlebar = false; commands = [ { command = "move to scratchpad"; criteria.app_id = "kitty-server"; } - { command = "max_render_time 1"; criteria.app_id = "kitty"; } + #{ command = "max_render_time 1"; criteria.app_id = "kitty"; } + { command = "allow_tearing yes"; criteria.app_id = "kitty"; } { command = "inhibit_idle fullscreen; floating enable; max_render_time 1; allow_tearing yes"; criteria.app_id = "cmv"; } { command = "floating enable"; criteria.class = "cmv.exe"; } { command = "floating enable"; criteria.app_id = "mauri"; } @@ -281,7 +283,6 @@ in { { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; } { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; } { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; } - { command = "allow_tearing yes"; criteria.title = "vkcube"; } { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; } { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; } { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; } @@ -290,10 +291,10 @@ in { ]; }; colors = let - bg = "#${s.scheme.background}"; - fg = "#${s.scheme.foreground}"; - ch = "#${s.scheme.color4}"; - urgent = "#${s.scheme.color1}"; + bg = "#${colo.background}"; + fg = "#${colo.foreground}"; + ch = "#${colo.color4}"; + urgent = "#${colo.color1}"; in { background = bg; focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; @@ -305,7 +306,7 @@ in { startup = let gnome-schema = "org.gnome.desktop.interface"; in [ - { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${s.scheme.lightness}'\""; always = true; } + { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${colo.lightness}'\""; always = true; } { command = "dbus-sway-environment"; } { command = "swaymsg 'seat * hide_cursor 4000'"; always = true; } { command = "kitty -1 --class=\"kitty-server\""; } @@ -326,10 +327,10 @@ in { services.mako = { enable = true; defaultTimeout = 14000; - font = "${s.font.name} ${toString s.ui-font.size}"; - backgroundColor = "#${s.scheme.background}"; - textColor = "#${s.scheme.foreground}"; - borderColor = "#${s.scheme.color6}"; + font = "${loc.font.name} ${toString loc.ui-font.size}"; + backgroundColor = "#${colo.background}"; + textColor = "#${colo.foreground}"; + borderColor = "#${colo.color6}"; }; }; } diff --git a/nix/scripts.nix b/nix/scripts.nix index 97d3ee6..a36d17a 100644 --- a/nix/scripts.nix +++ b/nix/scripts.nix @@ -1,7 +1,7 @@ { config, lib, pkgs, ... }: let - s = config.local; - inherit (import ./settings.nix) scripts; + loc = config.local; + colo = loc.scheme; in { environment.etc = { "emoji.json".source = builtins.fetchurl { @@ -12,14 +12,14 @@ in { environment.systemPackages = [ (pkgs.writeShellScriptBin "bemenu-colored" '' bemenu -C --single-instance -B 0 -M 0 --hp 6 \ - --fn "${s.font.name} ${toString (s.font.size - 1)}" -H ${toString ((s.font.size - 1) * 2)} \ - --cf "#${s.scheme.foreground}" --cb "#${s.scheme.background}" \ - --hf "#${s.scheme.background}" --hb "#${s.scheme.color4}" \ - --nf "#${s.scheme.foreground}" --nb "#${s.scheme.background}" \ - --ff "#${s.scheme.foreground}" --fb "#${s.scheme.background}" \ - --af "#${s.scheme.foreground}" --ab "#${s.scheme.background}" -p "" + --fn "${loc.font.name} ${toString (loc.font.size - 1)}" -H ${toString ((loc.font.size - 1) * 2)} \ + --cf "#${colo.foreground}" --cb "#${colo.background}" \ + --hf "#${colo.background}" --hb "#${colo.color4}" \ + --nf "#${colo.foreground}" --nb "#${colo.background}" \ + --ff "#${colo.foreground}" --fb "#${colo.background}" \ + --af "#${colo.foreground}" --ab "#${colo.background}" -p "" '') - ] ++ (lib.lists.forEach s.scripts.imports (x: pkgs.writeTextFile { + ] ++ (lib.lists.forEach loc.scripts.imports (x: pkgs.writeTextFile { name = x; text = (builtins.readFile ../scripts/${x}); executable = true; diff --git a/nix/system.nix b/nix/system.nix index 92535f5..5f1943e 100644 --- a/nix/system.nix +++ b/nix/system.nix @@ -10,6 +10,9 @@ optimise.automatic = true; }; + nixpkgs.config.allowUnfree = true; + hardware.enableRedistributableFirmware = true; + security.pam.loginLimits = [ { domain = "*"; @@ -71,9 +74,6 @@ }; }; - nixpkgs.config.allowUnfree = true; - hardware.enableRedistributableFirmware = true; - hardware.graphics = { enable = true; extraPackages = with pkgs; [ diff --git a/nix/user.nix b/nix/user.nix index fbfd354..057f95f 100644 --- a/nix/user.nix +++ b/nix/user.nix @@ -1,6 +1,7 @@ -{ config, pkgs, ... }: let - s = config.local; - colo = s.scheme; +{ config, lib, pkgs, ... }: let + loc = config.local; + colo = loc.scheme; + inherit (import ./utils.nix) asNeeded; in { users.users.andrew = { isNormalUser = true; @@ -42,15 +43,15 @@ in { lcdfilter = "default"; }; defaultFonts = { - serif = [ s.ui-font.name ]; - sansSerif = [ s.ui-font.name ]; - monospace = [ s.font.name ]; - emoji = [ s.emoji-font.name ]; + serif = [ loc.ui-font.name ]; + sansSerif = [ loc.ui-font.name ]; + monospace = [ loc.font.name ]; + emoji = [ loc.emoji-font.name ]; }; }; }; - environment.systemPackages = with pkgs; [ + environment.systemPackages = with pkgs; lib.lists.flatten [ man-pages man-pages-posix home-manager @@ -61,22 +62,18 @@ in { sloccount (aspellWithDicts (dicts: with dicts; [ en en-computers en-science ])) rsync - (python3.withPackages (python-pkgs: [ - python-pkgs.requests - python-pkgs.beautifulsoup4 - ])) + (python3.withPackages (python-pkgs: [ python-pkgs.requests python-pkgs.beautifulsoup4 ])) htop neofetch - cmatrix - #hollywood + (asNeeded lib pkgs "cmatrix" ["cmatrix"]) hdparm usbutils cryptsetup - nix-index + (asNeeded lib pkgs "nix-index" ["nix-channel-index" "nix-index" "nix-locate"]) imagemagick - optipng - dmtx-utils - zbar + (asNeeded lib pkgs "optipng" ["optipng"]) + (asNeeded lib pkgs "dmtx-utils" ["dmtxquery" "dmtxread" "dmtxwrite"]) + (asNeeded lib pkgs "zbar" ["zbarcam" "zbarcam-gtk" "zbarcam-qt" "zbarimg"]) perlPackages.ArchiveZip b3sum libfaketime @@ -84,9 +81,7 @@ in { dos2unix socat curl - httrack - gdown - megatools + (asNeeded lib pkgs "httrack" ["htsserver" "httrack" "proxytrack" "webhttrack"]) libuchardet (unzip.override { enableNLS = true; }) rar @@ -103,10 +98,10 @@ in { gcr pass zenity - zathura ]; local.scripts.imports = [ + "install-as-needed" "cpu-vulns" "spell" "ts-date" diff --git a/nix/utils.nix b/nix/utils.nix new file mode 100644 index 0000000..9219048 --- /dev/null +++ b/nix/utils.nix @@ -0,0 +1,7 @@ +{ + asNeeded = (lib: pkgs: pkg: commands: + (lib.lists.forEach commands (command: pkgs.writeShellScriptBin "${command}" '' + install-as-needed "${pkg}" ${command} ''$@ + '')) + ); +} diff --git a/nix/virtualisation.nix b/nix/virtualisation.nix index f8be5b6..a73054d 100644 --- a/nix/virtualisation.nix +++ b/nix/virtualisation.nix @@ -1,7 +1,4 @@ -{ pkgs, ... }: -let - inherit (import ./settings.nix) scripts; -in { +{ pkgs, ... }: { users.users.andrew.extraGroups = [ "libvirtd" "kvm" ]; virtualisation.libvirtd.enable = true; programs.virt-manager.enable = true; -- cgit v1.2.3-101-g0448