diff --git a/common.nix b/common.nix index 74e5a5d..389976a 100644 --- a/common.nix +++ b/common.nix @@ -73,12 +73,23 @@ psmisc usbutils pciutils + cpufrequtils + intel-gpu-tools + lshw + + lsof + bind + file iotop htop glances + powertop exfat + + # to stop NixOS breaking + git ]; # Allow ssh diff --git a/flake.nix b/flake.nix index 8635029..e129e87 100644 --- a/flake.nix +++ b/flake.nix @@ -56,6 +56,7 @@ fuckingprint = import ./modules/fuckingprint.nix; workstation = import ./modules/workstation.nix; ezpw = import ./modules/ezpw.nix; + de2 = import ./home-manager/modules/de2.nix; all = import ./modules/default.nix; }; @@ -66,6 +67,7 @@ gaming = import ./home-manager/modules/gaming.nix inputs; gamerenv = import ./home-manager/modules/gamerenv.nix; mopidy = import ./home-manager/modules/mopidy.nix; + de2u = import ./home-manager/modules/de2u.nix; all = import ./home-manager/modules/default.nix inputs; }; diff --git a/home-manager/common.nix b/home-manager/common.nix index cc421aa..71177e8 100644 --- a/home-manager/common.nix +++ b/home-manager/common.nix @@ -4,33 +4,54 @@ inputs: { imports = [ (import ./modules inputs) ]; + programs.direnv = { + enable = lib.mkDefault true; + nix-direnv.enable = lib.mkDefault true; + stdlib = '' + : ''${XDG_CACHE_HOME:=$HOME/.cache} + declare -A direnv_layout_dirs + direnv_layout_dir() { + echo "''${direnv_layout_dirs[$PWD]:=$( + echo -n "$XDG_CACHE_HOME"/direnv/layouts/ + echo -n "$PWD" | shasum | cut -d ' ' -f 1 + )}" + } + ''; + }; + + programs.chromium = { + package = lib.mkDefault (pkgs.ungoogled-chromium.override { + commandLineArgs = lib.concatStringsSep " " [ + "--force-dark-mode" + "--enable-features=UseOzonePlatform,WebUIDarkMode,VaapiVideoDecoder" + "--ozone-platform=wayland" + "--ignore-gpu-blocklist" + "--enable-gpu-rasterization" + "--enable-zero-copy" + ]; + }); + }; + + programs.mpv = { + config = { + profile = lib.mkDefault "gpu-hq"; + ytdl-format = lib.mkDefault "bestvideo+bestaudio"; + }; + }; + home.packages = with pkgs; [ wget httpie - git - + jq ripgrep lsd - file - unzip - - lm_sensors # for fish-done libnotify notify-desktop ]; - programs.vim = { - enable = true; - extraConfig = '' - set nocompatible - set nocp - set backspace=indent,eol,start - ''; - }; - home.sessionVariables = { TERM = "xterm-256color"; }; programs.fish = { @@ -53,7 +74,6 @@ inputs: } ]; shellInit = '' - # Load nix shit on non-NixOS computers (yea yea laugh it up we all have legacy machines somewhere) if not set -q NIX_PATH set --prepend fish_function_path ${pkgs.fishPlugins.foreign-env}/share/fish/vendor_functions.d fenv source $HOME/.nix-profile/etc/profile.d/nix.sh diff --git a/home-manager/data/gtk2-base16.nix b/home-manager/data/gtk2-base16.nix deleted file mode 100644 index a0b75dd..0000000 --- a/home-manager/data/gtk2-base16.nix +++ /dev/null @@ -1,23 +0,0 @@ -base16: - -'' - gtk-color-scheme = "bg_color:#${base16."base00"}\nfg_color:#${ - base16."base05" - }\nbase_color:#${base16."base00"}\ntext_color:#${ - base16."base05" - }\nselected_bg_color:#${base16."base02"}\nselected_fg_color:#${ - base16."base05" - }\ntooltip_bg_color:#${base16."base00"}\ntooltip_fg_color:#${ - base16."base04" - }\ntitlebar_bg_color:#${base16."base00"}\ntitlebar_fg_color:#${ - base16."base0D" - }\nmenubar_bg_color:#${base16."base00"}\nmenubar_fg_color:#${ - base16."base0D" - }\ntoolbar_bg_color:#${base16."base00"}\ntoolbar_fg_color:#${ - base16."base0A" - }\nmenu_bg_color:#${base16."base00"}\nmenu_fg_color:#${ - base16."base05" - }\npanel_bg_color:#${base16."base00"}\npanel_fg_color:#${ - base16."base0B" - }\nlink_color:#${base16."base09"}" -'' diff --git a/home-manager/modules/colors.nix b/home-manager/modules/colors.nix index e4a4311..d9a1900 100644 --- a/home-manager/modules/colors.nix +++ b/home-manager/modules/colors.nix @@ -51,13 +51,14 @@ let } ); - genTheme = repo: mustache - (makeScheme cfg.base16 // { - scheme-name = "base16 generated"; - scheme-slug = "idk"; - scheme-author = "nixos"; - }) - "${repo}/templates/default.mustache"; + + scheme = (makeScheme cfg.base16 // { + scheme-name = "base16 generated"; + scheme-slug = "idk"; + scheme-author = "nixos"; + }); + + genTheme = repo: mustache scheme "${repo}/templates/default.mustache"; schemer2 = pkgs.buildGoPackage rec { pname = "schemer2"; @@ -79,11 +80,6 @@ in options.colors = { enable = mkEnableOption "Enable automatic colors"; - i3BarColors = mkOption { - description = "Exported color attrset for i3bar/swaybar"; - default = { }; - }; - base16Rgb = mkOption { readOnly = true; type = types.attrsOf (types.attrsOf types.int); @@ -234,37 +230,6 @@ in # I3/sway wayland.windowManager.sway = i3config; xsession.windowManager.i3 = i3config; - colors.i3BarColors = { - background = "#${cfg.base16.base00}"; - separator = "#${cfg.base16.base01}"; - statusline = "#${cfg.base16.base04}"; - - focusedWorkspace = { - border = "#${cfg.base16.base05}"; - background = "#${cfg.base16.base0D}"; - text = "#${cfg.base16.base00}"; - }; - activeWorkspace = { - border = "#${cfg.base16.base05}"; - background = "#${cfg.base16.base03}"; - text = "#${cfg.base16.base00}"; - }; - inactiveWorkspace = { - border = "#${cfg.base16.base03}"; - background = "#${cfg.base16.base01}"; - text = "#${cfg.base16.base05}"; - }; - urgentWorkspace = { - border = "#${cfg.base16.base08}"; - background = "#${cfg.base16.base08}"; - text = "#${cfg.base16.base00}"; - }; - bindingMode = { - border = "#${cfg.base16.base00}"; - background = "#${cfg.base16.base0A}"; - text = "#${cfg.base16.base00}"; - }; - }; # Dunst services.dunst = { @@ -323,9 +288,11 @@ in name = "Generated"; package = generated-gtk-theme; }; - gtk2.extraConfig = import ../data/gtk2-base16.nix cfg.base16; }; + systemd.user.sessionVariables.GTK_THEME = "Generated"; + home.sessionVariables.GTK_THEME = "Generated"; + # Codium/VSCODE programs.vscode.userSettings = { "workbench.colorTheme" = "nix colors"; diff --git a/home-manager/modules/de2u.nix b/home-manager/modules/de2u.nix new file mode 100644 index 0000000..d9edadf --- /dev/null +++ b/home-manager/modules/de2u.nix @@ -0,0 +1,222 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.de2u; +in +{ + options.de2u = { + enable = mkEnableOption "Enable de2 user stuff"; + }; + + config = mkIf cfg.enable { + colors.enable = lib.mkDefault true; + fonts.enable = lib.mkDefault true; + + programs.chromium.enable = lib.mkDefault true; + + programs.kitty = { + enable = lib.mkDefault true; + settings = { + background_opacity = lib.mkDefault "1"; + dynamic_background_opacity = lib.mkDefault true; + allow_remote_control = lib.mkDefault true; + hide_window_decorations = lib.mkDefault true; + }; + }; + + home.packages = with pkgs; [ + gnomeExtensions.pop-shell + gnomeExtensions.blur-me + gnomeExtensions.remove-rounded-corners + gnomeExtensions.improved-workspace-indicator + gnomeExtensions.vitals + gnomeExtensions.clipboard-indicator + # (gnomeExtensions.no-title-bar.overrideAttrs (old: { + # src = builtins.fetchGit { + # rev = "1e6647d1bf03559cd574f34aa2439b942cc94c60"; + # url = "git+ssh://git@github.com/poehlerj/no-title-bar.git"; + # }; + + # patches = old.patches ++ [ + # (pkgs.fetchurl { + # url = "https://patch-diff.githubusercontent.com/raw/poehlerj/no-title-bar/pull/37.patch"; + # sha256 = "sha256-4gUv7U8mtSDQ2aSlVALxMpLvLWUcf0Gd8N2xIGQ4LGQ="; + # }) + # ]; + # })) + gnomeExtensions.just-perfection + gnomeExtensions.appindicator + ]; + + systemd.user.sessionVariables = { + QT_QPA_PLATFORM = "wayland-egl;xcb"; + MOZ_ENABLE_WAYLAND = "1"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + }; + + xdg.mimeApps = { + enable = true; + defaultApplications = { + "inode/directory" = "org.gnome.Nautilus.desktop"; + + "text/html" = "chromium-browser.desktop"; + "x-scheme-handler/http" = "chromium-browser.desktop"; + "x-scheme-handler/https" = "chromium-browser.desktop"; + "x-scheme-handler/about" = "chromium-browser.desktop"; + + "application/zip" = "org.gnome.FileRoller.desktop"; + "application/rar" = "org.gnome.FileRoller.desktop"; + "application/7z" = "org.gnome.FileRoller.desktop"; + "application/*tar" = "org.gnome.FileRoller.desktop"; + }; + }; + + dconf.settings = with lib.hm.gvariant; { + "org/gnome/desktop/interface" = { + enable-hot-corners = false; + show-battery-percentage = true; + }; + "org/gnome/shell/extensions/pop-shell" = { + tile-by-default = true; + show-title = false; + active-hint = false; + }; + "org/gnome/shell/extensions/improved-workspace-indicator" = { + panel-position = "left"; + }; + "org/gnome/shell/extensions/vitals" = { + hide-zeros = true; + show-battery = true; + update-time = 8; + }; + "org/gnome/shell/extensions/appindicator" = { + icon-opacity = 255; + tray-pos = "center"; + }; + "org/gnome/shell/extensions/user-theme" = { + name = if config.colors.enable then "Generated" else "Default"; + }; + "org/gnome/shell/extensions/just-perfection" = { + activities-button = false; + animation = 3; + app-menu = true; + app-menu-icon = true; + background-menu = true; + dash = false; + double-super-to-appgrid = true; + gesture = true; + hot-corner = false; + show-apps-button = false; + startup-status = 0; + window-picker-icon = false; + window-preview-caption = true; + workspace = true; + workspace-popup = false; + workspace-switcher-should-show = false; + workspaces-in-app-grid = true; + }; + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = [ + "pop-shell@system76.com" + "rrc@ogarcia.me" + "native-window-placement@gnome-shell-extensions.gcampax.github.com" + "user-theme@gnome-shell-extensions.gcampax.github.com" + "improved-workspace-indicator@michaelaquilina.github.io" + "Vitals@CoreCoding.com" + "clipboard-indicator@tudmotu.com" + "just-perfection-desktop@just-perfection" + "appindicatorsupport@rgcjonas.gmail.com" + ]; + }; + "org/gnome/desktop/peripherals/touchpad" = { + natural-scroll = false; + }; + "org/gnome/mutter" = { + edge-tiling = false; + dynamic-workspaces = false; + }; + "org/gnome/shell/extensions/blur-me" = { + toggle-app-blur = false; + }; + "org/gnome/desktop/wm/preferences" = { + focus-mode = "sloppy"; + resize-with-right-button = true; + num-workspaces = 9; + }; + "org/gnome/maps" = { + night-mode = true; + transportation-type = "car"; + }; + "org/gnome/system/location" = { + enabled = true; + }; + + "org/gnome/desktop/wm/keybindings" = { + move-to-workspace-1 = [ "exclam" ]; + move-to-workspace-2 = [ "at" ]; + move-to-workspace-3 = [ "numbersign" ]; + move-to-workspace-4 = [ "dollar" ]; + move-to-workspace-5 = [ "percent" ]; + move-to-workspace-6 = [ "asciicircum" ]; + move-to-workspace-7 = [ "ampersand" ]; + move-to-workspace-8 = [ "asterisk" ]; + move-to-workspace-9 = [ "parenleft" ]; + switch-to-workspace-1 = [ "1" ]; + switch-to-workspace-2 = [ "2" ]; + switch-to-workspace-3 = [ "3" ]; + switch-to-workspace-4 = [ "4" ]; + switch-to-workspace-5 = [ "5" ]; + switch-to-workspace-6 = [ "6" ]; + switch-to-workspace-7 = [ "7" ]; + switch-to-workspace-8 = [ "8" ]; + switch-to-workspace-9 = [ "9" ]; + + minimize = [ "comma" ]; + switch-to-workspace-left = [ "" ]; + switch-to-workspace-right = [ "" ]; + maximize = [ "" ]; + unmaximize = [ "" ]; + move-to-monitor-up = [ "" ]; + move-to-monitor-down = [ "" ]; + move-to-monitor-left = [ "" ]; + move-to-monitor-right = [ "" ]; + move-to-workspace-down = [ "" ]; + move-to-workspace-up = [ "" ]; + switch-to-workspace-down = [ "Down" "j" ]; + switch-to-workspace-up = [ "Up" "k" ]; + toggle-maximized = [ "m" ]; + close = [ "q" "F4" ]; + + }; + "org/gnome/mutter/keybindings" = { + toggle-tiled-left = [ "" ]; + toggle-tiled-right = [ "" ]; + }; + "org/gnome/mutter/wayland/keybindings" = { + restore-shortcuts = [ "" ]; + }; + "org/gnome/shell/keybindings" = { + open-application-menu = [ "" ]; + toggle-message-tray = [ "v" ]; + toggle-overview = [ "" ]; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + screensaver = [ "Escape" ]; + home = [ "f" ]; + email = [ "e" ]; + www = [ "b" ]; + terminal = [ "t" ]; + + rotate-video-lock-static = [ "" ]; + + area-screenshot = [ "Print" ]; + area-screenshot-clip = [ "Print" ]; + screenshot = [ "Print" ]; + screenshot-clip = [ "Print" ]; + window-screenshot = [ "Print" ]; + window-screenshot-clip = [ "Print" ]; + }; + }; + }; +} diff --git a/home-manager/modules/default.nix b/home-manager/modules/default.nix index 1693b93..544bdc8 100644 --- a/home-manager/modules/default.nix +++ b/home-manager/modules/default.nix @@ -12,5 +12,6 @@ inputs: ./gamerenv.nix ./fonts.nix ./mopidy.nix + ./de2u.nix ]; } diff --git a/home-manager/modules/ezpcusr.nix b/home-manager/modules/ezpcusr.nix index cf30ccb..d12c0e7 100644 --- a/home-manager/modules/ezpcusr.nix +++ b/home-manager/modules/ezpcusr.nix @@ -596,45 +596,10 @@ in }; }; - programs.direnv = { - enable = lib.mkDefault true; - nix-direnv.enable = lib.mkDefault true; - stdlib = '' - : ''${XDG_CACHE_HOME:=$HOME/.cache} - declare -A direnv_layout_dirs - direnv_layout_dir() { - echo "''${direnv_layout_dirs[$PWD]:=$( - echo -n "$XDG_CACHE_HOME"/direnv/layouts/ - echo -n "$PWD" | shasum | cut -d ' ' -f 1 - )}" - } - ''; - }; - colors.enable = lib.mkDefault true; fonts.enable = lib.mkDefault true; - programs.chromium = { - enable = lib.mkDefault true; - package = lib.mkDefault ((pkgs.ungoogled-chromium.overrideAttrs (old: { - patches = [ - ../data/chromium-dark.patch - ]; - })).override { - commandLineArgs = lib.concatStringsSep " " [ - # I think if the dark patch worked, this should be removed, it doesn't seem to... - "--force-dark-mode" - - "--enable-features=UseOzonePlatform,WebUIDarkMode,VaapiVideoDecoder" - "--ozone-platform=wayland" - "--ignore-gpu-blocklist" - "--enable-gpu-rasterization" - "--enable-zero-copy" - "--disable-gpu-driver-bug-workarounds" - "--use-gl=egl" - ]; - }); - }; + programs.chromium.enable = lib.mkDefault true; services.blueman-applet.enable = lib.mkDefault cfg.bluetooth; @@ -710,49 +675,50 @@ in image_backend="kitty" ''; - programs.mpv = { - enable = lib.mkDefault true; - config = { - profile = lib.mkDefault "gpu-hq"; - ytdl-format = lib.mkDefault "bestvideo+bestaudio"; + xdg.enable = true; + xdg.userDirs.enable = true; + + xdg.mimeApps = { + enable = true; + defaultApplications = { + "inode/directory" = "pcmanfm-qt.desktop"; + + "text/html" = "chromium-browser.desktop"; + "x-scheme-handler/http" = "chromium-browser.desktop"; + "x-scheme-handler/https" = "chromium-browser.desktop"; + "x-scheme-handler/about" = "chromium-browser.desktop"; + + "application/zip" = "ark.desktop"; + "application/rar" = "ark.desktop"; + "application/7z" = "ark.desktop"; + "application/*tar" = "ark.desktop"; }; }; + programs.mpv.enable = lib.mkDefault true; + fonts.fontconfig.enable = lib.mkDefault true; home.packages = with pkgs; [ - waybar - wl-clipboard # important actually, for vim and other things - xwayland - libappindicator-gtk3 - - jq + wl-clipboard + # ezpcusr stuff ezDrv inputs.mudl.defaultPackage.${pkgs.system} - bitwarden-cli - kitty + # programs pavucontrol + ark + pcmanfm-qt + + # CLI tools yt-dlp maim slop - ark - notify-osd - ffmpeg - id3v2 - imagemagick - + # CLI tools that integrate with ezpcusr things mpc_cli playerctl - - nix-index - - gitAndTools.hub - nmap - nixpkgs-fmt - xorg.xhost ]; diff --git a/modules/de2.nix b/modules/de2.nix new file mode 100644 index 0000000..79042a4 --- /dev/null +++ b/modules/de2.nix @@ -0,0 +1,19 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.de2; +in +{ + options.de2.enable = mkEnableOption "Enable de2 system stuff"; + + config = mkIf cfg.enable { + services.xserver = { + enable = lib.mkDefault true; + displayManager.gdm.enable = lib.mkDefault true; + desktopManager.gnome.enable = lib.mkDefault true; + }; + + hardware.pulseaudio.enable = false; + services.power-profiles-daemon.enable = false; + }; +} diff --git a/modules/default.nix b/modules/default.nix index d0a3f61..49302e5 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -8,5 +8,6 @@ ./fuckingprint.nix ./workstation.nix ./ezpw.nix + ./de2.nix ]; } diff --git a/modules/workstation.nix b/modules/workstation.nix index 101e5f6..cfa30e3 100644 --- a/modules/workstation.nix +++ b/modules/workstation.nix @@ -25,7 +25,7 @@ in nssmdns = lib.mkDefault true; }; - services.flatpak.enable = true; + services.flatpak.enable = lib.mkDefault true; services.ezpw.enable = lib.mkDefault true; @@ -96,7 +96,7 @@ in libvdpau-va-gl libGL ]; - setLdLibraryPath = true; + setLdLibraryPath = lib.mkDefault true; }; # Support for steam hardware @@ -144,9 +144,9 @@ in fonts.fontconfig.cache32Bit = lib.mkDefault true; services.xserver = { libinput = { - enable = true; - mouse.accelProfile = "flat"; - touchpad.accelProfile = "flat"; + enable = lib.mkDefault true; + mouse.accelProfile = lib.mkDefault "flat"; + touchpad.accelProfile = lib.mkDefault "flat"; }; dpi = lib.mkDefault 96; layout = lib.mkDefault "us"; @@ -157,7 +157,6 @@ in "default-sample-rate" = lib.mkDefault "48000"; }; - # networking.networkmanager.ethernet.macAddress = "random"; networking.networkmanager.wifi.macAddress = lib.mkDefault "random"; networking.networkmanager.wifi.scanRandMacAddress = lib.mkDefault true; @@ -214,7 +213,6 @@ in ''; # bluetooth - services.blueman.enable = lib.mkDefault true; hardware.bluetooth.enable = lib.mkDefault true; hardware.bluetooth.settings.General.Enable = lib.mkDefault "Source,Sink,Media,Socket"; };