diff --git a/README.md b/README.md index 96692ba..d060a9e 100755 --- a/README.md +++ b/README.md @@ -24,5 +24,6 @@ each host should have these files: - tags for pip and popups in hyprland config - make wl-clip-persist and networkmanager applet systemd services? - gtk cursors are MESSED UP. top priority rn + - qt icons just... don't apply - niri.. yum - - international keyboard for Spanish + - do lockscreen better somehow diff --git a/default.nix b/default.nix index b08fc78..750f919 100755 --- a/default.nix +++ b/default.nix @@ -50,43 +50,28 @@ in { }; }; - system.stateVersion = "23.11"; + system.stateVersion = mkDefault "23.11"; system.configurationRevision = with inputs; mkIf (self ? rev) self.rev; hm.home.stateVersion = config.system.stateVersion; boot = { kernelPackages = mkDefault pkgs.linuxPackages_latest; - kernelParams = [ "pci_aspm.policy=performance" ]; + kernelParams = ["pci_aspm.policy=performance"]; }; # configure keymap in x11 services.xserver.xkb = { layout = "us"; - variant = "qwerty"; + # i need to learn this sometime + # variant = "workman"; }; console = { useXkbConfig = mkDefault true; }; - # set the time zone - services.automatic-timezoned.enable = mkDefault true; - time.timeZone = mkDefault null; # handled by automatic-timezoned + time.timeZone = mkDefault "America/Los_Angeles"; - i18n = mkDefault { - defaultLocale = "en_US.UTF-8"; - supportedLocales = [ "en_US.UTF-8/UTF-8" ]; - }; - - # set the location - location.provider = mkDefault "geoclue2"; - services.geoclue2 = { - enable = mkDefault true; - - # the default provider is Geeked - geoProviderUrl = "https://beacondb.net/v1/geolocate"; - submissionUrl = "https://beacondb.net/v2/geosubmit"; - submissionNick = "geoclue"; - }; + i18n.defaultLocale = mkDefault "en_US.UTF-8"; hardware.enableRedistributableFirmware = true; diff --git a/hosts/goopnet-interface/default.nix b/hosts/goopnet-interface/default.nix index d1b265e..6a28625 100755 --- a/hosts/goopnet-interface/default.nix +++ b/hosts/goopnet-interface/default.nix @@ -17,18 +17,18 @@ # debug strace ltrace lsof helvum # apps - firefox qalculate-gtk krita inkscape onlyoffice-desktopeditors vlc nicotine-plus transmission_4-gtk font-manager obs-studio imhex kdePackages.kdenlive + firefox qalculate-gtk krita inkscape onlyoffice-desktopeditors vlc nicotine-plus transmission_4-gtk font-manager obs-studio kdePackages.kdenlive # compatibility wineWowPackages.waylandFull winetricks # misc - bat file which packwiz yt-dlp fastfetch hyfetch trashy wev + bat file which packwiz yt-dlp fastfetch hyfetch # games prismlauncher ] ++ (with pkgs.my; [ # none yet ]) ++ (with pkgs.gnome; [ # yay gnomeware!!!!!!!!!!!!!! yum - nautilus gnome-disk-utility pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe pkgs.gnome-weather + nautilus gnome-disk-utility ghex pkgs.gnome-text-editor pkgs.baobab file-roller gnome-system-monitor loupe ]); modules = { @@ -91,7 +91,6 @@ # tools tools.gpg.enable = true; tools.rbw.enable = true; - tools.noisetorch.enable = true; }; }; } diff --git a/modules/desktop/gammastep.nix b/modules/desktop/gammastep.nix index 498099b..01b800e 100644 --- a/modules/desktop/gammastep.nix +++ b/modules/desktop/gammastep.nix @@ -13,7 +13,10 @@ in { enable = true; tray = true; - provider = "geoclue2"; + # portland, oregon + latitude = 45.3112; + longitude = -122.4055; + provider = "manual"; }; }; } diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix index c4d4b6d..774a8de 100644 --- a/modules/desktop/hyprland.nix +++ b/modules/desktop/hyprland.nix @@ -92,8 +92,6 @@ in { ]; bind = let screenshotScript = pkgs.writeShellScript "screenshot" '' - set -euo pipefail - temp_file=$(mktemp) trap 'rm -f "$temp_file"' EXIT @@ -114,15 +112,15 @@ in { ;; esac - ${lib.getExe pkgs.grimblast} --freeze save "$mode" - > "$temp_file" + ${lib.getExe pkgs.grimblast} --freeze save "$mode" - > "$temp_file" || exit 0 # exit successful, highly unlikely that grimblast failed, and it is more likely that the user cancelled the screenshot cat "$temp_file" | ${lib.getExe pkgs.wl-clipboard-x11} -selection clipboard -t image/png action=$(${pkgs.libnotify}/bin/notify-send "Screenshot Captured" \ --app-name="Screenshot" \ - --urgency="normal" \ + --urgency=normal \ --action="default=Edit Image" \ - --icon="$temp_file" \ + --icon "$temp_file" \ "Click to annotate image") case "$action" in @@ -131,28 +129,8 @@ in { ;; esac ''; - pickerScript = pkgs.writeShellScript "picker" '' - set -euo pipefail - - ${lib.getExe pkgs.hyprpicker} --render-inactive --format hex | sed -z 's/\n//g' | ${lib.getExe pkgs.wl-clipboard-x11} -selection clipboard -t text/plain - - ${pkgs.libnotify}/bin/notify-send "Color Captured" \ - --app-name="Picker" \ - --urgency="normal" \ - "Color copied to clipboard" - ''; - ocrScript = pkgs.writeShellScript "ocr" '' - set -euo pipefail - - output=$(${lib.getExe pkgs.grimblast} --freeze save area - | ${lib.getExe pkgs.tesseract5} - -) - - echo "$output" | ${lib.getExe pkgs.wl-clipboard-x11} -selection clipboard -t text/plain - - ${pkgs.libnotify}/bin/notify-send "OCR Captured" \ - --app-name="OCR" \ - --urgency="normal" \ - --icon="text-x-generic-symbolic" \ - "Text copied to clipboard" + pickerScript = pkgs.writeShellScript "color-picker" '' + ${lib.getExe pkgs.zenity} --color-selection --color $(${lib.getExe pkgs.hyprpicker}) ''; in [ "$mod, Q, killactive, " @@ -200,8 +178,6 @@ in { "$mod SHIFT ALT, S, exec, ${screenshotScript} window" # pick color "$mod SHIFT, C, exec, ${pickerScript}" - # ocr - "$mod SHIFT, T, exec, ${ocrScript}" ", XF86LaunchA, exec, ${screenshotScript} area" ", XF86LaunchB, exec, ${lib.getExe pkgs.rofi-rbw-wayland} -a copy -t password --clear-after 20" @@ -284,6 +260,9 @@ in { "float, initialTitle:^Save As$" "size 1100 650, initialTitle:^Save As$" "center, initialTitle:^Save As$" + "float, initialTitle:^Select a file to open$" + "size 1100 650, initialTitle:^Select a file to open$" + "center, initialTitle:^Select a file to open$" "float, initialTitle:^File Upload$" "size 1100 650, initialTitle:^File Upload$" "center, initialTitle:^File Upload$" diff --git a/modules/desktop/hyprlock.nix b/modules/desktop/hyprlock.nix index 31c65dc..39fe9c8 100644 --- a/modules/desktop/hyprlock.nix +++ b/modules/desktop/hyprlock.nix @@ -15,7 +15,7 @@ in { config = mkIf cfg.enable { security.pam.services.hyprlock.text = "auth include login"; - hm.home.packages = with pkgs; [ cfg.package wlinhibit ]; + hm.home.packages = [ cfg.package ]; hm.programs.hyprlock = { enable = true; package = cfg.package; diff --git a/modules/desktop/nwg-drawer.nix b/modules/desktop/nwg-drawer.nix index 48c951c..05f000e 100644 --- a/modules/desktop/nwg-drawer.nix +++ b/modules/desktop/nwg-drawer.nix @@ -27,7 +27,7 @@ in { Service = { Type = "simple"; - ExecStart = "${lib.getExe cfg.package} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus -wm hyprland"; + ExecStart = "${lib.getExe cfg.package} -r -nofs -nocats -ovl -term wezterm -spacing 15 -fm nautilus"; Restart = "on-failure"; RestartSec = 5; }; diff --git a/modules/desktop/plymouth.nix b/modules/desktop/plymouth.nix index e2289cc..1b5edc6 100644 --- a/modules/desktop/plymouth.nix +++ b/modules/desktop/plymouth.nix @@ -15,7 +15,6 @@ in { themePackages = [ config.modules.desktop.themes.plymouthTheme.package ]; theme = config.modules.desktop.themes.plymouthTheme.name; }; - boot.kernelParams = [ "plymouth.use-simpledrm" ]; # smooth transition from plymouth to the login manager # honestly, i have No Clue what this does, but it's in the arch wiki so it must be good diff --git a/modules/desktop/swww.nix b/modules/desktop/swww.nix index d864570..b2426ba 100644 --- a/modules/desktop/swww.nix +++ b/modules/desktop/swww.nix @@ -17,8 +17,6 @@ in { setScript = mkOption { type = types.package; default = pkgs.writeShellScript "swww-set" '' - set -euo pipefail - if [ ! -f "${lastWallpaper}" ]; then echo "$(ls ${wallpapersFolder} | shuf -n 1)" > "${lastWallpaper}" fi @@ -29,8 +27,6 @@ in { swapScript = mkOption { type = types.package; default = pkgs.writeShellScript "swww-swap" '' - set -euo pipefail - file=$(ls ${wallpapersFolder} | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -sep '\n' -i -p "select a wallpaper") wallpaper="${wallpapersFolder}/$file" diff --git a/modules/desktop/themes/catppuccin/default.nix b/modules/desktop/themes/catppuccin/default.nix index bfc7261..1c10baf 100644 --- a/modules/desktop/themes/catppuccin/default.nix +++ b/modules/desktop/themes/catppuccin/default.nix @@ -5,8 +5,6 @@ let cfg = config.modules.desktop.themes; accent = "pink"; variant = "mocha"; - - dark = variant != "latte"; colorScheme = inputs.nix-colors.colorSchemes.${"catppuccin-${variant}"}; pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s)); in { @@ -14,7 +12,7 @@ in { colorScheme = colorScheme; modules.desktop.themes = { - dark = dark; + dark = variant != "latte"; gtkTheme = { name = "catppuccin-${variant}-${accent}-compact+rimless"; @@ -35,12 +33,12 @@ in { }; iconTheme = { - name = "WhiteSur-${if dark then "dark" else "light"}"; + name = "WhiteSur-dark"; package = pkgs.whitesur-icon-theme; }; cursorTheme = { - name = "graphite-${if dark then "dark" else "light"}"; + name = "graphite-dark"; package = pkgs.graphite-cursors; size = 24; }; diff --git a/modules/desktop/themes/default.nix b/modules/desktop/themes/default.nix index 95d3930..54a76f5 100644 --- a/modules/desktop/themes/default.nix +++ b/modules/desktop/themes/default.nix @@ -104,15 +104,6 @@ in { platformTheme.name = "qtct"; style.name = "kvantum"; }; - # needed for svg icons in qt to work, - # so we just install them unconditionally - hm.home.packages = with pkgs; [ - cfg.iconTheme.package - libsForQt5.breeze-icons - libsForQt5.qt5.qtsvg - # kdePackages.breeze-icons - kdePackages.qtsvg - ]; hm.home.pointerCursor = { gtk.enable = true; @@ -181,11 +172,6 @@ in { }; }; in { - "kdeglobals".text = '' - [Icons] - Theme=${cfg.iconTheme.name} - ''; - "Kvantum/${cfg.kvantumTheme.name}".source = "${cfg.kvantumTheme.package}/share/Kvantum/${cfg.kvantumTheme.name}"; "Kvantum/kvantum.kvconfig".text = '' [General] diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix index 88f0c3d..d79af56 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/waybar.nix @@ -75,9 +75,7 @@ in { ]; }; "custom/power" = let - powerMenuScript = pkgs.writeShellScript "power-menu" '' - set -euo pipefail - + powerSelect = pkgs.writeShellScript "power-menu" '' cmd=$(echo '⏻ shutdown|↻ reboot| lock|⎋ exit desktop environment' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }') case "$cmd" in "⏻ shutdown") @@ -98,7 +96,7 @@ in { format = "⏻"; tooltip = true; tooltip-format = "Power menu"; - on-click = "${powerMenuScript}"; + on-click = "${powerSelect}"; }; "custom/wallpaper" = { format = ""; @@ -260,41 +258,12 @@ in { icon-size = 16; spacing = 4; }; - "custom/weather" = let - # this *should* be from coordinates, but we have to make it city because... - # https://github.com/chubin/wttr.in/issues/795 - # i was NOT going to let ip-based location be a thing. i was suprisingly medicated when i wrote this - locationScript = pkgs.writeShellScript "location" '' - set -euo pipefail - - lon="" - lat="" - - while IFS= read -r line; do - if [[ "$line" == *"Latitude"* ]]; then - lat=$(echo "$line" | awk '{ gsub(/[" ]/, "", $2); printf("%.2f", $2) }') - elif [[ "$line" == *"Longitude"* ]]; then - lon=$(echo "$line" | awk '{ gsub(/[" ]/, "", $2); printf("%.2f", $2) }') - fi - if [[ -n "$lat" && -n "$lon" ]]; then - break - fi - # -a 4 -- set accuracy to city - done < <(${pkgs.geoclue2}/libexec/geoclue-2.0/demos/where-am-i -a 4) - - # i've had issues including country *and* state here, so state has higher priority and falls back to country. works fine for my current place and home town, so good enough <3 - # zoom=10 -- set zoom to city - # addressdetails=1 -- get address details, includes neighborhood (if requested) to city - echo $(curl "https://nominatim.openstreetmap.org/reverse?lat=''${lat}&lon=''${lon}&addressdetails=1&zoom=10&format=json" | ${lib.getExe pkgs.jq} -r '.address | "\((to_entries[0].value)), \(.state // "\(.country)")"') - ''; - in { + "custom/weather" = { format = "{}°"; tooltip = true; - on-click = "${lib.getExe pkgs.gnome-weather}"; interval = 3600; # doxxing live stream - # edit: no longer doxxing, you will be remembered - exec = ''${lib.getExe pkgs.wttrbar} --location "$(${locationScript})" --hide-conditions --fahrenheit --mph''; + exec = "${lib.getExe pkgs.wttrbar} --location 'Corvallis, Oregon, United States' --hide-conditions --fahrenheit --mph"; return-type = "json"; }; }; diff --git a/modules/software/editors/micro.nix b/modules/software/editors/micro.nix index 4f2fd23..2fcc456 100644 --- a/modules/software/editors/micro.nix +++ b/modules/software/editors/micro.nix @@ -28,7 +28,7 @@ in { }; }; - hm.xdg.configFile."micro/colorschemes/${schemeName}.micro".text = with config.colorScheme.palette; '' + hm.home.file.".config/micro/colorschemes/${schemeName}.micro".text = with config.colorScheme.palette; '' color-link default "#${base05},#${base00}" color-link comment "#${base03},#${base00}" color-link identifier "#${base0D},#${base00}" diff --git a/modules/software/editors/vscode.nix b/modules/software/editors/vscode.nix index 471597a..10dfacc 100644 --- a/modules/software/editors/vscode.nix +++ b/modules/software/editors/vscode.nix @@ -67,7 +67,7 @@ in { "nix.enableLanguageServer" = true; "nix.serverPath" = "${lib.getExe pkgs.nil}"; - "security.workspace.trust.enabled" = "false"; + "security.workspace.trust.untrustedFiles" = "open"; "explorer.compactFolders" = false; "explorer.confirmDelete" = false; diff --git a/modules/software/tools/noisetorch.nix b/modules/software/tools/noisetorch.nix deleted file mode 100644 index 4479532..0000000 --- a/modules/software/tools/noisetorch.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ config, lib, ... }: - -with lib; -let - cfg = config.modules.software.tools.noisetorch; -in { - options.modules.software.tools.noisetorch = { - enable = mkEnableOption "Enable noisetorch, a microphone noise supression tool"; - }; - - config = mkIf cfg.enable { - programs.noisetorch.enable = true; - }; -}