diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 75fb614..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(nixos-version:*)", - "Bash(glxinfo)", - "Bash(bambu-studio --version)", - "Bash(lspci)", - "Bash(lsmod)", - "Bash(echo $XDG_SESSION_TYPE)", - "Bash(echo $DISPLAY $WAYLAND_DISPLAY)", - "Bash(coredumpctl list:*)", - "Bash(journalctl --user -b -g bambu --no-pager)", - "Bash(coredumpctl info:*)", - "Bash(nix search:*)", - "Bash(find /nix/store/ji5hxn8c4n5dvivqr9ilm91962p8c5ld-bambu-studio-02.05.00.67/ -name *.so)", - "Bash(find /nix/store/ji5hxn8c4n5dvivqr9ilm91962p8c5ld-bambu-studio-02.05.00.67/ -name *.so*)", - "Bash(dconf read:*)", - "Bash(gsettings get:*)", - "Read(//usr/share/**)", - "Read(//home/jgarr/.local/share/applications/**)", - "Bash(sudo nixos-rebuild:*)", - "Read(//home/jgarr/.config/niri/**)", - "Bash(find /etc/nixos -name *.nix)", - "Bash(niri --version)", - "Bash(niri msg:*)", - "Bash(niri --help)", - "Bash(/nix/store/8a08pxn2hpj1619b3cp48lzajdqpnrqq-niri-26.04/bin/niri msg:*)", - "Bash(nix shell:*)", - "Bash(/nix/store/8a08pxn2hpj1619b3cp48lzajdqpnrqq-niri-26.04/bin/niri validate:*)", - "WebFetch(domain:github.com)", - "Read(//nix/store/**)", - "Bash(systemctl --user restart swayosd)", - "Bash(swayosd-client --output-volume raise)", - "Bash(journalctl --user -u swayosd -n 10 --no-pager)", - "Bash(TERM=xterm vim -E -s -u ~/.dotfiles/ln/.vimrc +PluginInstall +qall)", - "Bash(echo \"exit: $?\")" - ] - } -} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c5f206 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.claude/ diff --git a/configuration.nix b/configuration.nix index 02c42f9..90ff486 100644 --- a/configuration.nix +++ b/configuration.nix @@ -33,6 +33,7 @@ # Use latest kernel. boot.kernelPackages = pkgs.linuxPackages_latest; + boot.kernelModules = [ "sg" ]; networking.hostName = hostname; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. @@ -174,6 +175,10 @@ git qemu_kvm OVMFFull + iptables + openssl + dnsutils + appimage-run ]; # Some programs need SUID wrappers, can be configured further or are diff --git a/controld.nix b/controld.nix index 63a2fba..6c97cc7 100644 --- a/controld.nix +++ b/controld.nix @@ -32,8 +32,9 @@ in ''; }; + # Create writable config directory systemd.tmpfiles.rules = [ - "d /etc/ctrld 0755 root root - -" + "d /etc/ctrld 0755 jgarr jgarr - -" ]; # Ensure ctrld starts before resolved diff --git a/flake.lock b/flake.lock index 50893ee..f9acb87 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "amp-pkgs": { + "locked": { + "lastModified": 1778869304, + "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "claude-code": { "inputs": { "flake-utils": "flake-utils", @@ -159,72 +175,14 @@ "type": "github" } }, - "nixpkgs_4": { - "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "noctalia-qs": { - "inputs": { - "nixpkgs": [ - "noctalia-shell", - "nixpkgs" - ], - "systems": "systems_3", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1777773024, - "narHash": "sha256-pLU+KB84A0Jei/vTD6pOS4Ovkmq3QDfPQHg1MlKsRqM=", - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "rev": "d3e26ccd9eecde9139be00caf5dc2d4260fb31ee", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-qs", - "type": "github" - } - }, - "noctalia-shell": { - "inputs": { - "nixpkgs": "nixpkgs_4", - "noctalia-qs": "noctalia-qs" - }, - "locked": { - "lastModified": 1778104114, - "narHash": "sha256-+tbqLv7IW5Aem8kGF6cp4n3MtNBcwqmuGlMt6S1kQjs=", - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "rev": "eb2b53ddaa7564f5c93031cbe65cd5b6ef3c12a9", - "type": "github" - }, - "original": { - "owner": "noctalia-dev", - "repo": "noctalia-shell", - "type": "github" - } - }, "root": { "inputs": { + "amp-pkgs": "amp-pkgs", "claude-code": "claude-code", "home-manager": "home-manager", "k": "k", "nixpkgs": "nixpkgs_3", - "nixpkgs-unstable": "nixpkgs-unstable", - "noctalia-shell": "noctalia-shell" + "nixpkgs-unstable": "nixpkgs-unstable" } }, "systems": { @@ -256,43 +214,6 @@ "repo": "default", "type": "github" } - }, - "systems_3": { - "locked": { - "lastModified": 1689347949, - "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", - "owner": "nix-systems", - "repo": "default-linux", - "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default-linux", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "noctalia-shell", - "noctalia-qs", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1775636079, - "narHash": "sha256-pc20NRoMdiar8oPQceQT47UUZMBTiMdUuWrYu2obUP0=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "790751ff7fd3801feeaf96d7dc416a8d581265ba", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index d1d8e4b..d328941 100644 --- a/flake.nix +++ b/flake.nix @@ -2,21 +2,24 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + # Dedicated input for amp-cli so it can be bumped on its own cadence + # via: `nix flake update amp-pkgs` + amp-pkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager.url = "github:nix-community/home-manager/release-25.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; k.url = "github:rothgar/k"; claude-code.url = "github:sadjow/claude-code-nix"; - noctalia-shell.url = "github:noctalia-dev/noctalia-shell"; }; - outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, k, claude-code, noctalia-shell, ... }: + outputs = { self, nixpkgs, nixpkgs-unstable, amp-pkgs, home-manager, k, claude-code, ... }: let system = "x86_64-linux"; unstablePkgs = import nixpkgs-unstable { inherit system; config.allowUnfree = true; }; + ampPkgs = import amp-pkgs { inherit system; config.allowUnfree = true; }; mkHost = { hostname, hostModule, hardwareModule, homeModules ? [] }: nixpkgs.lib.nixosSystem { inherit system; - specialArgs = { inherit hostname; unstable = unstablePkgs; }; + specialArgs = { inherit hostname nixpkgs-unstable; unstable = unstablePkgs; }; modules = [ ./configuration.nix hardwareModule @@ -26,7 +29,11 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.backupFileExtension = "hm-bak"; - home-manager.extraSpecialArgs = { inherit k claude-code; unstable = unstablePkgs; }; + home-manager.extraSpecialArgs = { + inherit k claude-code; + unstable = unstablePkgs; + amp = ampPkgs; + }; home-manager.users.jgarr = { imports = [ ./home.nix ] ++ homeModules; home.username = "jgarr"; @@ -41,13 +48,14 @@ hostname = "s"; hostModule = ./hosts/s.nix; hardwareModule = ./hardware/s.nix; + homeModules = [ ./hosts/s-home.nix ]; }; nixosConfigurations.x = mkHost { hostname = "x"; hostModule = ./hosts/x.nix; hardwareModule = ./hardware/x.nix; - homeModules = [ ./hosts/x-home.nix noctalia-shell.homeModules.default ]; + homeModules = [ ./hosts/x-home.nix ]; }; }; } diff --git a/home.nix b/home.nix index 228b6ae..37b6398 100644 --- a/home.nix +++ b/home.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, k, unstable, claude-code, ... }: +{ config, pkgs, lib, k, unstable, amp, claude-code, ... }: { imports = [ ./k8s.nix ]; @@ -44,10 +44,15 @@ in readPackages ./packages.txt pkgs ++ readPackages ./packages-unstable.txt unstable ++ [ + # amp-cli comes from its own flake input (`amp-pkgs`) so it can be + # bumped on its own with `nix flake update amp-pkgs` without rebuilding + # the rest of the unstable set. + amp.amp-cli claude-code.packages.${pkgs.system}.default # Packages that need custom expressions (pkgs.wrapOBS { plugins = with pkgs.obs-studio-plugins; [ obs-source-record obs-pipewire-audio-capture obs-vkcapture obs-backgroundremoval obs-vaapi obs-move-transition input-overlay ]; }) (pkgs.symlinkJoin { name = "orca-slicer"; paths = [ pkgs.orca-slicer ]; buildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/orca-slicer --set GDK_BACKEND x11 --set MESA_GL_VERSION_OVERRIDE 3.3 ''; }) + (pkgs.symlinkJoin { name = "moonlight-qt"; paths = [ pkgs.moonlight-qt ]; buildInputs = [ pkgs.makeWrapper ]; postBuild = '' wrapProgram $out/bin/moonlight --set QT_QPA_PLATFORM xcb ''; }) ]; xdg.userDirs = { @@ -63,193 +68,6 @@ videos = "$HOME/videos"; }; - gtk = { - enable = true; - theme = { - name = "Adwaita"; - package = pkgs.gnome-themes-extra; - }; - }; - - dconf.settings = { - "org/gnome/desktop/input-sources" = { - sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "us+dvorak" ]) ]; - xkb-options = [ "caps:escape" ]; - }; - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - cursor-theme = "Polarnight-cursors"; - font-antialiasing = "rgba"; - font-hinting = "slight"; - gtk-enable-primary-paste = false; - icon-theme = "kora-light-panel"; - }; - "org/gnome/desktop/wm/preferences" = { - action-double-click-titlebar = "toggle-maximize"; - action-middle-click-titlebar = "none"; - action-right-click-titlebar = "menu"; - button-layout = ":close"; - focus-mode = "sloppy"; - resize-with-right-button = true; - }; - "org/gnome/desktop/wm/keybindings" = { - switch-windows = ["Tab"]; - switch-windows-backward = ["Tab"]; - switch-applications = []; - switch-applications-backward = []; - }; - "org/gnome/mutter" = { - attach-modal-dialogs = false; - center-new-windows = true; - edge-tiling = false; - experimental-features = [ "scale-monitor-framebuffer" ]; - }; - "org/gnome/desktop/session" = { - idle-delay = lib.hm.gvariant.mkUint32 0; - }; - "org/gnome/settings-daemon/plugins/power" = { - sleep-inactive-ac-type = "nothing"; - }; - "org/gnome/desktop/notifications" = { - show-banners = false; - }; - "org/gnome/desktop/privacy" = { - report-technical-problems = false; - }; - "org/gtk/gtk4/settings/file-chooser" = { - sort-directories-first = true; - }; - "org/gtk/settings/file-chooser" = { - sort-directories-first = true; - sort-column = "modified"; - sort-order = "descending"; - }; - "org/gnome/nautilus/preferences" = { - default-folder-viewer = "list-view"; - }; - "org/gnome/nautilus/list-view" = { - default-visible-columns = [ "name" "size" "date_modified" ]; - }; - "org/gnome/desktop/remote-desktop/rdp" = { - enable = true; - view-only = false; - }; - "org/gnome/shell/app-switcher" = { - current-workspace-only = true; - }; - "org/gnome/shell" = { - favorite-apps = [ - "firefox.desktop" - "google-chrome.desktop" - "slack.desktop" - "discord.desktop" - "com.mitchellh.ghostty.desktop" - "org.gnome.Nautilus.desktop" - "org.kde.krita.desktop" - "org.pulseaudio.pavucontrol.desktop" - "signal.desktop" - ]; - enabled-extensions = [ - "blur-my-shell@aunetx" - "tailscale@joaophi.github.com" - "search-light@icedman.github.com" - "user-theme@gnome-shell-extensions.gcampax.github.com" - "launch-new-instance@gnome-shell-extensions.gcampax.github.com" - "drive-menu@gnome-shell-extensions.gcampax.github.com" - "allowlockedremotedesktop@kamens.us" - "appindicatorsupport@rgcjonas.gmail.com" - "color-picker@tudberry" - "colorblind-filters@G-dH.github.com" - "caffeine@patapon.info" - "emoji-copy@felipeftn" - "clipboard-indicator@tudmotu.com" - "volume_scroller@francislavoie.github.io" - "draw-on-gnome@daveprowse.github.io" - ]; - disabled-extensions = [ - "dash-to-dock@micxgx.gmail.com" - "gsconnect@andyholmes.github.io" - "logomenu@aryan_k" - "notification-icons@muhammad_ans.github" - "rounded-window-corners@fxgn" - "burn-my-windows@schneegans.github.com" - "mouse-tail@lanesun.anlbrain.com" - "wiggly@mojarch" - "eye-extended@als.kz" - ]; - }; - "org/gnome/settings-daemon/plugins/media-keys" = { - custom-keybindings = [ - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/" - ]; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { - binding = "t"; - command = "ghostty"; - name = "Ghostty"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { - binding = "Return"; - command = "/usr/bin/ptyxis --new-window"; - name = "Ptyxis Alt"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { - binding = "Escape"; - command = "flatpak run io.missioncenter.MissionCenter"; - name = "mission-center"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { - binding = "BackSpace"; - command = "flatpak run com.jeffser.Alpaca"; - name = "Launch Alpaca"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { - binding = "Print"; - command = "flatpak run be.alexandervanhee.gradia --screenshot"; - name = "Take and edit screenshot"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = { - binding = "space"; - command = "flatpak run it.mijorus.smile"; - name = "Open up the emoji picker"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = { - binding = "period"; - command = "flatpak run it.mijorus.smile"; - name = "Open up the emoji picker (Alt)"; - }; - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = { - binding = "e"; - command = "nautilus --new-window /home/jgarr/downloads"; - name = "Open Downloads in Nautilus"; - }; - "org/gnome/shell/extensions/search-light" = { - shortcut-search = [ "space" ]; - scale-height = 0.15; - scale-width = 0.1; - }; - "org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = { - blur = true; - static-blur = true; - style-dash-to-dock = 0; - }; - "org/gnome/desktop/break-reminders/movement" = { - duration-seconds = lib.hm.gvariant.mkUint32 300; - interval-seconds = lib.hm.gvariant.mkUint32 1800; - play-sound = true; - }; - "org/gnome/Ptyxis" = { - interface-style = "system"; - }; - }; - programs.home-manager.enable = true; xdg.desktopEntries.xdg-open-wrapper = { @@ -284,13 +102,6 @@ "application/json" = "org.gnome.TextEditor.desktop"; "audio/flac" = "io.mpv.Mpv.desktop"; "image/vnd.adobe.photoshop" = "org.kde.krita.desktop"; - "image/jpeg" = "imv.desktop"; - "image/png" = "imv.desktop"; - "image/gif" = "imv.desktop"; - "image/webp" = "imv.desktop"; - "image/bmp" = "imv.desktop"; - "image/tiff" = "imv.desktop"; - "image/svg+xml" = "imv.desktop"; }; defaultApplications = { "x-scheme-handler/http" = "xdg-open-wrapper.desktop"; @@ -308,13 +119,6 @@ "video/mp4" = "io.mpv.Mpv.desktop"; "video/quicktime" = "io.mpv.Mpv.desktop"; "video/x-matroska" = "io.mpv.Mpv.desktop"; - "image/jpeg" = "imv.desktop"; - "image/png" = "imv.desktop"; - "image/gif" = "imv.desktop"; - "image/webp" = "imv.desktop"; - "image/bmp" = "imv.desktop"; - "image/tiff" = "imv.desktop"; - "image/svg+xml" = "imv.desktop"; "x-scheme-handler/beeper" = "beepertexts.desktop"; "application/json" = "org.gnome.TextEditor.desktop"; "audio/flac" = "io.mpv.Mpv.desktop"; diff --git a/hosts/s-home.nix b/hosts/s-home.nix new file mode 100644 index 0000000..1791276 --- /dev/null +++ b/hosts/s-home.nix @@ -0,0 +1,182 @@ +{ lib, ... }: + +{ + dconf.settings = { + "org/gnome/desktop/input-sources" = { + sources = [ (lib.hm.gvariant.mkTuple [ "xkb" "us+dvorak" ]) ]; + xkb-options = [ "caps:escape" ]; + }; + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + cursor-theme = "Polarnight-cursors"; + font-antialiasing = "rgba"; + font-hinting = "slight"; + gtk-enable-primary-paste = false; + icon-theme = "kora-light-panel"; + }; + "org/gnome/desktop/wm/preferences" = { + action-double-click-titlebar = "toggle-maximize"; + action-middle-click-titlebar = "none"; + action-right-click-titlebar = "menu"; + button-layout = ":close"; + focus-mode = "sloppy"; + resize-with-right-button = true; + }; + "org/gnome/desktop/wm/keybindings" = { + switch-windows = ["Tab"]; + switch-windows-backward = ["Tab"]; + switch-applications = []; + switch-applications-backward = []; + }; + "org/gnome/mutter" = { + attach-modal-dialogs = false; + center-new-windows = true; + edge-tiling = false; + experimental-features = [ "scale-monitor-framebuffer" ]; + }; + "org/gnome/desktop/session" = { + idle-delay = lib.hm.gvariant.mkUint32 0; + }; + "org/gnome/settings-daemon/plugins/power" = { + sleep-inactive-ac-type = "nothing"; + }; + "org/gnome/desktop/notifications" = { + show-banners = false; + }; + "org/gnome/desktop/privacy" = { + report-technical-problems = false; + }; + "org/gtk/gtk4/settings/file-chooser" = { + sort-directories-first = true; + }; + "org/gtk/settings/file-chooser" = { + sort-directories-first = true; + sort-column = "modified"; + sort-order = "descending"; + }; + "org/gnome/nautilus/preferences" = { + default-folder-viewer = "list-view"; + }; + "org/gnome/nautilus/list-view" = { + default-visible-columns = [ "name" "size" "date_modified" ]; + }; + "org/gnome/desktop/remote-desktop/rdp" = { + enable = true; + view-only = false; + }; + "org/gnome/shell/app-switcher" = { + current-workspace-only = true; + }; + "org/gnome/shell" = { + favorite-apps = [ + "firefox.desktop" + "google-chrome.desktop" + "slack.desktop" + "discord.desktop" + "com.mitchellh.ghostty.desktop" + "org.gnome.Nautilus.desktop" + "org.kde.krita.desktop" + "org.pulseaudio.pavucontrol.desktop" + "signal.desktop" + ]; + enabled-extensions = [ + "blur-my-shell@aunetx" + "tailscale@joaophi.github.com" + "search-light@icedman.github.com" + "user-theme@gnome-shell-extensions.gcampax.github.com" + "launch-new-instance@gnome-shell-extensions.gcampax.github.com" + "drive-menu@gnome-shell-extensions.gcampax.github.com" + "allowlockedremotedesktop@kamens.us" + "appindicatorsupport@rgcjonas.gmail.com" + "color-picker@tudberry" + "colorblind-filters@G-dH.github.com" + "caffeine@patapon.info" + "emoji-copy@felipeftn" + "clipboard-indicator@tudmotu.com" + "volume_scroller@francislavoie.github.io" + "draw-on-gnome@daveprowse.github.io" + ]; + disabled-extensions = [ + "dash-to-dock@micxgx.gmail.com" + "gsconnect@andyholmes.github.io" + "logomenu@aryan_k" + "notification-icons@muhammad_ans.github" + "rounded-window-corners@fxgn" + "burn-my-windows@schneegans.github.com" + "mouse-tail@lanesun.anlbrain.com" + "wiggly@mojarch" + "eye-extended@als.kz" + ]; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + custom-keybindings = [ + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6/" + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7/" + ]; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + binding = "t"; + command = "ghostty"; + name = "Ghostty"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = { + binding = "Return"; + command = "/usr/bin/ptyxis --new-window"; + name = "Ptyxis Alt"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = { + binding = "Escape"; + command = "flatpak run io.missioncenter.MissionCenter"; + name = "mission-center"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { + binding = "BackSpace"; + command = "flatpak run com.jeffser.Alpaca"; + name = "Launch Alpaca"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { + binding = "Print"; + command = "flatpak run be.alexandervanhee.gradia --screenshot"; + name = "Take and edit screenshot"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom5" = { + binding = "space"; + command = "flatpak run it.mijorus.smile"; + name = "Open up the emoji picker"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom6" = { + binding = "period"; + command = "flatpak run it.mijorus.smile"; + name = "Open up the emoji picker (Alt)"; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom7" = { + binding = "e"; + command = "nautilus --new-window /home/jgarr/downloads"; + name = "Open Downloads in Nautilus"; + }; + "org/gnome/shell/extensions/search-light" = { + shortcut-search = [ "space" ]; + scale-height = 0.15; + scale-width = 0.1; + }; + "org/gnome/shell/extensions/blur-my-shell/dash-to-dock" = { + blur = true; + static-blur = true; + style-dash-to-dock = 0; + }; + "org/gnome/desktop/break-reminders/movement" = { + duration-seconds = lib.hm.gvariant.mkUint32 300; + interval-seconds = lib.hm.gvariant.mkUint32 1800; + play-sound = true; + }; + "org/gnome/Ptyxis" = { + interface-style = "system"; + }; + }; +} diff --git a/hosts/s.nix b/hosts/s.nix index b808eda..06517b6 100644 --- a/hosts/s.nix +++ b/hosts/s.nix @@ -1,6 +1,27 @@ -{ pkgs, ... }: +{ config, pkgs, ... }: { + environment.etc."ctrld/config.toml".text = '' + [server] + listen = "0.0.0.0:53" + tcp_enable = true + + [upstream.dns] + primary = "76.76.2.22#etf79xdaho.dns.controld.com" + ''; + + hardware.nvidia-container-toolkit.enable = true; + virtualisation.docker.daemon.settings.features.cdi = true; + + hardware.nvidia = { + modesetting.enable = true; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + }; + + services.xserver.videoDrivers = [ "nvidia" ]; + environment.systemPackages = with pkgs; [ davinci-resolve-studio ]; diff --git a/hosts/x-home.nix b/hosts/x-home.nix index 93da286..7107a32 100644 --- a/hosts/x-home.nix +++ b/hosts/x-home.nix @@ -2,6 +2,34 @@ { + gtk = { + enable = true; + theme = { + name = "Adwaita"; + package = pkgs.gnome-themes-extra; + }; + }; + + xdg.mimeApps.associations.added = { + "image/jpeg" = "imv.desktop"; + "image/png" = "imv.desktop"; + "image/gif" = "imv.desktop"; + "image/webp" = "imv.desktop"; + "image/bmp" = "imv.desktop"; + "image/tiff" = "imv.desktop"; + "image/svg+xml" = "imv.desktop"; + }; + + xdg.mimeApps.defaultApplications = { + "image/jpeg" = "imv.desktop"; + "image/png" = "imv.desktop"; + "image/gif" = "imv.desktop"; + "image/webp" = "imv.desktop"; + "image/bmp" = "imv.desktop"; + "image/tiff" = "imv.desktop"; + "image/svg+xml" = "imv.desktop"; + }; + home.packages = [ pkgs.xwayland-satellite pkgs.libinput-gestures diff --git a/hosts/x.nix b/hosts/x.nix index 8fd48e4..2afdfe4 100644 --- a/hosts/x.nix +++ b/hosts/x.nix @@ -48,6 +48,15 @@ "i915.vbt_firmware=minibookx.vbt" ]; + environment.etc."ctrld/config.toml".text = '' + [server] + listen = "0.0.0.0:53" + tcp_enable = true + + [upstream.dns] + primary = "76.76.2.22#242b3nujblf.dns.controld.com" + ''; + systemd.tmpfiles.rules = [ "L+ /var/lib/gdm/.config/monitors.xml - - - - ${pkgs.writeText "gdm-monitors.xml" '' diff --git a/packages-unstable.txt b/packages-unstable.txt index e63363a..0206627 100644 --- a/packages-unstable.txt +++ b/packages-unstable.txt @@ -1,5 +1,5 @@ # Packages pulled from nixpkgs-unstable for more up to date versions -amp-cli +# Note: amp-cli has been moved to its own flake input (`amp-pkgs`) so it can +# be updated independently via `nix flake update amp-pkgs`. talosctl omnictl -bambu-studio diff --git a/packages.txt b/packages.txt index 96c2819..a7215de 100644 --- a/packages.txt +++ b/packages.txt @@ -58,6 +58,7 @@ viddy xclip yq zoxide +gettext # Media tools ccextractor @@ -127,7 +128,6 @@ pinta # Gaming steam -moonlight-qt bottles # System @@ -138,6 +138,7 @@ localsend sunshine tigervnc _1password-gui +nvtopPackages.nvidia zip # GNOME extensions @@ -156,4 +157,3 @@ gnomeExtensions.just-perfection gnomeExtensions.vitals gnomeExtensions.launch-new-instance gnomeExtensions.user-themes -imv